Skip to content
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

Implement EIP-4844 (proto danksharding) #5681

Closed
58 tasks done
benjaminion opened this issue Jun 2, 2022 · 5 comments
Closed
58 tasks done

Implement EIP-4844 (proto danksharding) #5681

benjaminion opened this issue Jun 2, 2022 · 5 comments
Assignees
Labels
Epic Deneb Issues required to implement Deneb upgrade

Comments

@benjaminion
Copy link
Contributor

benjaminion commented Jun 2, 2022

Specification

Everything that builds on top of previous fork should build on top of Capella, so it is strongly suggested to wait Capella classes to be defined before introducing Eip4844 versions.

Decoupling EIP-4844 blobs

backlog

Nice to have

Tasks below are prior to the blobs decoupling spec change, so may not be required

Configuration

SSZ Containers and schema

Spec

Validator coordinator

Storage

context:

  • expected minimum space requirements (with current mainnet params) for the worst case scenario (maximum blob capacity):
    FIELD_ELEMENTS_PER_BLOB * BLSFieldElement * MAX_BLOBS_PER_BLOCK * MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS * SLOTS_PER_EPOCH = 4096*32 (131KB: max blob size) * 16 (2MB max blobs sidecar) * 4096 * 32 = 256GiB

Update: MAX_BLOBS_PER_BLOCK is now 4 so space requirements goes down to 64GiB

  • we need to serve blobs:
    • by block root from the last finalized blobs to the most recent (to responds with a coupled SignedBeaconBlockAndBlobsSidecar)

    • by slot range for p2p (still need do be decided if coupled or decoupled from blocks)

Other things to consider:

Sync

HistoricalBlockSyncService

  • Implement blob sidecar backfill. This becomes critical since we can consider our head valid only if all blobs within MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS have been downloaded (verified against the corresponding block)

We have to bare in mind that we have to run validate_blobs_sidecar against the alleged coupled block to make sure that they actually couple.

Networking

interesting point from Lion: ethereum/consensus-specs#3113

Beacon API

Engine API

KZG Crypto library

backlog

@tbenr tbenr self-assigned this Aug 22, 2022
@benjaminion
Copy link
Contributor Author

Implementation notes for consensus clients.

@benjaminion
Copy link
Contributor Author

4844 Readiness Checklist

@lucassaldanha
Copy link
Member

@tbenr Are we happy to close this epic now?

@mehdi-aouadi
Copy link
Contributor

@lucassaldanha there is only #7946 left, will close the epic once it's merged

@mehdi-aouadi
Copy link
Contributor

All done now 🥳

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Deneb Issues required to implement Deneb upgrade
Projects
None yet
Development

No branches or pull requests

6 participants