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. BitNet Ops Handbook

Mainnet

PreviousTestnetNextRun an IBC Relayer

Last updated 5 days ago

Joining the BitNet Mainnet

This guide walks you through how to join the BitNet mainnet, set up your node, and become a mainnet validator securely and efficiently.


1. Server Timezone Requirement

Set your server timezone to UTC. Failure to do so may result in a LastResultsHash mismatch and halt your node.

Check your current timezone with:

timedatectl

2. Install the BitNet Binary

Install the official bitnetd binary from the . Always confirm you are using the version that matches the latest mainnet release:

bitnetd version

3. Save Chain ID (Optional)

To simplify CLI usage, store the chain ID in your config:

bitnetd config chain-id bitnet_mainnet_9001

4. Initialize the Node

Initialize your node with a custom moniker:

bitnetd init <your_moniker> --chain-id bitnet_mainnet_9001

Only use ASCII characters in your moniker.

This creates the ~/.bitnetd directory and all necessary subfolders.


5. Download the Mainnet Genesis File

Retrieve and validate the genesis.json:

wget https://archive.bitnet.org/mainnet/genesis.json
mv genesis.json ~/.bitnetd/config/genesis.json
bitnetd validate-genesis

6. Add Seed and Persistent Peers

Seed Nodes

Edit your ~/.bitnetd/config/config.toml file to include:

seeds = "<node-id>@<ip>:<port>"

You may automate this:

SEEDS=$(curl -sL https://raw.githubusercontent.com/bitnet/mainnet/main/seeds.txt | awk '{print $1}' | paste -s -d, -)
sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" ~/.bitnetd/config/config.toml

Persistent Peers

PEERS=$(curl -sL https://raw.githubusercontent.com/bitnet/mainnet/main/peers.txt | sort -R | head -n 10 | awk '{print $1}' | paste -s -d, -)
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.bitnetd/config/config.toml

7. Create a Validator on Mainnet

Only proceed once your node is fully synced and you have BNC tokens.

bitnetd tx staking create-validator \
  --amount=1000000abnc \
  --pubkey=$(bitnetd tendermint show-validator) \
  --moniker="BitNetWhale" \
  --chain-id=bitnet_mainnet_9001 \
  --commission-rate="0.05" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --min-self-delegation="1000000" \
  --gas="auto" \
  --gas-prices="0.025abnc" \
  --from=<key_name>

Never generate validator keys using test backends (e.g. insecure keyrings). Doing so may expose your funds via public JSON-RPC endpoints.


8. Start the Node

Once all configurations are complete:

bitnetd start

After reaching +2/3 validator power, the BitNet mainnet will begin producing blocks.


9. Share Your Peer

Get your node ID:

bitnetd tendermint show-node-id

Then share it in BitNet’s community #find-peers channel to help bootstrap peer connections.


You're now fully integrated with the BitNet Mainnet!

BitNet repository