🚀 ethereum/go-ethereum - Release Notes

Juggernaut Shield (v1.15.7) (2025-03-31)

This is a bug fix release. We are putting is out specifically to address a critical issue that could break archive node databases.

- Fixed an issue for `--state.scheme=hash` where the log indexer would accidentally delete trie nodes. (#31525)
- Fixed an issue with tx submission, where the local pool didn't track pending nonces correctly. (#31496)
- The log indexer will now disable itself when hitting missing receipts in the database. (#31500)
- Another txpool issue reorg issue in `ethclient/simulated.Backend` is fixed in this release. (#31228)
- Memory allocation for trie operations has been reduced significantly. (#30932)
- `eth_createAccessList` now supports state overrides like `eth_call`. (#31497)
- `eth_createAccessList` will now exclude 7702 authorities from the result. (#31336)
- The abigen library now correctly forwards access lists to `eth_estimateGas`. (#31394)

For a full rundown of the changes please consult the Geth 1.15.7 [release milestone](https://github.com/ethereum/go-ethereum/milestone/184?closed=1)

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Mental Focuser (v1.15.6) (2025-03-25)

🚧  **Note: we are investigating an issue with this release that affects archive nodes (--gcmode=archive).
 If you are running Geth in this mode, please hold off upgrading.** 🚧 

This is a feature release, with two exciting upgrades:

- Log filtering in Geth receives a huge performance upgrade with the introduction of our new 'filtermaps' index. Unlike the previous 'bloombits' index, query performance no longer suffers as the density of logs in a block increases. The new index design is also a step towards a future where filtering results can be proven by the server. See [the PR](https://github.com/ethereum/go-ethereum/pull/31079) and associated design documents for more information.

  In practical terms, the new index is a bit larger than the old one. As before, you can choose the amount of historical blocks to be indexed using the `--history.logs` command-line flag. We have adjusted the default value of this flag to cover one year of history, and the resulting index has a size of ~10GB for Ethereum mainnnet. Indexing of the entire chain with `--history.logs=0` will take up ~61GB.

  Once the index is built, searches will be fast, but note that querying outside of the indexed block range will fall back to a very slow unindexed search. We will continue optimizing log searches in future releases, and welcome your feedback and bug reports in this area. (#31065, #31079, #31080, #31081, #31419, #31429, #31450, #31463, #31455)

- [abigen v2](https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings-v2) is finally here. abigen is a tool for creating Go bindings for Solidity contracts. In v1, the generated bindings presented an API for sending transactions, filtering logs, and performing read-only calls as Go methods on the contract object. In the new version, we have updated the interface of the generated code to focus purely on encoding and decoding ABI payloads. Generic helper functions are provided in a library package to enable the same interactions as before, but you can also use your own custom method of signing & sending transactions. Generated bindings are also significantly smaller. (#31379)

Other changes in this release:

#### RPC

- A regression in `eth_sendRawTransaction` - where transactions with too-low nonce would be accepted by the API - has been fixed. (#31473)
- `eth_call`/`estimateGas` RPC methods will now always return error code 3 for reverts. It previously only returned this code when the EVM produced revert data. (#31456)
- `eth_simulateV1` now returns a correct logs bloom value in the simulated block (#31411)
- `eth_simulateV1` supports block overrides for the beacon root and withdrawals (#31304)
- `debug_traceCall`: the `movePrecompileTo` override feature should now work correctly (#31348)
- `debug_traceCall` and other related RPC methods now hex-encode the EVM return value. **This is a breaking change.** (#31216, #31445)
- `ethclient` has a new method `EstimateGasAtBlock` (#27508)

#### Geth

- Support for the [Hoodi testnet](https://github.com/eth-clients/hoodi) has been added. (#31406)
- The beacon chain light client has been updated to support the Electra fork. (#31243, #31470)
- `geth import` now properly handles Ctrl-C interrupts (#31360)
- `geth --dev` mode will now pre-fund all precompile accounts supported by the Pectra upgrade (#31342)
- `geth --dev` now respects the `--miner.pending.feeRecipient` flag (#31316)

#### Core library

- The performance of transaction signature validation has improved significantly (#31242, #31258, #31434)
- The transaction pool has seen some correctness and performance improvements. (#31430, #31307, #31332)
- We have added a lot of preliminary changes for History Expiry (EIP-4444). There shouldn't be any user-facing consequences of these just yet, just reporting it here since this area was a big focus this cycle. (#31424, #31355, #31362, #31383, #31365, #31117, #31356, #31384, #31393)

For a full rundown of the changes please consult the Geth 1.15.6 [release milestone](https://github.com/ethereum/go-ethereum/milestone/183?closed=1)

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Stronghold Package (v1.15.5) (2025-03-05)

Alright 🥲 This is a hotfix release for an issue on the Sepolia testnet. Shortly after the Pectra fork activation, an issue in deposit contract logs parsing was discovered. Sepolia has a custom version of the deposit contract that also implements ERC-20, and thus unexpected log events may be created by transactions to it. This issue affects all Ethereum execution clients.

The Sepolia testnet may take a short while to recover while the update is adopted by nodes. An incident report will be published once the network has fully recovered. ❤️‍🩹 

Other changes in this release:

- In output of `debug_traceTransaction`, the "memory" and "storage" fields will be omitted if empty. (#31289)
- This release is built with Go 1.24.1 (#31313)

For a full rundown of the changes please consult the Geth 1.15.5 [release milestone](https://github.com/ethereum/go-ethereum/milestone/182?closed=1)

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).


Commando Package (v1.15.4) (2025-03-01)

This is a bug fix release. 

**Note: you need to upgrade to v1.15.3 or this release to be compatible with the Pectra fork on the Sepolia network (activates Wed, Mar 5 at 07:29:36 UTC)**.

- Fixed a v1.15.0 regression in `eth_feeHistory` that caused incorrect `blobGasRatio` return values. (#31246, #31270)
- A v1.15.0 regression in RPC transaction submission has been fixed: if a transaction did not pass txpool verification (e.g. low fees), an error was returned by RPC, but the transaction would be added to the local pool anyway. This is now fixed and no error will be returned by the API in this case. (#31202)
- Txpool logic was reworked to avoid an error log flood about EIP-7702 authorities. (#31249)
- Certain invalid blob transactions no longer cause disconnect issues in the p2p layer. (#31219)
- ethclient now provides a `BlobBaseFee` method to request the current blob basefee. (#31290)
- The PPA package build was fixed after being broken in v1.15.3 by the upgrade to Go 1.24. (#31282, #31283)

For a full rundown of the changes please consult the Geth 1.15.4 [release milestone](https://github.com/ethereum/go-ethereum/milestone/181?closed=1)

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Expert Package (v1.15.3) (2025-02-25)

Oh look, another hotfix release! We are issuing this Geth release to correct the predefined fork configuration of the Holesky and Sepolia testnets. The deposit contract address was missing in the configuration for these networks, causing a chain validation failure.

This issue was discovered on the Holesky network after it had already forked into Pectra (Prague). As a reminder, the Sepolia network will fork to Pectra at slot 7118848 (Wed, Mar 5 at 07:29:36 UTC). You need to upgrade to Geth v1.15.3 until then in order to use the testnet after the fork.

All changes in this release:

- Deposit contract addresses are now defined in testnet fork configuration. (#31247)
- The `eth_simulateV1` RPC method was improved to match regular block processing semantics. (#31176, #31122)
- A peer-finding issue with discovery v5 is fixed in this release. (#31251)
- An invalid `--discovery.dns` flag value will now cause an error at Geth startup. (#31233)
- Geth `--dev` mode can now handle custom genesis configs with forks older than the latest. (#31084)
- The EVM assembler/disassembler (package `core/asm`) has been removed. (#31211)
- Encoding of nested byte arrays in EIP-712 signature processing was fixed. (#31049)
- The cloudflare-go dependency has been updated to resolve a dependabot warning. (#31240)
- This release is built with Go 1.24.0 (#31159)

For a full rundown of the changes please consult the Geth 1.15.3 [release milestone](https://github.com/ethereum/go-ethereum/milestone/180?closed=1)

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Survivor Loadout (v1.15.2) (2025-02-17)

This release fixes a few regressions. In particular, it restores block building on mainnet, which was broken in v1.15.1.

**Note: a regression in the Prague fork implementation was discovered and fixed in a follow-up release. Please upgrade to at least v1.15.3 to follow the fork.**

All changes in this release:

- Block building on mainnet works again. ([#31191](https://github.com/ethereum/go-ethereum/pull/31191))
- Discv5 and DNS peer discovery has been restored. It was accidentally disabled in v1.14.9. ([#31185](https://github.com/ethereum/go-ethereum/pull/31185))
- An edge-case for `geth dumpconfig` related to the `P2P.NAT` setting in TOML is fixed. ([#31192](https://github.com/ethereum/go-ethereum/pull/31192))

For a full rundown of the changes please consult the Geth 1.15.2 [release milestone](https://github.com/ethereum/go-ethereum/milestone/179?closed=1)

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Engineering Kit (v1.15.1) (2025-02-13)

This release enables the Prague fork for the Holesky and Sepolia testnets. It is a required upgrade if you want to participate in these networks.

**Note: a regression in the Prague fork implementation was discovered and fixed in a follow-up release. Please upgrade to at least v1.15.3 to follow the fork.**

The fork is set to activate at

- **Holesky** slot: 3710976, timestamp: Mon, Feb 24 at 21:55:12 UTC
- **Sepolia** slot: 7118848, timestamp: Wed, Mar 5 at 07:29:36 UTC

Other user-facing changes in this release:

- Support for EIP-7702 transactions has been enabled in the transaction pool. (#31073)
- A v1.15.0 regression was identified in genesis handling for custom networks, related to the new `blobSchedule` setting. Geth v1.15.1 has been updated no longer crash in this case, and we will have an improved fix in v1.15.2 (#31171)
- A v1.15.0 regression in the `evm` command related to state dumps has been fixed. (#31158)
- A v1.15.0 regression with the ancient store in read-only mode has been fixed. (#31173)
- A crash in `debug_getRaw*` RPC methods has been fixed. (#31157)
- The supranational/blst dependency has been upgraded to v0.3.14 in order to allow building Geth with Go 1.24. (#31165)

For a full rundown of the changes please consult the Geth 1.15.1 [release milestone](https://github.com/ethereum/go-ethereum/milestone/178?closed=1)

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Operative Package (v1.15.0) (2025-02-06)

We are proud to announce the Geth 1.15.0 release.

This release contains some breaking changes to the database. Downgrading to v1.14.x requires re-syncing the chain.

### Prague Fork

As of this release, Geth implements the Prague fork specifications up to devnet-6.

- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS12-381 curve operations - has seen some updates. ([#30978](https://github.com/ethereum/go-ethereum/pull/30978))
- [EIP-7623](https://eips.ethereum.org/EIPS/eip-7623) - Increase calldata cost - was implemented this cycle. ([#30946](https://github.com/ethereum/go-ethereum/pull/30946))
- [EIP-7685](https://eips.ethereum.org/EIPS/eip-7685) - Execution layer requests - support was updated. ([#30670](https://github.com/ethereum/go-ethereum/pull/30670), [#30829](https://github.com/ethereum/go-ethereum/pull/30829), [#31103](https://github.com/ethereum/go-ethereum/pull/31103), [#31010](https://github.com/ethereum/go-ethereum/pull/31010), [#31071](https://github.com/ethereum/go-ethereum/pull/31071), [#30938](https://github.com/ethereum/go-ethereum/pull/30938), [#31102](https://github.com/ethereum/go-ethereum/pull/31102))
- [EIP-7702](https://eips.ethereum.org/EIPS/eip-7685) - Set EOA account code - was implemented this cycle. Note Geth does not support EIP-7702 transactions in the txpool just yet. ([#30078](https://github.com/ethereum/go-ethereum/pull/30078), [#30935](https://github.com/ethereum/go-ethereum/pull/30935), [#30936](https://github.com/ethereum/go-ethereum/pull/30936), [#31054](https://github.com/ethereum/go-ethereum/pull/31054), [#31032](https://github.com/ethereum/go-ethereum/pull/31032), [#30933](https://github.com/ethereum/go-ethereum/pull/30933), [#30982](https://github.com/ethereum/go-ethereum/pull/30982), [#31089](https://github.com/ethereum/go-ethereum/pull/31089), [#30926](https://github.com/ethereum/go-ethereum/pull/30926))
- [EIP-7840](https://eips.ethereum.org/EIPS/eip-7840) - Blob schedule in EL config - was implemented this cycle. ([#31002](https://github.com/ethereum/go-ethereum/pull/31002), [#31101](https://github.com/ethereum/go-ethereum/pull/31101), [#31128](https://github.com/ethereum/go-ethereum/pull/31128))

### Command changes

- The `evm` command has seen lots of updates, improving its command-line interface and internals. ([#30633](https://github.com/ethereum/go-ethereum/pull/30633), [#30849](https://github.com/ethereum/go-ethereum/pull/30849), [#30806](https://github.com/ethereum/go-ethereum/pull/30806), [#30927](https://github.com/ethereum/go-ethereum/pull/30927), [#30780](https://github.com/ethereum/go-ethereum/pull/30780), [#30854](https://github.com/ethereum/go-ethereum/pull/30854), [#31055](https://github.com/ethereum/go-ethereum/pull/31055), [#30805](https://github.com/ethereum/go-ethereum/pull/30805), [#30804](https://github.com/ethereum/go-ethereum/pull/30804), )
- Geth metrics can now be enabled via the TOML config file. This used to require the `--metrics` flag. ([#30814](https://github.com/ethereum/go-ethereum/pull/30814))
- Similarly, you can now set the NAT traversal method (`--nat` flag) with the config file. ([#31041](https://github.com/ethereum/go-ethereum/pull/31041))
- The `geth --trace` flag is now called `--go-execution-trace` to avoid confusion with EVM tracing. ([#30846](https://github.com/ethereum/go-ethereum/pull/30846))
- The `bootnode` utility has been removed. ([#30813](https://github.com/ethereum/go-ethereum/pull/30813))

### RPC & Tracing

- The live tracing Go API has been updated with new hooks and optional EVM revert tracking. See the [tracing API changelog](https://github.com/ethereum/go-ethereum/blob/master/core/tracing/CHANGELOG.md) for more information. ([#30441](https://github.com/ethereum/go-ethereum/pull/30441), [#30786](https://github.com/ethereum/go-ethereum/pull/30786), [#30830](https://github.com/ethereum/go-ethereum/pull/30830), [#30784](https://github.com/ethereum/go-ethereum/pull/30784), [#31007](https://github.com/ethereum/go-ethereum/pull/31007))
- RPC method `eth_estimateGas` now supports block overrides like `eth_call`. ([#30695](https://github.com/ethereum/go-ethereum/pull/30695))
- RPC method `eth_simulateV1` now advances the timestamp by 12 seconds per block. ([#30981](https://github.com/ethereum/go-ethereum/pull/30981))
- Package `accounts/abi` now supports unpacking Solidity error types. ([#30738](https://github.com/ethereum/go-ethereum/pull/30738))
- Package `accounts/abi/bind` has new functions `WaitMinedHash`, `WaitDeployedHash`. ([#30079](https://github.com/ethereum/go-ethereum/pull/30079))
- Package `accounts/usbwallet` was updated to support new Ledger firmware and the Ledger Flex device. ([#31004](https://github.com/ethereum/go-ethereum/pull/31004))
- In package `ethclient/simulated`, a bug was fixed where transactions couldn't be sent after `Rollback` of the simulated chain. ([#31020](https://github.com/ethereum/go-ethereum/pull/31020))
- The struct logger reports the EVM revert reason correctly again. ([#31013](https://github.com/ethereum/go-ethereum/pull/31013))

### Database

This release introduces a new database schema version. **A downgrade to v1.14.x requires a resync.**

- The 'total difficulty' of the chain is no longer stored in the database. ([#30744](https://github.com/ethereum/go-ethereum/pull/30744))
- The ancient store employs a new strategy for avoiding fsync on each update. This change should improve block import latency on some systems. ([#30392](https://github.com/ethereum/go-ethereum/pull/30392))
- Reverse state diffs use a new encoding for future compatibility with the Verkle Tree. ([#30107](https://github.com/ethereum/go-ethereum/pull/30107), [#31060](https://github.com/ethereum/go-ethereum/pull/31060))
- Internal handling of the SELFDESTRUCT operation has been simplified. This is possible since classic selfdestruct is no longer supported by the EVM after the Cancun fork. ([#30752](https://github.com/ethereum/go-ethereum/pull/30752), [#30802](https://github.com/ethereum/go-ethereum/pull/30802))
- Work towards a re-implementation of the state snapshot system is ongoing. ([#30643](https://github.com/ethereum/go-ethereum/pull/30643), [#30650](https://github.com/ethereum/go-ethereum/pull/30650), [#30654](https://github.com/ethereum/go-ethereum/pull/30654))
- Work on the Verkle Tree integration is also progressing. ([#31036](https://github.com/ethereum/go-ethereum/pull/31036), [#30856](https://github.com/ethereum/go-ethereum/pull/30856), [#30907](https://github.com/ethereum/go-ethereum/pull/30907), [#31097](https://github.com/ethereum/go-ethereum/pull/31097))

### Core Library & Networking

- The fix for [CVE-2025-24883](https://github.com/ethereum/go-ethereum/security/advisories/GHSA-q26p-9cq4-7fc2) (recent v1.14.13 hotfix release) is also in v1.15.0 ([#31100](https://github.com/ethereum/go-ethereum/pull/31100)).
- The transaction pool's notion of "locals" has been changed. This is a breaking change in some ways, and requires some explanation. Geth used to accept transactions at any fee level via RPC, storing them into the node's pool, and marking the sender as "local". When creating a new block (or the pending block), it would choose "local" transactions first. Finally, Geth tracks "local" transactions in a persistent journal file, and restores them on startup. The effect of all this is that once you had sent a transaction to Geth via RPC, it would keep prioritizing the sender account and its transactions (even ones received through p2p).

  In Geth v1.15, we are changing this model to a different one. When receiving a transaction via RPC, it is stored into the pool like any other transaction, but it is also inserted into a separate "locals tracker" that keeps reinjecting the tx into the main pool periodically. When building a block, Geth no longer prefers the txpool locals, but you can configure a set of addresses that should get priority using the `--txpool.locals` CLI flag. ([#30559](https://github.com/ethereum/go-ethereum/pull/30559), [#31127](https://github.com/ethereum/go-ethereum/pull/31127))
- For static nodes (from configuration or RPC `admin_addPeer`), the node URL can contain a DNS name. Geth will now resolve these names when attempting to connect to the peer, instead of at configuration parsing time. This is useful for setting up testing networks in Docker or Kubernetes where the IP address of a node might not be known ahead of time. ([#30822](https://github.com/ethereum/go-ethereum/pull/30822))
- Geth can now use the STUN protocol to figure out its own IP. There is a built-in list of public servers, or you can specify your own. Use `--nat=stun` to enable. ([#31064](https://github.com/ethereum/go-ethereum/pull/31064))
- Some minor bugs in the p2p protocol implementation got fixed. ([#30855](https://github.com/ethereum/go-ethereum/pull/30855), [#30918](https://github.com/ethereum/go-ethereum/pull/30918))

### Build

- This release is built with Go 1.23.6 ([#31130](https://github.com/ethereum/go-ethereum/pull/31130))
- The 'toolchain' line has been removed from go.mod ([#31057](https://github.com/ethereum/go-ethereum/pull/31057))
- go-ethereum library functionality should now build and run on wasip1 ([#31090](https://github.com/ethereum/go-ethereum/pull/31090))

For a full rundown of the changes please consult the Geth 1.15.0 [release milestone](https://github.com/ethereum/go-ethereum/milestone/177?closed=1)

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Schwarzschild (v1.14.13) (2025-01-30)

This is a security release, fixing a vulnerability (CVE-2025-24883). 

**Please update your nodes ASAP.**

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Gei Hinnom (v1.14.12) (2024-11-19)

This release covers quite a lot of time, and has many changes across the codebase. In particular; changes in tracing and account management, optimizations in database, trie and evm, and, as always bugfixes. 

This release removes the `personal` RPC namespace. It was already previously deprecated, and has not been accessible by default for nearly two years. We also removed the `--unlock` command-line parameter, with a view towards removing key/account management from the `geth` binary.

- Key management:
  - Remove `--unlock` command line flag from `geth` ([#30737](https://github.com/ethereum/go-ethereum/pull/30737))
  - Remove `personal` RPC namespace ([#30704](https://github.com/ethereum/go-ethereum/pull/30704))
- Builds:
  - RISC-V docker images ([#30739](https://github.com/ethereum/go-ethereum/pull/30739))
  - ppa-builds for ubuntu `24.10` ([#30580](https://github.com/ethereum/go-ethereum/pull/30580))
- Tracing:
  - invoke OnCodeChange-hook on selfdestruct ([#30686](https://github.com/ethereum/go-ethereum/pull/30686), [#30497](https://github.com/ethereum/go-ethereum/pull/30497))
  - improvements to `flatCallTracer` ([#30539](https://github.com/ethereum/go-ethereum/pull/30539))
  - invoke tx-end hook in runtime helpers ([#30711](https://github.com/ethereum/go-ethereum/pull/30711))
  - `disableCode` and `disableStorage` options for `prestateTracer` ([#30648](https://github.com/ethereum/go-ethereum/pull/30648))
  - tracing of system calls ([#30666](https://github.com/ethereum/go-ethereum/pull/30666))
  - Change to how chainconfig is passed to tracers (**breaking change**) ([#30540](https://github.com/ethereum/go-ethereum/pull/30540))
  - add `GetTransientState` method to StateDB interface ([#30531](https://github.com/ethereum/go-ethereum/pull/30531))
- Signing:
  - improved support for EIP-712 array types ([#30620](https://github.com/ethereum/go-ethereum/pull/30620))
  - non-legacy transactions support for ledger wallets ([#30180](https://github.com/ethereum/go-ethereum/pull/30180))
- Bugfixes:
  - Set basefee for `AccessList` based on given block, not chain tip ([#30538](https://github.com/ethereum/go-ethereum/pull/30538))
  - Multiple issues in benchmarks  ([#30667](https://github.com/ethereum/go-ethereum/pull/30667))
  - Fix bug with resolving a payload ([#30615](https://github.com/ethereum/go-ethereum/pull/30615))
- Database optimizations
  - Run pebble in non-sync mode ([#30573](https://github.com/ethereum/go-ethereum/pull/30573), [#29792](https://github.com/ethereum/go-ethereum/pull/29792)). This change makes quite a big difference on certain OS:es, particularly MacOSX/Darwin, where
    it has been noted that `fsync` is notoriously slow.
  - Use to increasing level sizes ([#30602](https://github.com/ethereum/go-ethereum/pull/30602)), This change makes pebble use larger files, reducing the number of files from 160K to 10K.
- Assorted:
  - Make jwtsecretflag expand tilde
  - Work on verkle ([#30672](https://github.com/ethereum/go-ethereum/pull/30672))
  - Work on `EIP-7002` and `EIP 7251` ([#30571](https://github.com/ethereum/go-ethereum/pull/30571))
  - Implement `EIP-7685` and `EIP-6110` (flat requests enconding) ([#30425](https://github.com/ethereum/go-ethereum/pull/30425))
  - Validation of EOF containers ([#30418](https://github.com/ethereum/go-ethereum/pull/30418))
  - More helpful responses for rejected transactions ([#30715](https://github.com/ethereum/go-ethereum/pull/30715))
  - Work on cross-execution witness ([#30698](https://github.com/ethereum/go-ethereum/pull/30698))
  - EVM speed optimizations ([#30662](https://github.com/ethereum/go-ethereum/pull/30662), [#30629](https://github.com/ethereum/go-ethereum/pull/30629))
  - Reduce peak memory usage during reorg ([#30600](https://github.com/ethereum/go-ethereum/pull/30600))
  - Speed up trie commit via concurrent workers ([#30545](https://github.com/ethereum/go-ethereum/pull/30545))
  - Fuzzing improvments ([#30585](https://github.com/ethereum/go-ethereum/pull/30585))
   - Implement new `engine_getBlobsV1` API method ([#30537](https://github.com/ethereum/go-ethereum/pull/30537))



For a full rundown of the changes please consult the Geth [1.14.12 release milestone](https://github.com/ethereum/go-ethereum/milestone/175?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Makhaira (v1.14.11) (2024-10-01)

This is a minor release, with the primary goal of publishing new `stable` and `latest` docker images. A problem in the CI pipeline prevented the publishing of docker images. We have now resolved the problem, and hope that the `v1.14.11`-release will be published as usual on Docker hub. 

We have now switched the way the docker images are built, and the `-amd64` and `-arm64`-tagged versions  **will no longer be maintained**: 
- `alltools-latest-amd64`, `alltools-latest-arm64` -> **`alltools-latest`**
- `latest-amd64`,`latest-arm64` -> **`latest`**
- `v1.14.10-amd64`, `v1.14.10-arm64` -> **`v1.14.10`**


**NOTE:** If you are a docker user on `stable`/`latest`, there's a high chance that you are not using any of the last two releases. If so, you are advised to look through the release-notes of those releases respectively: [v1.14.10](https://github.com/ethereum/go-ethereum/releases/tag/v1.14.10) and [v1.14.9](https://github.com/ethereum/go-ethereum/releases/tag/v1.14.9). 

Other changes since v1.14.10 include
- Remove `totalDifficulty` field from RPC, in accordance with [spec update](https://github.com/ethereum/execution-apis/pull/570),  [#30386](https://github.com/ethereum/go-ethereum/pull/30386)
- Fix flaw in simulated backend  [#30465](https://github.com/ethereum/go-ethereum/pull/30465)
- New method of building multi-platform docker images [#30530](https://github.com/ethereum/go-ethereum/pull/30530)
- Ability to disable `FINDNODE` liveness checks in tests [#30512](https://github.com/ethereum/go-ethereum/pull/30512)

For a full rundown of the changes please consult the Geth 1.14.11 [release milestone](https://github.com/ethereum/go-ethereum/milestone/174?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).


Kopis (v1.14.10) (2024-09-27)

Geth v1.14.10 is a hotfix release to fix a [blob pool regression](https://github.com/ethereum/go-ethereum/pull/30518) introduced in v1.14.9. Users running the previous bad version should update ASAP. That said, there is no immediate danger to these users, just to the health of blob transaction propagation and inclusion in the network.

Beside the hotfix, this release:

- Ships stateless witness production and verification into the engine API ([#30069](https://github.com/ethereum/go-ethereum/pull/30069)).
- Use 0 global gas cap as unlimited in simulated calls too ([#30474](https://github.com/ethereum/go-ethereum/pull/30474), [#30496](https://github.com/ethereum/go-ethereum/pull/30496)).

For a full rundown of the changes please consult the Geth [1.14.10 release milestone](https://github.com/ethereum/go-ethereum/milestone/173?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Aegis (v1.14.9) (2024-09-18)

***This release has been nuked. It broke the blob pool, please do not use it.***

---

This is a maintenance release, but also introduces support for the new multicall spec, which is a much anticipated feature providing a `eth_simulateV1` call, that takes a list of blocks and executes them as if calling multiple `eth_call`s sequentially. It accepts optional state and precompile overrides, as well as transfer log events. This release also ships with improved verkle support.

## Command line

* Remove Goerli flag and config (https://github.com/ethereum/go-ethereum/pull/30289)

## Pectra

* Implement [EIP-6110: Supply validator deposits on chain](https://eips.ethereum.org/EIPS/eip-6110) (https://github.com/ethereum/go-ethereum/pull/29431)
* Implement [EIP-2935: Serve historical block hashes from state](https://eips.ethereum.org/EIPS/eip-2935) (https://github.com/ethereum/go-ethereum/pull/29465)

## Core

* Refactorings in the internal journaling (https://github.com/ethereum/go-ethereum/pull/28880)
* Fix a flaw in which the system halts if snapshot generation is stopped while it's not running (https://github.com/ethereum/go-ethereum/pull/30040)
* Fix potential out-of-bound issue in mempool (https://github.com/ethereum/go-ethereum/pull/30430)
* Add state reader abstraction (https://github.com/ethereum/go-ethereum/pull/29761)

## Txpool

* Fetch transactions from a peer in the order they were announced in order to minimize nonce gap, causing blob txs to rejected. A special rule is applied to blob transactions: they are retrieved from the network upon reception of the announcement, as blob transactions are never broadcast over the p2p network (https://github.com/ethereum/go-ethereum/pull/30125)

## Networking

* Add support for quic entry in ENR (https://github.com/ethereum/go-ethereum/pull/30283)
* fix Write method in metered connection (https://github.com/ethereum/go-ethereum/pull/30355)
* Enable discv5 by default (https://github.com/ethereum/go-ethereum/pull/30327)
* Proper handling for count=0 requests (https://github.com/ethereum/go-ethereum/pull/30305)
* Fix permissions for cloudflare deploy (https://github.com/ethereum/go-ethereum/pull/30326)
* Dial nodes from discv5 (https://github.com/ethereum/go-ethereum/pull/30302)
 
## RPC / tracing

* support for `eth_simulateV1`, which allows for the simulation a chain of blocks or simply a processing a sequence of eth_calls in one go. It is the implementation of the latest [multicall spec](https://github.com/ethereum/execution-apis/pull/484) (https://github.com/ethereum/go-ethereum/pull/27720)
* Add timeout to `Client.Unsubscribe` (https://github.com/ethereum/go-ethereum/pull/30318)
* Add coinbase addr to js tracing context (https://github.com/ethereum/go-ethereum/pull/30231)

## Misc

* Handle ABIs with `contract` type parameters (https://github.com/ethereum/go-ethereum/pull/30315)
* Support fixed-size arrays in eip-712 txs (https://github.com/ethereum/go-ethereum/pull/30175)
* Fix txpool deadlock in `--dev` mode (https://github.com/ethereum/go-ethereum/pull/30264)
* Use post-interop verkle costs (https://github.com/ethereum/go-ethereum/pull/30409, https://github.com/ethereum/go-ethereum/pull/30357)
* Verkle witness builder (https://github.com/ethereum/go-ethereum/pull/30129)
 
## Build

* Work towards [reproducible builds](https://github.com/ethereum/go-ethereum/issues/28987) (https://github.com/ethereum/go-ethereum/pull/30344, https://github.com/ethereum/go-ethereum/pull/30342, [#30346](https://github.com/ethereum/go-ethereum/pull/30346), [#30325](https://github.com/ethereum/go-ethereum/pull/30325), [#30321](https://github.com/ethereum/go-ethereum/pull/30321), [#30320](https://github.com/ethereum/go-ethereum/pull/30320), [#29723](https://github.com/ethereum/go-ethereum/pull/29723))

**Full Changelog**: https://github.com/ethereum/go-ethereum/compare/v1.14.8...v1.14.9

For a full rundown of the changes please consult the Geth [1.14.9 release milestone](https://github.com/ethereum/go-ethereum/milestone/172?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Rayingri (v1.14.8) (2024-08-12)

This is a maintenance release with bug fixes only.

### Command changes

- Blobpool related flags in Geth now actually work. ([#30203](https://github.com/ethereum/go-ethereum/pull/30203))
- The `evm run` command no longer overwrites the sender account in genesis.json. ([#30259](https://github.com/ethereum/go-ethereum/pull/30259))
- `evm run` now allows configuring `baseFeePerGas` in genesis.json. ([#30281](https://github.com/ethereum/go-ethereum/pull/30281))

### Go API

- `core/types.Transaction.ChainID` had a bug where it modified the signature for very large ChainID (>= 2^64). ([#30157](https://github.com/ethereum/go-ethereum/pull/30157))
- `ethclient.Client.NetworkID` now supports values returned in hex format by the server. ([#30263](https://github.com/ethereum/go-ethereum/pull/30263))
- `ethclient/simulated.Backend.AdjustTime` was fixed to apply the correct time divison. ([#30138](https://github.com/ethereum/go-ethereum/pull/30138))
- `accounts/abi/bind.TransactOpts` now supports setting an access list for created transactions. ([#30195](https://github.com/ethereum/go-ethereum/pull/30195))
- The package `p2p/simulations` has been removed. ([#30250](https://github.com/ethereum/go-ethereum/pull/30250))

### Core

- A snap-sync database corruption related to sync restarts is fixed in this release. ([#30258](https://github.com/ethereum/go-ethereum/pull/30258))
- `eth_call` storage overrides now work as originally intended: if a storage replacement object is specified in the call, previous storage values of the account are cleared. ([#30185](https://github.com/ethereum/go-ethereum/pull/30185))
- The txpool did not use the transaction's inline sender cache in some cases. ([#30208](https://github.com/ethereum/go-ethereum/pull/30208))
- The performance of EVM stack swaps was improved a bit. ([#30249](https://github.com/ethereum/go-ethereum/pull/30249))

### Networking

- The downloader now takes withdrawals into account when sizing its queue. ([#30276](https://github.com/ethereum/go-ethereum/pull/30276))
- The new discovery node revalidation could hot-spin in certain rare scenarios. ([#30239](https://github.com/ethereum/go-ethereum/pull/30239))
- Configuring an external IP using `--nat=extip:...` could lead to invalid discovery packets being generated. ([#30234](https://github.com/ethereum/go-ethereum/pull/30234))

### Build

- github.com/btcsuite/btcd/btcec has been upgraded to resolve a build error caused by upstream API changes. ([#30181](https://github.com/ethereum/go-ethereum/pull/30181))
- Previous releases will not build with Go 1.23, but this one will. ([#30253](https://github.com/ethereum/go-ethereum/pull/30253))
- This release is built with Go 1.22.6. ([#30273](https://github.com/ethereum/go-ethereum/pull/30273))

For a full rundown of the changes please consult the Geth [1.14.8 release milestone](https://github.com/ethereum/go-ethereum/milestone/171?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Trident (v1.14.7) (2024-07-11)

This is a hot-fix release for a bug ([#30139](https://github.com/ethereum/go-ethereum/issues/30139)) which affects only the previous release. Users of v1.14.6 are kindly requested to update.

For a full rundown of the changes please consult the Geth [1.14.7 release milestone](https://github.com/ethereum/go-ethereum/milestone/170?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Talaria (v1.14.6) (2024-07-02)

Geth v1.14.6 is a maintenance release, but it does ship with the _experimental_ witness building validation code used in @karalabe's ["cross validation" proposal](https://gist.github.com/karalabe/47c906f0ab4fdc5b8b791b74f084e5f9). Note that the engine API part is not included in this release.

---

Shipped features:
 
 * Add stateless witness builder and (self-)cross validator ([#29719](https://github.com/ethereum/go-ethereum/pull/29719), [#29807](https://github.com/ethereum/go-ethereum/pull/29807), [#29970](https://github.com/ethereum/go-ethereum/pull/29970), [#30024](https://github.com/ethereum/go-ethereum/pull/30024))
 * Set a 2KB hard limit for p2p handshake messages ([#30029](https://github.com/ethereum/go-ethereum/pull/30029))
 * Improved display of database statistics ([#29948](https://github.com/ethereum/go-ethereum/pull/29948))

Shipped bugfixes:

 * Fix issue in which the beacon root contract balance would not be saved in developer mode, causing an error on restart ([#29963](https://github.com/ethereum/go-ethereum/pull/29963))
 * Fix shutdown crash when geth runs in blsync mode ([#29946](https://github.com/ethereum/go-ethereum/pull/29946))
 * Fix data races in snapshot access ([#30001](https://github.com/ethereum/go-ethereum/pull/30001), [#30011](https://github.com/ethereum/go-ethereum/pull/30011))
 * Fix out of bounds access in json unmarshalling ([#30014](https://github.com/ethereum/go-ethereum/pull/30014))
 * Add missing lock in peer discovery ([#29960](https://github.com/ethereum/go-ethereum/pull/29960))

For a full rundown of the changes please consult the Geth [1.14.6 release milestone](https://github.com/ethereum/go-ethereum/milestone/169?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Bothros (v1.14.5) (2024-06-06)

Geth v1.14.5 is a hotfix release that addresses a regression introduced in v1.14.4, which prevented the node from discovering other peers in certain networking setups ([#29944](https://github.com/ethereum/go-ethereum/pull/29944)). It is otherwise identical to [v1.14.4](https://github.com/ethereum/go-ethereum/releases/tag/v1.14.4).

---

Geth v1.14.4 in a usual maintenance release, but it does ship a 5-7% block import [speed improvement](https://github.com/ethereum/go-ethereum/pull/29519). Furthermore, v1.14.4 also finally includes an [Ether supply live tracer](https://github.com/ethereum/go-ethereum/pull/29347), that you can enable via `--vmtrace supply`. Also please note, the default value for miner tip enforcement was dropped from 1 gwei to 0.001 gwei (block producers can change this via `--miner.gasprice`).

Shipped features:

- Reduce the default required minimum miner tip from 1 gwei to 0.001 gwei to cater better for network conditions ([#29895](https://github.com/ethereum/go-ethereum/pull/29895)).
- Load trie nodes concurrently with trie updates, speeding up block import by 5-7% ([#29519](https://github.com/ethereum/go-ethereum/pull/29519), [#29768](https://github.com/ethereum/go-ethereum/pull/29768), [#29919](https://github.com/ethereum/go-ethereum/pull/29919)).
- Introduce an Ether supply tracker as a live chain tracer ([#29347](https://github.com/ethereum/go-ethereum/pull/29347)).
- Implement Verkle stateless gas accounting ([EIP-4762](https://eips.ethereum.org/EIPS/eip-4762)) ([#29338](https://github.com/ethereum/go-ethereum/pull/29338)).
- Optimise trie dirty tracking to reduce disk loads a bit ([#29731](https://github.com/ethereum/go-ethereum/pull/29731)).
- Ensure the [beacon chain roots system contract](https://eips.ethereum.org/EIPS/eip-4788) is deployed in dev mode ([#29655](https://github.com/ethereum/go-ethereum/pull/29655)).
- Add an additional snap sync check for data validity before inserting into the database ([#29485](https://github.com/ethereum/go-ethereum/pull/29485)).
- Improve the discovery protocol's node revalidation ([#29572](https://github.com/ethereum/go-ethereum/pull/29572), [#29864](https://github.com/ethereum/go-ethereum/pull/29864), [#29836](https://github.com/ethereum/go-ethereum/pull/29836)).
- Continue working towards pathdb support in archive mode ([#29530](https://github.com/ethereum/go-ethereum/pull/29530), [#29924](https://github.com/ethereum/go-ethereum/pull/29924)).

Shipped bugfixes:

- Fix a gas estimation regression that caused longer runtimes ([#29738](https://github.com/ethereum/go-ethereum/pull/29738)).
- Fix a potential crash in JSON logging for EVM blocktests ([#29795](https://github.com/ethereum/go-ethereum/pull/29795)).
- Fix utility commands to support post-merge opcodes ([#29799](https://github.com/ethereum/go-ethereum/pull/29799)).
- Fix a txpool synchronicity issue in simulated chains ([#29876](https://github.com/ethereum/go-ethereum/pull/29876)).
- Fix a iteration order when using a trie node iterator ([#27838](https://github.com/ethereum/go-ethereum/pull/27838)).
- Fix a TCP/UDP discovery port test in cmd/devp2p ([#29879](https://github.com/ethereum/go-ethereum/pull/29879)).
- Fix IPv6 endpoint determination ([#29801](https://github.com/ethereum/go-ethereum/pull/29801), [#29827](https://github.com/ethereum/go-ethereum/pull/29827)).

For a full rundown of the changes please consult the Geth [1.14.4 release milestone](https://github.com/ethereum/go-ethereum/milestone/167?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Triodia (v1.14.4) (2024-06-05)

Geth v1.14.4 in a usual maintenance release, but it does ship a 5-7% block import [speed improvement](https://github.com/ethereum/go-ethereum/pull/29519). Furthermore, v1.14.4 also finally includes an [Ether supply live tracer](https://github.com/ethereum/go-ethereum/pull/29347), that you can enable via `--vmtrace supply`. Also please note, the default value for miner tip enforcement was dropped from 1 gwei to 0.001 gwei (block producers can change this via `--miner.gasprice`).

Shipped features:

- Reduce the default required minimum miner tip from 1 gwei to 0.001 gwei to cater better for network conditions ([#29895](https://github.com/ethereum/go-ethereum/pull/29895)).
- Load trie nodes concurrently with trie updates, speeding up block import by 5-7% ([#29519](https://github.com/ethereum/go-ethereum/pull/29519), [#29768](https://github.com/ethereum/go-ethereum/pull/29768), [#29919](https://github.com/ethereum/go-ethereum/pull/29919)).
- Introduce an Ether supply tracker as a live chain tracer ([#29347](https://github.com/ethereum/go-ethereum/pull/29347)).
- Implement Verkle stateless gas accounting ([EIP-4762](https://eips.ethereum.org/EIPS/eip-4762)) ([#29338](https://github.com/ethereum/go-ethereum/pull/29338)).
- Optimise trie dirty tracking to reduce disk loads a bit ([#29731](https://github.com/ethereum/go-ethereum/pull/29731)).
- Ensure the [beacon chain roots system contract](https://eips.ethereum.org/EIPS/eip-4788) is deployed in dev mode ([#29655](https://github.com/ethereum/go-ethereum/pull/29655)).
- Add an additional snap sync check for data validity before inserting into the database ([#29485](https://github.com/ethereum/go-ethereum/pull/29485)).
- Improve the discovery protocol's node revalidation ([#29572](https://github.com/ethereum/go-ethereum/pull/29572), [#29864](https://github.com/ethereum/go-ethereum/pull/29864), [#29836](https://github.com/ethereum/go-ethereum/pull/29836)).
- Continue working towards pathdb support in archive mode ([#29530](https://github.com/ethereum/go-ethereum/pull/29530), [#29924](https://github.com/ethereum/go-ethereum/pull/29924)).

Shipped bugfixes:

- Fix a gas estimation regression that caused longer runtimes ([#29738](https://github.com/ethereum/go-ethereum/pull/29738)).
- Fix a potential crash in JSON logging for EVM blocktests ([#29795](https://github.com/ethereum/go-ethereum/pull/29795)).
- Fix utility commands to support post-merge opcodes ([#29799](https://github.com/ethereum/go-ethereum/pull/29799)).
- Fix a txpool synchronicity issue in simulated chains ([#29876](https://github.com/ethereum/go-ethereum/pull/29876)).
- Fix a iteration order when using a trie node iterator ([#27838](https://github.com/ethereum/go-ethereum/pull/27838)).
- Fix a TCP/UDP discovery port test in cmd/devp2p ([#29879](https://github.com/ethereum/go-ethereum/pull/29879)).
- Fix IPv6 endpoint determination ([#29801](https://github.com/ethereum/go-ethereum/pull/29801), [#29827](https://github.com/ethereum/go-ethereum/pull/29827)).

For a full rundown of the changes please consult the Geth [1.14.4 release milestone](https://github.com/ethereum/go-ethereum/milestone/167?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Fuel Depot (v1.14.3) (2024-05-09)

We're issuing this (v1.14.3) release to finally publish v1.14 on the Ubuntu PPA. It is otherwise identical to [v1.14.2](https://github.com/ethereum/go-ethereum/releases/tag/v1.14.2).

---

This is a maintenance release containing bug-fixes. In case you are wondering where v1.14.1 (and v1.14.2) went, let's just say, the continuous integration gods have not been good to us.

List of changes in detail:

#### Geth

- When using `geth --dev` with a custom genesis block, the genesis file must now set difficulty and terminal total difficulty to zero. ([#29579](https://github.com/ethereum/go-ethereum/pull/29579))
- For fork scheduling errors in `geth init`, fork timestamps will now be printed correctly. ([#29514](https://github.com/ethereum/go-ethereum/pull/29514))
- Certain aspects of state handling are now parallelized resulting in a 5-10% speedup for block processing. ([#29681](https://github.com/ethereum/go-ethereum/pull/29681))

#### RPC

- `eth_feeHistory` was changed to apply a limit on the number of requested percentiles ([#29644](https://github.com/ethereum/go-ethereum/pull/29644))
- `eth_createAccessList` now honors request cancellation and terminates background work ([#29686](https://github.com/ethereum/go-ethereum/pull/29686))
- `eth_estimateGas` takes tx blobs into account for low-balance scenarios ([#29703](https://github.com/ethereum/go-ethereum/pull/29703))

#### Tracing

- The live tracing interface has new hooks around EVM system calls ([#29355](https://github.com/ethereum/go-ethereum/pull/29355))
- flatCallTracer was fixed to return the correct error result when interrupted ([#29623](https://github.com/ethereum/go-ethereum/pull/29623))

#### Build

- This release is built with Go 1.22.3 ([#29725](https://github.com/ethereum/go-ethereum/pull/29725))
- We no longer provide deb packages for Ubunty 14.04 Trusty Tahr ([#29651](https://github.com/ethereum/go-ethereum/pull/29651), [#29649](https://github.com/ethereum/go-ethereum/pull/29649), [#29648](https://github.com/ethereum/go-ethereum/pull/29648), [#29647](https://github.com/ethereum/go-ethereum/pull/29647))
- CI builders have been updated to Ubuntu 24.04 Noble Numbat ([#29723](https://github.com/ethereum/go-ethereum/pull/29723))

For a full rundown of the changes please consult the Geth [1.14.1 release milestone](https://github.com/ethereum/go-ethereum/milestone/165?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Ker (v1.14.2) (2024-05-08)

This is a maintenance release containing bug-fixes. In case you are wondering where v1.14.1 went, let's just say, the continuous integration gods have not been good to us.

List of changes in detail:

#### Geth

- When using `geth --dev` with a custom genesis block, the genesis file must now set difficulty and terminal total difficulty to zero. ([#29579](https://github.com/ethereum/go-ethereum/pull/29579))
- For fork scheduling errors in `geth init`, fork timestamps will now be printed correctly. ([#29514](https://github.com/ethereum/go-ethereum/pull/29514))
- Certain aspects of state handling are now parallelized resulting in a 5-10% speedup for block processing. ([#29681](https://github.com/ethereum/go-ethereum/pull/29681))

#### RPC

- `eth_feeHistory` was changed to apply a limit on the number of requested percentiles ([#29644](https://github.com/ethereum/go-ethereum/pull/29644))
- `eth_createAccessList` now honors request cancellation and terminates background work ([#29686](https://github.com/ethereum/go-ethereum/pull/29686))
- `eth_estimateGas` takes tx blobs into account for low-balance scenarios ([#29703](https://github.com/ethereum/go-ethereum/pull/29703))

#### Tracing

- The live tracing interface has new hooks around EVM system calls ([#29355](https://github.com/ethereum/go-ethereum/pull/29355))
- flatCallTracer was fixed to return the correct error result when interrupted ([#29623](https://github.com/ethereum/go-ethereum/pull/29623))

#### Build

- This release is built with Go 1.22.3 ([#29725](https://github.com/ethereum/go-ethereum/pull/29725))
- We no longer provide deb packages for Ubunty 14.04 Trusty Tahr ([#29651](https://github.com/ethereum/go-ethereum/pull/29651), [#29649](https://github.com/ethereum/go-ethereum/pull/29649), [#29648](https://github.com/ethereum/go-ethereum/pull/29648), [#29647](https://github.com/ethereum/go-ethereum/pull/29647))
- CI builders have been updated to Ubuntu 24.04 Noble Numbat ([#29723](https://github.com/ethereum/go-ethereum/pull/29723))

For a full rundown of the changes please consult the Geth [1.14.1 release milestone](https://github.com/ethereum/go-ethereum/milestone/165?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Asteria (v1.14.0) (2024-04-24)

Geth v1.14.0 (Asteria) is a major release with some juicy new features as well as some breaking changes. Please read through the release notes before updating to it. Whilst it should not adversely impact most users, there're always those rare occurrences.

### Highlights

- Geth v1.14.0 switches over the default state trie representation from `hash` mode to `path` mode (i.e. `--state.scheme` flipped form `hash` to `path`) ([#29108](https://github.com/ethereum/go-ethereum/pull/29108)). This change does not affect Geth instances with pre-existing databases, in the case of which Geth continues to use whatever the existing database's format is. If no previous database exists however, for full nodes, Geth will now default to `pathdb`. The main advantage is built-in, online historical state pruning; no more runaway state growth.
  - **If you want to force the old behaviour, you can run Geth with `--state.scheme=hash` for now.** That said, we will be dropping `hash` mode sooner rather than later, so we advise everyone running full nodes to gradually switch, if they haven't yet.
  - **Archive mode support is not yet finalised for `path` mode, so archive nodes will still run in `hash` mode.** Naturally, hash mode will not be dropped until a full `path` archive lands and people have enough time to switch to it.

- Geth v1.14.0 introduces a brand new *live-tracing* feature, where one or more transaction tracers might be injected into the block processing pipeline, ensuring that tracing and execution happen in lockstep ([#29189](https://github.com/ethereum/go-ethereum/pull/29189)). Since Go does not have a cross platform, OS native plugin infrastructure, adding live tracers needs to be done at the Geth source code level, and Geth itself subsequently rebuilt. That said, the advantage is that such tracers have full execution flexibility to do whatever they like and however they like. Please see the live-tracer [changelog](https://github.com/ethereum/go-ethereum/blob/master/core/tracing/CHANGELOG.md) and [docs](https://geth.ethereum.org/docs/developers/evm-tracing/live-tracing) for details.
  - **Live tracing runs in lockstep with block execution, one waiting for the other.** You should never run a live tracer on a validating node, or any other where latency is important. The recommended practice is to have tracers collect and export the bare minimum data needed and do any post-processing in external systems where latency is not relevant.
  - **The live tracer work required a number of breaking internal API changes.** If you had your own native tracers implemented before this change, the [changelog](https://github.com/ethereum/go-ethereum/blob/master/core/tracing/CHANGELOG.md) contains the necessary steps needed to update your old code for the new APIs.

- Geth v1.14.0 replaces the completely random transaction propagation paths (in the Ethereum P2P network) with pseudo-random ones, that ensure transactions from the same account follow the same path in the network (as long as no peer churn happens). The purpose is to allow a burst of transactions from the same account to ripple through the network on the same connections, minimising reordering. Whilst this doesn't provide any guarantees, nor does it replace the potential need for more complex routing logic, it should make nonce gaps significantly less likely, reducing the probability of dropped transactions during bursts ([#29034](https://github.com/ethereum/go-ethereum/pull/29034)).
  - **This change only applies to networking, so other clients are not required to follow suit.** That said, the network would behave more consistently overall if all clients implemented some similar logic (the exact routing algorithm is irrelevant, as long as it's stable in the accounts).

- Geth v1.14.0 drops support for running pre-merge networks ([#29169](https://github.com/ethereum/go-ethereum/pull/29169)). This does not mean that Geth will not be able to process or validate pre-merge blocks, rather that starting v1.14.0, Geth *must* have a consensus client drive it's chain selection. Geth drops the *forward-sync* mode of operation, where it imports blocks based on PoW (ethash) or PoA (clique) difficulties.
  - **Non-merged networks will need to stick to Geth v1.13.x until they transition to post-merge.** As Ethereum has transitioned towards a post-merge world, we cannot maintain a significant chunk of code that's been dead for 2 years now on mainnet.
  - **Post-merge networks must be marked so with the `terminalTotalDifficultyPassed: true` field in their `genesis.json`.** This requirement will be dropped (along with even caring at all about this field) in a few releases, but for now this field produces a clear error message for the user of what's wrong with their pre-merge network.

- Geth v1.14.0 stops automatically constructing the pending block ([#28623](https://github.com/ethereum/go-ethereum/pull/28623)). Performance wise there is a significant cost to creating a potential pending block, yet most node operators do not care about it. Not even validators need the pending block. This work also drops support for mining/signing a block "off-demand" (i.e. not via the engine API, rather by Geth itself), meaning Clique signing is also removed going forward.
  - **With Clique mining removed, Geth v1.14.0 cannot be a Clique signer any more.** This however goes hand-in-hand with the removal or pre-merge chain selection and synchronisation support described earlier.
  - **The pending block can still be constructed on demand for now.** Whenever an RPC method is called that is based on the pending block, Geth will generate it on the fly and cache it for 1 second for subsequent calls. The first such call will have a few hundred ms execution delay.

- **Geth v1.14.0 removes support for filtering pending logs.** This is following the previous change of creating the pending block only on demand. We see next to no value in monitoring the logs of a random subset of transactions that might (but probably mostly will not) end up in the next block. Power users who wish to monitor the transaction pool for MEV (or similar) purposes, should hook into Geth directly and extract the exact data they need, rather than rely on insufficient API endpoints.

- Geth v1.14.0 ships a *beacon chain* light client ([#28822](https://github.com/ethereum/go-ethereum/pull/28822), [#29308](https://github.com/ethereum/go-ethereum/pull/29308), [#29335](https://github.com/ethereum/go-ethereum/pull/29335), [#29532](https://github.com/ethereum/go-ethereum/pull/29532), [#29567](https://github.com/ethereum/go-ethereum/pull/29567)). It uses the REST API of beacon nodes and requires the `beacon / light_client namespace`, currently supported by Lodestar and Nimbus ([specs](https://ethereum.github.io/beacon-APIs/#/Beacon)).
  - **The beacon light client provides access to consensus layer data, not execution layer data.** This currently means that it can follow the beacon chain as a light client and extract the latest head and finalised execution layer block. That can be used to drive a full execution node without running an own beacon node. There is no support yet for a full execution light client.
  -  **Validation and staking is not possible with a beacon light client.** Since the sync committee signatures on each beacon head are canonised in the next block, the beacon light client can only follow the chain with one slot delay.
  - **The beacon light client exists both as a standalone executable and integrated into Geth.** The `blsync` executable can drive any execution layer node through the standard engine API or can just do a "test run" printing block numbers and hashes to the console. The integrated mode can do the same inside Geth. If you specify at least one suitable consensus layer REST API endpoint with the `--beacon.api` flag, then Geth will run without a beacon node connected through the engine API.

- Geth v1.14.0 switched to using Go v1.22 by default ([#28946](https://github.com/ethereum/go-ethereum/pull/28946)), which means we've dropped support for Go v1.20. Geth also started using of new features from Go v1.21 in our codebase, so building with Go v1.20 will probably error from now on. Just a heads up.

### Features

- Add the `geth db inspect-history` command to inspect pathdb state history ([#29267](https://github.com/ethereum/go-ethereum/pull/29267)).
- Enable the Cancun hard-fork when running Geth in dev mode ([#28829](https://github.com/ethereum/go-ethereum/pull/28829)).
- Use beacon chain finality as the marker to move old blocks into ancients ([#28683](https://github.com/ethereum/go-ethereum/pull/28683)).
- Drop large-contract (500MB+) deletion DoS protection from pathdb post Cancun ([#28940](https://github.com/ethereum/go-ethereum/pull/28940)).
- Switch Geth's USB library from `libusb` to `hid` for simpler hardware wallet support ([#28945](https://github.com/ethereum/go-ethereum/pull/28945), [#29175](https://github.com/ethereum/go-ethereum/pull/29175), [#29176](https://github.com/ethereum/go-ethereum/pull/29176)).
- Update the `prestateTrancer` to take into account 4844 blobs and their fees ([#29168](https://github.com/ethereum/go-ethereum/pull/29168)).
- Extend the `ethclient` and `gethclient` packages with support for 4844 blob fields ([#29198](https://github.com/ethereum/go-ethereum/pull/29198)).
- Detailed block execution metrics are now always reported, deprecating `--metrics.expensive` ([#29191](https://github.com/ethereum/go-ethereum/pull/29191)).
- Avoid a lot of memory allocations while shuffling 4844 blobs within Geth ([#29050](https://github.com/ethereum/go-ethereum/pull/29050)).
- Switch to using Go's native `log/slog` package instead of `golang/exp` ([#29302](https://github.com/ethereum/go-ethereum/pull/29302)).
- When computing state roots, apply state updates before deletes to avoid some trie lookups. ([#29201](https://github.com/ethereum/go-ethereum/pull/29201)).
- Track not only total peer count, but also how many are inbound or outbound ([#29424](https://github.com/ethereum/go-ethereum/pull/29424)).
- Add support for signing blob transactions ([#28976](https://github.com/ethereum/go-ethereum/pull/28976), [#29470](https://github.com/ethereum/go-ethereum/pull/29470)).
- Surface *max initcode exceeded* errors from the VM to outer callers ([#29354](https://github.com/ethereum/go-ethereum/pull/29354)).
- Update the EVM to reject contract creation on top of non-empty storage ([#28912](https://github.com/ethereum/go-ethereum/pull/28912)).
- Switch over the BLS implementation from `kilic` to `gnark` ([#29441](https://github.com/ethereum/go-ethereum/pull/29441)).
- Start emitting performance degradation warnings if `pebble` is overloaded ([#29478](https://github.com/ethereum/go-ethereum/pull/29478)).
- Add `eth_blobBaseFee` RPC method, extend `eth_feeHistory` with blobs ([#29140](https://github.com/ethereum/go-ethereum/pull/29140)).

### Bugfixes

- Shave an allocation off of pathdb trie writes caused by a bad initial buffer size ([#29106](https://github.com/ethereum/go-ethereum/pull/29106)).
- Fix a crash in dev mode using pathdb when rewinding more than 128 blocks ([#29107](https://github.com/ethereum/go-ethereum/pull/29107)).
- Fix some non-conformance issues in the engine API's error returns ([#29115](https://github.com/ethereum/go-ethereum/pull/29115)).
- Fix a too early db close in `geth dump` and `geth snapshot dump` ([#29100](https://github.com/ethereum/go-ethereum/pull/29100)).
- Fix the `devp2p` command to not ignore specified bootnodes ([#29091](https://github.com/ethereum/go-ethereum/pull/29091)).
- Fix the `prestateTracer` to return the correct nonce for contract creations ([#29099](https://github.com/ethereum/go-ethereum/pull/29099)).
- Fix blob fee formatting on RPC output from decimal to hexadecimal ([#29166](https://github.com/ethereum/go-ethereum/pull/29166)).
- Fix the blob pool tx acceptance error if it is already known vs underprices ([#29210](https://github.com/ethereum/go-ethereum/pull/29210)).
- Fix a few Windows file path joining issues in various go-ethereum utilities ([#29227](https://github.com/ethereum/go-ethereum/pull/29227), [#29479](https://github.com/ethereum/go-ethereum/pull/29479), [#29489](https://github.com/ethereum/go-ethereum/pull/29489)).
- Fix a data race when tracing a block via the JavaScript tracers ([#29238](https://github.com/ethereum/go-ethereum/pull/29238)).
- Fix a number of chain rewinding corner-cases after crashes ([#29196](https://github.com/ethereum/go-ethereum/pull/29196), [#29245](https://github.com/ethereum/go-ethereum/pull/29245)).
- Fix an ENR RLP decoding issue in the `devp2p` command ([#29257](https://github.com/ethereum/go-ethereum/pull/29257)).
- Fix withdrawal collection for simulated chains and dev mode ([#29344](https://github.com/ethereum/go-ethereum/pull/29344)).
- Fix a snap sync corner-case in `hashdb` mode ([#29341](https://github.com/ethereum/go-ethereum/pull/29341)).
- Fix an engine API field name mismatch for `GetClientVersion` ([#29351](https://github.com/ethereum/go-ethereum/pull/29351)).
- Fix a maximum unix socket path length check on macos ([#29385](https://github.com/ethereum/go-ethereum/pull/29385)).
- Fix an issue in the blob-pool that prevented Geth to start after a crash ([#29451](https://github.com/ethereum/go-ethereum/pull/29451)).
- Fix an issue that caused the JSON loggers to discard some log level ([#29471](https://github.com/ethereum/go-ethereum/pull/29471)).
- Fix the (now post-merge) genesis block difficulty in dev mode ([#29469](https://github.com/ethereum/go-ethereum/pull/29469)).
- Fix the precompile addresses of BLS ops (not live code yet) ([#29445](https://github.com/ethereum/go-ethereum/pull/29445)).
- Fix a data race that sometimes returned reorged receipts ([#29343](https://github.com/ethereum/go-ethereum/pull/29343)).
- Fix a snap-sync restart quirk that sometimes resulted in redownloading some data ([#29378](https://github.com/ethereum/go-ethereum/pull/29378)).
- Fix a snap-sync restart quirk that sometimes resulted in corrupting some data ([#29313](https://github.com/ethereum/go-ethereum/pull/29313)).
- Fix ancient header reader to hard cap at 2MB (network soft limit) ([#29534](https://github.com/ethereum/go-ethereum/pull/29534)).
- Fix the topic filtering to enforce some sanity nesting limits ([#29535](https://github.com/ethereum/go-ethereum/pull/29535)).

*We'd also like to shout out to a very high number of authors sending many nitpick PRs. Whilst we are not entirely sure about the intent behind these PRs (commit farming and all), we are nonetheless happy that the Geth codebase gets better.*

For a full rundown of the changes please consult the Geth [1.14.0 release milestone](https://github.com/ethereum/go-ethereum/milestone/164?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Ontamalca (v1.13.15) (2024-04-17)

Geth v1.13.15 is a maintenance-release that contains some fixes mainly to avoid snapsync-related data-corruption.

We recommend all users to upgrade to v1.13.15 as soon as possible. 

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Altaaya (v1.13.14) (2024-02-27)

Geth v1.13.14 is a small maintenance release with a handful of polishes to the blob pool:

- Disallow blob transactions below the protocol minimum of 1 wei to enter the pool ([#29081](https://github.com/ethereum/go-ethereum/pull/29081)).
- Reduce the blob pool's max capacity to 2.5GB for the rollout. ([#29090](https://github.com/ethereum/go-ethereum/pull/29090)).
- Fix gas estimation for blob transactions ([#29085](https://github.com/ethereum/go-ethereum/pull/29085)).

***This release is NOT critical for the Cancun fork, but recommended to make Geth lighter in anticipation to unknown blob load.***

Other fixes:

- Support overriding the basefee during tracing ([#29051](https://github.com/ethereum/go-ethereum/pull/29051)).
- Fix call tracers missing top level logs in top-only mode ([#29068](https://github.com/ethereum/go-ethereum/pull/29068)).
- Support unlimited gas for `eth_createAccessList` if `--gascap=0` ([#28846](https://github.com/ethereum/go-ethereum/pull/28846)).

For a full rundown of the changes please consult the Geth [1.13.14 release milestone](https://github.com/ethereum/go-ethereum/milestone/162?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Alsages (v1.13.13) (2024-02-21)

This is a minor release with fixes for several issues related to the upcoming Cancun mainnet fork. As such, it is recommended for all mainnet users.

Changes in this release:

- Block-building performance with blob transactions has been improved a lot. ([#29026](https://github.com/ethereum/go-ethereum/pull/29026), [#29008](https://github.com/ethereum/go-ethereum/pull/29008), [#29005](https://github.com/ethereum/go-ethereum/pull/29005))
- A corner case in the EVM related to out-of-order fork scheduling has been fixed. ([#29023](https://github.com/ethereum/go-ethereum/pull/29023))
- `eth_fillTransaction` has seen some bug fixes related to blob transactions as well. ([#28929](https://github.com/ethereum/go-ethereum/pull/28929), [#29037](https://github.com/ethereum/go-ethereum/pull/29037))
- A rare panic in the ethstats client related to chain reorgs is resolved. ([#29020](https://github.com/ethereum/go-ethereum/pull/29020))
- The blobpool database will now recover from disk corruption faults instead of crashing geth on startup. ([#29001](https://github.com/ethereum/go-ethereum/pull/29001))
- Geth now implements `getClientVersionV1` on the Engine API endpoint. ([#28915](https://github.com/ethereum/go-ethereum/pull/28915), [#28994](https://github.com/ethereum/go-ethereum/pull/28994))

Go API changes:

- `ethereum.CallMsg` now contains EIP-4844 related fields ([#28989](https://github.com/ethereum/go-ethereum/pull/28989))
- `core.GenesisAlloc` is now available from package `core/types`. We hope this change will reduce external dependencies on package `core`. ([#29003](https://github.com/ethereum/go-ethereum/pull/29003))

For a full rundown of the changes please consult the Geth [1.13.13 release milestone](https://github.com/ethereum/go-ethereum/milestone/161?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Edolus (v1.13.12) (2024-02-09)

This release embeds the mainnet fork number for Cancun, scheduled to go live on 13th March, 2024 (unix `1710338135`). The specification can be read [here](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md), and it contains the following changes:

* [EIP-1153: Transient storage opcodes](https://eips.ethereum.org/EIPS/eip-1153)
* [EIP-4788: Beacon block root in the EVM ](https://eips.ethereum.org/EIPS/eip-4788)
* [EIP-4844: Shard Blob Transactions](https://eips.ethereum.org/EIPS/eip-4844)
* [EIP-5656: MCOPY - Memory copying instruction](https://eips.ethereum.org/EIPS/eip-5656)
* [EIP-6780: SELFDESTRUCT only in same transaction](https://eips.ethereum.org/EIPS/eip-6780)
* [EIP-7516: BLOBBASEFEE opcode](https://eips.ethereum.org/EIPS/eip-7516)

To go along Cancun, we're providing refreshed Grafana dashboards:

- [Geth Cancun InfluxDB Dashboard](https://github.com/ethereum/go-ethereum/files/14211069/Geth-Cancun-InfluxDB.json)
- [Geth Cancun Prometheus Dashboard](https://github.com/ethereum/go-ethereum/files/14211070/Geth-Cancun-Prometheus.json)

Other than that, the following assorted fixes and features are included in this release:

- Initial implementation of the `era` format. The `era` format is meant to provide a cross-client archive format 
  for block data ([#26621](https://github.com/ethereum/go-ethereum/pull/26621), [#28959](https://github.com/ethereum/go-ethereum/pull/28959))
- Make rpc request limits configurable ([#28948](https://github.com/ethereum/go-ethereum/pull/28948))
- Fix memory-leak with blob transactions ([#28917](https://github.com/ethereum/go-ethereum/pull/28917))
- Stricter adherence to engine api spec ([#28882](https://github.com/ethereum/go-ethereum/pull/28882))
- Fix enforcement of minimum miner tip ([#28933](https://github.com/ethereum/go-ethereum/pull/28933))


For a full rundown of the changes please consult the Geth 1.13.12 [release milestone](https://github.com/ethereum/go-ethereum/milestone/160?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Tremanre (v1.13.11) (2024-01-24)

This release fixes a few bugs and enables the Cancun upgrade for the Sepolia and Holesky networks; Sepolia will upgrade on Jan 31, and Holesky on Feb 7, and naturally this is a required upgrade if you intend to follow either chain.  

- Enable Cancun on Sepolia and Holesky, plus Cancun-related changes ([#28834](https://github.com/ethereum/go-ethereum/pull/28834), [#28246](https://github.com/ethereum/go-ethereum/pull/28246), [#28230](https://github.com/ethereum/go-ethereum/pull/28230), [#28827](https://github.com/ethereum/go-ethereum/pull/28827))
- Support EIP-4844 transactions in API-methods ([#28786](https://github.com/ethereum/go-ethereum/pull/28786))
- Change how transaction indexing operates. As of 1.13.11, the behaviour of `eth_syncing` is slightly changed, so that it now
  does reports `true` until transaction indexing is finished. ([#28703](https://github.com/ethereum/go-ethereum/pull/28703))
- `rlpdump`: add `-pos` flag for displaying byte positions ([#28785](https://github.com/ethereum/go-ethereum/pull/28785))
- Fixes logging configuration ([#28801](https://github.com/ethereum/go-ethereum/pull/28801))

For a full rundown of the changes please consult the Geth 1.13.11 [release milestone](https://github.com/ethereum/go-ethereum/milestone/159?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Sharjila B (v1.13.10) (2024-01-11)

**This release is equivalent to v1.13.9, just contains a version bump. The reason is that a bad commit was tagged on 1.13.9 originally and whilst it was untagged and fixed, some caches (Go's package manager (`go mod`)) managed to store the temporary bad version. As there is no way for us to flush the bad version out, it's cleaner to tag a next version instead. Apologies about the mess.**

---

This release fixes a few issues and **enables the Cancun upgrade for the Goerli network** at block timestamp 1705473120 ([#28719](https://github.com/ethereum/go-ethereum/pull/28719)) which is 6:32:am 17. Jan. 2024 UTC.

:warning: **If you are running Goerli, this is a required update!**

Apart from the Goerli configuration update, we have a few other changes.

- The 'simulated backend' in package `accounts/abi/backends` was rewritten. The improved version is available from the new package `ethclient/simulated`. A backwards-compatibility wrapper remains in the old location. ([#28202](https://github.com/ethereum/go-ethereum/pull/28202))
- Fix ABI-encoding of negative big.Int in topics ([#28764](https://github.com/ethereum/go-ethereum/pull/28764))
- In JSON logging output, the "error" level is now correctly emitted as `"error"`. ([#28774](https://github.com/ethereum/go-ethereum/pull/28774), [#28780](https://github.com/ethereum/go-ethereum/pull/28780))
- Fixed an issue with configuration of stdlib package `log` for consumers of the geth library ([#28747](https://github.com/ethereum/go-ethereum/pull/28747))
- `geth removedb` can now be run non-interactively ([#28725](https://github.com/ethereum/go-ethereum/pull/28725))
- We're building a package for ubuntu 23.10: mantic minotaur now ([#28728](https://github.com/ethereum/go-ethereum/pull/28728))

### Testing
- Add `currentExcessBlobGas` to the state tests for better coverage of state tests ([#28735](https://github.com/ethereum/go-ethereum/pull/28735))
- Fixed an issue in t8n regarding blob gas usage ([#28735](https://github.com/ethereum/go-ethereum/pull/28734))

For a full rundown of the changes please consult the Geth 1.13.9 [release milestone](https://github.com/ethereum/go-ethereum/milestone/157?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Sharjila (v1.13.9) (2024-01-10)

This release fixes a few issues and **enables the Cancun upgrade for the Goerli network** at block timestamp 1705473120 ([#28719](https://github.com/ethereum/go-ethereum/pull/28719)) which is 6:32:am 17. Jan. 2024 UTC.

:warning: **If you are running Goerli, this is a required update!**

Apart from the Goerli configuration update, we have a few other changes.

- The 'simulated backend' in package `accounts/abi/backends` was rewritten. The improved version is available from the new package `ethclient/simulated`. A backwards-compatibility wrapper remains in the old location. ([#28202](https://github.com/ethereum/go-ethereum/pull/28202))
- Fix ABI-encoding of negative big.Int in topics ([#28764](https://github.com/ethereum/go-ethereum/pull/28764))
- In JSON logging output, the "error" level is now correctly emitted as `"error"`. ([#28774](https://github.com/ethereum/go-ethereum/pull/28774), [#28780](https://github.com/ethereum/go-ethereum/pull/28780))
- Fixed an issue with configuration of stdlib package `log` for consumers of the geth library ([#28747](https://github.com/ethereum/go-ethereum/pull/28747))
- `geth removedb` can now be run non-interactively ([#28725](https://github.com/ethereum/go-ethereum/pull/28725))
- We're building a package for ubuntu 23.10: mantic minotaur now ([#28728](https://github.com/ethereum/go-ethereum/pull/28728))

### Testing
- Add `currentExcessBlobGas` to the state tests for better coverage of state tests ([#28735](https://github.com/ethereum/go-ethereum/pull/28735))
- Fixed an issue in t8n regarding blob gas usage ([#28735](https://github.com/ethereum/go-ethereum/pull/28734))

For a full rundown of the changes please consult the Geth 1.13.9 [release milestone](https://github.com/ethereum/go-ethereum/milestone/157?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Patavig (v1.13.8) (2023-12-22)

This is a hotfix release for a regression which affects v1.13.6 and v1.13.7: if the node is shut down during sync, the node will refuse to start, with the error message `Fatal: Failed to register the Ethereum service: waiting for sync` ([#28718](https://github.com/ethereum/go-ethereum/pull/28718), [#28724](https://github.com/ethereum/go-ethereum/pull/28724)).

Please also see the release notes for [v1.13.6](https://github.com/ethereum/go-ethereum/releases/tag/v1.13.6) and [v1.13.7](https://github.com/ethereum/go-ethereum/releases/tag/v1.13.7)

For a full rundown of the changes please consult the Geth 1.13.8 [release milestone](https://github.com/ethereum/go-ethereum/milestone/156?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).

Fargeluse (v1.13.7) (2023-12-19)

We're issuing this release to fix an issue with our build pipeline. There are also some other changes:

- The `eth_sendTransaction` RPC method now behaves more correctly for low-fee transactions. ([#27834](https://github.com/ethereum/go-ethereum/pull/27834))
- We have upgraded the golang.org/x/crypto module dependency. The Go team has issued a new version to fix a vulnerability in the ssh package. While we do not use this package, we have upgraded the dependency in order to stop dependabot warnings. ([#28702](https://github.com/ethereum/go-ethereum/pull/28702))

For a full rundown of the changes please consult the Geth 1.13.7 [release milestone](https://github.com/ethereum/go-ethereum/milestone/155?closed=1).

---

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://cloud.docker.com/u/ethereum/repository/docker/ethereum/client-go).
- Ubuntu packages in our [Launchpad PPA repository](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- OSX packages in our [Homebrew Tap repository](https://github.com/ethereum/homebrew-ethereum).