Skip to content

Latest commit

 

History

History
107 lines (79 loc) · 7.55 KB

4844-readiness-checklist.md

File metadata and controls

107 lines (79 loc) · 7.55 KB

EIP-4844 Readiness Checklist

This document is meant to capture various tasks that need to be completed before EIP-4844 is ready to be scheduled for mainnet deployement. Github handles for owners of various tasks are indicated between parentheses beside the task. If are working on something not listed here, please open a PR against this file to indicate it.

Specs

Implementation

Client Implementation Status

Execution Layer

Client Status Tracker Implementation Link
go-ethereum WIP implementation N/A Link
Nethermind WIP implementation Link Link
Erigon WIP implementation N/A Link
Besu Issue Opened Link N/A

Consensus Layer

Client Status Tracker Implementation Link
Prysm WIP prototype & production implementations Link devnet prototype, prysm production
Teku Issue Opened Link Link
Lighthouse WIP implementation Link Link
Lodestar WIP implementation Link ChainSafe/lodestar#4774
Nimbus Implementation in progress Link Link

Resources

Spec-level Open Issues

  • Returning the modulus as an output for the precompile (@adietrichs) , see #PR5864
  • Fee Market design (@adietrichs)
    • [Solved by PR#5707] The current fee market for blob tracks the long-run average of blobs, which is different from EIP-1559 that tracks the short-term gas usage. This has implications on the most optimal way for blobs to be sent, i.e. whether there are many short bursts of blobs or a constant "stream" of them. See here for more context.
  • Blob Retention Period
    • [Solved by PR#3047] The longer blobs are stored, the higher the storage cost imposed on network nodes. The retention period needs to be set taking into account blob size [blocker], node sync time, and optimistic rollup fraud proof windows.
  • Optional Setting the minimum gas price for blobs >1 wei, see PR#5862

Client-level Open Issues

  • KZG support in Library
    • Need efficient library support for the cryptographic operations required to verify and interact with blobs, compatible with all clients' programming language.
  • Gossiping of blob transactions (@MariusVanDerWijden)
    • [Resolved by introducing eth/68] Large blob transactions are expensive to gossip over the network. Solution: enable node to announce & request specific transactions rather than gossip them by default.
    • PR#5930m makes eth/68 a dependency of EIP-4844.
  • Sync Strategy (@djrtwo, @terencechain)
    • [Resolved with PR#3046] Blobs can either be synced coupled to CL blocks, or independently from them. The tradeoffs to each approach are explained here and here. For gossip, block and blobs will be coupled. For historical sync, they will be decoupled.

KZG Ceremony (@tvanepps & @CarlBeek)

  • EIP-4844 requires a Powers of Tau ceremony to provide its cryptographic foundation. Resources relevant to the ceremony are available here.

APIs

Testing

Consensus Layer

  • consensus-specs tests
  • Networking Overhead Analysis
    • Blobs add to the bandwidth requirements of the CL gossip network. Analysis on how many blobs should be included per block to maintain acceptable bandwidth and hardware constraints is required. Discussed in Breakout Room #4.
    • WIP Proposed experiment (@djrtwo, @terencechain)
    • PR# reduced the number of targetted blobs to 2, for a target of 0.25mb per block.

Execution Layer

  • State/blockchain tests
    • Block Header changes
    • Transaction format
    • DATAHASH opcode
    • Point evaluation precompile
  • Hive tests
    • Docker resource constraints
    • CL mocker update
  • Transaction Pool
    • Spam transactions
    • Invalid transactions
    • Fee market

Tooling

Devnets