Upgrading Cosmos full node to Validator

This doc will guide you to upgrade your currently running full node to a valitor in the Cosmos network.

Important

Before continuing, please make sure you have 1. A working full node, 2. Completed the Joining Mainnet guide.

Create Your Validator

In order to create your validator, run the following command on your machine hosting the to-be-upgraded full node.

gaiad tx staking create-validator \
  --amount=1000000uatom \
  --pubkey=$(gaiad tendermint show-validator) \
  --moniker="choose a moniker" \
  --chain-id=<chain_id> \
  --commission-rate="0.10" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --gas="auto" \
  --gas-prices="0.0025uatom" \
  --from=<key_name>

Arguments explained

Note

It's possible that you won't have enough ATOM to be part of the active set of validators in the beginning. Users are able to delegate to inactive validators (those outside of the active set) using the Keplr web app. You can confirm that you are in the validator set by using a third party explorer like Mintscan.

Edit Validator's on-chain information

You can run the following command to edit your validator's public information, which is used to identiy your validator, and will be relied on by delegators to decide which validators to stake to.

Important

Make sure to provide input for every flag. If a flag is not included. If a flag is not included in the command the field will default to empty (--moniker defaults to the machine name) if the field has never been set or remain the same if it has been set in the past.

gaiad tx staking edit-validator
  --moniker="choose a moniker" \
  --website="https://cosmos.network" \
  --identity=6A0D65E29A4CBC8E \
  --details="To infinity and beyond!" \
  --chain-id=<chain_id> \
  --gas="auto" \
  --gas-prices="0.0025uatom" \
  --from=<key_name> \
  --commission-rate="0.10"

Arguments explained

  1. --identity=6A0D65E29A4CBC8E: Sets or updates the identity string associated with your validator.
  2. --chain-id=<chain_id>: Specifies the chain ID of the network you are updating. (e.g. cosmoshub-4 for the Cosmos Hub)
  3. --gas="auto": Automatically calculates the gas needed for the transaction. Check Gas and Fees for more info.
  4. --gas-prices="0.0025uatom": Sets the price per unit of gas. This amount will be used to calculate the total fee based on the gas used by the transaction.

Warning

Note: The commission-rate value must adhere to the following rules:

  • Must be between 0 and the validator's commission-max-rate
  • Must not exceed the validator's commission-max-change-rate which is maximum % point change rate per day. In other words, a validator can only change its commission once per day and within commission-max-change-rate bounds.

Confirm if Validator is Running

Run the following command:

gaiad query tendermint-validator-set | grep "$(gaiad tendermint show-address)"

If it returns anything, it means your validator is active. You should also see your validator in on the Cosmos Hub exploreres.

Unjale Validator

Your validator might be put in jail for:

Then you need to submit an Unjail transcation like the following from the operator account in order to be able to get block proposer rewards again.

gaiad tx slashing unjail \
 --from=<key_name> \
 --chain-id=<chain_id>