Commit 31444eb3 authored by protolambda's avatar protolambda Committed by GitHub

op-node: sanity-check the forkchoice updates (#11780)

parent 67ba188e
......@@ -34,6 +34,11 @@ func (eq *EngDeriver) onBuildStart(ev BuildStartEvent) {
SafeL2Head: eq.ec.safeHead,
FinalizedL2Head: eq.ec.finalizedHead,
}
if fcEvent.UnsafeL2Head.Number < fcEvent.FinalizedL2Head.Number {
err := fmt.Errorf("invalid block-building pre-state, unsafe head %s is behind finalized head %s", fcEvent.UnsafeL2Head, fcEvent.FinalizedL2Head)
eq.emitter.Emit(rollup.CriticalErrorEvent{Err: err}) // make the node exit, things are very wrong.
return
}
fc := eth.ForkchoiceState{
HeadBlockHash: fcEvent.UnsafeL2Head.Hash,
SafeBlockHash: fcEvent.SafeL2Head.Hash,
......
......@@ -269,6 +269,11 @@ func (e *EngineController) TryUpdateEngine(ctx context.Context) error {
if e.IsEngineSyncing() {
e.log.Warn("Attempting to update forkchoice state while EL syncing")
}
if e.unsafeHead.Number < e.finalizedHead.Number {
err := fmt.Errorf("invalid forkchoice state, unsafe head %s is behind finalized head %s", e.unsafeHead, e.finalizedHead)
e.emitter.Emit(rollup.CriticalErrorEvent{Err: err}) // make the node exit, things are very wrong.
return err
}
fc := eth.ForkchoiceState{
HeadBlockHash: e.unsafeHead.Hash,
SafeBlockHash: e.safeHead.Hash,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment