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.
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
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
...
If the software version does not match, then please check your $PATH
to ensure the correct dep
is running.
2. Replace Genesis file
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
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
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.
🚨 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