Usefull commands for Dyson Protocol

🐋

Some commands need to be executed inside docker container. Any commands with the binary should be executed inside the chain container. To enter chain container use this command: "docker compose exec chain bash" inside the dyson directory.

🔑 Key management

👛

Change wallet in the commands to your own wallet name.

Add new key

dysond keys add wallet

Recover existing key

dysond keys add wallet --recover

List all keys

dysond keys list

Delete key

dysond keys delete wallet

Export key to the file

dysond keys export wallet

Import key from the file

dysond keys import wallet wallet.backup

Query wallet balance

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

🧙 Validator management

🙋‍♀️

Make sure to change values for moniker, identity, details website to your own values.

Edit existing validator

dysond tx staking edit-validator \
--new-moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id dyson-mainnet-01 \
--commission-rate 0.05 \
--from wallet \
--gas-adjustment 1.5 \
--gas auto \
--gas-prices 0.001dys \
-y

Unjail validator

dysond tx slashing unjail --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto
 --gas-prices 0.001dys -y

Jail reason

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

List all active validators

dysond 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

dysond 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

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

🪙 Token management

Withdraw rewards from all validators

dysond tx distribution withdraw-all-rewards --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys -y

Withdraw commission and rewards from your validator

dysond tx distribution withdraw-rewards $( dysond keys show wallet --bech val -a) --commission --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys -y

Delegate tokens to yourself

dysond tx staking delegate $( dysond keys show wallet --bech val -a) 1000000000000dys --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys -y

Delegate tokens to validator

dysond tx staking delegate <TO_VALOPER_ADDRESS> 1000000000000dys --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys  -y

Redelegate tokens to another validator

dysond tx staking redelegate $( dysond keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000$dys --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys -y

Unbond tokens from your validator

dysond tx staking unbond $( dysond keys show wallet --bech val -a) 1000000$dys --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys -y

Send tokens to the wallet

dysond tx bank send wallet <TO_WALLET_ADDRESS> 1000000$dys --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys -y

🏛️ Governance

List all proposals

dysond query gov proposals

View proposal by id

dysond query gov proposal 1

Vote 'Yes'

dysond tx gov vote 1 yes --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys -y

Vote 'No'

dysond tx gov vote 1 no --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys -y

Vote 'Abstain'

dysond tx gov vote 1 abstain --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys -y

Vote 'NoWithVeto'

dysond tx gov vote 1 NoWithVeto --from wallet --chain-id dyson-mainnet-01 --gas-adjustment 1.5 --gas auto --gas-prices 0.001dys -y

⚡️ Utility

Update Indexer

Disable indexer

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

Enable indexer

sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/dyson_deploy/config.toml.sample

Update pruning

sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "2000"|' \
  -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "100"|' \
  $HOME/dyson_deploy/app.toml.sample

🔧 Maintenance

Get validator info

dysond status 2>&1 | jq .ValidatorInfo

Get sync info

dysond status 2>&1 | jq .SyncInfo

Enable prometheus

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

Reset chain data

dysond tendermint unsafe-reset-all --keep-addr-book --home $HOME/dyson_deploy --keep-addr-book

Remove node

☢️

Make sure you have backed up your priv_validator_key.json!

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

⚙️ Service Management

Start service

make start

Stop service

make stop

Restart service

make stop && make start