logo

Akash

AKT
  • Network:

    Mainnet

  • Chain ID:

  • Current Node Version:

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
RPC arrow right icon
API arrow right icon
gRPC
peer@

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 cd git checkout make install version --long | grep -e version -e commit # version: # commit:

Initialization

Initialize the node (replace VALIDATOR_NAME with your own)

init VALIDATOR_NAME --chain-id && \ config chain-id && \ config keyring-backend os

Genesis

Download genesis

wget -O $HOME//config/genesis.json

Addrbook

Download addrbook

wget -O $HOME//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//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//config/app.toml echo "export NODE=http://localhost:$(($NODE_NUMBER + 266))57" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ config node $NODE

Create a service file

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

Start the node

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

Snapshot

Block HeightSizeIndexerLast SnapshotDownload
arrow right icon

Restore node from snapshot

sudo apt install lz4 -y && \ sudo systemctl stop && \ cp $HOME//data/priv_validator_state.json $HOME//priv_validator_state.json.backup && \ rm -rf $HOME//data && \ curl | lz4 -dc - | tar -xf - -C $HOME/ && \ mv $HOME//priv_validator_state.json.backup $HOME//data/priv_validator_state.json && \ sudo systemctl restart && \ sudo journalctl -u -f

State Sync

Restore node from state sync

SNAP_RPC=":443" && \ sudo systemctl stop && \ cp $HOME//data/priv_validator_state.json $HOME//priv_validator_state.json.backup && \ tendermint unsafe-reset-all --home $HOME/ --keep-addr-book && \ peers="@" && \ sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME//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//config/config.toml && \ mv $HOME//priv_validator_state.json.backup $HOME//data/priv_validator_state.json && \ sudo systemctl restart && \ sudo journalctl -u -f

Upgrade Node

VER="v" git clone && \ cd $HOME && \ rm -rf && \ git clone && \ cd && \ git checkout tags/$VER -b $VER && \ make install && \ sudo systemctl restart && \ sudo journalctl -u -f

Delete Node

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

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" keys add wallet

Validator management

tx staking create-validator \ --amount 1000000 \ --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 \ --gas auto \ --gas-adjustment 1.4 \ --gas-prices 0.002 \ -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" q staking validator $( 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" tx distribution withdraw-all-rewards --from wallet --chain-id --gas-adjustment=1.15 --gas auto --gas-prices 0.002 -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.