Useful commands

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

Daemon configuration

chihuahuad config node https://chihuahua-rpc.lavenderfive.com:443
chihuahuad config chain-id chihuahua-1

🔑 Key management

Add new key

chihuahuad keys add wallet

Recover existing key

chihuahuad keys add wallet --recover

List all keys

chihuahuad keys list

Delete key

chihuahuad keys delete wallet

Export key to the file

chihuahuad keys export wallet

Import key from the file

chihuahuad keys import wallet wallet.backup

Query wallet balance

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

👷 Validator management

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

Create new validator

chihuahuad tx staking create-validator \
--amount 0uhuahua \
--pubkey $(chihuahuad tendermint show-validator) \
--moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id chihuahua-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 0uhuahua \
-y

Edit existing validator

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

Unjail validator

chihuahuad tx slashing unjail --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

Jail reason

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

List all active validators

chihuahuad 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

chihuahuad 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

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

💲 Token management

Withdraw rewards from all validators

chihuahuad tx distribution withdraw-all-rewards --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

Withdraw commission and rewards from your validator

chihuahuad tx distribution withdraw-rewards $(chihuahuad keys show wallet --bech val -a) --commission --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

Delegate tokens to yourself

chihuahuad tx staking delegate $(chihuahuad keys show wallet --bech val -a) 0uhuahua --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

Delegate tokens to validator

chihuahuad tx staking delegate <TO_VALOPER_ADDRESS> 0uhuahua --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

Redelegate tokens to another validator

chihuahuad tx staking redelegate $(chihuahuad keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 0uhuahua --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

Unbond tokens from your validator

chihuahuad tx staking unbond $(chihuahuad keys show wallet --bech val -a) 0uhuahua --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

Send tokens to the wallet

chihuahuad tx bank send wallet <TO_WALLET_ADDRESS> 0uhuahua --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

🗳 Governance

List all proposals

chihuahuad query gov proposals

View proposal by id

chihuahuad query gov proposal 1

Vote 'Yes'

chihuahuad tx gov vote 1 yes --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

Vote 'No'

chihuahuad tx gov vote 1 no --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

Vote 'Abstain'

chihuahuad tx gov vote 1 abstain --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

Vote 'NoWithVeto'

chihuahuad tx gov vote 1 NoWithVeto --from wallet --chain-id chihuahua-1 --gas-adjustment 1.4 --gas auto --gas-prices 0uhuahua -y

⚡️ Utility

Update ports

CUSTOM_PORT=129
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\"%" $HOME/.chihuahuad/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/.chihuahuad/config/app.toml

Update Indexer

Disable indexer

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

Enable indexer

sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.chihuahuad/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"|' \
  $HOME/.chihuahuad/config/app.toml

🚨 Maintenance

Get validator info

chihuahuad status 2>&1 | jq .ValidatorInfo

Get sync info

chihuahuad status 2>&1 | jq .SyncInfo

Get node peer

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

Check if validator key is correct

[[ $(chihuahuad q staking validator $(chihuahuad keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(chihuahuad 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:12957/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 = \"0uhuahua\"/" $HOME/.chihuahuad/config/app.toml

Enable prometheus

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.chihuahuad/config/config.toml

Reset chain data

chihuahuad tendermint unsafe-reset-all --home $HOME/.chihuahuad --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 chihuahuad
sudo systemctl disable chihuahuad
sudo rm /etc/systemd/system/chihuahuad.chihuahuad
sudo systemctl daemon-reload
rm -f $(which chihuahuad)
rm -rf $HOME/.chihuahuad
rm -rf $HOME/osmosis

⚙️ Service Management

Reload chihuahuad configuration

sudo systemctl daemon-reload

Enable chihuahuad

sudo systemctl enable chihuahuad

Disable chihuahuad

sudo systemctl disable chihuahuad

Start chihuahuad

sudo systemctl start chihuahuad

Stop chihuahuad

sudo systemctl stop chihuahuad

Restart chihuahuad

sudo systemctl restart chihuahuad

Check chihuahuad status

sudo systemctl status chihuahuad

Check chihuahuad logs

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

Last updated