Skip to content

Releases: ethereum/go-ethereum

Alsages (v1.13.13)

21 Feb 14:49
@fjl fjl
Compare
Choose a tag to compare

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, #29008, #29005)
  • A corner case in the EVM related to out-of-order fork scheduling has been fixed. (#29023)
  • eth_fillTransaction has seen some bug fixes related to blob transactions as well. (#28929, #29037)
  • A rare panic in the ethstats client related to chain reorgs is resolved. (#29020)
  • The blobpool database will now recover from disk corruption faults instead of crashing geth on startup. (#29001)
  • Geth now implements getClientVersionV1 on the Engine API endpoint. (#28915, #28994)

Go API changes:

  • ethereum.CallMsg now contains EIP-4844 related fields (#28989)
  • core.GenesisAlloc is now available from package core/types. We hope this change will reduce external dependencies on package core. (#29003)

For a full rundown of the changes please consult the Geth 1.13.13 release milestone.


As with all our previous releases, you can find the:

Edolus (v1.13.12)

09 Feb 07:00
02eb36a
Compare
Choose a tag to compare

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, and it contains the following changes:

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

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, #28959)
  • Make rpc request limits configurable (#28948)
  • Fix memory-leak with blob transactions (#28917)
  • Stricter adherence to engine api spec (#28882)
  • Fix enforcement of minimum miner tip (#28933)

For a full rundown of the changes please consult the Geth 1.13.12 release milestone.


As with all our previous releases, you can find the:

Tremanre (v1.13.11)

24 Jan 10:56
8f7eb9c
Compare
Choose a tag to compare

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, #28246, #28230, #28827)
  • Support EIP-4844 transactions in API-methods (#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)
  • rlpdump: add -pos flag for displaying byte positions (#28785)
  • Fixes logging configuration (#28801)

For a full rundown of the changes please consult the Geth 1.13.11 release milestone.


As with all our previous releases, you can find the:

Sharjila B (v1.13.10)

11 Jan 17:30
Compare
Choose a tag to compare

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) which is 6:32:am 17. Jan. 2024 UTC.

⚠️ 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)
  • Fix ABI-encoding of negative big.Int in topics (#28764)
  • In JSON logging output, the "error" level is now correctly emitted as "error". (#28774, #28780)
  • Fixed an issue with configuration of stdlib package log for consumers of the geth library (#28747)
  • geth removedb can now be run non-interactively (#28725)
  • We're building a package for ubuntu 23.10: mantic minotaur now (#28728)

Testing

  • Add currentExcessBlobGas to the state tests for better coverage of state tests (#28735)
  • Fixed an issue in t8n regarding blob gas usage (#28735)

For a full rundown of the changes please consult the Geth 1.13.9 release milestone.


As with all our previous releases, you can find the:

Sharjila (v1.13.9)

10 Jan 16:32
Compare
Choose a tag to compare

This release fixes a few issues and enables the Cancun upgrade for the Goerli network at block timestamp 1705473120 (#28719) which is 6:32:am 17. Jan. 2024 UTC.

⚠️ 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)
  • Fix ABI-encoding of negative big.Int in topics (#28764)
  • In JSON logging output, the "error" level is now correctly emitted as "error". (#28774, #28780)
  • Fixed an issue with configuration of stdlib package log for consumers of the geth library (#28747)
  • geth removedb can now be run non-interactively (#28725)
  • We're building a package for ubuntu 23.10: mantic minotaur now (#28728)

Testing

  • Add currentExcessBlobGas to the state tests for better coverage of state tests (#28735)
  • Fixed an issue in t8n regarding blob gas usage (#28735)

For a full rundown of the changes please consult the Geth 1.13.9 release milestone.


As with all our previous releases, you can find the:

Patavig (v1.13.8)

22 Dec 12:49
b20b4a7
Compare
Choose a tag to compare

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, #28724).

Please also see the release notes for v1.13.6 and v1.13.7

For a full rundown of the changes please consult the Geth 1.13.8 release milestone.


As with all our previous releases, you can find the:

Fargeluse (v1.13.7)

19 Dec 13:04
@fjl fjl
c3d9ca6
Compare
Choose a tag to compare

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)
  • 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)

For a full rundown of the changes please consult the Geth 1.13.7 release milestone.


As with all our previous releases, you can find the:

Porolan (v1.13.6)

18 Dec 18:09
da6cdaf
Compare
Choose a tag to compare

Geth v1.13.6 is a scheduled maintenance release, but it also contains some changes which might affect node operators, concerning logging.

Gas estimation changes

The gas estimator was heavily reworked (#28600, #28618). The new version runs quite a bit faster (normally completing in 7-8 attempts rather than 18-20). However, the results have an error ratio of 1.5%, and the estimation outcome won't always be deterministic.

Logging changes

In the absence of an 'official' Go logging framework, go-ethereum has, for a very long time, used a custom in-house logger. However, just such an 'official' Go logging framework has now arrived, with the slog package.

As of v1.13.6 , geth now uses slog, which will affect Geth users in different ways.

Main changes are as follows:

  • Verbosity level constants are changed to match slog constant values. Internal translation is done to make this opaque to the user and backwards compatible with existing --verbosity and --vmodule options.
  • --log.backtraceat and --log.debug are removed.
  • Removes interface log.Format and the method log.FormatFunc,
  • Unexports TerminalHandler.TerminalFormat formatting methods (renamed to TerminalHandler.format)
  • Removes the notion of log.Lazy values

The external-facing API is largely the same as the existing Geth logger. Method signatures remain unchanged. A small semantic difference is that a Handler can only be set once per Logger and not changed dynamically. This just means that a new logger must be instantiated every time the handler of the root logger is changed.

For users of the github.com/ethereum/go-ethereum/log package: If you were using this package for your own project, you will need to change the initialization. If you previously did

    log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StreamHandler(os.Stderr, log.TerminalFormat(true))))

You now instead need to do

    log.SetDefault(log.NewLogger(log.NewTerminalHandlerWithLevel(os.Stderr, log.LevelInfo, true)))

The lazy handler was useful in the old log package, since it could defer the evaluation of costly attributes until later in the log pipeline. Thus, if the logging was done at 'Trace', we could skip evaluation if logging only was set to 'Info'. With the move to slog, this way of deferring evaluation is no longer needed, since slog introduced 'Enabled'. Thus the caller can do the evaluate-or-not decision at the callsite, which is much more straight-forward than dealing with lazy reflect-based evaluation.

See more about reasoning here: #28558 (comment)

More detailed information can be found in the PRs #28187, #28621, #28622 )

Other changes

  • Fixes a database corruption issue that could occur during state healing (#28595)
  • Fixes an issue where node liveness was not always verified correctly in discv5 (#28686)
  • Fix so state-dump can be performed after test execution (#28650, #28504)
  • Fix a ns/µs mismatch in metrics for rpc-methods (#28649)
  • Fix a bug with wrong priority for HTTPHost, WSHost flags (#28669)
  • Fix type inconsistencies in tracer framework (#28488)
  • Add contextual information to errors returned by abi unpack (#28529)
  • Make evm t8n support custom tracers (#28557)

For a full rundown of the changes please consult the Geth 1.13.6 release milestone.


As with all our previous releases, you can find the:

Carbonaceous (v1.13.5)

14 Nov 12:05
Compare
Choose a tag to compare

Geth v1.13.5 is a scheduled maintenance release fixing a potential data corruption in path scheme which could occur due to a power failure (i.e. entire OS / machine crash).

  • Extend ethclient and the simulated backend to allow eth_call against specific block hashes (#28084).
  • Downgrade annoying stale transaction propagation logs from warning to debug (#28364).
  • Switch to the new KZG trusted setup parameters (#28383).
  • Return an error on GraphQL if querying invalid block ranges (#28393, #28412).
  • Start publishing Apple Silicon pre-built binaries (#28474, #28475).

And bugfixes:

  • Fix a number of corner-cases in path scheme state management (#28198, #28426, #28483).
  • Fix an issue when allocating excessively large Pebble caches (#28444).
  • Fix a potential snap sync issue with the path based storage (#28327).
  • Fix ethclient to properly forwarding explicit 1559 gas caps (#28462).
  • Fix gas estimation for 0 priced txs accessing the basefee (#28470).
  • Fix an issue where resubscribing to events would hang (#28359).
  • Fix ethstats transaction count report regressiob (#28398).
  • Fix negative number encoding in ethclient/rpc (#28358).
  • Fix GraphQL content type in the response (#28417).

For a full rundown of the changes please consult the Geth 1.13.5 release milestone.


As with all our previous releases, you can find the:

Archanes (v1.13.4)

17 Oct 11:19
Compare
Choose a tag to compare

Geth v1.13.4 is a non-urgent hotfix release. The previous version of Geth (v1.13.3) introduced a warning log for bad transaction announcements, and on mainnet it generated too much logging noise due to a protocol violation in Erigon. To prevent overwhelming logging systems, Geth v1.13.4 lower the log to a more reasonable level until the bug in Erigon is fixed #28356.

Apart from the above reason, the release contains:

  • Fix a snap sync corner-case that could cause a hang by a maliciously constructed contract storage (#28306).
  • Update various dependencies to unstick versions of Go libs (#28329, #28333, #28334, #28332, #28336).
  • Enable Pebble database support on 32bit platforms and on OpenBSD too (#28335).
  • Fix returning the correct code hash for eth_getProof with empty storage (#28357).
  • Simplify trie range prover for some upcoming snap sync optimisations (#28311).
  • Fix a timeout mechanism in the transaction fetcher (#28220).

For a full rundown of the changes please consult the Geth 1.13.4 release milestone.


As with all our previous releases, you can find the: