Hello Flow Execution Node Operators,

We discovered an issue with the Execution node software. There was a new field - ExecutionDataID, that was added in the Execution result which an Execution nodes produces. The value of the field was not being calculated consistently by all the execution nodes when they executed a transactions that threw an error. This resulted in blocks not being sealed. We have resolved this by setting the ExecutionDataID to be a fixed value for now. This is the commit in the code.

If you are running an Execution node, please do the following:

  1. Stop the node

  2. Run the rollback script.

The script can be downloaded from here

i. wget https://storage.googleapis.com/flow-genesis-bootstrap/util.tar
ii. tar -xvf util.tar

Alternatively, you can build it from the source

Then run,
./util rollback-executed-height --datadir /var/flow/data/protocol --height 24188132

The script removes all the execution results starting from block height 24188132 up till the latest executed block by the execution node. This is done because the execution results have the ExecutionDataID field calculated inconsistently and removing the results will allow the node to re-calculate these results using the new code which guarantees the results to be consistent.

Make sure the script completes successfully before proceeding to the next step.

  1. Upgrade the node to docker image: v0.24.5 (alternatively v0.24.5-without_netgo)

  2. Start the node.

No action is needed for any other node type.

Thank you,