feat(op-node): default syncmode.offset-el-safe to 12h#21033
Merged
Conversation
Set --syncmode.offset-el-safe to a nonzero default so safe and finalized heads no longer collapse onto the unsafe tip when EL sync completes (the correctness bug from #17631). 12h matches the OP Mainnet sequencing window: past the seq window, derivation can deterministically validate the retracted range, giving the minimum offset that restores safe/finalized correctness without demanding the multi-day derivation backlog a 168h default would impose. Also relax the validator: when --syncmode != execution-layer, log a warning and zero the offset instead of erroring, so the new default is non-breaking for CL-sync deployments.
karlfloersch
approved these changes
May 27, 2026
Contributor
There was a problem hiding this comment.
I'd recommend also getting approval from others, but I'm personally in favor of this change.
The only reason we didn't set it to 12 hours initially was to keep usage of the feature as opt-in. However, I think we really should set default behavior to 12h because a zero offset is a significant foot gun.
Member
Author
|
Currently running a sync test at |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
--syncmode.offset-el-safefrom0to12h, matching the OP Mainnet sequencing window (SeqWindowSize = 3600L1 blocks × 12s). Activates the offset mechanism from op-node: offset_derived for EL-sync safe/finalized retraction #19972.Check()rejection of a nonzero offset under non-EL sync modes;NewSyncConfignow warns and zeros the offset instead, so the new default is non-breaking for CL-sync deployments.Background
After EL sync completes, op-node sets
safe = finalized = unsafe tipwithout any derivation having validated that range — a correctness bug raised in #17631. #19972 added--syncmode.offset-el-safeto retract safe/finalized by a configurable duration and let derivation forward-validate, but it shipped with a0default, leaving the bug latent.Why 12h
Refer #17631 (comment)
Related