Skip to content

Latest commit

 

History

History
125 lines (98 loc) · 8.51 KB

4844-readiness-checklist.md

File metadata and controls

125 lines (98 loc) · 8.51 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. Last updated Sept 8, 2023.

Specs

Implementation

Client Implementation Status

Execution Layer

See the Cancun specification

Consensus Layer

See the latest devnet configs

Spec-level Open Issues

  • SSZ vs. RLP encoding of transactions
  • Big vs. Little endian precompile inputs
  • Returning the modulus as an output for the precompile, see #PR5864
  • Fee Market design
    • [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

  • Re-orgs & Reintroduction of Externally Built Blob Transactions
    • When a re-org happens, if a blob transaction was included via an externally built block, it currently is not possible to re-introduce it in the mempool for re-inclusion in a block. Either this is fine (and builders must manually re-submit such transactions), or CL clients must be modified to provide the blobs in the newPayload API calls
    • June 23 update: https://hackmd.io/aVek93y-QmSv1mz2Agc9iQ#Client-Implementations
  • 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

  • EIP-4844 requires a Powers of Tau ceremony to provide its cryptographic foundation. Resources relevant to the ceremony are available here.
    • The KZG ceremony is now complete. It gathered more than 100,000 contribution, making it the largest such ceremony to date.

APIs

Testing

Note: this document is currently being used to track testing efforts. The sections below may be out of date.

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. Proposed experiment (@djrtwo, @terencechain)
    • PR#5863 reduced the number of targetted blobs to 2, for a target of 0.25mb per block.
  • Hive tests
    • Beacon API Simulator

Execution Layer

End-to-End

  • Hive tests
    • Cancun Fork Simulator
    • Blob Expiry Tests
    • Builder API
      • Builder-Relayer Mock Tests
      • Real MEV-Boost Simulator
  • Sync tests
  • Shadow forks
    • Sepolia shadowfork
    • Goerli shadowfork
    • Mainnet shadowfork
    • Shadowfork with mock builder/relays
    • Shadowfork with public builders/relays
    • Non-finality tests

Tooling

Devnets