Meeting Summary:
The team discussed meeting logistics and began reviewing updates on client implementations and testing progress across various blockchain clients. They focused extensively on implementing PTC (Proposer Time Commitment) changes for Ethereum’s consensus specifications and benchmarking performance optimizations for parallel batch I/O. The conversation ended with discussions on transaction mempool strategies and plans for future breakout sessions to explore these implementations further.
Click to expand detailed summary
The team discussed whether to split into breakout rooms for the meeting, with Potuz suggesting they might not need one if the PTC deadline discussion could be handled quickly in the general session. Mario confirmed they would start the meeting and assess if breakouts were needed based on the discussion progress. The meeting began with Mario welcoming everyone to ACD number 75 and noting that the agenda primarily consisted of devneets, with the first item being the blob.net serum.
Barnabas reported issues with trunk branches breaking frequently and suggested releasing a stable version with Catbop V3 to address this. He mentioned pinging client teams about the problems and waiting for more CL teams to onboard once partial cell implementations are complete. Andrew updated that his team is nearly finished with the 8037 implementation and plans to review an Asserta message the next day, though he confirmed no issues with Blob 0. The conversation ended with plans to discuss issues related to Bald Devs 3 and client synchronization problems.
The team discussed updates on client implementations and testing progress. Stefan reported that several clients including Beezel and Aragon had pushed updates, with Nimus EL and Etherex nearly complete, while Geth and others still had significant test failures to address. Spencer mentioned working on exception mapping failures on Hive and potential minor spec changes for future DevNet versions. The team agreed to defer discussion of DevNet 4 and blockload access list changes to focus on resolving current issues in DevNet 3, and decided to address the PTC questions for EPVS DevNet 1 before continuing with other agenda items.
The team discussed implementing PTC (Proposer Time Commitment) changes for Ethereum’s consensus specifications. After reviewing multiple PR options, they agreed to update the PR to include 3 epochs worth of PTC values in the state, which would add 256-384 kilobytes to the state size. The decision was based on testability arguments and the ability to have better look-ahead timing for validator duties. Potuz will update the relevant PRs and work on tests, with plans to produce a release for DevNet 1 by the end of the week. The team also confirmed they will not be implementing variable PTC deadlines in this release, as it was deemed a non-critical change for benchmarking that could be discussed at a later time.
The team discussed benchmarking progress for parallel batch I/O optimization, with Marius reporting that initial test runs showed significant performance improvements in non-failing tests. Jochem-brouwer explained that specific flags are needed for clients to enable/disable batch I/O optimization, particularly focusing on the block access list prefetching mechanism. The team noted that while some benchmarks are available, they still need performance data and are working on implementing the necessary flags across different client implementations.
The team discussed performance optimizations and benchmarking results for various blockchain clients. Rafael reported running tests with and without optimizations on Geth and Besu, showing performance gains, particularly a 3X improvement with execution parallelization limited to 4 CPUs. The team is working on stateful tests for batch I/O and plans to update from DevNet 2 to DevNet 3 specifications once stable enough for benchmarks. Karim asked about running tests with and without state root in parallel, and the team discussed implementing specific flags for performance testing, including prefetch optimization options.
The team discussed two strategies for implementing a transaction mempool for native accounts. The first strategy involves self-relaying, where consensus nodes support users paying for their own gas but don’t support gas abstraction in the transaction pool. The second strategy, preferred by the team, is the canonical paymaster approach, which allows bundlers to use a specific paymaster with defined properties that the protocol can reason about safely. Potuz updated on pushing minimum changes to add three epochs to 4979, though some computation verification is still needed. The team agreed to schedule a breakout discussion for Wednesday to further explore these transaction pool strategies before the upcoming Thursday meeting.
Next Steps:
- Łukasz (Aragon team): Take a look into the Blob Devnet Zero issues that Barnabas sent
- Andrew (Aragon): Take a look into the Asserta message from Stefan tomorrow
- Andrew (Aragon): Take a look at the Blob.net zero issue tomorrow
- Stefan Starflinger: Look into Beezel’s update pushed today for Bald Devs 3
- Stefan Starflinger: Look into Aragon’s updates from the weekend for Bald Devs 3
- Spencer: Push to get all Hive tests passing over the next day or two
- Spencer: Create a test for the bug that Stefan found on Aragon
- Potuz: Update the PR to include 3 epochs worth of PTC values for EPBS
- Justin: Produce a release with the updated PTC changes by end of this week
- Nethermind and Aragon: Add the batch I/O flag to enable/disable prefetch optimization
- Nimbus EL and Etherex: Add the batch I/O flag if possible
- Andrew (Aragon): Implement the batch I/O optimization
- Rafael: Share benchmark results in the chat and complete the Reth run
- Jochem and team: Continue working on stateful tests to test the batch I/O
- lightclient: Schedule a breakout room for Wednesday to discuss frame transaction mempool
Recording Access: