logo

Akash

AKT
  • Network:

    Mainnet

  • Chain ID:

    akashnet-2

  • Current Node Version:

    v1.1.0

Overview

Akash is an open network that allows users to securely and efficiently buy and sell computing resources. As a community-owned and managed public utility, its source code is available to everyone, with the community overseeing feature implementations.

Key Features:

  • Community-Driven: Publicly available source code and community-managed decisions.
  • Infrastructure as Code: Powered by SDL for complex deployments and resource control.
  • Kubernetes Integration: Secure, reliable hosting platform.
  • Persistent Storage: Limitless storage maintaining data integrity post-restart.
  • Dedicated IP Leasing: Facilitates precise port assignments and traffic direction.
  • Permissionless Deployment: Secure, censorship-resistant app deployment open to all.
  • Peer-to-Peer Privacy: Ensures data privacy, payment transparency, and independence from central control.
  • Supercloud Experience: Global services with significant cost savings through the 'Reverse Auction' system.
  • Innovative Protocol: Built on the Cosmos SDK, secured by AKT, and achieving seamless IBC communication with Cosmos Hub.

Akash stands out as a powerful, flexible, and forward-thinking decentralized compute marketplace. By prioritizing user privacy and security, offering extensive customization options, and maintaining a community-centric approach, Akash is well-positioned to lead the way in the decentralized computing space.

Public Endpoints

TypeEndpointLink
RPChttps://akash-mainnet-rpc.crouton.digital arrow right icon
APIhttps://akash-mainnet-api.crouton.digital arrow right icon
gRPCakash-mainnet-grpc.crouton.digital:12890
peer0d8434034e645d305a0cf294e5670ee59e5e55f0@148.251.53.24:12856

Guide

INFOINFO

This guide provides a complete and reliable setup for running an Akash mainnet node and validator. Here you’ll find everything you need - from downloading binaries and configuration files to initializing the node, managing keys, applying snapshots, and maintaining a stable validator environment. Follow the steps carefully to ensure a smooth and secure deployment on the Akash network.

Prepare

Update and install packages

sudo apt update && sudo apt upgrade -y && \ sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc fail2ban htop -y

Installing Go

VER="1.22.0" cd $HOME && \ wget "https://golang.org/dl/go$VER.linux-amd64.tar.gz" && \ sudo rm -rf /usr/local/go && \ sudo tar -C /usr/local -xzf "go$VER.linux-amd64.tar.gz" && \ rm "go$VER.linux-amd64.tar.gz" && \ echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ go version

Binary

git clone https://github.com/akash-network/node/ akash cd akash git checkout v1.1.0 make install akash version --long | grep -e version -e commit # version: v1.1.0 # commit: 009fab027eb177e5d7ef0367f6df85d1fb212779

Initialization

Initialize the node (replace VALIDATOR_NAME with your own)

akash init VALIDATOR_NAME --chain-id akashnet-2 && \ akash config chain-id akashnet-2 && \ akash config keyring-backend os

Genesis

Download genesis

wget https://storage.crouton.digital/mainnet/akash/files/genesis.json -O $HOME/.akash/config/genesis.json

Addrbook

Download addrbook

wget https://storage.crouton.digital/mainnet/akash/files/addrbook.json -O $HOME/.akash/config/addrbook.json

Configuration

EXTERNAL_IP=$(wget -qO- eth0.me) NODE_NUMBER="1" sed -i.bak \ -e "s/\(proxy_app = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))58\"/" \ -e "s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))57\"/" \ -e "s/\(pprof_laddr = \"\)\([^:]*\):\([0-9]*\).*/\1localhost:$(($NODE_NUMBER + 60))60\"/" \ -e "/\[p2p\]/,/^\[/{s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))56\"/}" \ -e "/\[p2p\]/,/^\[/{s/\(external_address = \"\)\([^:]*\):\([0-9]*\).*/\1${EXTERNAL_IP}:$(($NODE_NUMBER + 266))56\"/; t; s/\(external_address = \"\).*/\1${EXTERNAL_IP}:$(($NODE_NUMBER + 266))56\"/}" \ -e "s/\(prometheus_listen_addr = \":\)\([0-9]*\).*/\1$(($NODE_NUMBER + 266))60\"/" $HOME/.akash/config/config.toml sed -i.bak \ -e "/\[api\]/,/^\[/{s/\(address = \"tcp:\/\/\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 13))17\4/}" \ -e "/\[grpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 90))90\4/}" \ -e "/\[grpc-web\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 90))91\4/}" \ -e "/\[json-rpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 85))45\4/}" \ -e "/\[json-rpc\]/,/^\[/{s/\(ws-address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 85))46\4/}" $HOME/.akash/config/app.toml echo "export NODE=http://localhost:$(($NODE_NUMBER + 266))57" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ akash config node $NODE

Create a service file

sudo tee /etc/systemd/system/akash.service > /dev/null <<EOF [Unit] Description=akash_node After=network.target [Service] User=$USER Type=simple ExecStart=$(which akash) start --home $HOME/.akash Restart=on-failure LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF

Start the node

sudo systemctl daemon-reload && \ sudo systemctl enable akash && \ sudo systemctl restart akash && \ sudo journalctl -u akash -f -o cat

Snapshot

Block HeightSizeIndexerLast SnapshotDownload
206072987.8Gnull2025-03-12T15:16:45.845342378Z arrow right icon

Restore node from snapshot

sudo apt install lz4 -y && \ sudo systemctl stop akash && \ cp $HOME/.akash/data/priv_validator_state.json $HOME/.akash/priv_validator_state.json.backup && \ rm -rf $HOME/.akash/data && \ curl https://storage.crouton.digital/mainnet/akash/snapshots/akash_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.akash && \ mv $HOME/.akash/priv_validator_state.json.backup $HOME/.akash/data/priv_validator_state.json && \ sudo systemctl restart akash && \ sudo journalctl -u akash -f

State Sync

Restore node from state sync

SNAP_RPC="https://akash-mainnet-rpc.crouton.digital:443" && \ sudo systemctl stop akash && \ cp $HOME/.akash/data/priv_validator_state.json $HOME/.akash/priv_validator_state.json.backup && \ akash tendermint unsafe-reset-all --home $HOME/.akash --keep-addr-book && \ peers="0d8434034e645d305a0cf294e5670ee59e5e55f0@148.251.53.24:12856" && \ sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.akash/config/config.toml && \ LATEST_HEIGHT=$(curl -s "$SNAP_RPC/block" | jq -r .result.block.header.height) && \ BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)) && \ TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash) && \ echo "$LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH" && sleep 2 && \ sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"| ; s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $HOME/.akash/config/config.toml && \ mv $HOME/.akash/priv_validator_state.json.backup $HOME/.akash/data/priv_validator_state.json && \ sudo systemctl restart akash && \ sudo journalctl -u akash -f

Upgrade Node

VER="vv1.1.0" git clone https://github.com/akash-network/node/ akash && \ cd $HOME && \ rm -rf akash && \ git clone https://github.com/akash-network/node/ akash && \ cd akash && \ git checkout tags/$VER -b $VER && \ make install && \ sudo systemctl restart akash && \ sudo journalctl -u akash -f

Delete Node

sudo systemctl stop akash && \ sudo systemctl disable akash && \ sudo rm -rf /etc/systemd/system/akash.service && \ sudo rm "$(which akash)" && \ sudo rm -rf "$HOME/.akash"

Key management

# This command generates a new wallet with a unique keypair. # Use this to create a secure, brand-new wallet for transactions. # Your wallet name = "wallet" akash keys add wallet

Validator management

akash tx staking create-validator \ --amount 10000000uakt \ --moniker "VALIDATOR_NAME" \ --identity "" \ --website "" \ --details "" \ --from wallet \ --commission-rate 0.1 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.01 \ --min-self-delegation 1 \ --pubkey $(celestia-appd tendermint show-validator) \ --chain-id akashnet-2 \ --gas auto \ --gas-adjustment 1.4 \ --gas-prices 0.0020uakt \ -y

Validator commands

# Retrieves comprehensive information regarding the validator. # This command is utilized to fetch details about the current validator, including its address, public key, and associated data. # Your wallet name = "wallet" akash q staking validator $(akash keys show wallet --bech val -a)

Onchain

# Withdraw all accumulated rewards from your account. # This command retrieves and withdraws all rewards earned from staking. # Your wallet name = "wallet" akash tx distribution withdraw-all-rewards --from wallet --chain-id akashnet-2 --gas-adjustment=1.15 --gas auto --gas-prices 0.0020uakt -y

Chat With Us

Connect directly with our team by filling out the contact form. Whether you’re looking to optimize staking yields, deploy validator nodes, integrate RPC services, or find a reliable validator partner for your blockchain or project — we’re here to help.

We can explore Web3 and blockchain infrastructure solutions together and tailor our support to your long-term goals. Schedule a meeting, and let’s discuss your long-term goals.

Crouton Digital respects your privacy. By submitting this form, you are acknowledging that you have read and agree to our Privacy Policy, which details how we collect and use your information.