Run a Validator
Prerequisite Readings
- Validator Overview 
- Validator Security 
Tip: If you plan to use a Key Management System (KMS), follow these steps first: Using a KMS.
Warning: ⚠️ Ensure your server timezone configuration is set to UTC. A different timezone configuration may cause a LastResultsHash mismatch error, potentially taking down your node.
Creating Your Validator
Your node consensus public key (dhivevalconspub...) can be used to create a new validator by staking DHIVE tokens. You can retrieve your validator public key by running:
dhived tendermint show-validatorWarning: 🚨 Never create your mainnet validator keys using a test keying backend. Doing so may result in a loss of funds by making them remotely accessible via the eth_sendTransaction JSON-RPC endpoint.
Security Advisory: Insecurely configured Geth can make funds remotely accessible.
To create your validator on the testnet, use the following command:
dhived tx staking create-validator \
  --amount=1000000atdhive \
  --pubkey=$(dhived tendermint show-validator) \
  --moniker="choose a moniker" \
  --chain-id=<chain_id> \
  --commission-rate="0.05" \
  --commission-max-rate="0.10" \
  --commission-max-change-rate="0.01" \
  --min-self-delegation="1000000" \
  --gas="auto" \
  --gas-prices="0.025atdhive" \
  --from=<key_name>Tips:
- The - commission-max-change-ratemeasures percentage point changes over the- commission-rate. For example, a change from 1% to 2% represents a 100% increase but only one percentage point.
- Min-self-delegationis a strictly positive integer defining the minimum voting power your validator must maintain. A value of- 1000000ensures your validator never has a self-delegation lower than 1- atdhive.
You can confirm that your validator is in the validator set using a third-party explorer.
Editing Validator Description
You can update your validator's public description, which helps delegators identify and evaluate your validator. Provide input for all necessary flags; missing flags default to empty if never set or retain their previous values.
To edit your validator description, use:
dhived tx staking edit-validator \
  --moniker="choose a moniker" \
  --website="https://dhive.org" \
  --identity=6A0D65E29A4CBC8E \
  --details="To infinity and beyond!" \
  --chain-id=<chain_id> \
  --gas="auto" \
  --gas-prices="0.025atdhive" \
  --from=<key_name> \
  --commission-rate="0.10"Note:
- The - commission-ratemust be between- 0and the validator’s- commission-max-rate.
- The - commission-max-change-ratedetermines the maximum percentage point change per day.
To view your validator details, use:
dhived query staking validator <account_cosmos>Tracking Validator Signing Information
To monitor past validator signatures, use:
dhived query slashing signing-info <validator-pubkey> \
  --chain-id=<chain_id>Unjailing Your Validator
If your validator is jailed for downtime, submit an Unjail transaction from the operator account to resume earning block proposer rewards.
dhived tx slashing unjail \
  --from=<key_name> \
  --chain-id=<chain_id>To confirm your validator is active, run:
dhived query tendermint-validator-set | grep "$(dhived tendermint show-address)"Your validator should now appear in Dhive explorers. Look for the Bech32-encoded address in ~/.dhived/config/priv_validator.json.
Note: To be in the validator set, you must have more total voting power than the 100th validator.
Halting Your Validator
For maintenance or planned upgrades, halt your validator systematically by setting a halt-height or using the --halt-height flag. Your node will shut down gracefully at the specified block height.
Common Problems
Problem #1: My Validator Has voting_power: 0
voting_power: 0Your validator may be jailed. Validators are jailed if they fail to vote on 500 of the last 10,000 blocks or if they double-sign transactions.
To recover:
- If - dhivedis not running, restart it:- dhived start
- Allow your full node to sync to the latest block. 
- Unjail your validator. 
- Verify your voting power: - dhived status
If your voting power is lower than before, it means you were slashed for downtime.
Problem #2: My Node Crashes Due to Too Many Open Files
By default, Linux limits the number of open files per process to 1024. dhived may exceed this limit, causing crashes. A quick fix is:
ulimit -n 4096Then restart dhived:
dhived startIf using systemd, adjust configurations as follows:
# /etc/systemd/system/dhived.service
[Unit]
Description=Dhive Node
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu
ExecStart=/home/ubuntu/go/bin/dhived start
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.targetFollowing these guidelines ensures your validator remains active, secure, and optimally configured on the Dhive network.
Last updated
Was this helpful?