Skip to content

Latest commit

 

History

History
110 lines (81 loc) · 6.83 KB

4844-readiness-checklist.md

File metadata and controls

110 lines (81 loc) · 6.83 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 Link
go-ethereum WIP Prototype Link
Nethermind Issue Opened Link
Erigon N/A
Besu N/A

Consensus Layer

Client Status Link
Prysm WIP prototype & production implementations devnet prototype, prysm production
Teku Issue Opened Link
Lighthouse WIP implementation Link
Lodestar N/A
Nimbus N/A

Resources

Spec-level Open Issues

  • Fee Market design (@adietrichs)
    • [Fixed in 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.
    • A minimum gas price for blobs needs to be determined, see PR#5862
  • WIP: Exposing the Modulus in precompile
  • WIP: 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
  • Blob Retention Period
    • [Resolved 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.

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.
    • WIP: c-kzg, an implementation in C based on BLST (@dankrad)
    • WIP: BLST support for this (@asn-d6)
  • Networking Overhead Analysis
    • As per the current spec, blobs can be up to 2MB in size. This adds to the bandwidth requirements of the CL gossip network. Analysis about whether this value acceptable given current bandwidth and hardware constraints is missing. Discussed in Breakout Room #4.
    • WIP Proposed experiment (@djrtwo, @terencechain)
    • Results from this can inform both the blob size and blob retention period.
  • 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.
  • 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.

APIs

Testing

Consensus Layer

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

Other

Tooling

Devnets