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 support for ephemeral headers #741

Open
6 of 14 tasks
acolytec3 opened this issue Feb 27, 2025 · 0 comments · Fixed by #733
Open
6 of 14 tasks

Implement support for ephemeral headers #741

acolytec3 opened this issue Feb 27, 2025 · 0 comments · Fixed by #733

Comments

@acolytec3
Copy link
Collaborator

acolytec3 commented Feb 27, 2025

Ephemeral headers are the section of the chain between the current head and end of the post most recent CL sync period. Since the HistoricalSummaries which contains the finalized block roots for each sync period, doesn't have a finalized root for blocks in the current period (since it's not been finalized yet), we keep "ephemeral" headers and provide them in responses to FINDCONTENT messages. Ideally, our set of ephemeral headers should include headers starting with the header contained in the most current optimistic update we know and then contain ancestors of that header back to the first block in the sync period.

Here is all the work I'm aware of related to supporting this:
To-dos:

  • Implement support for storing ephemeral headers in the HistoryNetwork Implement support for ephemeral headers #733
  • Maintain an ephemeralHeaderIndex of block numbers to hashes Implement support for ephemeral headers #733
  • Report the current number of ephemeral headers contained in our DB in the History_Radius ping/pong payloads Implement support for ephemeral headers #733
    • Add pingPongPayload to HistoryNetwork
    • Remove History_Radius from BaseNetwork
  • Add support for returning ephemeral headers in response to FINDCONTENT messages Return ephemeral headers in FOUNDCONTENT #744
  • Downvote/ban/ignore clients who give invalid responses to ephemeral header FINDCONTENT requests
  • Integrate beacon network head tracking
    • Purge ephemeral headers once we roll over to a new sync period
    • Implement strategy for requesting ephemeral headers from peers when we don't have the whole recent sync period
    • Verify that ephemeral headers are only requested for blocks newer than the most recent finalized sync period
    • Ensure that we have HistoricalSummaries before requesting ephemeral headers
    • Only accept ephemeral headers that are more recent than latest block in latest finalized sync period
    • Add ephemeral header on each new optimistic update
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant