Install Validator Axone Mainnet
System Specs
Hardware | Requirement |
---|---|
CPU | 8 Cores |
RAM | 32 GB |
Disk | 1 TB |
Last update: 22-07-2025
Install Axone Mainnet Validator
- System Preparation
sudo apt update && apt upgrade -ysudo apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip -y
- Install Go V1.21.13
cd $HOMEVER="1.21.13"wget "https://golang.org/dl/go$VER.linux-amd64.tar.gz"sudo rm -rf /usr/local/gosudo tar -C /usr/local -xzf "go$VER.linux-amd64.tar.gz"rm "go$VER.linux-amd64.tar.gz"
[ ! -f $HOME/.bash_profile ] && touch $HOME/.bash_profileecho "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profileecho "export GOROOT=$(go1.21.13 env GOROOT) PATH=$GOROOT/bin:$PATH" >> $HOME/.bash_profilesource $HOME/.bash_profile[ ! -d $HOME/go/bin ] && mkdir -p $HOME/go/bin
- Install Axoned Binary
cd $HOMErm -rf axonedgit clone https://github.com/axone-protocol/axoned.gitcd axonedgit checkout v12.0.0make install
# or explicitly using Go 1.21.13GOROOT=$(go1.21.13 env GOROOT) PATH=$GOROOT/bin:$PATH make install
#Verify Installationaxoned version
- Set Environment Variables
MONIKER=Your-Monikerecho "export MONIKER=$MONIKER" >> $HOME/.bash_profileecho "export AXONE_CHAIN_ID=axone-1" >> $HOME/.bash_profileecho "export AXONE_PORT=11" >> $HOME/.bash_profilesource $HOME/.bash_profile
- Initialize Config
axoned init $MONIKER --chain-id $AXONE_CHAIN_ID
- Configure Seeds and Peers
curl -sS https://rpc-axone-mainnet.maouam.xyz/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
- Configure Pruning
pruning="custom"pruning_keep_recent="100"pruning_keep_every="0"pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = "$pruning"/" $HOME/.axoned/config/app.tomlsed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = "$pruning_keep_recent"/" $HOME/.axoned/config/app.tomlsed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = "$pruning_keep_every"/" $HOME/.axoned/config/app.tomlsed -i -e "s/^pruning-interval *=.*/pruning-interval = "$pruning_interval"/" $HOME/.axoned/config/app.toml
- Set Custom Port
sed -i.bak -e "s%:1317%:${AXONE_PORT}317%g;s%:8080%:${AXONE_PORT}080%g;s%:9090%:${AXONE_PORT}090%g;s%:9091%:${AXONE_PORT}091%g;s%:8545%:${AXONE_PORT}545%g;s%:8546%:${AXONE_PORT}546%g;s%:6065%:${AXONE_PORT}065%g" $HOME/.axoned/config/app.toml
sed -i.bak -e "s%:26658%:${AXONE_PORT}658%g;s%:26657%:${AXONE_PORT}657%g;s%:6060%:${AXONE_PORT}060%g;s%:26656%:${AXONE_PORT}656%g;s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${AXONE_PORT}656\"%;s%:26660%:${AXONE_PORT}660%g" $HOME/.axoned/config/config.toml
- Create Systemd Service
sudo tee /etc/systemd/system/axoned.service > /dev/null <<EOF[Unit]Description=Axoned NodeAfter=network-online.target
[Service]User=$USERExecStart=$(which axoned) start --home $HOME/.axonedRestart=on-failureRestartSec=10LimitNOFILE=65535
[Install]WantedBy=multi-user.targetEOF
- Enable and Start Service
sudo systemctl daemon-reloadsudo systemctl enable axonedsudo systemctl start axoned && sudo journalctl -fu axoned -o cat
Check Status
#sync statusaxoned status 2>&1 | jq .SyncInfo
#validator infoaxoned status 2>&1 | jq .ValidatorInfo