Skip to main content

Manual Upgrades

Learn how to manually upgrade your node.

Prerequisites

  • Install dep

1. Upgrade the DEP version

Before upgrading the DEP version. Stop your instance of dep using Ctrl/Cmd+C.

Next, upgrade the software to the desired release version. Check the DEP releases page for details on each release.

danger

Ensure that the version installed matches the one needed for the network you are running (mainnet or testnet).

cd DEP
git fetch --all && git checkout <new_version>
make install
tip

If you have issues at this step, please check that you have the latest stable version of Golang installed.

Verify that you've successfully installed DEP on your system by using the version command:

$ dep version --long

name: DEP
server_name: dep
version: 3.0.0
commit: fe9df43332800a74a163c014c69e62765d8206e3
build_tags: netgo,ledger
go: go version go1.20 darwin/amd64
...
tip

If the software version does not match, then please check your $PATH to ensure the correct dep is running.

2. Replace Genesis file

tip

You can find the latest genesis.json file for mainnet or testnet in the following repositories:

Save the new genesis as new_genesis.json. Then, replace the old genesis.json located in your config/ directory with new_genesis.json:

cd $HOME/.dep/config
cp -f genesis.json new_genesis.json
mv new_genesis.json genesis.json
tip

We recommend using sha256sum to check the hash of the downloaded genesis against the expected genesis.

cd ~/.dep/config
echo "<expected_hash> genesis.json" | sha256sum -c

3. Data Reset

danger

Check here if the version you are upgrading require a data reset (hard fork). If this is not the case, you can skip to Restart.

Remove the outdated files and reset the data:

rm $HOME/.dep/config/addrbook.json
dep tendermint unsafe-reset-all --home $HOME/.dep

Your node is now in a pristine state while keeping the original priv_validator.json and config.toml. If you had any sentry nodes or full nodes setup before, your node will still try to connect to them, but may fail if they haven't also been upgraded.

danger

🚨 IMPORTANT 🚨

Make sure that every node has a unique priv_validator.json. DO NOT copy the priv_validator.json from an old node to multiple new nodes. Running two nodes with the same priv_validator.json will cause you to double sign.

4. Restart Node

To restart your node once the new genesis has been updated, use the start command:

dep start