Developer Docs
  • Overview
  • Setup & Configuration
    • Run a Validator
    • Configuration
    • Disk Usage Optimization
    • State Sync
    • Mempool
    • Validator FAQ
  • Security Essentials
    • Security
    • Tendermint KMS
    • Validator Security Checklist
  • Upgrades Overview
    • Upgrades
    • List of Upgrades
    • Hard Fork Upgrades
    • Manual Upgrades
    • Rollback
  • BitNet Ops Handbook
    • Testnet
    • Mainnet
    • Run an IBC Relayer
Powered by GitBook
On this page
  1. Setup & Configuration

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>

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
PreviousOverviewNextConfiguration

Last updated 5 days ago

Use to add a verifiable identity and profile image to your validator. This helps build credibility and trust with delegators.

Keybase