Run a Validator
How to Run a Validator Node on BitNet
This section provides a step-by-step guide for setting up and running a validator node on BitNet.
Prerequisites
Before you begin, review the Validator Overview and Validator Security Guidelines. Ensure your system is configured in UTC timezone to avoid consensus errors like LastResultsHash
mismatches that may halt your node.
Step 1: Generate Your Validator Key
Your validator's consensus public key is required to register a validator on the BitNet network. To retrieve this key, run:
bitnetd tendermint show-validator
Important: Do not use testnet keying backends for generating mainnet keys. This can expose your validator to critical security risks, including unauthorized access to signing keys via RPC endpoints.
Step 2: Create the Validator
To register your validator on the network, use the command below. Adjust values based on your validator’s intended settings:
bitnetd tx staking create-validator \
--amount=1000000abnc \
--pubkey=$(bitnetd tendermint show-validator) \
--moniker="YourValidatorName" \
--chain-id=bitnet-mainnet \
--commission-rate="0.05" \
--commission-max-rate="0.10" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--gas="auto" \
--gas-prices="0.025abnc" \
--from=<wallet_name>
Commission Parameters define validator earnings.
Min Self-Delegation enforces a minimum stake the validator must maintain at all times.
Validators must rank in the top active set to start validating blocks.
Step 3: Add Public Description
You can personalize your validator by providing a public-facing profile:
bitnetd tx staking edit-validator \
--moniker="YourValidatorName" \
--website="https://yourdomain.com" \
--identity=YOUR_KEYBASE_ID \
--details="Trusted validator focused on uptime and security." \
--chain-id=bitnet-mainnet \
--from=<wallet_name>
Use Keybase to add a verifiable identity and profile image to your validator. This helps build credibility and trust with delegators.
Step 4: Check Validator Status
Confirm your validator’s registration:
bitnetd query staking validator <your_validator_address>
You may also track your validator’s block-signing activity using:
bitnetd query slashing signing-info <validator_pubkey>
Step 5: Unjail If Slashed
If your validator was jailed (due to downtime or misbehavior), you can rejoin the active set using:
bitnetd tx slashing unjail --from=<wallet_name> --chain-id=bitnet-mainnet
Ensure your node is synced before sending the unjail transaction.
Step 6: Halt Gracefully (Optional)
For planned upgrades or maintenance, halt your validator gracefully at a specific height:
bitnetd start --halt-height=<desired_height>
Common Issues
Zero Voting Power?
You may be jailed. Restart your node and submit an
unjail
transaction.
Too Many Open Files?
Increase file limit:
ulimit -n 4096
For systemd:
[Service] LimitNOFILE=4096
Last updated