feat(c2): parameterize mid-chain Jovian activation with boundary assertions - #4
Merged
Merged
Conversation
…rtions L2_JOVIAN_OFFSET (seconds, relative to rollup genesis.l2_time) activates Jovian mid-chain: the offset goes into the intent's [globalDeployOverrides] (hexutil hex string), the absolute time is read back from rollup.json as the single source of truth, and the FISCO config.genesis schedule aligns to it — three-site consistency by construction (the A1 class of drift is re-checked on a real stack). Isthmus stays the lane baseline (engine -38005 gate admits Isthmus+ payloads only), so only Jovian (and later Karst) can be late; the default (empty offset) keeps today's genesis-active config verbatim. The mode probe's extraData check becomes fork-era aware (a pre-activation head carries the 9-byte Holocene form, not 17-byte Jovian), and check_late_fork.py asserts the boundary after the withdraw leg: pre-block 9B v00 -> activation block all-deposits (0x7e only; observed live as 1 attributes + exactly the 5 Jovian upgrade txs) 17B v01 -> head advances. Deposits-only means no USER transactions — an initial over-strict 'exactly one tx' assertion was corrected against the live observation. Validated end to end: L2_JOVIAN_OFFSET=150, anvil+op-deployer/op-node/batcher @da197e45 + fisco-bcos 9bdcb476c, deposit/withdraw legs green (rc=0, ~490s) and 'OK late-fork boundary: pre@73 9B v00 -> act@74 deposits-only 17B v01 -> head@234'.
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.
What
L2_JOVIAN_OFFSET(seconds, relative to rollup genesis.l2_time) activates Jovian mid-chain:[globalDeployOverrides](l2GenesisJovianTimeOffset, hexutil hex string)config.genesisschedule aligns to it — three-site consistency by construction (the A1-class drift is re-checked on a real stack)Plus: fork-era-aware extraData mode probe (pre-activation head = 9B Holocene form), and
check_late_fork.pyboundary assertions wired after the withdraw leg.Validation (live, full stack)
L2_JOVIAN_OFFSET=150, anvil + op-deployer/op-node/op-batcher @ da197e45 + fisco-bcos 9bdcb476c: deposit/withdraw green (rc=0, ~490s), boundary asserted:OK late-fork boundary: pre@73 9B v00 -> act@74 deposits-only 17B v01 -> head@234The activation block carried exactly 1 attributes deposit + the 5 Jovian upgrade txs, all 0x7e — matching the upstream upgrade-tx count. (An initial over-strict 'exactly one tx' assertion was corrected against this live observation; deposits-only means no USER transactions.)
Fills the biggest gap the batch-2 triage found: both prior full-stack runs had every fork active from genesis. Rollout: merge FISCO side (already on feat/karst-318-integration) → merge this → bump c2-e2e.yml ref.