Release notes
This is a patch release on top of 1.39.0 with a round of bug fixes and reliability improvements across snap sync, networking, JSON-RPC, and the experimental Flat DB.
Overview
Full diff: 1.39.0...1.39.1
8 changes since 1.39.0. Highlights:
- Flat DB (experimental, opt-in) — fixed a disposal race between shutdown and in-flight trie-warmer jobs (#12237)
eth_simulateV1now bounds the total block expansion, not just each inter-block gap (#12210)- Bad-block store is bounded by entry count as intended, instead of comparing against the DB byte size (#12225)
- Quieter logs — RLP limit diagnostics toned down (#12130)
Highlights
Sync
- Reject malformed snap range proofs instead of throwing (#12187)
- Verify the hash of trie nodes recovered via snap heal (#12200)
Networking
JSON-RPC & Engine API
- Bound
eth_simulateV1total block expansion, not just each gap (#12210) - Side-effect-free invalid-chain query and atomic node get-or-create in the invalid-chain tracker (#12208)
Storage & state
- Bound
BadBlockStoreby entry count, not DB byte size (#12225) - Flat DB (experimental, opt-in): lease the read-only bundle for in-flight trie-warmer jobs (#12237, fixes #12079)
What's Changed
- fix(snap): reject malformed range proofs instead of throwing by @AnkushinDaniil in #12187
- Tone down RLP limit logging by @flcl42 in #12130
- fix(network): reject zero-size RLPx frames in ZeroFrameDecoder by @AnkushinDaniil in #12202
- fix(synchronization): verify hash of snap-heal recovered trie node by @AnkushinDaniil in #12200
- fix(jsonrpc): bound eth_simulateV1 total block expansion, not just each gap by @AnkushinDaniil in #12210
- fix(merge): side-effect-free invalid-chain query, atomic node get-or-create by @AnkushinDaniil in #12208
- fix(blockchain): bound BadBlockStore by entry count, not DB byte size by @AnkushinDaniil in #12225
- fix(flatdb): lease the read-only bundle for in-flight trie warmer jobs by @AnkushinDaniil in #12237
- chore: update Directory.Build.props for 1.39.1 by @stdevMac in b7c51322a1
Full Changelog: 1.39.0...1.39.1
Build signatures
The packages are signed with the following OpenPGP key: AD12 7976 5093 C675 9CD8 A400 24A7 7461 6F1E 617E