General Upgrade Guide
This guide will walk you through the steps you need to take to upgrade your node. Keep in mind that this is a general guide, and some releases might require additional steps that need to be taken. If there is a specific upgrade guide for a release you should follow that guide instead (though it might refer to this guide for general steps).
Planning for the upgrade
- Do not test upgrades on your production node, use a test node first
- The supported operating systems are:
- Ubuntu 20.04 Focal
- Ubuntu 22.04 Jammy
- Do not use deprecated plugins
- Enable all new required plugins
- Make a backup of your node
Upgrading your node
Follow these steps in order. If you have any questions, please ask in the Telegram group.
1. Download / build binaries
If you want to build and install from source, you can follow the instructions in the README.
If you want to use the binaries, you can download them from the releases page.
2. Make a snapshot
Before you install new binaries or stop your nodes, you should make a snapshot. This will allow you to quickly recover in case something goes wrong, and use it to replay your node.
To make a snapshot, run the following command on your producer node:
curl -X POST http://127.0.0.1:8888/v1/producer/create_snapshot
Wait until curl returns with a JSON
response containing the filename of the newly created snapshot file.
You can also grab a snapshot from trusted sources like EOS Nation, but make sure you have a snapshot for the right network, and snapshot version.
3. Stop your node
Now that you have created a snapshot, you can stop your node.
4. Remove old files
Remove the data/state/shared_memory.bin
file.
❔ Where is my
data
directory?The
data
directory will be the path passed tonodeos --data-dir
argument, or$HOME/local/share/eosio/nodeos/data/state
by default
If you need history (SHiP)
Warning: Replaying can take weeks.
You may also need to remove the data/blocks
directory
if the release you are upgrading to has a different block log format.
If a block log is incompatible you will need to sync from the network or download a
compatible block log from a trusted source.
Each individual upgrade guide will tell you if the block log format is incompatible.
Additionally, you will need to delete SHiP
.
If you have a block log compatible with the release you are upgrading to,
you can simply replay locally from that block log instead of syncing from the network.
Here are some tips for speeding up replays:
- Raise
-–sync-fetch-span
while replaying (revert back to default after replay for stability!) - Use peers with a full
blocks.log
only - Keep your
p2p-peer-address
list short, only with the closest nodes - You can quickly sync from a single peer located in the same datacenter, even if it is not on the same version
- You can do the same on the same machine, but you will need new
/blocks
and/state
directories + more NVMe space
- You can do the same on the same machine, but you will need new
- You can copy the
blocks.log
from another machine if it is compatible
List of peer nodes with blocks.log files extending to genesis:
EOS:
eos.seed.eosnation.io:9876
peer1.eosphere.io:9876
peer2.eosphere.io:9876
p2p.genereos.io:9876
EOS Jungle4 Testnet:
peer1-jungle4.eosphere.io:9876
jungle4.seed.eosnation.io:9876
jungle4.genereos.io:9876
jungle.p2p.eosusa.io:9883
5. Remove old configuration options and plugins and add any new ones
Each release could have deprecated, end-of-lifed, or new plugins. With these changes you might need to remove old configuration options and plugins, or add new plugins which generally include new configuration options.
If the release you are upgrading to has any of these changes, you will find them in the release notes or in a guide specific to that release from the list on the left (or hamburger menu on mobile).
6. Update your binaries
First, remove your old binary:
sudo apt-get remove -y leap
# or
sudo dpkg --remove <old-pkg-name>
Then, install the new binaries:
sudo apt-get install -y ./leap[-_][0-9]*.deb
# or
sudo dpkg -i <filename>.deb
7. Start your node
Start your node with the snapshot you created/downloaded in step 2.
To learn how to start snapshots and more information about them read the snapshots guide.