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

feat: add Babylon Finality Gadget For OP Stack #5

Draft
wants to merge 75 commits into
base: v1.9.1
Choose a base branch
from

Conversation

bap2pecs
Copy link

Summary

context: ethereum-optimism/specs#218

an L2 block has 3 status:

  • finalized: derived from the currently finalized part of the L1 chain
  • safe: derived from the currently canonical L1 chain
  • unsafe: not derived from L1

now we are changing it to

  • finalized: derived from the currently finalized part of the L1 chain && the block is EOTS verified
  • safe: same
  • unsafe: same

After studying the OP codebase, we think the only place we need to change is in the EngineQueue::Step() function

It's worth noting we don't need to worry about EngineQueue::Reset() where sync.FindL2Heads() is called. Digging into the code, this calls into op-geth to get the current L2 forkchoice state including the finalized head. Since the data there was also from the derivation pipeline, it should return the correct block.

@bap2pecs bap2pecs changed the base branch from develop to v1.9.1 September 15, 2024 08:20
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 this pull request may close these issues.

4 participants