Since last week's deep-dive into fundamental knowledge, I went on to explore the EIP-8304 spec for Trustless Logs Indexing in depth. And thanks to @RazorClient and a GitHub issue, I was once again working with the most recent data[1] rather than a stale link.
Changing the format a bit to be more succinct and point-oriented.
Areas of research were:
- 4788-style deployment[2]
- Existing SSZ implementations[5] — found micro-eth-signer[6], which could be a good reference for the future
- EIP-8304 and Vansh's PoC[7]
- The geth client in dev mode, and exploration of the existing codebase, including the existing 7745 implementation
Clarified in the project proposal:
- One of the other fellows would need to figure out the Kurtosis testnet[8] and the tooling around it
- Testing would be similar to existing 4788-like implementations
table_rootis a potential integration point for parallel tracks
Output:
- For testing, we might not need to run a full sync, as the spec's suggested solution works on an isolated example
- Added to the proposal: the client library for testing would be viem as an experimental feature[9]. I'm quite familiar with the viem and wagmi codebases.
- We'd need to produce documentation for the Pureth docs[10]
Open questions:
Collabs:
If anyone is also planning or would want to participate in a future EIP-8304 implementation project, reach out via Discord and we'll share an early project proposal draft.
Next:
For the next step, I'll continue reading into the dependencies of EIP-8304 and related knowledge to prepare a first public draft of the project proposal, with a proposed timeline and scope.
PRs:
- The first PR for Ethereum specs[13] got merged — there was a useful comment about[14]
slotted_freezable.
Sources
- [1]github.com/ethereum/EIPs/pull/11811EIP-8304 spec pull request (ethereum/EIPs #11811) — the current draft.
- [2]eips.ethereum.org/EIPS/eip-4788EIP-4788: beacon block root in the EVM — the deployment pattern referenced.
- [3]eips.ethereum.org/EIPS/eip-7002EIP-7002: execution-layer triggerable withdrawals — a similar system-contract use case.
- [4]vanshs.eth.limoVansh — a fellow collaborator on the project.
- [5]pureth.guide/implementations-sszPureth guide list of existing SSZ implementations.
- [6]github.com/paulmillr/micro-eth-signerpaulmillr/micro-eth-signer — a minimal Ethereum library, a possible reference.
- [7]github.com/VanshSahay/go-ethereum/tree/8304Vansh proof-of-concept for EIP-8304 on a go-ethereum branch.
- [8]github.com/ethpandaops/ethereum-packageethpandaops/ethereum-package — Kurtosis package for spinning up test networks.
- [9]viem.sh/experimentalviem experimental features — the proposed client library for testing.
- [10]github.com/etan-status/pureth-annotated-specetan-status/pureth-annotated-spec — the Pureth annotated spec docs.
- [11]EIP-8304 PR — the SSZ list reference (diff)The exact spot in the EIP-8304 diff referencing an SSZ list.
- [12]eips.ethereum.org/EIPS/eip-7916EIP-7916 — the SSZ list EIP I assume the spec points to.
- [13]github.com/ethereum/execution-specs/pull/3037My first PR to ethereum/execution-specs (#3037), now merged.
- [14]github.com/ethereum/execution-specs/pull/3037#discussion_r3500607605Review comment on PR #3037 about slotted_freezable.