Useful commands List of commands used to manage the validator and node
Wallet interaction
Create Wallet
Copy quicksilverd keys add <WALLET_NAME>
Restore wallet
Copy quicksilverd keys add <WALLET_NAME> --recover
Show all wallets
Copy quicksilverd keys list
Delete wallet
Copy quicksilverd keys delete <WALLET_NAME>
Export wallet to the file
Copy quicksilverd keys export < WALLET_NAM E >
Import wallet from the file
Copy quicksilverd keys import < WALLET_NAM E > wallet.backup
Show balance
Copy quicksilverd q bank balances $(quicksilverd keys show <WALLET_NAME> -a)
Validator control
Create a validator
Copy quicksilverd tx staking create-validator \
--amount=1000000uqck \
--broadcast-mode=block \
--pubkey=$(quicksilverd tendermint show-validator) \
--moniker=<YOUR_MONIKER> \
--commission-rate="0.1" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.1" \
--min-self-delegation="1" \
--from=<WALLET_NAME> \
--fees=500uqck \
--chain-id=rhye-2 \
--gas=auto -y
Edit validator
Copy quicksilverd tx staking edit-validator \
--new-moniker="<YOUR_MONIKER>" \
--identity="<YOUR_KEYBASE_ID>" \
--details="<YOUR_DETAILS>" \
--website="<YOUR_WEBSITE_URL>"
--chain-id=rhye-2 \
--commission-rate=0.05 \
--from=<WALLET_NAME> \
--fees=500uqck \
-y
Unjail
Copy quicksilverd tx slashing unjail --from <WALLET_NAME> --chain-id rhye-2 --fees 500uqck -y
Jail reason
Copy quicksilverd query slashing signing-info $(quicksilverd tendermint show-validator
Active validators
Copy quicksilverd 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
Inactive validators
Copy quicksilverd 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
Information about the validator
Copy quicksilverd q staking validator $(quicksilverd keys show <WALLET_NAME> --bech val -a)
Balance management
Withdrawal of all rewards
Copy quicksilverd tx distribution withdraw-all-rewards --from <WALLET_NAME> --chain-id rhye-2 --fees 500umis -y
Withdrawal of rewards and commissions
Copy quicksilverd tx distribution withdraw-all-rewards --from <WALLET_NAME> --chain-id rhye-2 --fees 500uqck -y
Self-delegation
Copy quicksilverd tx staking delegate $(quicksilverd keys show <WALLET_NAME> --bech val -a) --commission --from <WALLET_NAME> --chain-id rhye-2 --fees 500uqck -y
Delegation to validator
Copy quicksilverd tx staking delegate $(quicksilverd keys show <WALLET_NAME> --bech val -a) 1000000uqck --from <WALLET_NAME> --chain-id rhye-2 --fees 500uqck -y
Redelegation to another validator
Copy quicksilverd tx staking redelegate $(quicksilverd keys show <WALLET_NAME> --bech val -a) <TO_VALOPER_ADDRESS> 1000000uqck --from <WALLET_NAME> --chain-id rhye-2 --fees 500uqck -y
Unbond tokens
Copy quicksilverd tx staking unbond $(quicksilverd keys show <WALLET_NAME> --bech val -a) 1000000uqck --from <WALLET_NAME> --chain-id rhye-2 --fees 500uqck -y
Sending tokens to a wallet
Copy quicksilverd tx bank send <WALLET_NAME> <TO_WALLET_ADDRESS> 1000000uqck --from <WALLET_NAME> --chain-id rhye-2
Governance
All proposals
Copy quicksilverd query gov proposals
All proposals by ID
Copy quicksilverd query gov proposal 1
Vote "YES"
Copy quicksilverd tx gov vote 1 yes --from <WALLET_NAME> --chain-id rhye-2 --fees 500uqck -y
Vote "NO"
Copy quicksilverd tx gov vote 1 no --from <WALLET_NAME> --chain-id rhye-2 --fees 500uqck -y
Vote "Abstain"
Copy quicksilverd tx gov vote 1 abstain --from <WALLET_NAME> --chain-id rhye-2 --fees 500uqck -y
Vote "NoWithVeto"
Copy quicksilverd tx gov vote 1 nowithveto --from <WALLET_NAME> --chain-id rhye-2 --fees 500uqck -y
Utility
Update ports
Copy CUSTOM_PORT=10
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.quicksilverd/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%" $HOME/.quicksilverd/config/app.toml
Disable Indexer
Copy sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.quicksilverd/config/config.toml
Enable Indexer
Copy sed -i 's|^indexer *=.*|indexer = "kv"|' $HOME/.quicksilverd/config/config.toml
Update pruning
Copy sed -i.bak -e 's|^pruning *=.*|pruning = "custom"|; s|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|; s|^pruning-keep-every *=.*|pruning-keep-every = "0"|; s|^pruning-interval *=.*|pruning-interval = "10"|' $HOME/.quicksilverd/config/app.toml
Node support
Validator Info
Copy quicksilverd status 2>&1 | jq .ValidatorInfo
Sync info
Copy quicksilverd status 2>&1 | jq .SyncInfo
Get peers
Copy echo $(quicksilverd tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.quicksilverd/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Validator key check
Copy [[ $(quicksilverd q staking validator $(quicksilverd keys show <WALLET_NAME> --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(quicksilverd 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
Copy 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)}'
Setting the minimum commission
Copy sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0uqck\"/" $HOME/.quicksilverd/config/app.toml
Enable prometheus
Copy sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.quicksilverd/config/config.toml
Reset chain data
Copy quicksilverd tendermint unsafe-reset-all --home $HOME/.quicksilverd--keep-addr-book
Deleting a node
Before deleting a node make sure you save priv_validator_key.json
Copy sudo systemctl stop quicksilverd && \
sudo systemctl disable quicksilverd && \
rm /etc/systemd/system/quicksilverd.service && \
sudo systemctl daemon-reload && \
cd $HOME && \
rm -rf quicksilver && \
rm -rf .quicksilverd && \
rm -rf $(which quicksilverd)
Service setup
Reload service configuration
Copy sudo systemctl daemon-reload
Enable service
Copy sudo systemctl enable quicksilverd
Disable service
Copy sudo systemctl disable quicksilverd
Start service
Copy sudo systemctl start quicksilverd
Stop service
Copy sudo systemctl stop quicksilverd
Restart service
Copy sudo systemctl restart quicksilverd
Check service status
Copy sudo systemctl status quicksilverd
Check service logs
Copy sudo journalctl -u quicksilverd-f --no-hostname -o cat
Last updated 2 months ago