-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Do not call repeated times FCU #12091
Conversation
} | ||
|
||
return nil | ||
// Only need to prune attestations from pool if the head has changed. | ||
return s.pruneAttsFromPool(headBlock) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would it be possible to refactor and return the headblock,isNewHead,isNewProposer instead? this way we can also use it for the postBlockOperations?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I dont think we should alter the signature. Some options are:
- call
postBlockOperations
here - call
postBlockOperations
downstream but return nil on non-canonical block
if !isNewHead { | ||
return nil | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the most significant change in this PR
This PR, with deceptively low line count, addresses a few issues
It is important to notice that this PR effectively changes the way we deal with the engine API under some circumstances. For example, when inserting an early non-canonical block, we will not send an FCU even if proposing next slot, this is deferred until 4 seconds into the slot.
There are two main issues that are left unattended
on_tick
will race to process attestations and update head. On the one hand a second call to process attestation is almost a noop. The second call to updateHead is a noop.Accompanying doc with all edge cases analysis https://www.notion.so/arbitrum/Late-Block-Reorgs-c35737afbf4b4631b98b666872dd565c