Skip to content

op-supernode v1.0.0

Choose a tag to compare

@sebastianst sebastianst released this 02 Aug 01:22
Immutable release. Only release title and notes can be modified.
a9a8dad

Important

First stable release of op-supernode. This spans everything since v0.2.1 and includes operator-visible behaviour changes — review before upgrading.

Caution

Behaviour changes that can affect startup and configuration:

  • op-supernode now fails startup when the deny list cannot be opened, instead of continuing silently (#21997).
  • Interop log backfill now defaults to 7 days (#20577); depth is also settable via env var (#20566).
  • New top-level --dependency-set flag (#20976).
  • The Interop hardfork has been renamed to Lagoon (#21105).

Note

Storage and recovery internals changed substantially: the LogsDB is now raft-WAL backed
(#20688) and rewind/invalidate operations write canonical payloads through a WAL
(#21015).

What's Changed in op-supernode/v1.0.0

  • op-supernode: Fail startup when deny list cannot be opened by @ajsutton in #21997
  • op-supernode: gate unsafe ingestion during invalidation recovery by @karlfloersch in #21991
  • feat(op-supernode): honor explicit per-chain p2p key path by @jelias2 in #21436
  • fix(op-supernode): error instead of silently dropping chains in interop cycle detection by @ajsutton in #21303
  • feat(interop): dedicated RPC error code for failsafe (-320602) by @ajsutton in #21205
  • Lagoon hardfork rename by @digorithm in #21105
  • fix(op-supernode): block on VN readiness after Resume in rewind/invalidate by @digorithm in #21163
  • fix(op-node): preserve safedb across EL-sync restarts by @sebastianst in #21111
  • feat(op-supernode): pre-initialize interop decision metric series by @ajsutton in #21162
  • fix(op-supernode): dial interop engine controller lazily by @ajsutton in #21152
  • feat(op-supernode,op-sync-tester): drive supernode VN via sync-tester EL + finalize anchor at genesis by @ajsutton in #21107
  • feat(supernode): gate per-chain RPC during VN lifecycle transitions by @wwared in #21103
  • chore(supernode,interop-filter): remove virtual-parent indirection from logsDB by @ajsutton in #21083
  • op-supernode: add interop cold start progress logging by @jelias2 in #20961
  • fix(op-node,op-supernode): redesign SuperAuthority safe/finalized head as tri-state by @ajsutton in #21049
  • chore(op-supernode): collapse SuperAuthority to a single verifier by @ajsutton in #21077
  • fix(op-supernode): retry RewindEngine on DeadlineExceeded by @ajsutton in #21023
  • feat(op-supernode): WAL canonical payloads for rewind / invalidate operations by @ajsutton in #21015
  • fix(op-supernode/interop): propagate verifier read errors to super_authority by @ajsutton in #21002
  • fix(op-supernode): retry engine controller init in Start loop by @jelias2 in #20991
  • feat(op-supernode): add top-level --dependency-set flag by @ajsutton in #20976
  • refactor(interop): move log helpers into op-core/interop/messages by @ajsutton in #20946
  • refactor(interop): move shared interop error sentinels into op-core/interop by @ajsutton in #20896
  • refactor(interop): move interop message types to op-core/interop/messages by @ajsutton in #20887
  • fix(op-supernode): ignore interop.log-backfill-depth when no activation is configured by @ajsutton in #20894
  • op-service: add op-service interop filter client by @karlfloersch in #20905
  • refactor(depset): move leaf dependency-set into op-core/interop/depset by @ajsutton in #20884
  • fix(op-supernode): stabilize first SafeDB snapshot in interop cold-start by @ajsutton in #20855
  • feat(op-supernode): rework interop activity startup by @ajsutton in #20823
  • refactor(safedb): move L1AtSafeHead lookup into SafeDB by @ajsutton in #20845
  • fix(op-supernode): log cold-start backfill progress by @karlfloersch in #20843
  • feat(op-supernode,op-interop-filter): raft-wal-backed LogsDB by @ajsutton in #20688
  • op-supernode: tie backfill default to interop message expiry constant by @ajsutton in #20777
  • fix(op-supernode): resume from verifiedDB on warm restart (alt to #20715) by @ajsutton in #20733
  • op-supernode: default log backfill to 7 days by @karlfloersch in #20577
  • [codex] supernode: quiet expected tip lookup misses by @karlfloersch in #20720
  • fix(op-supernode): guard executing-message verifier against interop activation block by @wwared in #20716
  • op-supernode: redefine superroot_atTimestamp CurrentL1 as block being processed by @ajsutton in #20687
  • fix(op-supernode): stabilize superroot_atTimestamp Data field by @ajsutton in #20658
  • [codex] avoid supernode p2p port collisions by @karlfloersch in #20681
  • fix(op-supernode): recover logsDB from offline L2 reorg on restart by @ajsutton in #20628
  • fix(op-supernode): wait on stale frontier L1 heads by @karlfloersch in #20648
  • fix(op-supernode): skip gap check for already sealed timestamp by @karlfloersch in #20647
  • op-supernode: Stage verified DB rewind bounds by @ajsutton in #20596
  • op-supernode: run log backfill before SafeDB startup readiness by @karlfloersch in #20568
  • fix(op-supernode): add env var for interop log backfill depth flag by @jelias2 in #20566
  • fix(op-supernode): error on InvalidateBlock rewind preconditions by @ajsutton in #20539
  • op-supernode: pass observeRound L1 heads through to l1Inclusion by @ajsutton in #20538
  • refactor(op-service/eth): remove BlockInfo Header() and HeaderRLP() escape hatches by @sebastianst in #20531
  • feat(op-supernode): honour user-supplied p2p listen ports by @ajsutton in #20448
  • op-supernode: avoid engine rewind on L1 reorg by @karlfloersch in #20505
  • fix(supernode): VerifiedRequiredL1 takes MAX of per-chain L1s by @ajsutton in #20484
  • op-supernode: add Prometheus metrics for interop SLI qualification by @jelias2 in #20443
  • fix(op-supernode): guard chain container vn against torn interface read by @nonsense in #20211
  • fix(op-supernode): require SafeDB-ready interop startup by @axelKingsley in #20407
  • fix(op-supernode): accept earliest SafeDB target by @axelKingsley in #20400
  • op-supernode: shared interop start from safe head by @axelKingsley in #20392
  • feat(op-supernode): add supernode-level prometheus metrics by @jelias2 in #20242
  • supernode: rewrite interop log backfill around backfillEndTimestamp by @axelKingsley in #20326
  • fix(op-supernode): distinguish transient vs permanent SafeDB gaps in errors by @axelKingsley in #20292
  • interop: address strong-consistency review follow-ups (#19561) by @wwared in #20194

Full Changelog: op-supernode/v0.2.1-rc.1...op-supernode/v1.0.0
🚢 Docker Image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/nexus/op-supernode:v1.0.0