Geth v1.10.23 is a hotfix release for a pruning regression that was introduced in v1.10.22. For technical details on the bug, please check out the PR that fixes it.
If anyone updated to v1.10.22 in these past couple of days, there is a fairly high probability that some state data might have gone missing from your node. Doing a full check on the state is possible geth snapshot traverse-state
, but will likely take a day and the fix is all the same anyway.
To ensure that your node has all the data, please rewind your local chain to a block before you updated (if unsure, just pick a block before the release time) with debug.setHead("0xblock-number-in-hex")
via the Geth console (on IPC), or debug_setHead
via JSON RPC (you might need to temporarilly expose the debug
namespace to do that). The brute force alternative of course is to resync after an update, which you can do by deleting your chaindata
folder (but please leave the ancient
folder within to keep the blocks).
We apologize for this regression and the headaches fixing it will entail on your side. We've learnt the hard way that there's an untested class of bugs that appear across full sync restarts.
For a full rundown of the changes please consult the Geth 1.10.23 release milestone.
As with all our previous releases, you can find the:
- Pre-built binaries for all platforms on our downloads page.
- Docker images published under
ethereum/client-go
. - Ubuntu packages in our Launchpad PPA repository.
- OSX packages in our Homebrew Tap repository.
Original Merge release notes
Geth v1.10.22 v1.10.23 enables the Merge for the Ethereum mainnet at a Terminal Total Difficulty of 58_750_000_000_000_000_000_000
.
This TTD is expected to be reached on the 15. September 2022.
Merge EIPs
Additional notes about the merge changes
- This release configures the Terminal Total Difficulty for mainnet. (#25528)
- Many engine API issues found by hive have been fixed for this release. (#25552, #25423, #25414, #25416, #25428)
- The Goerli testnet is now internally configured as 'successfully merged'. (#25519, #24538)
JSON-RPC API
- The log filtering system now uses a LRU cache for block logs, speeding up repeated queries for the same block range. The cache size can be configured using the
--cache.blocklogs
command-line flag. (#25459) eth_createAccessList
is now much faster when no gas limit is provided. (#25467)eth_feeHistory
now also works with thefinalized
block specifier. (#25442)- The built-in callTracer now supports an option
onlyTopCall
. Enabling this option makes the tracer skip internal calls. We added this option to enable use of thecallTracer
to get the return data of reverted transactions. (#25430)
Go-library changes
- Storage of trie node hash preimages is now disabled by default. You can enable it again using the
--cache.preimages
flag. (#25287, #25538, #25533) - The ethash mining implemenation now removes temporary DAG files, which could be left of disk when geth was interrupted while generating a DAG. (#25381)
- ethclient now supports the
eth_feeHistory
method. (#25403) - The eth wire protocol test suite now supports protocol version eth/67. (#25306)
- RLP-decoding of trie nodes is ~33% faster due to reduced allocations in the decoder. (#25357)
- The RPC server supports a new option
ReadHeaderTimeout
. (#25338) - Registering of clef ruleset UIs should now work correctly. (#25455)
Build
- Geth binaries in docker are now statically-linked. (#25492)
- This release is built using Go 1.18.5. (#25461)
For a full rundown of the original merge release changes please consult the Geth 1.10.22 release milestone.