-
Notifications
You must be signed in to change notification settings - Fork 941
Closed
Labels
Description
Description
Thanks a lot @dknopik and @MariusVanDerWijden for kick starting the Lighthouse implementation!
The main Lighthouse EIP-4844 branch will be here: https://github.com/sigp/lighthouse/tree/eip4844
This branch currently has a lot of boiler plate implemented but there is still a lot of functionality missing. The goal in the short term is to at least get this branch far enough along to participate in devnets. I'll write up issues for the tasks listed below and link them here. All the specs are still under development so the info here will likely change.
Tasks [Outdated - See below comment]
Primary
- Block and blob processing
- We could treat blocks as optimistic until blobs are validated
- A
BlobHandlesimilar toExecPayloadHandlebut would be for an RPC request and include a channel receiver from gossip - Verifying kzg commintments against transactions - this is specified in gossip and block processing
- Block production
- Includes kzg proof construction
- KZG implementation status
- https://github.com/benjaminion/c-kzg - from what I can tell no rust bindings yet
- https://github.com/ralexstokes/kzg
BlobSidecarsigning- Implementation of Beacon API changes to support unsigned and signed blob communication
- Gossip validation
- blob and block validation are currently independent of each other in gossip
- Make the execution payload into a
superstruct- Mark and Michael have been working on this in our Capella implementation. We will similarly need this because there are new fee market fields in the execution payload.
Secondary
- Blob pruning
- Newtype SSZ derive
#[ssz(transparent)]
Outstanding Questions
- Will blocks and blobs be gossiped and RPC'd together? Currently no on the devnet
- Should we include
BlobsByRootin RPC? - Should
BlobsByRangeuse signed or unsigned blobs?
Spec Links
- Meta Spec - https://hackmd.io/@protolambda/eip4844-meta
- Execution API - EIP-4844: engine_getBlobsBundleV1 specification, extension of engine API ethereum/execution-apis#197
- Beacon API - Does not exist yet but we'll need something for block production
- Consensus specs - https://github.com/ethereum/consensus-specs/tree/dev/specs/eip4844
- The EIP itself
- EIP 4844 Devnet repo - https://github.com/Inphi/eip4844-interop
Other Useful Links
- Prysm implementation notes https://hackmd.io/hZefl5F5RgWXeibgWflRQQ?view
- Notes on whether to couple block and blob in RPC/gossip https://notes.ethereum.org/RLOGb1hYQ0aWt3hcVgzhgQ?view
- General FAQ https://notes.ethereum.org/@vbuterin/proto_danksharding_faq#What-is-proto-danksharding-aka-EIP-4844
- Readiness checklist https://github.com/ethereum/pm/blob/master/Breakout-Room/4844-readiness-checklist.md
dknopikpawanjay176, michaelsproul, 0xGabi, zsluedem and lonerapiermrabino1