EIP-7928 Breakout #12, Feb 11, 2026

Agenda

Discussion:

  • Client updates on optimizations
  • Specs update/clarification
    • [SOLVED] Discuss how clients fail invalid blocks in a timely manner
    • Remaining gas vs untouched item check (EIP)
    • JSON RPC update (PR)
  • Testing updates

Meeting Time: Wednesday, February 11, 2026 at 14:00 UTC (60 minutes)

GitHub Issue

Meeting Summary:

The team reviewed progress on various client optimizations, including parallel execution, state routing, and prefetch implementations across Besu, Geth, and other clients. Performance testing and benchmarking efforts were discussed, with devnet performance being monitored and specific benchmarking requirements being established for block access lists (BAL). The team explored optimization approaches for BALs, including gas cost-based limitations and early invalidation mechanisms, while also addressing JSON RPC method implementations and testing progress across different clients.

Click to expand detailed summary

The EIP 7928 Breakout Call focused on client updates and optimization progress. Karim reported that Besu has implemented all three optimizations (parallel execution, state routing, and prefetch) and is ready for benchmarking, though further refinements are ongoing. Dragan mentioned that the Go Ethereum (Geth) team is working on parallel execution and state routing, with I/O optimization being delayed. Marc shared that he is actively working on parallel execution and has implemented early block invalidation, but the feature is not yet ready for testing. The team agreed to discuss storage read optimization in a later session.

The team discussed updates on client optimizations and devnet performance. Jared reported implementing three performance presets in Geth, including sequential execution, parallel state route calculation, and async loading of state, but encountered issues with block building that need addressing. Stefan shared that the devnet is running smoothly now, with only minor initial issues from Nethermind and Reth, and is working on benchmarking plans. The team agreed to follow up on adding specific Geth flags for benchmarking and to continue monitoring Prometheus metrics for optimization insights.

The team discussed benchmarking for block access lists (BAL), focusing on execution speed and synchronization. They agreed that within the two-week weak subjectivity period, clients should be able to maintain execution speed by requesting and applying BALs from other peers. The group also discussed a new EELS branch with support for opcode counts and Amsterdam updates, which could be used for building BAL-specific benchmark tests. They noted that BALs should be available via DevP2P, with a new PR adding methods like GetBAL and GetBlockSist to enable catching up in case of beacon sync.

The team discussed benchmarking for BAL (block access list) features, with Felipe confirming that development branches of Geth are now able to fill for Amsterdam, allowing for benchmark tests to be written. They agreed that clients should be benchmarked in separate VMs to avoid core conflicts, and discussed the need to ensure blocks of access lists are available for re-execution during the re-execution period. The team also touched on the status of the FP2P spec merge and the need to hold back shadowforks until all EL clients are confirmed working with BAL optimizations.

The team discussed two optimization approaches for block access lists (BALs): a cap on items in the BAL based on gas costs, and early invalidation of BALs after transaction execution. Mark raised a concern about system contract calls affecting the gas remaining check, which Toni agreed to investigate. The team also discussed JSON RPC method implementations across different clients and naming conventions for BAL-related RPC endpoints. Barnabas requested that eth_simulateV1 be implemented in devnet 3, and Felipe provided updates on testing progress, including benchmark tests showing improved performance with Geth. The conversation ended with a discussion about interactions between BAL optimizations and other proposed EIPs, with Toni confirming there were no significant concerns.

Next Steps:

  • Jared (Geth): Let Stefan know which flags to use for Geth so Stefan can add it to his stack for benchmarking
  • Stefan: Follow up on compatibility between sync tool and benchmarker tool
  • Felipe: Help write benchmark tests that are BAL-specific
  • Toni: Update the specs PR and EIP PR to incorporate Mark’s input regarding filtering out system contract calls from BAL validation
  • Toni: Modify JSON RPC specs to return BAL as JSON object instead of RLP bytes for devnet 3
  • Toni: Fix JSON RPC naming to use “by block hash” and “by block number” in the specs
  • Toni: Get the DevP2P spec (ETH71) merged so clients can start implementing it
  • All clients: Implement EF simulate RPC method for devnet 3
  • All clients: Look into and fix remaining failing tests from the last release, particularly those with exception mismatches
  • Clients: Chime in on the JSON RPC PR regarding naming conventions
  • Clients (Nethermind, Reth): Continue work on implementing parallel execution, parallel I/O, and parallel state root optimizations

Recording Access:

YouTube Stream Links: