In order to become a validator, you node must be fully synced with the network. You can check this by doing:
secretd status | jq .sync_info.catching_up
When the value of catching_up
is false, your node is fully sync'd with the network. You can speed up syncing time by State Syncing to the current block.
"sync_info": {
"latest_block_hash": "7BF95EED4EB50073F28CF833119FDB8C7DFE0562F611DF194CF4123A9C1F4640",
"latest_app_hash": "7C0C89EC4E903BAC730D9B3BB369D870371C6B7EAD0CCB5080B5F9D3782E3559",
"latest_block_height": "668538",
"latest_block_time": "2020-10-31T17:50:56.800119764Z",
"earliest_block_hash": "E7CAD87A4FDC47DFDE3D4E7C24D80D4C95517E8A6526E2D4BB4D6BC095404113",
"earliest_app_hash": "",
"earliest_block_height": "1",
"earliest_block_time": "2021-09-15T14:02:31Z",
"catching_up": false
},
This is the secret
wallet which you used to create your full node, and will use to delegate your funds to you own validator. You must delegate at least 1 SCRT (1000000uscrt) from this wallet to your validator.
secretd q bank balances $(secretd keys show -a <key-alias>)
If you get the following message, it means that you have no tokens, or your node is not yet synced:
ERROR: unknown address: account secret1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx does not exist
Copy/paste the address to get some test-SCRT from the faucet. Continue when you have confirmed your account has some test-SCRT in it.
(remember 1 SCRT = 1,000,000 uSCRT, and so the command below stakes 100 SCRT).
secretd tx staking create-validator path/to/validator.json --from <key-alias>
Where validator.json contains:
{
"pubkey": {
<secretd tendermint show-validator>
},
"amount": "100000000uscrt",
"moniker": "<MONIKER>",
"identity": "optional identity signature (ex. UPort or Keybase)",
"website": "validator's optional website",
"security": "validator's optional security contact email",
"details": "To infinity and beyond!",
"commission-rate": "0.10",
"commission-max-rate": "0.20",
"commission-max-change-rate": "0.01",
"min-self-delegation": "1"
}
You should see your moniker listed.
secretd q staking validators | grep <MONIKER>
(remember 1 SCRT = 1,000,000 uSCRT)
In order to stake more tokens beyond those in the initial transaction, run:
secretd tx staking delegate $(secretcli keys show <key-alias> --bech=val -a) <amount>uscrt --from <key-alias>
secretd tx staking edit-validator \
--new-moniker "<new-moniker>" \
--website "https://scrt.network" \
--identity 6A0D65E29A4CBC8E \
--details "To infinity and beyond!" \
--chain-id <chain_id> \
--from <key_name> \
--commission-rate "0.10"
secretd q distribution rewards $(secretcli keys show -a <key-alias>)
secretd q distribution commission $(secretcli keys show -a <key-alias> --bech=val)
secretd tx distribution withdraw-rewards $(secretcli keys show --bech=val -a <key-alias>) --from <key-alias>
secretd tx distribution withdraw-rewards $(secretcli keys show --bech=val -a <key-alias>) --from <key-alias> --commission
Currently deleting a validator is not possible. If you redelegate or unbond your self-delegations then your validator will become offline and all your delegators will start to unbond.
You are currently unable to modify the --commission-max-rate
and --commission-max-change-rate"
parameters.
Modifying the commision-rate can be done using this:
secretd tx staking edit-validator --commission-rate="0.05" --from <key-alias>
Unjailing
To unjail your jailed validator
secretd tx slashing unjail --from <key-alias>
Signing Info
To retrieve a validator's signing info:
secretd q slashing signing-info <validator-conspub-key>
Query Parameters
You can get the current slashing parameters via:
secretd q slashing params