Skip to content

Weeping Heart (v1.9.11)

Choose a tag to compare

@karalabe karalabe released this 18 Feb 11:51
· 652 commits to release/1.9 since this release
6a62fe3

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 the eth/64 and eth/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 with eth/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 and bytes32[] 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: