Releases: ethereum-optimism/optimism
op-stack v1.9.0 - Sepolia Granite activation
❗ Sepolia Superchain Granite activation Next Monday 8/12
This release contains the activation of the Granite hardfork on the Sepolia Superchain on Mon Aug 12 16:00:00 UTC 2024
. Node operators of any Sepolia OP Chains (OP, Base, Mode, Zora, and other chains in the Superchain Registry) must update before this activation timestamp, or their nodes will halt when the chains activate Granite.
It is a recommended update for all other node operators as it contains various improvements and bug fixes.
🤝 The corresponding Granite Sepolia op-geth release is v1.101315.3.
Granite
This release contains all features of the upcoming Granite protocol upgrade (specs pending). The Granite activation can be manually enabled via overrides for chains which don't activate Granite via the Superchain (currently only the Sepolia Superchain).
Batcher
Batcher Fixes
- The batcher correctly applies the new
maxRLPBytesPerChannel
limit post-Fjord (#11169) - The batcher detects transactions of incompatible type that are blocking the mempool, and sends appropriate cancellation transactions (#10941)
Dynamic calldata/blob switching (#11219)
The batcher can be instructed to automatically switch between calldata and blobs, depending on the most economic choice at the time of starting a new channel. This feature can be activated by setting the --data-availability-type
flag to auto
(or the respective env var).
Update of op-geth dependency
The op-geth dependency is updated to v1.101315.3.
Partial Changelog
- op-node: read BlockTime, SeqWindowSize from superchain-registry configs by @bitwiseguy in #11172
- have batcher submit appropriate cancellation transactions when mempool is blocked by @roberto-bayardo in #10941
- fix(op-batcher): support new fjord maxRLPBytesPerChannelFjord via rollup chain spec by @emilianobonassi in #11169
- op-node: batch-decoder: Fjord Frame Timestamp fix by @pcw109550 in #11143
- deps: delete unused eslint deps by @tynes in #11170
- opservice: rpc server into a cliapp service by @hamdiallam in #11197
- Add buffered caching of L1 block refs to the confDepth-aware fetcher by @BrianBland in #11142
- op-conductor: Adds connection test to cluster membership mutation apis by @zhwrd in #11210
- op-node: set genesis l1 start block to value from SystemConfig contract by @bitwiseguy in #11181
- op-node: Extract contract binding for SystemConfig by @ajsutton in #11227
- op-challenger: avoid passing FDG-factory address by @coderHarrii in #11236
- op-service: use binary search instead of walkback for checkRecentTxs by @bitwiseguy in #11232
- Delete chain-mon in favor of monitorism by @zchn in #11239
- op-node: genesis generation by @tynes in #11249
- [op-dispute-mon] Track the latest proposed L2 block number by @cbfyi in #11238
- ops-bedrock: Beacon-chain devnet with Dencun + Ecotone upgrade by @sebastianst in #9117
- feat(opsm): scaffold OP Stack Manager and tests by @mds1 in #11274
- cannon: Fix onchain clone flags by @mbaxter in #11293
- op-node/derive: linter fix by @KailMillor in #11265
- op-challenger: Add subcommand to continuously run trace providers by @ajsutton in #11294
- reduce scope of
expandedOwners
by @zhiqiangxu in #11301 - op-batcher: Add dynamic blob/calldata selection by @sebastianst in #11219
- contracts-bedrock: fix
SentMessage
event by @tynes in #11305 - feat: introduce SuperchainWETH and ETHLiquidity by @smartcontracts in #11042
- Cannon: optimize the example by @tanvirman in #11302
- op-node: optimize case to handle proposer requests by @protolambda in #11262
- Add Granite and Holocene fork references by @sebastianst in #11339
- Reduce ChannelTimeout to 50 in Granite by @Inphi in #11343
- fix: SuperchainWETH fuzz testing chain ID error by @smartcontracts in #11352
- op-challenger: Modify run_trace to run a block prior to the safe head by @ajsutton in #11349
- op-challenger: Add metric to report memory used in the cannon VM by @ajsutton in #11350
- op-proposer: retry failed output proposals by @bitwiseguy in #11291
- feat(challenger):
AsteriscKona
trace type by @clabby in #11140 - update sepolia-devnet-0 deploy-config by @Inphi in #11371
- op-node: abort block publishing if conductor commit fails by @protolambda in #11380
New Contributors
- @nidz-the-fact made their first contribution in #11177
- @DenseDenise made their first contribution in #11138
- @nnsW3 made their first contribution in #11190
- @rickck11 made their first contribution in #11191
- @yuhangcangqian made their first contribution in #11184
- @bravesasha made their first contribution in #11222
- @grubbyTimes made their first contribution in #11224
- @coderHarrii made their first contribution in #11233
- @0xtrait made their first contribution in #11241
- @caseylove made their first contribution in #11221
- @cbfyi made their first contribution in #11238
- @AntonCutthroat made their first contribution in #11264
- @DeeADouble made their first contribution in #11179
- @PinelliaC made their first contribution in #11296
- @KailMillor made their first contribution in #11265
- @tanvirman made their first contribution in #11302
- @blmalone made their first contribution in #11325
- @tooshiNoko made their first contribution in #11329
Full Changelog: v1.8.0...v1.9.0
🚢 Docker Images:
✨🔴 OP Stack - v1.8.0
Derivers Refactor
The Derivation Pipeline has been refactored to use an extensible event-driven framework. You can read about the design of this framework here.
Alt-DA
Features supporting Alt-DA mode are now included for early use. Alt-DA Mode is a Beta feature of the MIT licensed OP Stack. While it has received initial review from core contributors, it is still undergoing testing, and may have bugs or other issues.
What's Changed
- derivation: remove
EngineQueue
by @protolambda in #10643 - show tx count in log for span batch by @zhiqiangxu in #10743
- replace original "engine queue" with "ResetEngine" by @zhiqiangxu in #10776
- indexer: Remove by @mslipper in #10784
- [op-conductor] Queue an action after conductor start by @0x00101010 in #10772
- adding timestamp for blocks checked and highest, so we can monitor ho… by @raffaele-oplabs in #10691
- Plasma: Add Disclaimers at Config, and on Enable by @axelKingsley in #10709
- feat: misc logging improvements for fallback mode by @jelias2 in #10775
- log txhash with tx publishing log messages by @roberto-bayardo in #10771
- op-node: move engine controller into its own package by @protolambda in #10782
- op-batcher: log oldest l1 origin when channel close by @zhiqiangxu in #10676
- contracts: Make L2 genesis script configurable by @sebastianst in #10764
- Alt-DA: Refactor DAState and DAMgr to Separate Commitment and Challenge Tracking by @trianglesphere in #10618
- Alt-DA: Add aliases to cli for Alt-DA by @axelKingsley in #10812
- style(op-batcher,op-chain-ops): correct comment naming by @hoanguyenkh in #10816
- op-node: remove unnecessary cgo binding in tests by @rabbitprincess in #10825
- Update dependency on op-geth and superchain by @geoknee in #10830
- txmgr: Include the revert reason in the error when estimateGas fails by @ajsutton in #10829
- proposer: Log when starting to propose by @ajsutton in #10839
- proposer&batcher: Log fix by @amberguru in #10840
- op-node: implement event emitter/handler derivers, support first few Engine events by @protolambda in #10783
- fix(op-node): clarify rethdb flag by @bsh98 in #10635
- op-batcher: Log on successful Plasma SetInput by @sebastianst in #10950
- op-node: cl-sync using events by @protolambda in #10903
- op-node: reset engine through events by @protolambda in #10961
- op-node: pipeline deriver wrapper by @protolambda in #10962
- op-node: attributes-handler with events by @protolambda in #10947
- op-node: Finalizer events by @protolambda in #10972
- op-node: maintain sync-status through events, remove legacy snapshot-log by @protolambda in #11008
- op-node: delete snapshot-log in docker-compose by @wisdomfroge in #11034
- chore: disallow specify both
--p2p.static
and--p2p.disable
by @zhiqiangxu in #10963 - op-node: fix driver step hot loop, improve events and add utils by @protolambda in #11040
- Add new sync config: l2.enginekind by @mininny in #10767
- op-batcher: Secure and Delete pprof Usage in Production by @metacardBuilder in #10846
- add
p2p.sync.onlyreqtostatic
flag to p2p flags by @zhiqiangxu in #11011 - fix(op-node): plasma validation config missing commitment type for legacy config by @emilianobonassi in #11054
- op-node: event-system with tracing by @protolambda in #11099
- op-node: Add an alias to the import to pass the 'make lint-go-fix check'. by @RobiulBarreth in #11124
- op-node: re-enable and improve event metrics by @protolambda in #11137
- op-node: Events diagrams generation by @protolambda in #11101
- op-node: sequencing better encapsulated, now with events by @protolambda in #10991
- Don't enforce Challenge/Resolve Window Config for Generic Commitments by @axelKingsley in #11171
New Contributors
- @jinjingroad made their first contribution in #10745
- @dancoombs made their first contribution in #10763
- @MonkeyMarcel made their first contribution in #10792
- @adraffy made their first contribution in #10819
- @jcortejoso made their first contribution in #10821
- @bocalhky made their first contribution in #10820
- @rabbitprincess made their first contribution in #10825
- @amberguru made their first contribution in #10840
- @bsh98 made their first contribution in #10635
- @ayenesimo1i made their first contribution in #10951
- @metacardBuilder made their first contribution in #10966
- @Theburaka made their first contribution in #10974
- @wisdomfroge made their first contribution in #11034
- @Odysseasmakt made their first contribution in #11050
- @mininny made their first contribution in #10767
- @CarolAHHaydn made their first contribution in #11001
- @DanielGuupta made their first contribution in #11057
- @hattizai made their first contribution in #11074
- @wataxiwajojo made their first contribution in #11083
- @DivooOliver made their first contribution in #11094
- @r4525532 made their first contribution in #11090
- @RobiulBarreth made their first contribution in #11124
Full Changelog: v1.7.7...v1.8.0
🚢 Docker Images:
op-dispute-mon v1.0.1
Overview
This is a minor release of op-dispute-mon that includes minor new features. It is an optional upgrade for all users.
What's Changed
- Pull in latest superchain-registry with op-mainnet dispute game factory address by @ajsutton in #10789
- dispute-mon: Add metric to report the total withdrawable ETH for each honest actor by @ajsutton in #10838
Full Changelog: op-dispute-mon/v1.0.0...op-dispute-mon/v1.0.1
🚢 Docker Image:
op-challenger v1.0.1
Overview
This is a minor release of op-challenger that includes minor new features. It is an optional upgrade for all users.
What's Changed
- Pull in latest superchain-registry with op-mainnet dispute game factory address by @ajsutton in #10789
Full Changelog: op-challenger/v1.0.0...op-challenger/v1.0.1
🚢 Docker Image:
op-stack v1.7.7 - Optimistic Fjord Mainnet release
✨🔴 Optimistic Fjord Mainnet Release
❗ Mainnet operators are required to update to this release to follow the chain post-Fjord. This release contains an optimistic Fjord Mainnet activation time of Wed Jul 10 16:00:01 UTC 2024
.
It is a recommended release for all node operators, as it contains various improvements and updates to the libp2p dependencies.
The corresponding op-geth release is v1.101315.2.
Optimism Governance Voting Cycle 23b
The Fjord activation contained in this release is still subject to approval during the currently ongoing Optimism Governance voting cycle 23b, see the Governance Proposal of the Fjord Protocol Upgrade. The reflection voting period ends on Jun 19 while the veto period ends on Jun 26, 19:00 UTC.
In the unlikely event that the veto period ends in a veto, we will publish a Veto Release. The fjord activation can also be disabled by setting the override.fjord
configuration flag to a date in the far future, e.g. --override.fjord 2281580442
. Always confirm in startup logs that overrides have been applied correctly.
Important Changes
- The missing Fjord override flag got added #10648
- op-node now supports specifying multiple L1 beacon endpoint fallbacks #10655
- The flag
l1.beacon-archiver
got renamed tol1.beacon-fallbacks
, but the old flag is retained for backwards compatibility, as are the old env vars.
- The flag
- Multiple refactors of the derivation pipeline were performed #10580 #10580 #10642
- The batcher's and proposer's active sequencer follow mode got improved, ensuring that each endpoint is dialed exactly once #10696 #10705
Partial Changelog
- op-node,op-service: Add Fjord override flag by @sebastianst in #10648
- plasma mode: Specify valid commitment type by @trianglesphere in #10622
- fix
AsyncGossiper
hangup by @zhiqiangxu in #10654 - op-node: cleanup readme by @tynes in #10679
- op-node: Support multiple beacon archiver/fallbacks by @sebastianst in #10655
- go: bump libp2p deps by @sebastianst in #10687
- op-node/p2p: add descriptive error code string by @sebastianst in #10662
- op-batcher: Do not retry dial attempts in active l2 providers by @BrianBland in #10696
- op-node: encapsulate finality and simplify EngineQueue by @protolambda in #10580
- op-node: extract unsafe-block processing from derivation code-path by @protolambda in #10599
- op-node: Separate attributes processing from EngineQueue by @protolambda in #10642
- op-batcher/op-proposer: Only pass lifecycle contexts into RollupProvider.RollupClient by @BrianBland in #10705
- Add optimistic Fjord mainnet activation by @sebastianst in #10735
New Contributors (all monorepo)
- @yumeiyin made their first contribution in #10631
- @barnabasbusa made their first contribution in #10721
Full Changelog: v1.7.6...v1.7.7
🚢 Docker Images:
op-dispute-mon v1.0.0
Overview
This is the 1.0 release of op-dispute-mon, a monitoring agent for fault dispute games. To learn more about dispute games, visit the fault proof specs.
🚢 Docker Image:
op-challenger v1.0.0
Overview
This is the 1.0 release of op-challenger, an implementation of the honest actor algorithm for fault dispute games. To learn more about dispute games, visit the fault proof specs.
🚢 Docker Image:
op-contracts/v1.5.0 — Safe Extensions
Overview
This release adds 3 Safe extensions that are intended to help OP Stack chains reach Stage 1. You can read more about this in the governance post.
Contract Changes
Only the following 3 contracts are released with the version:
LivenessGuard
, a guard for SafesLivenessModule
, a module for Safes, intended to be paired withLivenessGuard
.DeputyGuardianModule
, a module for Safes.
These are all unrelated to the core OP Stack protocol contracts.
Full Contract Set
A chain using this contracts release must be using the following contracts at the specified semvers.
The three new contracts outside of the core protocol contracts:
- LivenessGuard: 1.0.0
- LivenessModule: 1.2.0
- DeputyGuardianModule: 1.1.0
And the core protocol contracts are unchanged from the prior release of op-contracts/v1.4.0
:
- AddressManager: Latest (this has no version)
- L1CrossDomainMessenger: 2.3.0
- L1ERC721Bridge: 2.1.0
- L1StandardBridge: 2.1.0
- OptimismMintableERC20Factory: 1.9.0
- OptimismPortal: 3.10.0
- SystemConfig: 2.2.0
- FaultDisputeGame: 1.2.0
- PermissionedDisputeGame: 1.2.0
- DisputeGameFactory: 1.0.0
- AnchorStateRegistry: 1.0.0
- DelayedWETH: 1.0.0
- MIPS: 1.0.1
- PreimageOracle: 1.0.0
- SuperchainConfig: 1.1.0
- ProtocolVersions: 1.0.0
Full Changelog
The full contracts diff between this release and the prior release can be found at the link below. Note that, because this is a monorepo, this will likely include many unrelated changes and will be a noisy diff. Because op-contracts/v1.4.0
is also pending governance approval, this release is compared to op-contracts/v1.3.0
op-contracts/v1.4.0 — Fault Proofs
Overview
This release adds Fault Proofs to help OP Stack chains reach Stage 1. You can read more about this in the governance post.
Contract Changes
This includes the following new contracts:
FaultDisputeGame
, An implementation of theIDisputeGame
interface for Fault ProofsPermissionedDisputeGame
, AFaultDisputeGame
contract that is permissionedDisputeGameFactory
, A factory contract for creatingIDisputeGame
contractsAnchorStateRegistry
, Stores the latest "anchor" state used by theFaultDisputeGame
contractDelayedWETH
, An extension toWETH9
that allows delayed withdrawalsMIPS
, An onchain MIPS32 VMPreimageOracle
, A contract for storing permissioned pre-images
Full Contract Set
A chain using this contracts release must be using the following contracts at the specified semvers.
The new contracts:
- FaultDisputeGame: 1.2.0
- PermissionedDisputeGame: 1.2.0
- DisputeGameFactory: 1.0.0
- AnchorStateRegistry: 1.0.0
- DelayedWETH: 1.0.0
- MIPS: 1.0.1
- PreimageOracle: 1.0.0
The updated contracts:
- OptimismPortal: 3.10.0
- SystemConfig: 2.2.0
And contracts unchanged from the prior op-contracts/v1.3.0
release:
- AddressManager: Latest (This has no version)
- L1CrossDomainMessenger: 2.3.0
- L1ERC721Bridge: 2.1.0
- L1StandardBridge: 2.1.0
- OptimismMintableERC20Factory: 1.9.0
- SuperchainConfig: 1.1.0
- ProtocolVersions: 1.0.0
Note that the L2OutputOracle has been removed, and is no longer used for chains running this version of the contracts.
Full Changelog
The full contracts diff between this release and the prior release can be found at the link below. Note that, because this is a monorepo, this will likely include many unrelated changes and will be a noisy diff.
op-stack v1.7.6 - Sepolia Fjord activation
❗ Sepolia Superchain Fjord activation Next Wednesday 5/29
This release contains the activation of the Fjord hardfork on the Sepolia Superchain on Wed May 29 16:00:00 UTC 2024
. Node operators of any Sepolia OP Chains (OP, Base, Mode, Zora, PGN) must update before this activation timestamp, or their nodes will halt when the chains activate Fjord.
It is a recommended update for all other node operators as it contains various improvements and bug fixes.
🤝 The corresponding Fjord Sepolia op-geth release is v1.101315.1.
op-node/v1.7.6
release misses the fjord override flag. If you need it, use op-node/v1.7.7-rc.1
instead.
Fjord
This release contains all features of the upcoming Fjord protocol upgrade. The Fjord activation can be manually enabled via overrides for chains which don't activate Fjord via the Superchain (currently only the Sepolia Superchain).
Update of op-geth dependency
The op-geth dependency is updated to v1.101315.1-rc.5, which implies an update of the underlying geth version to v1.13.15.
L1 Beacon client improvements
The L1 beacon client in the op-node now better detects missing blobs and falls back to the l1.beacon-archiver
endpoint, if configured.
Partial Changelog
- op-service/eth: Optimize ssz decoding by @sebastianst in #10362 (also already included in
op-node/v1.7.5
) - geth: update to v1.13.15 by @axelKingsley in #10353
- cleanup
EngineQueue.Step
a bit by removingoutOfData
variable by @zhiqiangxu in #10405 - op-node: Implement fjord RLP & Channel Bank Size limit Increases by @trianglesphere in #10357
- op-node: Start EL sync even when the genesis is finalized by @trianglesphere in #10457
- Fjord: Implement max sequencer drift change to a constant by @sebastianst in #10465
- Fjord: Add Brotli channel compression support by @cody-wang-cb in #10358
- op-proposer: check at least one of
DGFAddress
orL2OOAddress
was provided by @zhiqiangxu in #10528 - fjord: Fastlz GasPriceOracle by @danyalprout in #10534
- Bump op-geth dep to v1.101315.1-rc.1 by @trianglesphere in #10548
- Bump op-geth dep to v1.101315.1-rc.2 by @trianglesphere in #10555
- op-batcher: Support generic DA posting by @epociask in #10489
- Fjord: Brotli op-e2e test by @cody-wang-cb in #10531
- op-node: Add dedicated PlasmaConfig struct to rollup.Config by @trianglesphere in #10499
- feat(op-service): complete separation of op-node/op-service metrics by @hamdiallam in #10545
- fix(op-node): p2p ipnet struct validation by @felipe-op in #10518
- Fjord: Add FastLZ compression into L1CostFunc by @mdehoog in #9618
- Log when a hardfork is first activated by @bitwiseguy in #10530
- Enable Fjord devnet activation by @sebastianst in #10573
- fix log lines for engine queue by @angel-ding-cb in #10575
- op-node: batch-decoder: Support ecotone by @pcw109550 in #10577
- make
l1.beacon-archiver
work by @zhiqiangxu in #10269 - Activate Fjord on Sepolia by @sebastianst in #10610
- Add check-fjord script to smoke test live chains by @bitwiseguy in #10578
- op-batcher,op-node,batch_decoder: add logging of compression algo by @sebastianst in #10589
- op-node/p2p/sync: add panic guard by @geoknee in #10611
New Contributors (all monorepo)
- @Ethnical made their first contribution in #10246
- @AaronChen0 made their first contribution in #10284
- @threewebcode made their first contribution in #10229
- @SanShi2023 made their first contribution in #10329
- @hoank101 made their first contribution in #10331
- @mbaxter made their first contribution in #10416
- @hteevoli made their first contribution in #10444
- @pengwenhui888 made their first contribution in #10487
- @kien6034 made their first contribution in #10497
- @cody-wang-cb made their first contribution in #10358
- @petercover made their first contribution in #10535
- @maurermi made their first contribution in #10480
- @rdovgan made their first contribution in #9634
- @tnv1 made their first contribution in #10587
Full Changelog: v1.7.4...v1.7.6
🚢 Docker Images: