Agenda
- Development updates
- Spec updates
- Testing updates
- and more
Meeting Time: Tuesday, September 01, 2026 at 13:00 UTC (60 minutes)
Meeting Time: Tuesday, September 01, 2026 at 13:00 UTC (60 minutes)
The meeting focused on the Fossil Breakout 41 session where team members provided status updates on client implementations and discussed specification changes. Iván reported updating their implementation to pass latest spec tests, while Mehdi confirmed a DevNet zero branch for Teku was ready with recent spec changes including signed inclusion list, max size, and transactions emptiness check. Fabio indicated Vessel’s DevNet0 branch was ready but needed verification on BlockNumberBus spec changes, and Pelle confirmed Rath’s fossil-devnet-0 branch was updated and passing most tests. The team discussed two key specification changes: adding a 40KB limit for inclusion lists (which was approved as a minor oversight correction) and implementing new validity rules to reject empty transactions while ignoring empty inclusion lists. The group debated the practicality of these new rules, with some arguing they serve as defensive mechanisms while others questioned their necessity given current system design. Soispoke also mentioned an EIP related to FOSIL and FRAMES interaction that needed more expert review, particularly from the fossil team.
The team provided updates on their implementation progress for the Fossil DevNet 0 launch. Iván reported passing latest spec tests with some fixture and harness issues being addressed through PRs. Mehdi confirmed a DevNet zero branch for Teku with recent spec changes, including signed inclusion list and max size adjustments, and successfully ran local interop testing with multiple clients. The team discussed spec changes, particularly PR 5576 which adds new validity rules for transaction lists, with Jihoon expressing concerns about the practicality of checking for empty transactions and transaction lists.
The team discussed a 40K byte limit for PIP object sizes in transaction lists, with Justin Traglia providing calculations showing how this number was derived based on maximum transaction sizes and offsets. They debated whether to add a new check preventing empty transactions from being included in inclusion lists, with Mehdi viewing it as a defensive mechanism while others like Justin Florentine and Fabio supported the addition due to safety concerns. The group agreed to specify in the engine API that inclusion lists should return non-empty transactions, with Justin Florentine recommending over-specifying given the current state of RPC documentation.
The team discussed adding tests for the get inclusion list endpoint, with Fabio supporting the idea based on a previous issue discovered by Mehdi. Jihoon raised concerns about the non-deterministic nature of the endpoint, noting that it’s difficult to predict expected results due to varying client implementations. Justin suggested an alternative approach using a debug namespace method in the test space, though the team didn’t reach a final decision on the specific implementation approach.
The team discussed two main topics regarding censorship detection and inclusion list validation. For censorship detection, they debated whether to standardize heuristics across clients versus allowing different implementations, with soispoke arguing that having varied approaches makes it harder to game the system. Regarding inclusion list validation, they agreed to add two rules: rejecting empty transactions and ignoring empty inclusion lists. Soispoke also mentioned an EIP (8369) related to FOSIL and FRAMES interaction that needs review from the team.
it2S!Crg)it2S!Crg)it2S!Crg)YouTube recording available: https://youtu.be/owjg1QnsiSc
The first FOCIL devnet is one local interop away.
ethrex: Iván updated ethrex to the latest spec tests and is passing all of them. He opened a couple of PRs to execution-specs to fix the problems with the fixtures and the harness.
Besu: Fabio updated Besu to the latest spec tests and is passing all of them.
Reth: Pelle has a devnet-0 branch that is passing the Hive tests and succeeded in basic interop with other clients.
Nethermind: Marc has a devnet-0 branch that is passing all the tests.
Teku: Mehdi updated its devnet-0 branch to include the recent spec changes. A local interop with Lodestar, ethrex and Besu worked fine. He is still looking into a few small timing issues and will keep the branch updated.
Lodestar: NC updated its devnet-0 branch to alpha.14.
Lighthouse: Cristian said Lighthouse is in development and most of the FOCIL work is in review.
consensus-specs#5544, which changes the IL store key to a pair of slot and dependent root, was merged and included in alpha.14.
consensus-specs#5576 raises MAX_SIGNED_INCLUSION_LIST_SIZE to 41112 bytes and adds gossip conditions that check transaction emptiness. After a discussion, people settled on two emptiness checks: reject an IL that contains an empty transaction and ignore an IL that has no transactions.
Jihoon asked the EL people whether Hive tests for getInclusionList are worth having. His concern is that getInclusionList is non-deterministic. Given a set of transactions in the mempool, no particular IL is the expected outcome.
Justin asked how committed people are to having every client implement a different heuristic for censorship detection, and whether the question can be run by ACD. The mempool itself is non-deterministic, but if the heuristic were standardized, a Hive test would be reliable enough to test over.
Thomas said there is no objective function that detects censorship and that it has always been heuristics. He recalled the OFAC sanctions dashboards where everyone used their own metrics. Different rules across clients make the heuristic harder to game.
Jihoon will discuss this with STEEL and bring it up at the next ACDT to get more input.
Thomas shared EIP-8369 that is aimed at understanding how FOCIL and Frames interact. VOPS (Validity-Only Partial State) is the part of the state that mempool nodes have to store so they can evaluate whether transactions are valid. It’s easy with regular transactions, but it gets much harder with Frames.
People will use the next FOCIL breakout to go over EIP-8369 with a Q&A.