Skip to content

Releases: ethereum/go-ethereum

Third Derivative (v1.8.6)

23 Apr 12:58
12683fe
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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.

Weir (v1.7.3)

21 Nov 10:41
4bb3c89
Compare
Choose a tag to compare

Geth v1.7.3 (Weir) is a maintenance release to address various issues in our previous releases, most importantly along log filtering and replacement transaction propagation. The release also contains a few developer niceties. Please see compatibility section below!

New features:

  • Roll out v2 of the les light client protocol (#14970, #15367, #15391).
  • Insta-mining, zero CPU, clique based PoA developer mode --dev (#15323).
  • Add API endpoint to list modified accounts between two blocks (#15512).
  • Gas estimation returns error instead of maxgas if transaction cannot be executed (#15477).
  • Improve EVM jump destination analysis for worst case scenarios (#14582).
  • Enforce application/json for HTTP RPC requests (#15220, #15496).
  • Private network faucet support Facebook, Twitter and Google+ authentication (#15313).
  • Support encrypted SSH keys in the Puppeth network manager (#15443).
  • Introduce docker images containing all Ethereum tools (#15467).
  • Start shipping Ubuntu Artful Aardvark launchpad packages (#15344).

Squashed bugs:

  • Fix log filtering when specifying non-8-multiple starting block number (#15489).
  • Fix replacement transaction propagation (#15343).
  • Reduce disk overhead on keystore startup (#15526, #15527, #15529).
  • Fix occasional Rinkeby chain split by additional fork selection logic (#15470).
  • Fix JavaScript tracing to permit working with Address types (#15297).
  • Fix missing commit hash in docker image versions (#15458, #15464).

Compatibility caveats:

  • All HTTP RPC requests from now on need to have the Content-Type: application/json header set on them. Geth v1.7.3 will refuse to service requests with no content type headers set (or headers with different content types). This is a security measure to counter a browser CORS circumvention technique.
  • Geth v1.7.3 ships with les/2 light client support, which might have harder time finding light servers initially until the server providers upgrade to v1.7.3 too.

For a full rundown of changes, please see the v1.7.3 milestone.

As always, binaries and mobile libraries are available on our download page.

Urgent Update (v1.7.2)

14 Oct 13:05
1db4ecd
Compare
Choose a tag to compare

Geth 1.7.2 is a hotfix release to address a DOS vulnerability in the EVM starting at Byzantium. Please upgrade before block 4_370_000!

Pre-built binaries should be available shortly at https://geth.ethereum.org/downloads/.

Ptolemy (v1.7.1)

04 Oct 06:57
@fjl fjl
Compare
Choose a tag to compare

This is a maintenance release that fixes regressions in the 1.7.0 release.

This release enables the Byzantium hard fork transition at block number 4370000 (~17th October) on the mainnet and block number 1035301 (~9th October) on the Rinkeby test network. Please update well before these dates to ensure a smooth transition.

Noteworthy changes:

  • Log queries handle the null topic correctly. (#15195)
  • Ledger Nano S and Trezor hardware wallets should once again be detected on macOS. (#15232)
  • p2p: messages are compressed using Snappy. See EIP706 for more information. (#15106)
  • ethclient: The new TransactionSender method can be used to derive the sender address
    of a transaction at the time of inclusion. (#15127).

For a full rundown of changes, please see the v1.7.1 milestone.

As always, binaries and mobile libraries are available on our download page.