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

Add quarantine to forkedchain #3056

Open
arnetheduck opened this issue Feb 9, 2025 · 1 comment · May be fixed by #3095
Open

Add quarantine to forkedchain #3056

arnetheduck opened this issue Feb 9, 2025 · 1 comment · May be fixed by #3095
Labels

Comments

@arnetheduck
Copy link
Member

When syncing, the syncer works with stale information with respect to the latest blocks arriving from the CL - as such, when the syncer is about to finish, it's likely that the chain has moved on to a new block or blocks that the EL has observed and discarded.

Instead of using the syncer to top up this end-game gap, a quarantine in FC can hold up to N blocks that arrive from the API and/or elsewhere (doesn't matter where it comes from really) and apply these - it works the following way:

  • when a block arrives whose parent is unknown, it is put in a bounded quarantine
  • every time a block with a known parent is successfully added to FC, the quarantine is examined for blocks whose parent is now known (the block just added).
  • These blocks are applied, removing them from the quarantine and repeating the process until no more blocks can be applied.
@arnetheduck
Copy link
Member Author

A similar quarantine concept exists in eth2 - it can probably be copied and adapted to the eth1 use case: https://github.com/status-im/nimbus-eth2/blob/unstable/beacon_chain/consensus_object_pools/block_quarantine.nim#L39

@jangko jangko added the EL label Feb 11, 2025
@jangko jangko linked a pull request Feb 19, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants