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.
- Execution Layer: EIP-4844
- Consensus Layer: consensus-specs
deneb
folder - Engine API:
blob-extension.md
See the Cancun specification
See the latest devnet configs
- SSZ vs. RLP encoding of transactions
- EIP-4844 transactions will maintain RLP encoding, see: ethereum/EIPs#6985
- 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
- Decided against this in Implementers' Call 5
- 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
- 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
- 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)
- Sync Strategy (@djrtwo, @terencechain)
- 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.
Note: this document is currently being used to track testing efforts. The sections below may be out of date.
- consensus-specs tests
- See the
deneb
folder
- See the
- 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-spec-tests, tracker
- RLP Blob Transactions
- ExcessDataGas Header Field/Gas Accounting
- DATAHASH Opcode
- Point Evaluation Precompile
- Hive tests
- Docker resource constraints
- Engine API Tests
-
engine_getPayloadV3
-
engine_newPayloadV3
- Transaction Pool
- Spam transactions
- Invalid transactions
- Fee market
-
- Pyspec Update
- 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