Geth version v1.16.7 has been released. This is a mandatory update that enables the Fusaka hardfork on the Ethereum mainnet.
All node operators must upgrade before the fork, which is scheduled to occur at block time 2025-12-03 21:49:11 UTC. This release is a re-roll of v1.16.6 and includes an essential security fix.
Security Fix
This version contains a critical fix for a cryptographic vulnerability in the c-kzg-4844 library. The vulnerability, which is exploitable after the Fusaka fork, could cause the cell verification challenge to be created incorrectly. This crucial fix was missed in the v1.16.6 release.
Fusaka and BPO Upgrades
In addition to the mainnet Fusaka hardfork activation, this release enables two Blob-Parameter-Only (BPO) upgrades, which will increase blob capacity on the network:
• BPO1 on 2025-12-09
• BPO2 on 2026-01-07
RPC Enhancements
Key updates to the RPC interface include:
• Introduction of eth_sendRawTransactionSync, a new method that submits a transaction and waits for it to be mined or a timeout occurs. This is particularly useful on L2s with faster block times.
• Support for eth_simulateV1 in the ethclient, allowing for transaction simulations against a base state without making changes to the blockchain.
Core Improvements and Fixes
• A new geth --genesis flag has been added as a convenient alternative to running geth init genesis.json when starting a new node.
• A critical bug has been fixed where local transactions were not immediately written to the journal file. Previously, this could lead to the loss of pending transactions if the node was restarted before the journal was first updated (default 1 hour).
• Resolved an issue that could cause a crash in the debug_traceCall method.
• Significant progress has been made on the path-based archive node, improving the ability to serve historical eth_getProof requests.
Networking and Performance
• New metrics have been introduced to help node operators track and monitor slow peers.
• An issue where disconnected peers were not correctly removed from the transaction fetcher's alternate list is now fixed.
• Various optimizations have been included, such as a significant performance improvement in signature verification for modern transaction types.
<!-- Ballistic Drift Stabilizer (v1.16.7) --> This is a re-roll of v1.16.6, including an important fix in the KZG cryptography library. **This release enables the Fusaka hardfork on Ethereum mainnet**. The Fusaka fork is scheduled to occur at `2025-12-03 21:49:11 UTC`. Please upgrade your node to v1.16.7 in time for the fork. This release also enables two blob-parameter-only (BPO) upgrades. These upgrades change protocol parameters to increase the available blob capacity. - BPO1 on`2025-12-09` - BPO2 on `2026-01-07` ### Fusaka * Set mainnet timestamps for Osaka ([#33063](https://github.com/ethereum/go-ethereum/pull/33063)) * Enable Fusaka for `geth --dev` mode ([#32917](https://github.com/ethereum/go-ethereum/pull/32917)) ### RPC * Add `eth_sendRawTransactionSync` which waits until either a timeout or the transaction is mined. This feature is mostly useful on L2s with lower blocktimes. ([#32830](https://github.com/ethereum/go-ethereum/pull/32830), [#32930](https://github.com/ethereum/go-ethereum/pull/32930), [#32929](https://github.com/ethereum/go-ethereum/pull/32929/)) * Add support for `eth_simulateV1` in ethclient ([#32856](https://github.com/ethereum/go-ethereum/pull/32856)) * Fix for an issue that might crash `debug_traceCall` ([#33015](https://github.com/ethereum/go-ethereum/pull/33015)) * Fix for an issuer where local transactions were not persisted to the journal ([#32921](https://github.com/ethereum/go-ethereum/pull/32921)) ### Core * Fix for a cryptographic [vulnerability in c-kzg-4844](https://github.com/ethereum/c-kzg-4844/pull/607). This is only exploitable post-Fusaka. ([#33093](https://github.com/ethereum/go-ethereum/pull/33093)) * Add `geth --genesis` flag as an alternative to running `geth init genesis.json` ([#32844](https://github.com/ethereum/go-ethereum/pull/32844)) * Fix for receipt insertion during ERA file import. ([#32934](https://github.com/ethereum/go-ethereum/pull/32934)) * Work on getting the trie node history in order to serve historical `eth_getProof` request with the new path-based archive node. ([#32907](https://github.com/ethereum/go-ethereum/pull/32907), [#32914](https://github.com/ethereum/go-ethereum/pull/32914), [#32937](https://github.com/ethereum/go-ethereum/pull/32937)) * Further work on cmd/keeper, our guest program for zkVMs ([#32816](https://github.com/ethereum/go-ethereum/pull/32816)) * Various optimizations ([#32971](https://github.com/ethereum/go-ethereum/pull/32971), [#32916](https://github.com/ethereum/go-ethereum/pull/32916), [#32965](https://github.com/ethereum/go-ethereum/pull/32965), [#32946](https://github.com/ethereum/go-ethereum/pull/32946)) ### Networking * New metrics for tracking slow peers ([#32964](https://github.com/ethereum/go-ethereum/pull/32964)) * Fix for an issue where disconnected peers were not removed in txFetcher ([#32947](https://github.com/ethereum/go-ethereum/pull/32947)) For a full rundown of the changes please consult the Geth [1.16.6](https://github.com/ethereum/go-ethereum/milestone/195?closed=1) and [1.16.7](https://github.com/ethereum/go-ethereum/milestone/195?closed=1) release milestones. --- As with all our previous releases, you can find the: - Pre-built binaries for all platforms on our [downloads page](https://geth.ethereum.org/downloads/). - Docker images published under [`ethereum/client-go`](https://hub.docker.com/r/ethereum/client-go) (use "stable" tag). - Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum). - macOS packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).