Home

axone

Axone is a decentralized protocol that helps AI teams, developers, and companies share digital resources like data, models, compute power, and APIs. It supports both on-chain and off-chain sharing with flexible access controls.

RPC API gRPC RPC-EVM WSS-RPC Addressbook Genesis Seed Peer Explorer

Minimum Hardware

NODE CPU RAM SSD OS
axoned 4 8 400 GB Ubuntu 22.04 LTS

Install dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y

Install Go

cd $HOME
VER="1.21.13"
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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin

Download Binary

cd $HOME
rm -rf axoned
git clone https://github.com/axone-protocol/axoned.git
cd axoned
git checkout v12.0.0
make install

Config and Init App

axoned config node tcp://localhost:${AXONE_PORT}657
axoned config keyring-backend os
axoned config chain-id $AXONE_CHAIN_ID
axoned init $MONIKER --chain-id $AXONE_CHAIN_ID

Download Genesis and Addrbook

wget -O $HOME/.axoned/config/genesis.json https://files-axone.catsmile.space/genesis.json
wget -O $HOME/.axoned/config/addrbook.json https://files-axone.catsmile.space/addrbook.json

Custom Ports

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

Pruning, Gas and Prometheus

pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.axoned/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.axoned/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.axoned/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.axoned/config/app.toml

Create Service File

sudo tee /etc/systemd/system/axoned.service > /dev/null << EOF
[Unit]
Description=atomone-mainnet
After=network-online.target

[Service]
User=$USER
ExecStart=$(which atomoned) start --home $HOME/.atomone
Restart=on-failure
RestartSec=10
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Start

sudo systemctl daemon-reload
sudo systemctl enable axoned
sudo systemctl start axoned && sudo journalctl -fu axoned -o cat

Snapshot

sudo systemctl stop axoned 
cp $HOME/.axoned/data/priv_validator_state.json $HOME/.axoned/priv_validator_state.json.backup
rm -rf $HOME/.axoned /data $HOME/.axoned /wasm
curl https://files-axone.catsmile.space/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.axoned 
mv $HOME/.axoned /priv_validator_state.json.backup $HOME/.axoned/data/priv_validator_state.json
sudo systemctl restart axoned  && sudo journalctl -u axoned  -f

State Sync

sudo systemctl stop axoned
cp $HOME/.axoned/data/priv_validator_state.json $HOME/.axoned/priv_validator_state.json.backup
axoned tendermint unsafe-reset-all --home $HOME/.axoned --keep-addr-book
SNAP_RPC="https://rpc-axcne.catsmile.space:443"
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)
sed -i "/\[statesync\]/, /^enable =/ s/=.*/= true/;\
/^rpc_servers =/ s|=.*|= \"$SNAP_RPC,$SNAP_RPC\"|;\
/^trust_height =/ s/=.*/= $BLOCK_HEIGHT/;\
/^trust_hash =/ s/=.*/= \"$TRUST_HASH\"/" $HOME/.axoned/config/config.toml
mv $HOME/.axoned/priv_validator_state.json.backup $HOME/.axoned/data/priv_validator_state.json
sudo systemctl restart axoned && sudo journalctl -u axoned -fo cat

Create and Restore Address

axoned keys add wallet
# Restore wallet
axoned keys add wallet --recover
# List
axoned keys list

Check Balance

axoned q bank balances $(axoned keys show wallet -a)

Create Validator

axoned comet show-validator

nano $HOME/.axoned/validator.json

{
  "pubkey": {
    "type": "tendermint/PubKeyEd25519",
    "value": "PUBKEY"
  },
  "amount": "1000000uaxone",
  "moniker": "",
  "identity": "",
  "website": "",
  "security": "",
  "details": "",
  "commission-rate": "0.05",
  "commission-max-rate": "0.2",
  "commission-max-change-rate": "0.01",
  "min-self-delegation": "1"
}

axoned tx staking create-validator $HOME/.axoned/validator.json \
  --from $WALLET \
  --chain-id axone-1 \
  --gas-prices=0.025uaxone \
  --gas-adjustment=1.4 \
  --gas=auto \
  -y

Delegate to own

axoned tx staking delegate $(axoned keys show wallet --bech val -a) 1000000uaxone \
  --from wallet \
  --chain-id axone-1 \
  --gas-prices=0.025uaxone \
  --gas-adjustment=1.5 \
  --gas=auto

Unjail Validator

axoned tx slashing unjail \
  --from wallet \
  --chain-id axone-1 \
  --gas-prices=0.025uaxone \
  --gas-adjustment=1.5 \
  --gas=auto

Vote

axoned tx gov vote  

Upgrade

-

Delete node

cd $HOME
sudo systemctl stop axoned
sudo systemctl disable axoned
sudo rm /etc/systemd/system/axoned.service
sudo systemctl daemon-reload
rm -f $(which axoned)
rm -rf $HOME/.axoned
rm -rf $HOME/axone