Skip to content

23.10.3-hotfix

Compare
Choose a tag to compare
@garyschulte garyschulte released this 07 Jan 00:45
· 458 commits to main since this release
f3751af

23.10.3-hotfix

This is a hotfix for a selfdestruct defect that occurred on mainnet at block 18947893

  • Hotfix for selfdestruct preimages on bonsai [#6359]((#6359)
  • mitigation for trielog failure [#6315]((#6315)

This release fixes the root of the problem, but Besu needs to be resynced in order to repair the state. The fastest way to do this is to trigger a backward sync in Besu. After installing the hotfix, your CL client will need to have its beacon state reset and restored using checkpoint sync. Recovering from a deleted beacon chain is much faster if you have Checkpoint Sync setup, which is CL client specific.

Instructions on how to delete the beacon db, depends on your client. For example for Teku, you need to remove the beacon folder in the Teku data path. For other clients, refer to their documentation.

Most users should be good to go. If this doesn't work, please try the below instructions and report your problem to the Hyperledger Discord at https://discord.gg/hyperledger

Try the same process again, but force Besu to set its head back to a block prior to the problem block. This will require API access, and for this to work you have to enabled the DEBUG API with the following startup options:

--rpc-http-api=ETH,NET,WEB3,DEBUG

See RPC APIs for more details, changes to that param will require Besu to be restarted.

Once Besu is up and you have access to DEBUG apis, you can shutdown your CL client and clear its database. With Besu still up, set its head back to block 18947892 (0x1211F34 in hex) using the following API call:

curl -X POST --data '{"jsonrpc":"2.0","method":"debug_setHead","params":["0x1211F34"],"id":1}' http://localhost:8545

Then restart your CL. Your CL should optimistically sync the beacon chain using a checkpoint from the network, and this will trigger a backward sync in Besu.

If your client still isn't progressing, you can try to resync only the world state. It can take hours, but it is faster from a resync from scratch

curl -X POST --data '{"jsonrpc":"2.0","method":"debug_resyncWorldState","params":[],"id":1}' http://localhost:8545

Download Links

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.3-hotfix/besu-23.10.3-hotfix.zip / sha256 1c37762909858a40eca749fb85b77fb4d1e918f247aff56d518144828bd85378
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.3-hotfix/besu-23.10.3-hotfix.tar.gz / sha256 8e38e9fd0c16e049aa324effc96f9ec31dc06e82ea4995e9dd75d571394667af