-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
op-node: handle sequencer errors with derivation-levels, reset when L1 origins are inconsistent #4930
Conversation
|
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## develop #4930 +/- ##
===========================================
- Coverage 40.92% 36.26% -4.66%
===========================================
Files 324 183 -141
Lines 19648 15575 -4073
Branches 770 0 -770
===========================================
- Hits 8041 5649 -2392
+ Misses 11007 9351 -1656
+ Partials 600 575 -25
Flags with carried forward coverage won't be shown. Click here to find out more.
|
…1 origins are inconsistent, test reset handling
…t upon sealing reset-err, extend godoc
f13e63a
to
36dca77
Compare
@tynes ready for review again |
Description
On Goerli we have hit an interesting sequencer edge-case:
This situation locks up the chain until the sequencing window elapses. To prevent this, we need the sequencer to build a good L2 block, without having to restart it manually to get it back onto an unsafe L2 head with good L1 origin (the work-around we've executed two times now).
Changes:
idleDerivation
; the sequencing and derivation codepaths are already independent, and handle conflicts through through the shared engine-controlRunNextSequencerAction
to handle when starting/sealing fails due to crit/reset/temp/other error.RunNextSequencerAction
bubble up the error if it's critical, it's up to the driver to handle that (in this case log + shutdown driver, since we prefer safety over liveness).Tests
Reset()
call to recover from.Invariants
Ensure that the selected L1 origin of every new sequenced L2 block is consistent (i.e. equal or parent-hash of new block matches current) with the previous L1 origin, and execute a reset to make things consistent otherwise.
Additional context
Follow-up to Goerli sequencing issue.
Metadata
Fix CLI-3404