Skip to content

Conversation

mkalinin
Copy link
Contributor

@mkalinin mkalinin commented Jun 22, 2022

Considering the following EL block tree:

CA <- A1 <- A2 <- HEAD
  \
   <- B1 <- B2 <- B3  

Current spec allows to skip processing in following cases:

  • fcU(head: A2.blockHash), fcU(head: A1.blockHash) -- ancestors of the head of canonical chain
  • fcU(head: B2.blockHash) -- ancestor of a tip of another chain (not a leaf)

After this change, the spec disallows to skip fcU(head: B2.blockHash). For instance, when BeaconBlock(B3) appeared to be invalid but the B3 itself is VALID, and then the network re-orgs to BeaconBlock(B2) the EL must handle such a re-org properly and start a build process if requested.

TODO:

Thanks to @rjl493456442 for helping to identify this issue.

H/t @djrtwo for the review

@djrtwo djrtwo merged commit 773ffd2 into ethereum:main Jun 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-engine Area: for future consideration
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants