AnnouncementsReleasesUpdates

IoTeX Core Release 1.8.4

The IoTeX core 1.8.4 release is here. Amongst other updates, such as the upgrade to Golang 1.18, the main point of focus has been the 1.8.4 patch. Let's learn more about this patch, what issue it's meant to solve, who it impacts and how to apply it on your delegate node.

Post Header Image

Updated:


SHARE

Edit on Github

The IoTeX core 1.8.4 release is here. Amongst other updates, such as the upgrade to Golang 1.18, the main point of focus has been a patch to the chain DB. Let's learn more about this patch, what issue it's meant to solve, who it impacts and how to apply it on your delegate node.

šŸ—’ Release notes

Are you a node operator?

Please make sure you carefully follow the upgrade instructions below to perform a correct update from 1.8.x to 1.8.4.

Interested in running an IoTeX node?

If you are interested in setting up an IoTeX delegate from scratch, please refer to the official documentation:

šŸ“š delegates.iotex.io

Upgrade instructions

v1.8.4 Patch

In the past couple of weeks, some delegates have come across an issue with their nodes that were failing to sync with the most recent blocks.

After careful analysis, the root cause has been identified as an incorrect state in memory storage, which a node might incur upon restart.

Impact

A node could be affected by this issue if it has been restarted sometime between September 30th and October 08th, 2022. In such case, this node will get stuck on a certain block height.

Solution

The IoTeX core team has fixed this issue in the v1.8.4 release by providing a script tool to download a patch file, which would correctly restore the internal state of the node.

This fix is not a hard-fork, and is only needed once. After applying the patch, the node can be upgraded to v1.8.4. After starting the new release, the patch will not be needed for future restarts, and can be deleted.

Therefore, upgrading to 1.8.4 consists of 2 steps:

  1. Apply the DB patch.
  2. Upgrade the iotex-core protocol to 1.8.4.

1. Apply the patch

Prerequisites

Make sure you have the $IOTEX_HOME environment variable properly set. This is the full-node home directory where all node settings and data files are stored. By default, it is called /iotex-var.

echo $IOTEX_HOME
/home/user/iotex-var

If $IOTEX_VAR is not set, make sure you locate it, and set the absolute path:

export IOTEXVAR=/home/user/iotexvar # Use your specific path for iotex-var

If the variable is not set, you will be asked to input it when running the script.

Once $IOTEX-VAR is set,

  • Stop your IoTeX node.
  • If you are using Docker, also remove the Docker container.
  • Download the patch script:
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.8.4/184_patch/patch.sh > ./patch.sh
  • Run the script:
chmod a+x ./patch.sh
./patch.sh

The script will download the actual patch file. You will see a message like this:

download /iotex-var/data/19901069.patch success, please upgrade to v1.8.4 and restart iotex-server

2. Upgrade to v1.8.4

Now that the DB is patched, you can go ahead and update your node to 1.8.4:

  • Pull the new Docker image:
docker pull iotex/iotex-core:1.8.4
  • Update your run script with the new iotex-core docker image and start your node.

Assuming you've named your Docker container "iotex", you can use this command to check the node's log:

You should see a log like the one below:

log

Troubleshooting

If you are experiencing problems with the upgrade, you can ask for support or reach out to an admin on our Discord server.


Docs

IoTeX Docs


IoTeX Developerslogo

devs@developers.iotex.io