chore(eth): update Erigon 3.5.2->3.5.5 - #1724
Open
cranycrane wants to merge 1 commit into
Open
Conversation
3.5.2 is exposed to two receipt/log correctness bugs that both land wrong data in Blockbook's index, since ERC20 transfers are built from eth_getLogs: - #23064: receipt domains were never rolled back on an in-RAM reorg unwind, because GetDiffset filled only the four domains that existed before ReceiptDomain was added. Small reorgs near the tip leave eth_getLogs serving phantom logs with wrong logIndex while eth_getBlockReceipts stays correct; the damage survives restarts and is frozen into snapshot files (erigontech/erigon#23062, observed on 3.5.2). - #22951: wrong logIndex on archive nodes from receipt-domain reads bypassing the overlay DomainReader. Affects 3.5.1-3.5.4. Also picked up on the way: the JSON-RPC handleBatch deadlock (#22459), which Blockbook can hit through BatchCallContext, and a ~9-15 GiB/day native memory leak in the RPC gzip path on archive nodes (#22700). Drop-in at every hop, no re-sync. Checksums taken from the release's own erigon_v3.5.5_checksums.txt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates the Erigon pin in all six Ethereum configs (mainnet, mainnet archive, Sepolia, Sepolia archive, Hoodi, Hoodi archive) from 3.5.2 to 3.5.5:
version, bothbinary_urls (amd64 and the arm64 entry underplatforms), and bothverification_sourcehashes.Why 3.5.2 needs to go
Blockbook builds its ERC20 transfer index from
eth_getLogs, so an Erigon bug that misnumbers or invents logs is written straight into RocksDB and stays there. 3.5.2 is exposed to both known variants, and the fixes for both are in 3.5.5 only:release/3.5) — receipt domains were never rolled back on an in-RAM reorg unwind:GetDiffsetbuilt a[kv.DomainLen]array but filled only the four domains that existed beforeReceiptDomainwas added, soReceiptDomain/RCacheDomaincame back nil. Small reorgs near the tip then leaveeth_getLogsserving phantom logs with the wronglogIndexwhileeth_getBlockReceiptsfor the same block stays correct. The corruption survives restarts and gets frozen into the snapshot files. See erigontech/erigon#23062 — the first reported occurrence was on v3.5.2.logIndexon archive nodes, from receipt-domain reads bypassing the overlayDomainReader. Affects v3.5.1–v3.5.4.Picked up on the way through 3.5.3/3.5.4:
handleBatchdeadlock; a filtered batch could wedge onwg.Wait()and time out. Blockbook batches heavily viaBatchCallContext(token balances/metadata inbchain/coins/eth/contract.go).Notes
erigon_v3.5.5_checksums.txt.exec_command_templatechange needed — nothing in 3.5.3/3.5.4/3.5.5 deprecates a flag we pass. 3.5.3's new--rpc.logs.querylimitis a different knob from our--rpc.logs.maxresultsand its default preserves current behaviour.eth_getLogsagainsteth_getBlockReceipts; if they disagree, the derived domains need the documented rebuild, and the affected block ranges need a Blockbook reindex.🤖 Generated with Claude Code