Releases: ethereum/go-ethereum
Tasty Tankard (v1.9.3)
Geth v1.9.3 is a regular maintenance release, highlights being finalization of the Istanbul EIPs.
New Features:
- Add
eth.fillTransaction
to create-but-not-sign a transaction (#19915). - Support DNS names in enode URLs during
admin.addPeer
(#18524). - Enable gzip compression on the HTTP RPC API endpoint (#19997).
- Reduce light client default peer count from 100 to 10 (#19933).
- Align CLI flags and descriptions a bit better (#19956).
Istanbul changes (progress tracker):
- Implement EIP-152: Blake2B F compression function precompile (#19972).
- Implement EIP-2028: Transaction data gas cost reduction (#19931).
- Implement EIP-2200: Net SSTORE optimizations (#19964).
- Add
--override.istanbul
flag as a failsafe (#20004). - Enable Istanbul EIPs in the EVM jumptable (#19993).
Fixed Bugs:
- Update README with the latest fork configs for private networks (#19983, #20002).
- Separate light client and light server P2P handlers internally (#19639, #20010).
- Fix an import crash caused by a data loss from a previous crash (#19986).
- Deprecate Ubuntu Cosmic and enable builders for Ubuntu Eoan (#19955).
- Fix an annoying log in
geth attach
about cache sanitation (#19911). - Fix
admin.exportChain
to forbid overwriting existing file (#20019). - Update Clef's 4byte database to the most recent version (#19957).
- Add more verbose logging to even small chain reorgs (#18950).
- Fix iOS builds broken from a
gomobile
update (#19995).
For a full rundown of the changes please consult the Geth 1.9.3 release milestone.
As with all our previous releases, you can find the:
- Pre-built binaries for all platforms on our downloads page.
- Docker images published under
ethereum/client-go
. - Ubuntu packages in our Launchpad PPA repository.
- OSX packages in our Homebrew Tap repository.
Blue Thessia (v1.9.2)
Geth v1.9.2 is a small maintenance release. It introduces some minor features, fixes some minor bugs and starts to lay the groundwork for the Istanbul hard fork.
Features added:
- Rework client tracking for light servers to better prioritize requests, making it fairer for everyone (#19745).
- Avoid retrieving full blocks for GraphQL queries on light clients if the query relies on headers (#19886).
- Support closing a simulated backends, avoiding a goroutine leak during log running tests (#19902).
- Support
eth_call
overriding chain state before execution, see API docs for details (#19917). - Replace all user facing
passphrase
labels withpassword
to avoid confusion (#19932).
Bugs fixed:
- Fix an RPC annoyance where inclusion info for pending transactions was 0, not
null
(#19901). - Fix an RPC regression from v1.9.1 where the block size was not hex encoded (#19885).
- Fix the builder to extract commit hashes from detached git branches too (#18315).
- Fix storage trie value encoding when running
geth dump
(#19943). - Fix console output coloring for Clef on Windows (#19889).
Istanbul changes (progress tracker):
- Refactor the internal chain configuration to allow enabling EIPs individually in tests (#19735).
- Implement EIP-1884: Repricing for trie-size-dependent opcodes (#19743).
- Implement EIP-1108: Reduce alt_bn128 precompile gas costs (#19904).
- Implement EIP-1344: ChainID opcode (#19921).
For a full rundown of the changes please consult the Geth 1.9.2 release milestone.
As with all our previous releases, you can find the:
- Pre-built binaries for all platforms on our downloads page.
- Docker images published under
ethereum/client-go
. - Ubuntu packages in our Launchpad PPA repository.
- OSX packages in our Homebrew Tap repository.
Lucky Leprechaun (v1.9.1)
Geth v1.9.1 is a small biweekly maintenance release. For all the major new features in the 1.9 family, please see our blog post from two weeks ago.
- Add
eth_getHeaderByNumber
andeth_getHeaderByHash
to get headers without bodies (#19669). - Update the
go-ethereum
list of authors to July 22nd state, bringing up the count to 367 (#19873). - Switch out the websocket library, adding support for pings and continuation frames (#19866).
- Implement a 1/288th grace period for the faucet to avoid request drift (5m for 24h) (#18105).
- Add
debug_accountRange
to query all or part of the accounts at a given root (#17438). - Fix a crash in the transaction pool caused by the 1.9.0 internal rework (#19835).
- Fix a crash in
geth dumpconfig
caused by the release oracle fields (#19825). - Fix the reported derivation paths of hardware wallet accounts in Clef (#19827).
- Fix
geth --dev
thinking it's mainnet and requesting 4GB memory (#19875). - Fix
debug_chaindbProperty
, which returns an internal error (#19856). - Fix build script on OpenBSD (#17966).
For a full rundown of the changes please consult the Geth 1.9.1 release milestone.
As with all our previous releases, you can find the:
- Pre-built binaries for all platforms on our downloads page.
- Docker images published under
ethereum/client-go
. - Ubuntu packages in our Launchpad PPA repository.
- OSX packages in our Homebrew Tap repository.
Full Biotic Kick (v1.9.0)
After many months of silence, we're proud to announce the v1.9.0 release of Go Ethereum! Although this release has been in the making for a lot longer than we anticipated, we're confident there will be some juicy feature for everyone to enjoy!
Posting a list of changes here wouldn't do this release justice, so we've prepared an entire blog post to walk through all the major features: Geth v1.9.0 - Six months distilled.
As with all our previous releases, you can find the:
- Pre-built binaries for all platforms on our downloads page.
- Docker images published under
ethereum/client-go
. - Ubuntu packages in our Launchpad PPA repository.
- OSX packages in our Homebrew Tap repository.
Punisher (v1.8.27)
Geth v1.8.27 is a hotfix release to counter an active attack on mainnet, mounted against newly joining Geth nodes doing fast sync (#19473).
- If you are already in sync with the network, you don't need to update.
- Archive nodes, light clients and full-sync full nodes don't need to update.
- If you are joining the network with a new node, then you do need to update.
Background
Fast sync is susceptible to a grieving version of an eclipse attack, where a malicious remote node attempts to get a new Geth node to fast sync to some small chain, before a real heavy chain is discovered in the network. This results in Geth falling back to full sync for the main chain, taking too much time.
This attack can only be meaningfully mounted against nodes which are properly exposed on a public IP address (i.e. not firewalled, not NATed). Even then, it's a race against the node finding good peers fast enough, in which case the attack doesn't work any more.
There is no economic advantage in pulling this attack off, only causing sync annoyance. That said, there is currently a number of (at least 4 identified, maybe more) Parity nodes at 207.148.5.229
, which are doing variations of this attack. It might be deliberate, or it might also be leftover nodes from some experiment that only have a few blocks on their chain and subsequently disabled sync. A bit unprobable.
Solution
This release repurposes the DAO challenge to do a checkpoint challenge based on the recently hard coded CHTs. It also makes the challenge stricter, in that while the node is doing a fast-sync, remote peers are not permitted to be synced below the checkpoint block. This should also help sync the chain faster, getting rid of stalling or useless peers.
Geth binaries and mobile libraries are available on the Geth download page.
Light Ball (v1.8.26)
Geth v1.8.26 is a tiny light client DoS hotfix. We've dropped support for les/1
on master
(v1.9.0 unstable) and after some light servers updated, v1.8.x light clients started crashing. Turned out that les/2
on the v1.8.x release family relied on some les/1
throttling data (#19437).
If you don't use the light client, you don't need to update. Light servers don't need to update either.
Geth binaries and mobile libraries are available on the Geth download page.
White Ball (v1.8.25)
Geth v1.8.25 is a tiny hotfix on top of the recently released v1.8.24. During back-porting PRs into v1.8.24, one was merged incorrectly and resulted disabling 2 CLI flags (--rpccorsdomain
and --rpcvhosts
). You can see the fix in #19416. If you are not using these flag, you're fine to remain on the v1.8.24 release.
To recap our original notes, Geth v1.8.24 v1.8.25 is a small maintenance release aiming to be the final version of the 1.8.x family before rolling out our next major milestone (v1.9.0). As the previous release, v1.8.24 v1.8.25 only back-ports stability fixes. A grab bag of the changes included are:
- Add
--rpc.gascap
to limit the gaseth_call
andeth_estimateGas
may use. - Baked in the Rinkeby Petersburg fork block 4321234 (~4th May, 2019).
- Updated light client CHTs for quicker sync times on all built-in networks.
- Fixes the builders and macos file descriptors if using with Go 1.12+.
- Fixes a log filtering issue that didn't report reorged EVM events.
- Fixes a couple of networking issues in the DHT and
eth
. - Memory optimizations around timestamp handling.
For a full rundown of the changes please consult the originally Geth 1.8.24 back-port pull request.
Geth binaries and mobile libraries are available on the Geth download page.
Pointy Eightball (v1.8.24)
We've found a tiny issue in this release which accidentally disabled two CLI flags around RPC CORS and VHosts handling. If you rely on these, please see the Geth v1.8.25 hotfix release.
Geth v1.8.24 is a small maintenance release aiming to be the final version of the 1.8.x family before rolling out our next major milestone (v1.9.0). As the previous release too, v1.8.24 only back-ports stability fixes. A grab bag of the changes included are:
- Add
--rpc.gascap
to limit the gaseth_call
andeth_estimateGas
may use. - Baked in the Rinkeby Petersburg fork block 4321234 (~4th May, 2019).
- Updated light client CHTs for quicker sync times on all built-in networks.
- Fixes the builders and macos file descriptors if using with Go 1.12+.
- Fixes a log filtering issue that didn't report reorged EVM events.
- Fixes a couple of networking issues in the DHT and
eth
. - Memory optimizations around timestamp handling.
For a full rundown of the changes please consult the Geth 1.8.24 back-port pull request.
Geth binaries and mobile libraries are available on the Geth download page.
Xircus (v1.8.23)
Geth v1.8.23 is a small, scheduled maintenance release that brings a couple of improvements to various sync and block processing mechanisms. The selection of fixes have been back-ported from master
and are not a full release of our latest code:
- Fix transaction tracers to handle legacy Frontier/Homestead state transitions (631e2f0).
- Fix block importing regressions caused by the side chain rework (3a95128, 3ab9dcc, 4da2092).
- Fix a trie decoding issue that could cause a state sync to crash (a458153).
- Fix the file descriptor crash on newer versions of macos (048b463, 7bd6f39).
- Fix the PPA that broke due to Travis' firewall (9f5fb15, 276f824, b247052, 84cb00a, df355ec).
- Fix the iOS CocoaPods builds failing due to upstream dependency issues (d9be337, fe5258b).
- Fix various data races in the cache library we used for trie reads (992a7bb).
The release also back-ports native support for the Görli testnet via the --goerli
flag (2072c26).
For a full rundown of the changes please consult the Geth 1.8.23 back-port pull request.
Geth binaries and mobile libraries are available on the Geth download page.
This release contains Swarm v0.3.11 with the following improvements:
- Improved peer suggestion engine (#18404).
- Bootnode mode and new bootnodes (#18498, #18509).
- Network snapshot generator (#18453).
- Saturation check for healthy networks (#19071).
- PSS: Updated to whisper V6 (#19023).
- Added a debug tool: global-store (#19014).
- Added debugging APIs to make it easier to explore chunks on nodes (#18980, #19002, #19008).
- Multiple data races were fixed (#18459, #18460, #18462, #18464,#18511, #18993, #19017, #19049, #19051).
Swarm binaries are available on the Swarm download page.
Can'tstantinople (v1.8.22)
Geth v1.8.22 re-enables all Constantinople changes and contains an additional fork, Petersburg,
to disable EIP-1283. This procedure is meant to ease the transition on networks like Ropsten where
the Constantinople transition had already taken place when an issue with EIP-1283 was discovered.
On the main network, Constantinople and Petersburg activate at the same time.
The block numbers are:
- 7280000 for Constantinople on Mainnet
- 7280000 for Petersburg on Mainnet
- 4939394 for Petersburg on Ropsten
Note that the Petersburg change is set to activate simultaneously with Constantinople unless
configured otherwise. If you are running a private network, you must schedule the Petersburg
fork through chain configuration before updating to v1.8.22 if Constantinople has already
activated on your network.
In addition to the consensus changes, this release contains peer-to-peer networking security
improvements in the peer discovery subsystem.
List of all changes:
- core, cmd/puppeth: implement constantinople fix, disable EIP-1283 (#18486)
- p2p/discover, p2p/enode: rework endpoint proof handling, packet logging (#18963)
- p2p/discover: improve table addition code (#18974)
- travis, appveyor: bump to Go 1.11.5 (#18947)
Geth binaries and mobile libraries are available on the Geth download page.