This release candidate is cut from the head of develop. The notes below are written relative to v0.12.0-rc3; the changes that make up v0.12.0 itself are described in the v0.12.0-rc1 notes.
🚀 What's New
- Skip missing (null) blocks on non-Ethereum networks (#1936, fixes #1935): on some non-Ethereum networks block numbers are not contiguous and
eth_getBlockByNumberreturnsnullfor the missing ones, so a sync window ending on one of them made the sync retry forever. The new exceptional settingSupportNonEthereumWithMaxGapsInBlocks(inCommon.L2RPCandL1NetworkConfig.RPC) makes the client resolve a missing block below the chain head to the nearest previous existing block, looking back at most N blocks. It is disabled by default (0, unchanged behaviour) and must be left at0on regular EVM chains. It is not supported by the multidownloader, which refuses to start with it enabled (not needed for now, tracked in #1937). - Removal of the
eth_getLogscompleteness check (#1933, fixes #1930): reverts #1773. It removes the logsBloom completeness verification in the multidownloader and the legacysyncdownloader,BlockHeader.LogsBloom, and the checkpoint-escalated reorg inl1infotreesync. This also fixes the slowdown of thel1infotreesyncinitial sync. Thel1infotreesync0005migration is kept (thel1info_checkpointtable is now unused).
⚠️ Breaking Changes
- 🛠️ Config: none. The new
SupportNonEthereumWithMaxGapsInBlocksdefaults to0. - 🔌 API/CLI: none.
- 🗑️ Deprecated Features: the completeness check and the checkpoint-escalated reorg introduced in #1773 are removed.
📋 Configuration Updates
[Common.L2RPC]
SupportNonEthereumWithMaxGapsInBlocks = 0 # 0 = disabled (default)
[L1NetworkConfig.RPC]
SupportNonEthereumWithMaxGapsInBlocks = 0🔌 API Updates
- No changes in the Bridge service API, the Proxy API or other APIs.
Full Changelog: v0.12.0-rc3...v0.12.0-rc4