Manual Upgrades
Manual Upgrade Procedure for BitNet Nodes
This section provides instructions for BitNet validators and node operators who prefer to perform manual upgrades instead of using automation tools like Cosmovisor. Manual upgrades are also necessary when handling emergency forks, state resets, or custom genesis updates.
1. Stop the Node
Before beginning any upgrade, gracefully shut down your node:
Ctrl + C
2. Install the New BitNet Version
Switch to the correct GitHub release and compile the updated binary:
cd bitnet
git fetch --all && git checkout <new_version>
make install
Confirm the new binary is installed:
bitnetd version --long
Ensure the binary version matches the expected upgrade version for your environment (mainnet or testnet). Use the correct Go version as specified in the release notes.
3. Replace the Genesis File (If Required)
If the upgrade requires a genesis change, download the latest genesis.json
from the appropriate BitNet repository and verify it:
cd $HOME/.bitnetd/config
cp -f genesis.json new_genesis.json
mv new_genesis.json genesis.json
echo "<expected_sha256_hash> genesis.json" | sha256sum -c
4. Reset Node Data (If Required)
If the upgrade is a breaking change that requires a full data reset:
rm $HOME/.bitnetd/config/addrbook.json
bitnetd tendermint unsafe-reset-all --home $HOME/.bitnetd
Never reuse the same priv_validator_key.json
across multiple nodes. Doing so can result in double-signing and slashing.
5. Restart the Node
Once the upgrade and optional reset are complete:
bitnetd start
Your node will resync from the latest height or from scratch (if reset), and join the network using the new software version.
This completes the manual upgrade process. BitNet node operators should monitor network announcements, upgrade proposals, and release timelines to avoid downtime or consensus errors.
Last updated