Weeping Heart (v1.9.11)
Geth v1.9.11 was planned to be our next regular maintenance release, but enough niceties have piled up for it to become a feature release. This is also the reason why we delayed it by two weeks compared to our regular schedule.
The release ships three important new features:
-
DNS-based peer discovery is now enabled in Geth (#20592, #20660). From now on Geth nodes have two independent mechanisms to find peers. The DNS lists serve as a fallback mechanism when peers cannot be found through the DHT.
DNS-based discovery is a centralized mechanism, but we have tried to make the operation of this mechanism as transparent and permissionless as possible. The public lists used by default are generated by crawling the discovery DHT. At this time, there are ~1150 publicly routed Ethereum mainnet nodes in the default list. Our public lists also serve the Ropsten, Goerli and Rinkeby test networks. Nodes running any Ethereum client which implements EIP-868 and EIP-2124 will appear in the public lists automatically.
You can disable the use of DNS-based discovery using the
--discovery.dns ""
flag combination.If you want to create a DNS-based node list for your private or public network, please check out our DNS Discovery Setup guide. We hope that organizations other than Ethereum Foundation will provide public lists in the future and will happily integrate those lists into the default one using the 'link' feature of EIP-1459.
-
Transaction announcements via
eth/65
(EIP 2464) is now implemented and Geth<->Geth connections should use significantly less bandwidth (#20234) for exchanging transactions. Final numbers are anybody's guess though, as we need to wait for widespread network deployment. This feature depends on theeth/64
andeth/65
protocol updates, which are not yet supported in all Ethereum client implementations. While connections between compatible clients will use the new protocol, geth will remain compatible witheth/63
until the new protocol versions are sufficiently adopted by the public network. -
The JavaScript engine underlying the Geth console and Clef rule engine was switched from Otto to Goja, which should bring it up to ECMAScript 5.1+ compliance. Not your latest and greatest .js environment of course, but significantly better and faster than before (#20470, #20599).
Minor features and fixes contained in the release:
- Shave a few milliseconds off of each block via internal trie optimizations (#20481, #20488).
- Optimize EVM
BLOCKHASH
opcode execution to handle the worst case better (#20589). - Check for RPC API namespace availability to detect typos in
--rpcapi
&co (#20597). - Add
geth dumpgenesis
to print the full genesis and chain config of a node (#20191). - Revert pending block number reporting during block retrieval (#20616).
- Fix a JavaScript tracer panic when accessing illegal memory (#20612).
- Fix an RPC connectivity issue around flaky connections (#20414).
- Clean up C++ mainnet and Geth Görli bootnodes (#20610).
- Fix
bytes32
andbytes32[]
support in Clef (#20609).
For a full rundown of the changes please consult the Geth 1.9.11 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.