Useful commands
Useful set of commands for node operators. From key management to chain governance.
Last updated
Useful set of commands for node operators. From key management to chain governance.
Last updated
Chain ID: cosmoshub-4 | Latest Version Tag: v20.0.0
gaiad keys add wallet
gaiad keys add wallet --recover
gaiad keys list
gaiad keys delete wallet
gaiad keys export wallet
gaiad keys import wallet wallet.backup
gaiad q bank balances $(gaiad keys show wallet -a)
gaiad tx staking create-validator \
--amount=1000000 \
--pubkey=$(gaiad tendermint show-validator) \
--moniker="YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL"
--chain-id=cosmoshub-4 \
--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 \
-y
gaiad tx staking edit-validator \
--moniker="YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL"
--chain-id=cosmoshub-4 \
--commission-rate=0.05 \
--from=wallet \
--gas-adjustment=1.4 \
--gas=auto \
-y
gaiad tx slashing unjail --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto -y
gaiad query slashing signing-info $(gaiad tendermint show-validator)
gaiad 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
gaiad 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
gaiad q staking validator $(gaiad keys show wallet --bech val
gaiad tx distribution withdraw-all-rewards --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto -y
gaiad tx distribution withdraw-rewards $(gaiad keys show wallet --bech val -a) --commission --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto --y
gaiad tx staking delegate $(gaiad keys show wallet --bech val -a) 1000000 --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto -y
gaiad tx staking delegate <TO_VALOPER_ADDRESS> 1000000.gaia --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto -y
gaiad tx staking redelegate $(gaiad keys show wallet --bech val <TO_VALOPER_ADDRESS> 1000000 --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto -y
gaiad tx staking unbond $(gaiad keys show wallet --bech val -a) 1000000 --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto -y
gaiad tx bank send wallet <TO_WALLET_ADDRESS> 1000000 --from wallet --chain-id cosmoshub-4
gaiad query gov proposals
gaiad query gov proposal 1
gaiad tx gov vote 1 yes --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto -y
gaiad tx gov vote 1 no --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto -y
gaiad tx gov vote 1 abstain --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto -y
gaiad tx gov vote 1 nowithveto --from wallet --chain-id cosmoshub-4 --gas-adjustment 1.4 --gas auto -y
CUSTOM_PORT=149
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}60\"%" $HOME/.gaia/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\"%" $HOME/.gaia/config/app.toml
Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.gaia/config/config.toml
Enable indexer
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.gaia/config/config.toml
sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
-e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
$HOME/.gaia/config/app.toml
gaiad status 2>&1 | jq .ValidatorInfo
gaiad status 2>&1 | jq .SyncInfo
echo $(gaiad tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.gaia/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
[[ $(gaiad q staking validator $(gaiad keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(gaiad 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"
curl -sS http://localhost:26657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.gaia\"/" $HOME/.gaia/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.gaia/config/config.toml
gaiad tendermint unsafe-reset-all --home $HOME/.gaia --keep-addr-book
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 gaiad
sudo systemctl disable gaiad
sudo rm /etc/systemd/system/gaiad.service
sudo systemctl daemon-reload
rm -f $(which gaiad)
rm -rf $HOME/.gaia
rm -rf $HOME/cosmos
sudo systemctl daemon-reload
sudo systemctl enable gaiad
sudo systemctl disable gaiad
sudo systemctl start gaiad
sudo systemctl stop gaiad
sudo systemctl restart gaiad
sudo systemctl status gaiad
sudo journalctl -u gaiad -f --no-hostname -o cat