Validator Cheat Sheet (~15 min)
🖨 🍝 Quick instructions to get your Validator
running on Pocket Network ✅
warning
- Lots of scripting and some details are abstracted away
- For more details, see the Validator Walkthrough
Table of Contents
Prerequisites
pocket
userIf you followed the Full Node Cheat Sheet, switch to the user running the full node (with pocketd
installed):
su - pocket # or use your chosen username
Account Setup
Create Validator Account
Generate a new validator key pair:
pocketd keys add validator
Set Up Environment
Set environment variables:
cat << 'EOT' > ~/.pocketrc
export QUERY_FLAGS="--network=<NETWORK>" # local, alpha, beta, main
export TX_PARAM_FLAGS="--fees 200000upokt --network=<NETWORK>" # local, alpha, beta, main
export ADDR=$(pocketd keys show validator -a)
export VALIDATOR_ADDR=$(pocketd keys show validator -a --bech val)
EOT
echo "source ~/.pocketrc" >> ~/.bashrc
Fund Validator Account
Show your validator address:
echo "Validator address: $ADDR"
- Beta Testnet: Use the Shannon Beta TestNet faucet to fund your account.
- Mainnet: Transfer funds:
pocketd tx bank send <SOURCE ADDRESS> $ADDR <AMOUNT_TO_STAKE>upokt $TX_PARAM_FLAGS
Check your balance:
pocketd query bank balances $ADDR
tip
Know someone at Grove on Beta TestNet? Ask them to run:
pkd_beta_tx tx bank send faucet_beta $ADDR 6900000000042upokt
Back up Keys 🔑
warning
Before you proceed ensure you have securely backed up your keys!!! Losing validator keys will result in SLASHING!
- Back up your
validator
address key - Back up your
priv_validator_key.json
- used to sign blocks. Found in/pocketd/config/
- Back up your
node_key.json
- used for P2P. Found in/pocketd/config/
Configure Validator
Get Validator PubKey
Get your validator's pubkey:
pocketd comet show-validator
Example output:
{ "@type": "/cosmos.crypto.ed25519.PubKey", "key": "YourPublicKeyHere" }
Create Validator JSON
Create validator.json
and update:
"pubkey"
: Use your pubkey from above"amount"
: Amount to stake (e.g.,"1000000upokt"
)"moniker"
: Your validator's name (default:validator
)- Optionally fill in
"identity"
,"website"
,"security"
,"details"
cat << 'EOF' > validator.json
{
"pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "YdlQyhjtrq9pk7afmz6oQ275L4FElzjzEJvB1fj3e1w="
},
"amount": "1000000upokt",
"moniker": "validator",
"identity": "",
"website": "",
"security": "",
"details": "",
"commission-rate": "0.100000000000000000",
"commission-max-rate": "0.200000000000000000",
"commission-max-change-rate": "0.010000000000000000",
"min-self-delegation": "1"
}
EOF
Create Validator
Register your validator:
pocketd tx staking create-validator ./validator.json --from=validator $TX_PARAM_FLAGS
Check Validator Status
Check your validator status:
pocketd query staking validator $VALIDATOR_ADDR $QUERY_FLAGS