Skip to content

Releases: ethereum/go-ethereum

Sacrosanct (v1.8.9)

28 May 11:46
ff9b146

Choose a tag to compare

Geth Sacrosanct (v1.8.9) is our biweekly maintenance release, focusing on stability improvements:

  • Handle transaction churn gracefully, reducing idle CPU load on mainnet by an entire core (#16720).
  • Fix an issue where slow peers could cause goroutine leaks and out-of-memory crashes (#16769).
  • Warn user when database performance is degraded/paused due to leveldb compaction (#16766).
  • Reduce transaction retrieval API median/worstcase call times by an order of magnitude (#16670).

Feature wise, we've added a few Go API niceties, mostly building blocks for later releases:

  • Support Go tags for ABI structures during marshalling and unmarshalling (#16648).
  • Ensure Ethereum Node Records are compatible with discovery v4 (#16679).
  • Support Merkle proof generation from trie iterators too (#16722).

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

Binaries and mobile libraries are available on our download page.

Coffice (v.1.8.8)

14 May 11:00
2688dab

Choose a tag to compare

Geth Coffice (v1.8.8) is a tiny biweekly release, containing countless code cleanup PRs from @kielbarry and:

  • Upgrade Android NDK to 16b for the mobile archives (#16562).
  • Fix crash when using an invalid private network genesis (#16682).
  • Clean up memory database initialization for cleaner code (#16716).
  • Handle Android signing keys flexibly, hopefully fixing Maven (#16696).
  • Clean up high level raw database access APIs used internally (#16666).
  • Support retrieving receipt status codes from the mobile libraries (#16598).

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

Binaries and mobile libraries are available on our download page.

Titanium (v1.8.7)

02 May 11:12
66432f3

Choose a tag to compare

Geth Titanium (v1.8.7) is a hotfix release to address a leveldb crash affecting archive nodes.

  • Fixes some faulty transaction traces due to a dirty handling bug in the tracer (#16588).
  • Fixes goleveldb to handle databases exceeding 1 tebibyte (Ti) storage (#16630).
  • Fixes a transaction discard bug for underpriced but local transactions (#16576).

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

Binaries and mobile libraries are available on our download page.

Third Derivative (v1.8.6)

23 Apr 12:58
12683fe

Choose a tag to compare

Geth Third Derivative (v1.8.6) is a tiny hotfix release for the original Dirty Derivative (v.1.8.4) release:

  • Fix a downloader deadlock which froze sync on master peer drop (#16546).
  • Revert the docker images to not use custom users (#16552, #16551, #16550).

Please see below the original v1.8.4 changelog:


  • Optimizes dirty object handling during block processing, leading to 40% faster blocks (#15225).
  • Fixes the PPA builds by working around a Travis -> Launchpad connectivity issue (#16404).
  • Makes docker images use non-privileged users (#16052, #16478, #16477).
  • Stabilizes transaction spam eviction from the transaction pool (#16494)
  • Speeds up external API calls operating on the pending state (#16497).
  • Handles downloader interruptions more gracefully (#16280, #16509).
  • Adds leveldb write delay measurements and warnings (#16499).
  • Fixes a rare light client deadlock (#16360).

The v1.8.4 release also contains the first pre-alpha incarnation of Clef, our standalone signer (#16154). It is a work in progress developer preview. Please consider it unsafe until otherwise announced.


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

Binaries and mobile libraries are available on our download page.

Second Derivative (v1.8.5)

23 Apr 07:17
cbdaa0c

Choose a tag to compare

Geth Second Derivative (v1.8.5) is a tiny hotfix release for the original Dirty Derivative (v.1.8.4) release. Shoutout to @reductionista for investigating and fixing the issue for us!

  • Fix a downloader deadlock which froze sync on master peer drop (#16546).

Please see below the original v1.8.4 changelog:


  • Optimizes dirty object handling during block processing, leading to 40% faster blocks (#15225).
  • Fixes the PPA builds by working around a Travis -> Launchpad connectivity issue (#16404).
  • Makes docker images use non-privileged users (#16052, #16478, #16477).
  • Stabilizes transaction spam eviction from the transaction pool (#16494)
  • Speeds up external API calls operating on the pending state (#16497).
  • Handles downloader interruptions more gracefully (#16280, #16509).
  • Adds leveldb write delay measurements and warnings (#16499).
  • Fixes a rare light client deadlock (#16360).

The v1.8.4 release also contains the first pre-alpha incarnation of Clef, our standalone signer (#16154). It is a work in progress developer preview. Please consider it unsafe until otherwise announced.


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

Binaries and mobile libraries are available on our download page.

Dirty Derivative (v1.8.4)

17 Apr 12:10
2423ae0

Choose a tag to compare

Nuked due to a downloader deadlock. Please use v1.8.5 instead.


Geth Dirty Derivative (v1.8.4) is our biweekly maintenance release.

  • Optimizes dirty object handling during block processing, leading to 40% faster blocks (#15225).
  • Fixes the PPA builds by working around a Travis -> Launchpad connectivity issue (#16404).
  • Makes docker images use non-privileged users (#16052, #16478, #16477).
  • Stabilizes transaction spam eviction from the transaction pool (#16494)
  • Speeds up external API calls operating on the pending state (#16497).
  • Handles downloader interruptions more gracefully (#16280, #16509).
  • Adds leveldb write delay measurements and warnings (#16499).
  • Fixes a rare light client deadlock (#16360).

The v1.8.4 release also contains the first pre-alpha incarnation of Clef, our standalone signer (#16154). It is a work in progress developer preview. Please consider it unsafe until otherwise announced.


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

Binaries and mobile libraries are available on our download page.

Supreme Gardening Equipment (v1.8.3)

27 Mar 06:48
@fjl fjl

Choose a tag to compare

This is a security and maintenance release containing bug fixes and protection against various types of DoS attacks that could lead to slow block processing.

Improvements:

  • geth --shh and the mobile frameworks use Whisper v6 (#16371)
  • The geth export-preimages and geth import-preimages commands allow export and import of known keccak256 preimages (#16319)
  • bn256 EC pairing is much faster on arm64 (#16301)

Squashed bugs:

  • The block number in sync stats (eth_syncing) is updated more frequently (#16283)
  • The 128kB size limit for RPC requests is now also applied to WebSocket connections and HTTP requests using chunked transfer encoding
    (#16310, #16343)
  • abigen wrappers for contract events with a single parameter are fixed (#16256)

Credits

Thanks to Dominic Brütsch and Vasily Vasiliev for reporting bugs through the bounty program.


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

Binaries and mobile libraries are available on our download page.

Frost (v1.8.2)

05 Mar 14:15
b8b9f7f

Choose a tag to compare

Geth Frost (v1.8.2) is our biweekly maintenance release.

Features:

  • Support gracefully terminating on SIGTERM too, not just SIGINT (#16142).
  • Reject contract creation RPC requests if no transaction data is provided (#16108).
  • Support unpacking ABI binaries into untyped interfaces for future signer work (#15770).
  • Support multiple ENS resolvers for different TLDs in Swarm (#15748).
  • Flush in-memory tries more flexibly on graceful termination (#16143).
  • Start work on Swarm metrics collection and aggregation (#15969, #16177).
  • Introduce Swarm landing page for browser requests (#15926).
  • Move Puppeth faucet state updates to background processing (#16228).
  • Support creating Go mutex profiles via the debug RPC endpoint (#16230).
  • Track number of downloaded state trie nodes across restarts (#16224).
  • Use Cloudflare's bn256 library on amd64 for 80% speed improvement (#16203).

Fixes:

  • Disallow hyphens in Puppeth network names (#16157).
  • Handle Twitter redirects in Puppeth faucets / Rinkeby (#16165).
  • Return better errors on missing RPC subscription endpoints (#16163).
  • Fix missing receipt fields in light client mode (#16164).
  • Allow exceeding max peers for trusted peers (#16189).
  • Update chain specification for Puppeth Parity deploys (#16188).
  • Fix RPC response for missing/pending receipts (#16217).
  • Fix RPC vhosts to allow setting from config files (#16141).
  • Fix eth_call invocations doing nested subcalls (#16229).

Deprecations:

  • Drop support for Whisper v2 (#16153).
  • Drop support for building with Go 1.7 (#16207).

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

Binaries and mobile libraries are available on our download page.

Iceberg² (v1.8.1)

19 Feb 10:16
1e67410

Choose a tag to compare

Geth Iceberg² (v1.8.1) is a tiny hotfix release for the original Iceberg¹ (v.1.8.0) release:

  • Fix two light client data races resulting in crashes (#16103, 16095).
  • Fix a discovery issue that incorrectly measured peer bond time (16109).
  • Fix compilation on Go 1.10 (16115).

Please see below the original v1.8.0 changelog:


We are delighted to announce the first release in the 1.8 series, shipping 5 months after v1.7.0 and 10 months after v1.6.0.

Commands

  • This release includes the devcon3 version of puppeth (#15390)
  • geth attach accepts --datadir, --rinkeby, --testnet as an alternative to supplying the IPC path (#15597, #15686, #15517)
  • The geth console has a new admin.clearHistory command (#15614)
  • ethkey, a tool for handling keystore files has been added (#15438, #15807)

ETH Protocol

Note: State pruning is enabled on all --syncmode variations (including --syncmode=full). If you are running an archive node where you would like to retain all historical data, disable pruning via --gcmode=archive.

  • Geth now writes less state to disk, slowing down datadir growth (#15857)
  • Crashes around ethash cache and dataset handling are fixed (#15864)
  • Pending state creation is faster if there are many transactions in the pool (#15883)

RPC API

The HTTP/WS RPC endpoint was extended with DNS rebind protection. If you are running an RPC endpoint addressed by name rather than IP, run with --rpcvhosts=your.domain to continue accepting remote requests.

Tracing and pruning: By default, state for the last 128 blocks kept in memory. Most states are garbage collected. If you are running a block explorer or other service relying on transaction tracing without an archive node (--gcmode=archive), you need to trace within this window! Alternatively, specify the "reexec" tracer option to allow regenerating historical state; and ideally switch to chain tracing which amortizes overhead across all traced blocks.

  • VM tracing is much improved and supports tracing entire block ranges. We have also added a suite of predefined tracer scripts for common tasks such as extracting all internal transactions. (#15516)
  • In transaction sending RPC calls, the "input" field can be used instead of "data" (#15640)
  • The gas price oracle is improved to handle tx price surges better (#15828)
  • The RPC server now protects against DNS rebinding attacks (#15962)
  • The new personal_signTransaction method signs a transaction without sending it to the network (#15971)
  • HTTP OPTIONS requests no longer require the Content-Type header (#15759)
  • admin_nodeInfo returns the chain configuration in light client mode (#15732)
  • debug_storageRangeAt returns RLP-decoded values (#15476)

Light Client

Note: the experimental peer discovery v5 protocol has changed, breaking backwards compatibility with previous releases. Geth 1.8 will not discover LES servers running geth 1.7.

The peer discovery protocols now share the same UDP port (30303 by default). If you are doing manual peer management and using the light client, you may need to ensure your v1.8 clients are pointed to port 30303 and not 30304 as previously.

  • Several bugs around CHT handling are resolved (#15692, #16039)
  • Light client peer count is now properly limited (#16010)

Swarm

Most swarm development happens over at the ethersphere fork and only a few changes were merged in this cycle. We're in the process of moving swarm development back to the main repository.

  • The swarm command supports TOML config files like geth (#15548)
  • The API now supports the bzz-list, bzz-raw and bzz-immutable URL schemes (#15667)

Whisper

Networking

  • The peer discovery protocol removes dead nodes more aggressively (#16069)
  • Discovery v4 and the experimental discovery v5 protocol now run on the same UDP port (#15200)
  • Several issues in the experimental discovery v5 protocol are resolved (#15995, #16036)
  • We have added more bootstrap nodes for the ropsten testnet, including a few parity nodes (#16008, #16029)

Build

  • The gosimple and goconst linters are enabled for PR builds (#15593, #15566)
  • The Ubuntu Zesty PPA is removed, there is a new PPA for Ubuntu Bionic (#16063)

Changes for Go and Mobile App Developers

New features in the contract binding generator rely on modifications to internal go-ethereum types within generated code. If you are using wrappers generated prior to v1.8.0, you will need to regenerate them to be compatible with the new code base.

  • The GasLimit and GasUsed fields of blocks and transactions have type uint64 instead of *big.Int. This is a breaking API change. (#15466)
  • The abigen tool now supports generating contract event filtering methods (#15832)
  • Several issues in the ABI decoder are resolved (#15285, #15731)
  • In the Android/iOS frameworks, the BigInt type has a new GetSign method (#15558)
  • The crypto package now supports public key compression and signature verification (#15615, #15626)
  • The new common/fdlimit package can be used to raise file descriptor limits (#15850)
  • The new p2p/enr package implements EIP-778 (#15585)

We have a new code review policy which should speed up the contribution process.

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

Binaries and mobile libraries are available on our download page.

Iceberg¹ (v1.8.0)

14 Feb 13:23
@fjl fjl

Choose a tag to compare

We are delighted to announce the first release in the 1.8 series, shipping 5 months after v1.7.0 and 10 months after v1.6.0.

Commands

  • This release includes the devcon3 version of puppeth (#15390)
  • geth attach accepts --datadir, --rinkeby, --testnet as an alternative to supplying the IPC path (#15597, #15686, #15517)
  • The geth console has a new admin.clearHistory command (#15614)
  • ethkey, a tool for handling keystore files has been added (#15438, #15807)

ETH Protocol

Note: State pruning is enabled on all --syncmode variations (including --syncmode=full). If you are running an archive node where you would like to retain all historical data, disable pruning via --gcmode=archive.

  • Geth now writes less state to disk, slowing down datadir growth (#15857)
  • Crashes around ethash cache and dataset handling are fixed (#15864)
  • Pending state creation is faster if there are many transactions in the pool (#15883)

RPC API

The HTTP/WS RPC endpoint was extended with DNS rebind protection. If you are running an RPC endpoint addressed by name rather than IP, run with --rpcvhosts=your.domain to continue accepting remote requests.

Tracing and pruning: By default, state for the last 128 blocks kept in memory. Most states are garbage collected. If you are running a block explorer or other service relying on transaction tracing without an archive node (--gcmode=archive), you need to trace within this window! Alternatively, specify the "reexec" tracer option to allow regenerating historical state; and ideally switch to chain tracing which amortizes overhead across all traced blocks.

  • VM tracing is much improved and supports tracing entire block ranges. We have also added a suite of predefined tracer scripts for common tasks such as extracting all internal transactions. (#15516)
  • In transaction sending RPC calls, the "input" field can be used instead of "data" (#15640)
  • The gas price oracle is improved to handle tx price surges better (#15828)
  • The RPC server now protects against DNS rebinding attacks (#15962)
  • The new personal_signTransaction method signs a transaction without sending it to the network (#15971)
  • HTTP OPTIONS requests no longer require the Content-Type header (#15759)
  • admin_nodeInfo returns the chain configuration in light client mode (#15732)
  • debug_storageRangeAt returns RLP-decoded values (#15476)

Light Client

Note: the experimental peer discovery v5 protocol has changed, breaking backwards compatibility with previous releases. Geth 1.8 will not discover LES servers running geth 1.7.

The peer discovery protocols now share the same UDP port (30303 by default). If you are doing manual peer management and using the light client, you may need to ensure your v1.8 clients are pointed to port 30303 and not 30304 as previously.

  • Several bugs around CHT handling are resolved (#15692, #16039)
  • Light client peer count is now properly limited (#16010)

Swarm

Most swarm development happens over at the ethersphere fork and only a few changes were merged in this cycle. We're in the process of moving swarm development back to the main repository.

  • The swarm command supports TOML config files like geth (#15548)
  • The API now supports the bzz-list, bzz-raw and bzz-immutable URL schemes (#15667)

Whisper

Networking

  • The peer discovery protocol removes dead nodes more aggressively (#16069)
  • Discovery v4 and the experimental discovery v5 protocol now run on the same UDP port (#15200)
  • Several issues in the experimental discovery v5 protocol are resolved (#15995, #16036)
  • We have added more bootstrap nodes for the ropsten testnet, including a few parity nodes (#16008, #16029)

Build

  • The gosimple and goconst linters are enabled for PR builds (#15593, #15566)
  • The Ubuntu Zesty PPA is removed, there is a new PPA for Ubuntu Bionic (#16063)

Changes for Go and Mobile App Developers

New features in the contract binding generator rely on modifications to internal go-ethereum types within generated code. If you are using wrappers generated prior to v1.8.0, you will need to regenerate them to be compatible with the new code base.

  • The GasLimit and GasUsed fields of blocks and transactions have type uint64 instead of *big.Int. This is a breaking API change. (#15466)
  • The abigen tool now supports generating contract event filtering methods (#15832)
  • Several issues in the ABI decoder are resolved (#15285, #15731)
  • In the Android/iOS frameworks, the BigInt type has a new GetSign method (#15558)
  • The crypto package now supports public key compression and signature verification (#15615, #15626)
  • The new common/fdlimit package can be used to raise file descriptor limits (#15850)
  • The new p2p/enr package implements EIP-778 (#15585)

We have a new code review policy which should speed up the contribution process.

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

Binaries and mobile libraries are available on our download page.