github ethereum/go-ethereum v1.10.3
Maroon Sea (v1.10.3)

latest releases: v1.14.11, v1.14.10, v1.14.9...
3 years ago

Geth v1.10.3 is a maintenance release, containing bug fixes and performance improvements.

The performance of the snapshot system has been a big focus in this release cycle.
Generating a snapshot after a snap sync is approximately 10 times faster.

Geth command changes

  • Several race conditions in database access are resolved, reducing the potential of database corruption (#22739, #22728)
  • Large numbers in log messages now have thousands separators (#22665, #22679)
  • Geth no longer warns about database upgrades when starting with an empty database (#22803)
  • The new geth db freezer-index debugging command prints the contents of a freezer table (#22633)
  • geth --dev --datadir ... works again (#22738)
  • Geth now includes the experimental --catalyst mode for eth2 merge testing (#22641, #22697, #22770)
  • Puppeth now supports using ssh-agent for authentication (#22634)

Go library changes

  • State snapshot generator performance is much improved in this release (#22667, #22470, #22504)
  • It is no longer possible to upgrade snapshot databases generated by pre-Berlin geth (#22663)
  • The RPC client now returns non-2xx HTTP responses as rpc.HTTPError (#22677)
  • The ethash engine now performs less database lookups when verifying uncle headers (#21467)
  • trie.StackTrie has been refactored to improve API semantics. StackTrie methods previously took ownership of key/value byte slices passed to it, which was unintuitive for calling code (#22673, #22686, #22685)

RPC/GraphQL API changes

  • The gas price oracle deals much better with blocks containing transactions of very low price. Such transactions are typically generated by miners using MEV techniques (#22722)
  • eth_hashrate works again (#22765)
  • debug_traceCall now supports state overrides like eth_call (#22245)
  • EVM Tracing now reports correct gas costs for EIP-2929 state access (#22702)
  • Clef and the external signer account backend now support signing of EIP-2930 access list transactions (#22585)

Networking

  • Support for eth/64 has been removed. The minimum protocol version is now eth/65 (#22636)
  • The core of snap sync has been re-architected to allow for dynamic request sizes (#22668, #22777)
  • Several other correctness issues in the snap sync client are resolved (#22678, #22789, #22760, #22762, #22761)
  • DNS discovery for the snap protocol now uses the eth protocol node list. The snap-specific node list will be retired later. This is possible because more than 75% of all eth nodes support serving snap (#22808)
  • For eth and snap, the protocol handlers now report additional metrics about response latency (#22608, #22751, #22753). A Grafana dashboard incorporating the new metrics is available here.
  • Several new tests have been added in the cross-client eth protocol test suite. The tests are now more reliable and run as part of pull request CI on Travis (#22698, #22630, #22757, #22749, #22754, #22801)
  • The discv5 message handler now reflects IPv4-in-IPv6 addresses correctly when handling PING (#22703)
  • The DNS node list tools in cmd/devp2p now support setting a size limit for node lists. This was added because the list of mainnet snap protocol nodes overflowed our AWS Route53 account (#22694, #22695)

Build

  • The Windows build environment has been cleaned up and updated to use GCC 10 (#22811, #22788, #22804, #22821)
  • The crypto/bn256 and crypto/bls12381 packages are now fuzz-tested against gnark-crypto (#22755)
  • go-ethereum now builds correctly on OpenBSD/arm64 (#22693)

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


As with all our previous releases, you can find the:

Don't miss a new go-ethereum release

NewReleases is sending notifications on new releases.