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

[Tracking] - EIP-4844 #11579

Closed
25 tasks done
terencechain opened this issue Oct 26, 2022 · 1 comment
Closed
25 tasks done

[Tracking] - EIP-4844 #11579

terencechain opened this issue Oct 26, 2022 · 1 comment
Assignees
Labels
Blobspace Tracking Gotta Catch 'Em All

Comments

@terencechain
Copy link
Member

terencechain commented Oct 26, 2022

Background

With many eyes on EIP4844 lately, we need a canonical tracking issue to start capturing tasks needed in Prysm to support EIP4844. There have been many ongoing parallel efforts on implementing 4844 for prysm and those branches are scattered over the places. We should consolidate them in one place. This Issue will capture the detailed todos and push EIP4844 forward with Prysm

New container

  • Add new sidecar containers
  • Modify beacon block containers
  • Modify execution payload containers

KZG library

  • Pick a KZG library to use
  • Pick a backup KZG library to use
  • Do we need to write any wrappers on top of the KZG libraries?

Consensus layer changes

  • Add process_blob_kzg_commitments and verify_kzg_commitments_against_transactions to validate commitments across payload raw transactions
  • Add validate_blobs_sidecar which uses evaluate_polynomial_in_evaluation_form and verify_kzg_proof
  • State transition should be aware of beacon objects under Capella/EIP4844 version
  • State transition should upgrade to Capella/EIP4844 version

Networking changes

  • New gossip handler for beacon_block_and_blob_sidecar
  • New req/res handler to request and respond blob_sidecar by ranges
  • Update the same req/res handler for Capella/EIP4844 beacon_block
  • New Capella/EIP4844 fork digest and fork watcher

Validator changes

  • Use new engine API to retrieve payload and sidecar in one go
  • Add KZG proof construction for block proposal
  • Validator can sign new beacon block
  • Validator can sign sidecar

RPC changes

  • Various RPC methods have to support Capella/EIP4844 block request/respond
  • Support retrieving sidecar by block root or block slot
  • Support retrieving individual blob by blob hash or commitment

Database changes

  • Can save sidecar
  • Can prune sidecar after N epochs (rolling window style). Optional: N can be a parameter
  • We might need some lookups such as beacon_block_root -> execution_block_hash or vice versa

Testing

  • Can sync devnet with the new branch
@terencechain
Copy link
Member Author

Marking this as completed with devnet3 running. We'll open another issue to track the follow-ups

https://hackmd.io/q1SLCaubTIWw_1zsEjW_Vg?view

@terencechain terencechain mentioned this issue Dec 24, 2022
15 tasks
@terencechain terencechain self-assigned this Dec 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Blobspace Tracking Gotta Catch 'Em All
Projects
None yet
Development

No branches or pull requests

1 participant