erigon-pulse/RELEASE_INSTRUCTIONS.md
ledgerwatch cf799157cc
Jumpdest skip optimisation (#851)
* Jumpdest skipping optimisation

* Fix formatting

* Move skipAnalysis into vmConfig, introduce tracing ability

* Improve detection logging

* Added release instructions

* Fix lint
2020-08-01 17:56:57 +01:00

1.4 KiB

How to prepare turbo-geth release (things not to forget)

Update Jump dest optimisation code

This step does not have to be completed during emergency updates, because failure to complete it has only a minor impact on the performance of the initial chain sync.

In the source code core/skip_analysis.go, there is a constant MainnetNotCheckedFrom which should be equal to the block number, until which we have manually checked the usefulness of the Jump dest code bitmap. In order to update this, one needs to run these commands:

make state
./build/bin/state checkChangeSets --chaindata <path to chaindata> --block <value of MainnetNotCheckedFrom>

If there are any transactions where code bitmap was useful, warning messages like this will be displayed:

WARN [08-01|14:54:27.778] Code Bitmap used for detecting invalid jump tx=0x86e55d1818b5355424975de9633a57c40789ca08552297b726333a9433949c92 block number=6426298

In such cases (unless there are too many instances), all block numbers need to be excluded in the SkipAnalysis function, and comment to it. The constant MainnetNotCheckedFrom needs to be update to the first block number we have not checked. The value can be taken from the output of the checkChangeSets utility before it exits, like this:

INFO [08-01|15:36:04.282] Checked                                  blocks=10573804 next time specify --block=10573804 duration=36m54.789025062s