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
| Type | Endpoint | Link |
|---|---|---|
| RPC | https://akash-mainnet-rpc.crouton.digital | |
| API | https://akash-mainnet-api.crouton.digital | |
| gRPC | akash-mainnet-grpc.crouton.digital:12890 | |
| peer | [email protected]:12856 |
Hardware requirements
Recommended server specs for an Akash validator: 16 GB RAM, 8 CPU cores, and SSD or NVMe storage with at least 512 GB capacity.
Prepare
Update and install packages
sudo apt update && sudo apt upgrade -y && \ sudo apt install -y curl git wget jq make gcc clang tmux screen htop ncdu unzip tar lz4 bc build-essential pkg-config libssl-dev libleveldb-dev bsdmainutils fail2ban direnv nodejs npm pv libudev-dev
Installing Go
VER="1.24.1" && \ 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" && \ mkdir -p $HOME/go/bin && \ grep -qxF 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' $HOME/.bash_profile || echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ go version
Binary
Building from source
cd $HOME && \ rm -rf akash && \ git clone https://github.com/akash-network/node/ akash && \ cd akash && \ APP_VERSION="v1.2.1" && \ git checkout tags/$APP_VERSION -b $APP_VERSION && \ direnv allow && \ eval "$(direnv export bash)" && \ make install && \ akash version --long | grep -E 'version|commit' # version: v1.2.1 # commit: a9459732338d0b5445ecd8555952a7d968aad314
Initialization
Initialize the node and create the default configuration files
akash genesis init MONIKER --chain-id akashnet-2
Replace MONIKER with your own validator name. This name will be used as your node’s identifier on the network.
Genesis
Download genesis
mkdir -p $HOME/.akash/config && \ wget -O $HOME/.akash/config/genesis.json https://storage.crouton.digital/mainnet/akash/files/genesis.json
Addrbook
Download addrbook
mkdir -p $HOME/.akash/config && \ wget -O $HOME/.akash/config/addrbook.json https://storage.crouton.digital/mainnet/akash/files/addrbook.json
Configuration
Set the minimum gas price in app.toml
sed -i.bak \ -e 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.0250uakt"|' \ $HOME/.akash/config/app.toml
Create a service file
sudo tee /etc/systemd/system/akash.service > /dev/null <<EOF [Unit] Description=akash node After=network-online.target [Service] User=$USER WorkingDirectory=$HOME/.akash ExecStart=$(which akash) start --home $HOME/.akash Restart=on-failure RestartSec=5 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
Restore node from snapshot
sudo apt install -y lz4 && \ 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 -L https://storage.crouton.digital/mainnet/akash/snapshots/akash_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.akash && \ mkdir -p $HOME/.akash/data && \ mv $HOME/.akash/priv_validator_state.json.backup $HOME/.akash/data/priv_validator_state.json && \ sudo systemctl restart akash && \ sudo journalctl -u akash -f -o cat
Key management
Wallet management commands are provided below as examples. Replace wallet with your own wallet name before running them.
akash keys add wallet
After creating or importing your wallet, fund it with at least the minimum amount required by the network to create a validator. On Akash mainnet, this is at least 1 AKT for self-delegation plus transaction fees.
Validator management
akash tx staking create-validator \ --amount 10000000uakt \ --from wallet \ --commission-rate 0.1 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.01 \ --min-self-delegation 1 \ --pubkey $(akash tendermint show-validator) \ --moniker "MONIKER" \ --identity "TESTKEY123" \ --website "https://example.com" \ --details "Reliable validator for the network." \ --chain-id akashnet-2 \ --gas auto \ --gas-prices 0.0250uakt \ -y
Replace the example values with your own details. If the command fails or the transaction does not go through, try increasing the gas limit or the commission fee.
Validator commands
akash status 2>&1 | jq
Make sure to replace wallet with the name of your wallet before running the command.
Governance
akash q gov proposals
"1" is only an example proposal ID, so replace it with the actual one. Available voting options are "yes" to approve, "no" to reject, "abstain" to abstain, and "no_with_veto" to reject with veto.
Onchain
akash tx distribution withdraw-rewards $(akash keys show wallet --bech val -a) --commission --from wallet --chain-id akashnet-2 --gas auto -y
akash tx staking delegate $(akash keys show wallet --bech val -a) 10000000uakt --from wallet --chain-id akashnet-2 --gas 300000 --fees 20000uakt -y
These commands contain example values. Be sure to replace them with your own validator address, wallet name, wallet address, and any other required details before running them.
Service operations
sudo journalctl -u akash -f -o cat
Manual upgrade
cd $HOME && \ rm -rf akash && \ git clone https://github.com/akash-network/node/ akash && \ cd akash && \ APP_VERSION="v1.2.1" && \ git checkout tags/$APP_VERSION -b $APP_VERSION && \ direnv allow && \ eval "$(direnv export bash)" && \ make install && \ akash version --long | grep -E 'version|commit' && \ sudo systemctl restart akash && \ sudo journalctl -u akash -f


