-
Notifications
You must be signed in to change notification settings - Fork 973
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EIP-4844: consensus-layer specs of Shard Blob Transactions #2850
Conversation
Thank you ❤️ 😄 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice!
Co-Authored-By: terenc3t <[email protected]> Co-Authored-By: djrtwo <[email protected]>
Implemented changes based on review, thank you @terencechain and @djrtwo. And opened #2852 to track the remaining items like pyspec changes and move of download requirement from validator-doc to fork-choice-doc. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you @protolambda!
we'll merge this and move to the tracking issue for subsequent convo and development.
I really like that this is in a "feature" dir so it makes the notion of merging soon much easier :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Creating
This PR outlines the consensus-layer changes for EIP-4844.
Changes (split across multiple docs like other hardforks, in a "feature directory" named
eip4844
):BeaconBlockBody
to track the KZG commitments of the blobsBlobsSidecar
to sync blobs.Also note the(edit: not adding theshard
field for forward compatibility - I think we can afford the mere 8 zero bytes in the blobs type to be compatible with a likely path forward with full sharding.shard
field anymore)SignedBlobsSidecar
to gossip blobs: initially the signature is available. Long-term we cannot rely on the sidecar signature being available however, blobs are synced without signture (but still verified with KZG against the beacon block). The signature functions as a spam protection in gossip.fork.md
to define how to proceed with EIP-4844 testnet upgrade.BlobsSidecarsByRange
to sync blobs: no by-root equivalent since the expectation is to sync blobs after having a reference beacon chain that misses them. Additionally the serving span is reduced to a month (data availability period caps it naturally) compared to that of 5 months of beacon blocks. And nostep
here, based on previous complaints dev-feedback about the beacon blocks variant.Possible TODO (or maybe for a later PR): the honest-validator spec covers the blob download obligation currently, but we should maybe emphasize it as a forkchoice-dependency. I am not aware of a dependency system in the existing fork-choice docs though, so it may require some refactoring (help/feedback appreciated there).
Once the EIP has gone through more testing and review, and once there is rough-consensus on inclusion in a hardfork, then we can merge the
eip4844
feature-directory with other consensus features of that hardfork. The next consensus fork after the Merge, dubbedCapella
currently, being the primary target.In a follow-up PR I can work on enabling pyspec generation from this feature set, and corresponding testing. Need a stable base + format first before we refactor code-gen to support features instead of just phases.