How to run a Paloma Validator | Official Paloma Protocol Documentation

How to run a Paloma Validator

This is a detailed step-by-step guide for setting up a Paloma validator. Please be aware that while it is easy to set up a rudimentary validating node, running a production-quality validator node with a robust architecture and security features requires an extensive setup and commitment.

Prerequisites

Technical requirements

The following requirements are recommended for running Paloma:

In addition to running a Paloma node, validators should develop monitoring, alerting and management solutions.

Validators should expect to perform regular software updates to accommodate upgrades and bug fixes. There will inevitably be issues with the network, and this requires vigilance.

A successful validator operation will require the efforts of multiple highly skilled individuals and continuous operational attention. Running a validator is considerably more involved than mining bitcoin.

Becoming a validator

Any participant in the network can signal their intent to become a validator by creating a validator and registering its validator profile. The candidate then broadcasts a create-validator transaction, which contains the following data:

Example:

palomad tx staking create-validator
    --pubkey Palomavalconspub1zcjduepqs5s0vddx5m65h5ntjzwd0x8g3245rgrytpds4ds7vdtlwx06mcesmnkzly
    --amount "2ugrain"
    --from tmp
    --commission-rate="0.20"
    --commission-max-rate="1.00"
    --commission-max-change-rate="0.01"
    --min-self-delegation "1"
    --moniker "gazua"
    --chain-id "test-chain-uEe0bV"
    --gas auto
    --node tcp://127.0.0.1:26647

Once a validator is created and registered, GRAIN holders can delegate GRAIN to them, effectively adding stake to its pool. The total stake of a validator is the total of their self-bonded GRAIN plus the GRAIN bonded by external delegators.

Only the top 175 validators are considered active or bonded validators. If a validator's total stake dips below the top 175, the validator loses its validator privileges and no longer serves as part of the active set, entering into unbonding mode and eventually becoming unbonded, or inactive.

Validator keys

Tendermint Consensus Keypair: This consensus keypair is on the tendermint layer and consists of a unique Private Key used to sign block hashes associated with a Public Key Palomavalconspub.

Example: Palomavalconspub1zcjduc3qcyj09qc03elte23zwshdx92jm6ce88fgc90rtqhjx8v0608qh5ssp0w94c

DANGER: A validator requires the above key in order to identify itself on the network, sign blocks, and sign staking/operational transactions such as voting on Governance proposals. It is the validator's sole responsibility to secure these keys and have a contingency backup plan in the event of contingencies.

1. Retrieve your PubKey

The Consensus PubKey of your node is required to create a new validator. Run:

--pubkey=$(palomad tendermint show-validator)

2. Create a new validator

Get tokens.

In order for palomad to recognize a wallet address it must contain tokens. For the testnet, use the faucet to send GRAIN to your wallet. If you are on mainnet, send funds from an existing wallet. 1-3 GRAIN are sufficient for most setup processes.

To create the validator and initialize it with a self-delegation, run the following command. key-name is the name of the Application Operator Key that is used to sign transactions.

palomad tx staking create-validator \
    --amount=5000000ugrain \
    --pubkey=$(<your-consensus-PubKey>) \
    --moniker="<your-moniker>" \
    --chain-id=<chain_id> \
    --from=<key-name> \
    --commission-rate="0.10" \
    --commission-max-rate="0.20" \
    --commission-max-change-rate="0.01" \
    --min-self-delegation="1"

Caution: When you specify commission parameters, the commission-max-change-rate is measured as a percentage-point change of the commission-rate. For example, a change from 1% to 2% is a 100% rate increase, but the commission-max-change-rate is measured as 1%.

3. Confirm your validator is active

If running the following command returns something, your validator is active:

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

You are looking for the bech32 encoded address in the ~/.paloma/config/priv_validator.json file.

TIP: Only the top 175 validators in voting power are included in the active validator set.

4. Secure your keys and have a backup plan

Protecting and having a contingency backup plan for your keys will help mitigate catastrophic hardware or software failures of the node. It is a good practice to test your backup plan on a testnet node in case of node failure.

Restore a Paloma validator

A validator can be completely restored on a new Paloma node with the following set of keys:

DANGER: Before proceeding, ensure that the existing validator is not active. Double voting has severe slashing consequences.

To restore a validator:

  1. Setup a full Paloma node synced up to the latest block.
  2. Replace the ~/.paloma/config/priv_validator.json file of the new node with the associated file from the old node, then restart your node.

Next steps

Validators must run the Pigeon software, which is a relayer system for Paloma validators to deliver messages cross-chain. After you have successfully set up your validator and effectively configured your environment, navigate to the Pigeon guide to set up the relay system.