Releases: ethereum-optimism/op-geth
v1.101411.1
❗ It is strongly recommended for all chain operators to upgrade to this release.
Batcher Sequencer Throttling (#421)
This release contains a new batcher-driven sequencer-throttling control loop. This is to avoid sudden spikes in L1 DA-usage consuming too much available gas and causing a backlog in batcher transactions. The batcher can throttle the sequencer’s data throughput instantly when it sees too much batcher data built up.
See the op-stack v1.9.5 release notes for more background information and configuration details.
What's Changed
- Add missing depositTxWithNonce case to MarshalJSON / SourceHash / Mint by @mdehoog in #395
- Holocene: extensions for configurable EIP-1559 params by @roberto-bayardo in #398
- feat(rpc): implement debug_executionWitness API by @0x00101010 in #397
- Holocene: use extraData instead of nonce for eip-1559 parameters by @roberto-bayardo in #402
- consistently use uint64 for Holocene eip-1559 params by @roberto-bayardo in #406
- core: fix genesis op-mainnet hash by @protolambda in #405
- update fork.yaml to cover Holocene eip-1559 parameter configurability by @roberto-bayardo in #411
- core: avoid add
l1Cost
twice whenGasFeeCap
is nil by @zhiqiangxu in #391 - core/types/rollup_cost.go: export a function to estimate the l1 batch size of a transaction by @roberto-bayardo in #416
- core/types/rolloup_cost.go: clarify that the estimated l1 size is scaled up by 1e6 by @roberto-bayardo in #418
- core/types: transaction conditional KnownAccounts fix && HexOrDecimal deser by @hamdiallam in #414
- skip state db op when NoBaseFee is true by @zhiqiangxu in #417
- add ability to control DA required by blocks produced by the builder by @roberto-bayardo in #421
New Contributors
- @zhiqiangxu made their first contribution in #391
Full Changelog: v1.101411.0...v1.101411.1
🚢 Docker Image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101411.1
v1.101411.0 - upstream geth v1.14.11 merge
This release contains the upstream go-ethereum changes until v1.14.11 (#396).
What's Changed
- core/vm: evm options to ignore max-bytecode-size and support caller overriding by @protolambda in #366
- fork.yaml: document pathdb journal change by @protolambda in #369
- internal/sequencerapi,miner: move conditional rate limiter to the rpc layer instead of miner by @hamdiallam in #377
- Holocene: handle Holocene l1 attributes in l1 data fee computation by @roberto-bayardo in #384
- fix: Only apply effective gas limit when building new blocks by @BrianBland in #394
- Revert "Holocene: handle Holocene l1 attributes... by @roberto-bayardo in #393
- Update op-geth depdency to 1.14.11 base by @0x00101010 in #396
New Contributors
- @BrianBland made their first contribution in #394
Full Changelog: v1.101408.0...v1.101411.0
🚢 Docker Image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101411.0
v1.101408.0 - 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.
The corresponding monorepo op-node release is op-node/v1.9.1.
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.
State Scheme Highlights
Per recently introduced changes from upstream geth (from the upstream Asteria release):
- The default state trie representation is changed from
hash
mode topath
mode (i.e.--state.scheme
flipped fromhash
topath
). Users running full nodes must specify--state.scheme=hash
if they're currently using hash-based db. Otherwise, op-geth will assume apath
state scheme and will fail to follow the chain. Archive nodes do not need to specify--state.scheme
as they will continue to run on hash mode. - That said, it's recommended that full nodes switch to the path-based state scheme as it's much more performant. The main advantage is built-in, online historical state pruning; no more runaway state growth. This will require a re-sync if the existing database uses the
hash
scheme.
What's Changed
- merge upstream geth 1.14.x (0-7) releases by @danyalprout in #349
- Add Holocene fork references by @sebastianst in #357
- core/vm: improve precompile overrides functionality by @protolambda in #359
- Cherry pick fix for go1.23 from go-ethereum by @anacrolix in #355
- pebble: Update to v1.1.2 by @ajsutton in #362
- geth/v1.14.8 upstream merge by @sebastianst in #363
- Granite mainnet release (optimistic) by @Inphi in #364
- Update superchain-registry: Fix granite mainnet activation by @Inphi in #367
- triedb/pathdb: support v0 journal format by @protolambda in #368
New Contributors
- @anacrolix made their first contribution in #355
Full Changelog: v1.101315.3...v1.101408.0
🚢 Docker Image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101408.0
v1.101315.3 - 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-node release in the monorepo is op-node/v1.9.0
. However, it misses the Granite override flag - for those who need it, it is present in op-node/v1.9.0
. This op-geth release does have the override flags as --override.granite
(or env var GETH_OVERRIDE_GRANITE
).
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).
What's Changed
- core: do not trigger rewind behaviour when modifying pre-genesis hardfork times / blocks by @geoknee in #332
- Update superchain registry by @geoknee in #336
- Make OptimismConfig.EIP1559DenominatorCanyon optional by @bitwiseguy in #345
- Add tests for tracing successful deposits by @danyalprout in #333
- chore: update fork.yaml to include RIP-7212 files by @danyalprout in #350
- granite: Limit bn256Pairing input size by @Inphi in #353
- Prepare for Granite testnet/devnet release by @Inphi in #354
Full Changelog: v1.101315.2...v1.101315.3
🚢 Docker Image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101315.3
v1.101315.2 - 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
.
The corresponding monorepo op-node release is op-node/v1.7.7.
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.
What's Changed
- forkdiff update by @protolambda in #321
- Fjord mainnet release (optimistic) by @sebastianst in #331
Full Changelog: v1.101315.1...v1.101315.2
🚢 Docker Image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101315.2
v1.101315.1 - 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-node release in the monorepo is op-node/v1.7.6
. However, it misses the Fjord override flag - for those who need it, it is present in op-node/v1.7.7-rc.1
. This op-geth release does have the override flags as --override.fjord
(or env var GETH_OVERRIDE_FJORD
).
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).
❗ Ecotone Receipt Fields
Bugs around Ecotone receipt field setting and encoding were fixed. These are breaking changes! So op-geth and op-node have to be upgraded in tandem.
L2s used by L3s
If you're operating an L2 that is used by L3s, we suggest you announce your upgrade times of your L2 op-geth nodes to all L3s so that they can upgrade their L2 op-nodes at the same time, or they will fail with errors similar to the following
receipts=0 err="3 errors occurred:\n\t* math/big: cannot unmarshal \"\\\"0x6304a6b4ac\\\"\" into a *big.Int\n\t* math/big: cannot unmarshal \"\\\"0x6304a6b4ac\\\"\" into a *big.Int\n\t* math/big: cannot unmarshal \"\\\"0x6304a6b4ac\\\"\" into a *big.Int\n\n"
t=2024-05-28T22:19:11+0000 lvl=info msg="fetched receipts" txHashes="[0xb5e51e3b1b9713ffeecf827e7f23f4755f1ede4943ca7a8931d0cb637f9a734c 0xef38a26d7b65e15cdb6b44bef4e5b713147922bdebccc6d13865c6cdb955ef18 0x149407cd68615e40e9b97610202b0db83d60f4465ce3a84b0dc9cee21819fb80 0x60f14a000ea6f848913a3e81ca937b1a3d708209f0ee2b23a6be9eadefd95aad]" receipts=0 err="got 0 receipts, but expected 4"
What's Changed
- ethapi: Set post Ecotone receipt fields by @trianglesphere in #314
- ethapi/receipt: Use hexutil for JSON marshalling by @trianglesphere in #315
- Fjord: Add FastLZ compression into L1CostFunc by @mdehoog in #249
- Enable Fjord on devnet via superchain-registry by @sebastianst in #316
- Add missing 4844 fields to genesis literal by @geoknee in #302
- miner: Pretty Print elapsed time by @trianglesphere in #319
- Activate Sepolia Fjord activation via superchain-registry by @sebastianst in #320
Full Changelog: v1.101315.0...v1.101315.1
🚢 Docker Image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101315.1
v1.101315.0
⬆️ This is a recommended release for OP Mainnet
Note: this release includes an important upstream go-ethereum patch from version v1.13.15.
See upstream security advisory for CVE-2024-32972
.
Note: The JSON RPC server is not properly returning Ecotone Receipt information in the receipt. The receipt JSON format is unchanged from the previous op-geth version.
Changelog Summary
- Include upstream go-ethereum releases:
- Development progress on Fjord. Follow proposed changes in the specs.
- Ecotone L1 data-cost fee information is now available in the JSON receipts.
What's Changed
- add a new flag to enforce an effective block gaslimit independent of … by @roberto-bayardo in #274
- fix: store and log correct OPVersion by @bitwiseguy in #297
- Add Ecotone Fee Information to JSON Receipts by @trianglesphere in #278
- ci(golangci): update config by @sambacha in #276
- Add Fjord override flag by @danyalprout in #304
- Fjord Enablement: Getters & Description by @danyalprout in #305
- Fjord: secp256r1 curve support (RIP-7212) by @mdehoog in #168
- merge upstream geth v1.13.12 by @axelKingsley in #306
- merge upstream geth v1.13.13 by @axelKingsley in #303
- merge upstream geth v1.13.14 by @axelKingsley in #310
- merge upstream v1.13.15 by @axelKingsley in #311
New Contributors
- @bitwiseguy made their first contribution in #297
- @sambacha made their first contribution in #276
Full Changelog: v1.101311.0...v1.101315.0
🚢 Docker Images:
op-geth v1.101311.0
⬆️ This is a recommended release for Optimism Mainnet
Partial Change Log
- Merged in geth releases 1.13.9, 1.13.10, & 1.13.11
- Added Base bootnodes
- Fixes the potential DOS vector with out of order EIPs
What's Changed
- setting up CODEOWNERS by @raffaele-oplabs in #261
- Pass the original precompile to the override function. by @ajsutton in #260
- Remove hardfork activation time overrides by @geoknee in #252
- Add more bootnodes by @trianglesphere in #267
- adding image signer when pushing images by @raffaele-oplabs in #263
- feat: add new failed deposit trace call frame by @smartcontracts in #265
- Update dependency on superchain-registry by @geoknee in #271
- Merge upstream geth v1.13.9 into op-geth by @roberto-bayardo in #273
- Revert "Merge upstream geth v1.13.9 into op-geth" by @trianglesphere in #283
- merge upstream geth v1.13.9 by @roberto-bayardo in #284
- fork.yaml: remove duplicate file reference which breaks forkdiff by @roberto-bayardo in #285
- merge upstream geth v1.13.10 and v1.13.11 commits into op-geth by @roberto-bayardo in #286
- fix JSON logger to properly handle debug & lower log level by @roberto-bayardo in #290
- core/vm, params: ensure order of forks, prevent overflow (#29023) by @trianglesphere in #293
New Contributors
- @raffaele-oplabs made their first contribution in #261
- @smartcontracts made their first contribution in #265
Full Changelog: v1.101308.2...v1.101311.0
🚢 Docker Images:
op-geth v1.101308.2 - Optimistic Ecotone Mainnet Release
✨🔴 Optimistic Ecotone Mainnet Release
❗ Mainnet operators are required to update to this release to follow the chain post-Ecotone. This release contains an optimistic Ecotone Mainnet activation time of Mar 14, 00:00:01 UTC
.
v1.101308.1
contained a different Ecotone Mainnet activation date, so it is particularly important for Mainnet operators to upgrade from this release.
Optimism Governance Voting Cycle 19
The Ecotone activation contained in this release is still subject to approval during the currently ongoing Optimism Governance voting cycle 19, see the Governance Proposal of the Ecotone Protocol Upgrade. The voting period ends on Mar 6 while the veto period ends on Mar 13, 19:00 UTC.
We will soon publish a Veto Release in advance with the Ecotone OP Mainnet activation removed so node operators can prepare for the unlikely event of a negative vote or a veto. We will also soon provide documentation on how to override the Ecotone activation included in this or future releases via command line flags or env vars. This leaves an emergency window of 5h to change the node configuration, or update to the Veto Release, in the unlikely event that the veto period ends in a veto.
New Features
op-geth is able to be driven in snap sync or execution layer sync by the op-node on all supported OP Stack networks.
What's Changed
- Skip genesis state check for transitioned networks by @trianglesphere in #245
- Default to discovery v5 by @trianglesphere in #246
- Add OP specific bootnodes by @trianglesphere in #247
- Fix bootnodes port by @trianglesphere in #250
- Update Ecotone mainnet activation to Mar 14 00:00:01 UTC by @sebastianst in #253
Full Changelog: v1.101308.1...v1.101308.2
🚢 Docker Image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101308.2
op-geth v1.101308.1 - OUTDATED Ecotone Mainnet Release
❗ OUTDATED Ecotone Mainnet Release
❌ The Optimistic Ecotone Mainnet activation has been moved forward to Mar 14, 00:00:01 UTC
! You MUST NOT use this release on Mainnet. Use version v1.101308.2
instead.
✅ You can safely use this release on all other testnets and devnets.
Old Optimistic Release Background Info
This release contained an optimistic Ecotone Mainnet activation time of Mar 18, 17:00:01 UTC
. The purpose of this release was to have a reference for the Governance Proposal of the Ecotone Protocol Upgrade. The Ecotone Mainnet activation still needs to be approved during the currently ongoing Optimism Governance voting cycle 19 whose review and voting periods runs from Feb 15 to Mar 6. The veto period ends on Mar 13.
We will soon publish a Veto Release in advance with the Ecotone OP Mainnet activation removed so node operators can prepare for the unlikely event of a negative vote or a veto. We will also provide documentation on how to override the Ecotone activation included in this or the v1.101308.2
release.
What's Changed
- Snap Sync: DepositNonce Data Correction by @axelKingsley in #237
- ci: update image to default by @geoknee in #239
- core/vm: Allow precompiles to be overriden by @Inphi in #242
- Prepare optimistic Ecotone Mainnet release by @sebastianst in #243
New Contributors
- @axelKingsley made their first contribution in #237
Full Changelog: v1.101308.0...v1.101308.1
🚢 Docker Image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101308.1