Remove should_override_forkchoice_update#5174
Conversation
d003b9a to
4749210
Compare
|
Amazing, I support this 100%. As the original author of |
mkalinin
left a comment
There was a problem hiding this comment.
LGTM! 👍
The corresponding Engine API change is applied since Paris/Bellatrix, so should_override_forkchoice_update may be completely dropped from the spec regardless of any forks.
One of the concerns is client update coordination. Using EL client that doesn’t yet support reorgs ancestors with CL client that dropped should_override_forkchoice_update support might cause issues. So, it’s probably better to include both changes into Gloas mainnet release and leverage on that natural point of coordination.
|
Hey @ensi321, there are some helper functions which only exist because of this deleted function. We should delete them too. Eg cc @mkalinin & @jihoonsong. |
I think |
|
EDIT: misread, see below |
|
Ohh my bad, I misread your comment. You wanted my take on deleting It's not clear to me why it isn't necessary post-Gloas. If a beacon block is revealed late and gets 0 attestations don't we still want to be able to reorg it? And its payload? |
I don't see why that would change with gloas, you can still earn more money by delaying the beacon block and give you more time before committing to a payload, timing games still exist also you wanna punish the proposer for publishing late and not the honest attesters that missed the head vote? |
|
imo we should keep This PR is just to simplify the proposer boost re-org by no longer needing to override fcu. |
|
Okay, sounds good. Will let @jihoonsong review/merge this one, if and when he thinks it's ready. |
|
Will take a good look next week. |
Currently with proposer boost reorg enabled, proposer of next slot can suppress fcu call (as laid out by
should_override_forkchoice_update), if it thinks there is a chance the current head block can be reorged out. This is done so because EL could previously skip processing anengine_forkchoiceUpdatedcall if headBlockHash referenced any ancestor of the EL's current canonical head.With ethereum/execution-apis#786, the EL can only skip an fcU if headBlockHash is an ancestor of the finalized block. Since reorg targets are always within the unfinalized chain, the EL must now process them. This makes
should_override_forkchoice_updateunnecessary. We can just rely onget_proposer_headto reorg without doing any prediction before hand.This PR removes
should_override_forkchoice_updateitself and anything references it.