You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Beacon-kit currently asynchronously pushes forkchoice updates to the Execution Layer client over the Engine API via go s.sendPostBlockFCU(ctx, st, cBlk). When this forkchoice update fails, the beacon-kit node will simply continue on processing blocks and not updating the EL client on the new finalized block and the current head of the chain.
In my opinion, beacon-kit cannot simply move on with processing blocks if the forkchoiceUpdate is failing for any reason. At the same time, it is difficult to suggest returning error in FinalizeBlock(). Beacon-kit should introduce error handling that attempts to recover from recoverable errors and prevents the node from participating until the issue with the Engine API is resolved.
A potential path forward would be to start the FCU in a goroutine that:
retries on ephemeral error, with an exponential backoff that will timeout eventually
errors when there is an unrecoverable failure
prevents the beacon-kit node from participating (not proposing, verifying proposals, or processing new blocks) until the forkchoice is updated on the EL.
The text was updated successfully, but these errors were encountered:
Beacon-kit currently asynchronously pushes forkchoice updates to the Execution Layer client over the Engine API via
go s.sendPostBlockFCU(ctx, st, cBlk)
. When this forkchoice update fails, the beacon-kit node will simply continue on processing blocks and not updating the EL client on the new finalized block and the current head of the chain.In my opinion, beacon-kit cannot simply move on with processing blocks if the forkchoiceUpdate is failing for any reason. At the same time, it is difficult to suggest returning error in
FinalizeBlock()
. Beacon-kit should introduce error handling that attempts to recover from recoverable errors and prevents the node from participating until the issue with the Engine API is resolved.A potential path forward would be to start the FCU in a goroutine that:
The text was updated successfully, but these errors were encountered: