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.
NODE | CPU | RAM | SSD | OS |
---|---|---|---|---|
axoned | 4 | 8 | 400 GB | Ubuntu 22.04 LTS |
sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
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
cd $HOME
rm -rf axoned
git clone https://github.com/axone-protocol/axoned.git
cd axoned
git checkout v12.0.0
make install
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
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
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="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
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
sudo systemctl daemon-reload
sudo systemctl enable axoned
sudo systemctl start axoned && sudo journalctl -fu axoned -o cat
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
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
axoned keys add wallet
# Restore wallet
axoned keys add wallet --recover
# List
axoned keys list
axoned q bank balances $(axoned keys show wallet -a)
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
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
axoned tx slashing unjail \
--from wallet \
--chain-id axone-1 \
--gas-prices=0.025uaxone \
--gas-adjustment=1.5 \
--gas=auto
axoned tx gov vote
-
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