Useful commands

Useful set of commands for node operators. From key management to chain governance.

Daemon configuration

allorad config node https://testnet-allora-rpc.lavenderfive.com:443
allorad config chain-id allora-testnet-1

🔑 Key management

Add new key

allorad keys add wallet

Recover existing key

allorad keys add wallet --recover

List all keys

allorad keys list

Delete key

allorad keys delete wallet

Export key to the file

allorad keys export wallet

Import key from the file

allorad keys import wallet wallet.backup

Query wallet balance

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

👷 Validator management

Please make sure you have adjusted moniker, identity, details and website to match your values.

Create new validator

allorad tx staking create-validator \
--amount 0uallo \
--pubkey $(allorad tendermint show-validator) \
--moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id allora-testnet-1 \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 0uallo \
-y

Edit existing validator

allorad tx staking edit-validator \
--new-moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id allora-testnet-1 \
--commission-rate 0.05 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 0uallo \
-y

Unjail validator

allorad tx slashing unjail --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

Jail reason

allorad query slashing signing-info $(allorad tendermint show-validator)

List all active validators

allorad q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

List all inactive validators

allorad q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

View validator details

allorad q staking validator $(allorad keys show wallet --bech val -a)

💲 Token management

Withdraw rewards from all validators

allorad tx distribution withdraw-all-rewards --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

Withdraw commission and rewards from your validator

allorad tx distribution withdraw-rewards $(allorad keys show wallet --bech val -a) --commission --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

Delegate tokens to yourself

allorad tx staking delegate $(allorad keys show wallet --bech val -a) 0uallo --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

Delegate tokens to validator

allorad tx staking delegate <TO_VALOPER_ADDRESS> 0uallo --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

Redelegate tokens to another validator

allorad tx staking redelegate $(allorad keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 0uallo --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

Unbond tokens from your validator

allorad tx staking unbond $(allorad keys show wallet --bech val -a) 0uallo --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

Send tokens to the wallet

allorad tx bank send wallet <TO_WALLET_ADDRESS> 0uallo --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

🗳 Governance

List all proposals

allorad query gov proposals

View proposal by id

allorad query gov proposal 1

Vote 'Yes'

allorad tx gov vote 1 yes --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

Vote 'No'

allorad tx gov vote 1 no --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

Vote 'Abstain'

allorad tx gov vote 1 abstain --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

Vote 'NoWithVeto'

allorad tx gov vote 1 NoWithVeto --from wallet --chain-id allora-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uallo -y

⚡️ Utility

Update ports

CUSTOM_PORT=267
sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}58\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}57\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}60\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}56\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}66\"%" .allorad/config/config.toml
sed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}17\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}80\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}90\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}91\"%" .allorad/config/app.toml

Update Indexer

Disable indexer

sed -i -e 's|^indexer *=.*|indexer = "null"|' .allorad/config/config.toml

Enable indexer

sed -i -e 's|^indexer *=.*|indexer = "kv"|' .allorad/config/config.toml

Update pruning

sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "107"|' \
  -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "13"|' \
  .allorad/config/app.toml

🚨 Maintenance

Get validator info

allorad status 2>&1 | jq .ValidatorInfo

Get sync info

allorad status 2>&1 | jq .SyncInfo

Get node peer

echo $(allorad tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat .allorad/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')

Check if validator key is correct

[[ $(allorad q staking validator $(allorad keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(allorad status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"

Get live peers

curl -sS http://localhost:26757/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'

Set minimum gas price

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0uallo\"/" .allorad/config/app.toml

Enable prometheus

sed -i -e "s/prometheus = false/prometheus = true/" .allorad/config/config.toml

Reset chain data

allorad tendermint unsafe-reset-all --home .allorad --keep-addr-book

Remove node

Please, before proceeding with the next step! All chain data will be lost! Make sure you have backed up your priv_validator_key.json!

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

⚙️ Service Management

Reload allorad configuration

sudo systemctl daemon-reload

Enable allorad

sudo systemctl enable allorad

Disable allorad

sudo systemctl disable allorad

Start allorad

sudo systemctl start allorad

Stop allorad

sudo systemctl stop allorad

Restart allorad

sudo systemctl restart allorad

Check allorad status

sudo systemctl status allorad

Check allorad logs

sudo journalctl -u allorad -f --no-hostname -o cat

Last updated