Releases: ethereum-optimism/optimism
op-contracts/v2.0.0-beta.3
Overview
This set of contracts includes the Custom Gas Token feature. The tagged commit includes updates in which the plasma
feature was renamed to AltDA
, therefore this release is compatible with the new AltDA
configurations.
Full Contract Set
A chain using this release must use the following contracts at the specified semvers:
- L1CrossDomainMessenger: 2.4.1-beta.1
- L1ERC721Bridge: 2.1.1-beta.2
- L1StandardBridge: 2.2.1-beta.1
- ProtocolVersions: 1.0.1-beta.1
- SuperchainConfig: 1.1.1-beta.1
- SystemConfig: 2.3.0-beta.3
- OptimismMintableERC20Factory: 1.10.1-beta.1
- AddressManager: Latest (this has no version)
Additionally, you must use either fault proofs or the legacy L2OutputOracle. To use fault proofs with this release, additionally use the following contracts:
- OptimismPortal2: 3.11.0-beta.4
- AnchorStateRegistry.sol: 2.0.1-beta.2
- DisputeGameFactory: 1.0.1-beta.1
- FaultDisputeGame.sol: 1.3.1-beta.2
- MIPS.sol: 1.1.1-beta.3
- PermissionedDisputeGame.sol: 1.3.1-beta.2
- PreimageOracle.sol: 1.1.3-beta.2
- DelayedWETH.sol: 1.1.1-beta.2
To use the L2OutputOracle instead use the following contracts:
- OptimismPortal: 2.8.1-beta.2
- L2OutputOracle: 1.8.1-beta.1
Lastly you may want to follow this authentication architecture, in which case the Safe's should be configured with the following modules and extensions:
- DeputyGuardianModule.sol: 2.0.1-beta.2
- LivenessGuard: 1.0.1-beta.1
- LivenessModule: 1.2.1-beta.1
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-dispute-mon v1.1.0
Overview
This is a minor release of op-dispute-mon that includes minor new features and bug fixes. It is an optional upgrade for all users.
What's Changed
- Fixed docker cross-platform builds (#10827)
- Add
op_dispute_mon_latest_valid_proposal_l2_block
metric to report the latest L2 block number with a valid proposal (#11238) - Identify unclaimed credits based on the withdrawal request timestamp instead of game creation time (#11488)
Full Changelog: op-challenger/v1.0.1...op-dispute-mon/v1.1.0
🚢 Docker Image:
op-challenger v1.1.0
Overview
This is a minor release of op-challenger that includes support for the Granite hard fork changes and bug fixes. It is a required upgrade for all users.
What's Changed
- Fixed VM execution time metric name to be
op_challenger_vm_execution_time
instead ofop_challenger_asterisc_execution_time
(#10996) - Added
op_challenger_preimage_count
metric to report the number of large preimage proposals being monitored (#11154) - Fixed docker cross-platform builds (#10827)
- Added
op_challenger_vm_memory_used
metric to report cannon VM memory usage (#11350) - Added support for the
asterisc-kona
trace type (#11140) - Do not resolve games when selective resolution is enabled (#11430)
- Support Granite changes to uploading precompile preimages (#11503)
- Support cannon binary snapshots (#11754)
- Release agent resources once game is complete to lower memory usage (#11820)
Full Changelog: op-challenger/v1.0.1...op-challenger/v1.1.0
🚢 Docker Image:
op-stack v1.9.2
op-stack v1.9.2
❗ This is an important bug-fix release for op-node and op-batcher. All chain operators are strongly recommended to upgrade.
- op-node received a critical fix to its sequencer-start admin rpc (#11724)
- op-batcher received multiple fixes to its transaction management (#11633 #11614)
- op-node sequencer shutdown behavior was improved (#11455)
Partial Changelog
- Conductor and sequencer p2p refactoring by @anacrolix in #11455
- op-batcher/batcher: check txpool state in state publishing loop by @roberto-bayardo in #11633
- Use context interrupts consistently in more places by @anacrolix in #11511
- op-service/txmgr: multiple fixes / improvements by @roberto-bayardo in #11614
- op-node: sequencer should clear inconsistent asyncGossip buffer on sequencer-start by @protolambda in #11724
Full Changelog: v1.9.1...v1.9.2
🚢 Docker Images:
op-stack v1.9.1 - Optimistic Granite Mainnet release
✨🔴 Optimistic Granite Mainnet Release
❗ Mainnet operators are required to update to this release to follow the chain post-Granite. This release contains an optimistic Granite Mainnet activation time of Wed 11 Sep 2024 16:00:01 UTC. Node operators of any Mainnet 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.
The corresponding op-geth release is v1.101408.0.
Optimism Governance Voting Cycle 26
The Granite activation contained in this release is still subject to approval during the currently ongoing Optimism Governance voting cycle 26, see the Governance Proposal of the Granite Protocol Upgrade. The reflection voting period ended on Aug 28 while the veto period ends on Sept 4, 19:00 UTC.
In the unlikely event that the veto period ends in a veto, we will publish a Veto Release. The granite activation can also be disabled by setting the override.granite
configuration flag to a date in the far future, e.g. --override.granite 2281580442
. Always confirm in startup logs that overrides have been applied correctly.
Partial Changelog
- contracts-bedrock: migrate to just by @tynes in #11276
- op-proposer, op-batcher: Wait for sync in Start rather than loop. by @ajsutton in #11192
- contracts-bedrock: improve
CrossL2Inbox
devex by @tynes in #11322 - devnet/e2e: run L1 Deneb and L2 Fjord by default by @protolambda in #11359
- feat(predeploys): add L2toL2CDM to predeploy addresses.go by @tremarkley in #11403
- repo: migrate away from pnpm by @tynes in #11395
- ci: update geth tool to v1.14.7 by @protolambda in #11410
- Update to Geth 1.14.7 by @mdehoog in #11382
- op-supervisor: Include executing message info when storing logs. by @axelKingsley in #11369
- op-challenger: Do not resolve games in selective mode by @ajsutton in #11430
- feat: introduce OptimismSuperchainERC20 by @agusduha in #11256
- op-node: remove MaxSequencerDrift hardcode by @bitwiseguy in #11459
- op-chain-ops/script: turn any Go struct/interface into a precompile with ABI encoding/decoding by @protolambda in #11444
- devnet: enable span batches and use blobs for non-plasma by @sebastianst in #11477
- op-node,op-batcher: implement span channel out block count limit by @sebastianst in #11416
- op-node: attempt recovery from odd forkchoice states by @protolambda in #11462
- op-proposer: ensure uniform proposal interval across restarts by @geoknee in #11417
- Update op-geth dependency to 1.14.8 base by @sebastianst in #11494
- Fault Proof Fixes by @Inphi in #11503
- op-node: cleanup driver, closer to removing stepping by @protolambda in #11464
- OPSM: Deploy implementation contracts by @mds1 in #11539
- Fix granite mainnet activation time by @Inphi in #11572
- op-geth: Update op-geth with single threaded fixes by @ajsutton in #11598
- op-node,op-heartbeat: remove stale node heartbeat monitoring service by @protolambda in #11622
New Contributors
- @Gmanboy made their first contribution in #11457
- @joooeoeee made their first contribution in #11474
- @F-WRunTime made their first contribution in #11015
- @cutecups made their first contribution in #11495
- @siddharth0a made their first contribution in #11475
- @cuiweixie made their first contribution in #11521
- @AmadiMichael made their first contribution in #11407
- @shandongzhejiang made their first contribution in #11542
- @bytetigers made their first contribution in #11584
- @codewaicher made their first contribution in #11599
Full Changelog: v1.9.0...op-node/v1.9.1
🚢 Docker Images:
op-contracts/v1.6.0 - Fault Proof Fixes
Overview
The release fixes security vulnerabilities found in Fault Proof contracts. You can read more about it in this governance post.
Full Contract Set
A chain using this contracts release must be using the following contracts at the specified semvers.
The following contracts are updated in this release:
- MIPS.sol: 1.1.0
- PreimageOracle.sol: 1.1.2
- FaultDisputeGame.sol: 1.3.0
- PermissionedDisputeGame.sol: 1.3.0
- DelayedWETH.sol: 1.1.0
- DeputyGuardianModule.sol: 2.0.0
- AnchorStateRegistry.sol: 2.0.0
And the core protocol contracts are unchanged from the prior release of op-contracts/v1.5.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
- DisputeGameFactory: 1.0.0
- SuperchainConfig: 1.1.0
- ProtocolVersions: 1.0.0
- LivenessGuard: 1.0.0
- LivenessModule: 1.2.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.
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: