This release enables the Osaka (Fusaka) fork on testnets. We also enable two blob-parameter only (BPO) forks for the testnets.
-
Holesky
- Osaka at time
1759308480
(2025-10-01 08:48:00 UTC) - BPO1 at time
1759800000
(2025-10-07 01:20:00 UTC) - BPO2 at time
1760389824
(2025-10-13 21:10:24 UTC)
- Osaka at time
-
Sepolia
- Osaka at time
1760427360
(2025-10-14 07:36:00 UTC) - BPO1 at time
1761017184
(2025-10-21 03:26:24 UTC) - BPO2 at time
1761607008
(2025-10-27 23:16:48 UTC)
- Osaka at time
-
Hoodi
- Osaka at time
1761677592
(2025-10-28 18:53:12 UTC) - BPO1 at time
1762365720
(2025-11-05 18:02:00 UTC) - BPO2 at time
1762955544
(2025-11-12 13:52:24 UTC)
- Osaka at time
With BPO1 and BPO2, the blob capacity of these networks will increase as follows:
- BPO1: max blobs/block:
15
, target:10
- BPO2: max blobs/block:
21
, target:14
As of this release, the default block gas limit is set to 60M gas.
This is the recommended limit that we, as client authors, feel comfortable with.
CLI commands
geth snapshot
and related commands no longer fail due to not finding the trie journal file. (#32531)- A regression in
geth snapshot dump
andgeth export-preimages
is resolved. (#32650) - We have added an experimental zkVM 'guest program',
keeper
, to the source tree. (#32543, #32638, #32736)
RPC
eth_call
and related operations were fixed to not apply the EIP-7825 per-transaction gas limit when executing under Osaka fork rules. (#32641)- For
eth_getLogs
and other log filtering operations, it is now possible to configure the number of addresses allowed in the filter using the--rpc.logquerylimit
flag. (#32327) - Starting Geth with the
--state.size-tracking
option enables collection of precise state size numbers, which can be read using thedebug_stateSize
endpoint. (#32362) - The new
debug_executionWitness
anddebug_executionWitnessByHash
methods create a block witness for stateless execution. (#32216)
Tracing & ABIGEN
- There is a new
CodeChangeV2
hook, with aCodeChangeReason
parameter. (#32525, #32535) - In certain corner-cases related to SELFDESTRUCT,
OnBalanceChange
was not invoked. (#32526) BoundContract
inaccounts/abi/bind/v2
now exposes anAddress
method. (#32559)
Core
- The EVM MODEXP precompiled account has seen some optimizations to improve performance for worst-case inputs. We are especially grateful for @GottfriedHerold's work on improving the underlying math/big library. (#32527, #32553, #32568, #32576)
- The blobpool will now perform a migration to the v1 blob proof format around the time of the fork. (#31966, #32577, #32534, #32656, #32716)
engine_getBlobs
has been updated for improved spec compliance and to deal with the conversion of the blob tx proofs. (#32536, #32538, #32578)- The path-based state database has seen some fixes to prevent database corruption, which could sometimes occur when Geth is terminated abnormally, e.g. by a short stop timeout in Docker. (#32557, #32447)
- All
engine
API operations, andeth_config
, now support BPO-style forks. (#32589, #32615, #32636, #32579) - This release includes some work towards supporting historical state proofs in the path-based archive node implementation. (#32418, #32523, #32649)
- Pebble stall counter are now correctly reported for each opened database. (#32563)
Networking
- The node discovery iterator was updated to improved geth startup time and reactivity when the node table becomes empty. (#32517, #32518)
- A hang in the 'eth' protocol test suite was resolved. (#32551)
Build
- The KZG proof libraries have been updated to the latest release to fix a vulnerability. Fortunately, the vulnerability would only have become usable after the Osaka fork, so there is no risk for users of current versions. (#32640, #32639)
- go-ethereum now requires Go 1.24 or later. (#32584, #32598)
- This release is built with Go 1.25.1 (#32593)
- execution-spec-tests has been bumped to v5.1.0 (#32592, #32742)