Meeting Summary:
This was ACDT meeting number 80 focused on Amsterdam DevNet scoping and related technical discussions. The main topics covered included increasing the maximum contract code size from 24 kilobytes to 64 kilobytes, with Giulio presenting an EIP for this change and receiving general approval from client teams despite concerns raised by Marius about implementation complexity and the EIP process. The team discussed the readiness for BalDevNet 7 launch, with Spencer confirming a new 7.2.0 release containing additional tests would be deployed shortly, and Stefan Starflinger reporting successful testing with Etherix, Nethermind, and Nimbus clients. Maria emphasized the critical importance of clients implementing batch I/O and state root calculation optimizations for the new state access pricing model, noting that current performance results were not meeting expected targets. The meeting also covered Glamsterdam DevNet 4, which will target the BalDevNet 7 spec and include changes to gas limit handling in the engine API, and initial discussions about potential EIPs for Glamsterdam DevNet 5 including compute operation repricings and the removal of self-destruct gas burns. The team briefly discussed two competing proposals for the REST SSZ engine API specification, with Barnabas’s simpler approach already merged by some clients while Marius advocated for a more comprehensive redesign, though no final decision was reached.
Click to expand detailed summary
The meeting began with participants joining and testing the recording system. David confirmed he was recording the call. The group waited for additional attendees before starting the formal meeting, with some participants making casual comments about the high attendance.
The team discussed increasing the maximum contract code size from 24 kilobytes to 64 kilobytes, with Giulio presenting an EIP (EIP-7954) for approval. All clients present, including Nethermine, Bezu, and Dragan, agreed to proceed with the change. Łukasz raised concerns about getting feedback from the benchmarking and repricing teams, and Maria explained that while benchmarking would be conducted, the change likely wouldn’t impact repricings immediately since large contracts wouldn’t be common on mainnet yet. The discussion ended with Ben asking about which DevNet would be targeted for testing the change.
The team discussed updating the contract code size limit from 32 to 64 kilobytes for GLAM 5 devnet testing. Marius expressed concerns about the process and potential issues with going from 32 to 64, while Giulio suggested including it in GLAM 5 for testing purposes before reverting it later. The group agreed to update the EIP and proceed with benchmarking different values, with Barnabas suggesting clients could create a 64kb-specific branch for testing. The meeting then moved on to discuss removing the SELFDESTRUCT opcode, with Dragan bringing this up in EthR&D.
The team discussed a proposed new EIP to remove self-destruct functionality, with concerns raised about timing and potential community pushback. Barnabas opposed adding a new EIP so late in the process and suggested deprecating self-destruct instead. The group agreed to consider proposing this change for the next fork (Bogota) rather than the current one, with Łukasz noting the importance of checking with users who rely on this mechanism before making significant changes. The meeting then transitioned to discussing DevNet status for Baldevnet 7, including updated specifications and an upcoming release from Spencer.
The team discussed the readiness for DevNet 7, with Stefan reporting that clients including Etherix, Nethermind, and Nimbus are passing tests on Epoch 50. Stefan planned to launch the DevNet later that day or early the next morning, pending completion of additional client testing including Bizzo and Geth. The team agreed to use the v7.2.0 test spec to gate client participation in DevNet 7, with Spencer releasing the test spec shortly after the call and Stefan planning to launch the DevNet after the release.
The team discussed the implementation of EF71 for DevNet 7, with Toni confirming that clients have already implemented it and requesting Felix to review the OpenPR. Stefan reported that he is preparing a PR to update benchmarking images for DevNet 7. Maria emphasized the importance of clients focusing on optimizing batch I/O and state root calculations in the next few weeks to enable final benchmarking and repricing for AT38, noting that current optimization results are not meeting expectations after block-level access list implementation.
The team discussed post-state root optimization progress, with Toni requesting clients to share their current status in a Discord thread. Łukasz reported that Nevermind has some optimizations but is still working on memory handling and locking mechanisms, requiring DevNet 7 for benchmarking. The group also reviewed Glamsterdam DevNet 4, which targets the Bell DevNet 7 spec and V1.7.0 minus alpha 8 consensus spec release, with Barnabas highlighting a new change that puts the target gas limit into the engine API.
The team discussed plans for the next DevNet iterations, deciding that separate branches will be needed for Glamsterdam DevNet 4 and Ball DevNet 7 due to engine changes. Maria provided updates on gas pricing proposals, recommending inclusion of EIPs 8038 and 2780 in Glamsterdam DevNet 5 for risk mitigation, while EIP 7904 may be omitted pending further performance data. The team also discussed EIP 8246 to remove self-destruct burn, with general alignment to include it in Glamsterdam DevNet 5, and debated two proposals for REST SSZ Engine API specification, with client teams like Nethermind and Erigon already having merged one version, though the discussion was deferred to an async format and upcoming ACD meeting.
Next Steps:
- Giulio: Update the EIP for bumping max contract code size from 32KB to 64KB and target it for Glamsterdam DevNet 5, with the understanding it may be reverted based on benchmarking results.
- Maria: Continue benchmarking work on Ball DevNet 7, including testing for 32KB and 64KB contract code sizes, and provide results to inform final EIP values.
- Stefan Starflinger: Launch Ball DevNet 7 after the test release (v7.2.0) is out, targeting end of day or early next morning.
- spencer: Release test spec v7.2.0 before the end of the call/meeting hour.
- Marius: Provide a branch for Geth targeting Ball DevNet 7 spec by mid-to-end of the week.
- Toni: Ping Felix async to review the EIP71 open PR and get it merged.
- Client teams: Review and pass test spec v7.2.0 tests (especially the new 8037 tests) before participating in Ball DevNet 7.
- Client teams: Chime in on Toni’s Discord message regarding the status of post-state root calculation optimizations.
- Client teams: Merge optimizations (especially batch I/O and state root calculation) into their Ball DevNet 7 branches as soon as possible to unblock repricing work.
- Client teams (Nethermind, Erigon, etc.): Create a separate Glamsterdam DevNet 4 branch (not reusing the Ball DevNet 7 branch) due to the engine API change introducing target gas limit from the CL side.
- Barnabas: Continue testing Glamsterdam DevNet 4 locally and coordinate with more CL teams to get ready for launch after Ball DevNet 7.
- danceratopz: Update the HackMD agenda/notes to clarify that the gas limit engine API change (PR #796) is part of Glamsterdam DevNet 4, not Ball DevNet 7.
- Barnabas: Get the Beacon API PR (ProduceBlock v4 with payload) reviewed by Bharat, Jimmy, or other Beacon API spec contributors.
- Paweł: Ensure EIP 8246 (remove self-destruct burn) is scheduled for Glamsterdam DevNet 5, noting its dependency relationship with EIP 7708.
- Marius: Provide a summary of the differences in error codes between his REST SSZ engine API proposal (PR #793) and Barnabas’s proposal (PR #764) for async discussion and ACDE on Thursday.
- danceratopz: Bring the REST SSZ engine API proposal discussion (PR #764 vs PR #793) to ACDE on Thursday for further resolution.
Recording Access: