Manual Upgrades
Learn how to manually upgrade your node.
Prerequisites
1. Upgrade the Evmos version
Before upgrading the Evmos version. Stop your instance of evmosd
using Ctrl/Cmd+C
.
Next, upgrade the software to the desired release version. Check the Evmos 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 evmos
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 Evmos on your system by using the version
command:
$ evmosd version --long
name: evmos
server_name: evmosd
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 evmosd
is running.
2. Replace Genesis file
You can find the latest genesis.json
file for mainnet or testnet in the following repositories:
- Mainnet: github.com/evmos/mainnet
- Testnet: github.com/evmos/testnets
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/.evmosd/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 ~/.evmosd/config
echo "<expected_hash> genesis.json" | sha256sum -c
3. Data Reset
Remove the outdated files and reset the data:
rm $HOME/.evmosd/config/addrbook.json
evmosd tendermint unsafe-reset-all --home $HOME/.evmosd
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:
evmosd start