Skip to content

Attican Beta (v1.10.9)

Choose a tag to compare
@fjl fjl released this 29 Sep 18:01
· 716 commits to release/1.10 since this release

Geth v1.10.9 is a maintenance release containing mostly bug fixes.

Chain tracing has received quite a bit of attention during this release cycle. JS-based tracing now supports additional callbacks for entry and exit of contract calls, improving performance if processing individual opcodes is not needed.

Geth command changes

  • The 'evm' command has a new subcommand for testing tx decoding. (#23494)
  • 'evm t8n' now calculates and returns block difficulty. (#23353, #23507)
  • Legacy flags --rpc, --rpcaddr, --rpcport, etc. are no longer supported. (#23358)
  • Legacy debugging flags --pprofport, --pprofaddr, etc. are also no longer supported. (#23368)
  • When initializing Clique-based private networks, zero-length extradata in genesis.json now prints an error message instead of crashing. (#23538)

Go library changes

  • Contract bindings created by accounts/abi/bind now validate log event signatures. This prevents accidentally decoding events with the wrong signature. (#23230)
  • A crash in accounts/abi when decoding struct-typed Solidity return values is resolved. (#23573)
  • Writes to the ancient database are now batched internally for improved performance. (#23462)
  • Multiple data races in transaction pool code are fixed. (#23474)
  • Comprehensive benchmarks for RLP encoding/decoding of consensus types have been added. (#23190)
  • RLP encoding of slices and arrays is slightly faster. (#23467)
  • rpc.BlockNumber now implements encoding.TextMarshaler. (#23324)
  • The Account type has been moved from package core/state to core/types. (#23567)
  • For crypto/cloudflare/bn256 EC curve, in-place addition and unmarshalling now works correctly. (#23419)
  • A very rare crash in the background 'bloombits' indexer is resolved. (#23437)

RPC/GraphQL changes

  • JS tracing of EVM execution now provides additional callbacks for call entry/exit. Using these callbacks instead of 'step' can yield a 10-100x tracing speedup if you don't need to process every VM opcode. (#23087)
  • The '4byte' built-in tracer now uses enter/exit. (#23622)
  • A state database corruption bug caused by tracer re-execution of old blocks is resolved. (#23632)
  • The new debug_intermediateRoots method computes per-transaction state roots of a block. (#23594)
  • EVM memory and return data are no longer captured by default when tracing. (#23558)
  • EVM execution is now aborted on the server side when tracing is interrupted. (#23580)
  • Broken WebSocket connections are now detected better and their subscriptions report an error instead of hanging indefinitely. (#23556)
  • personal_sendTransaction now supports both "input" and "data" arguments, just like eth_sendTransaction. (#23476)
  • Log filtering performance is improved. (#23147)
  • Transaction access lists returned by GraphQL are now correct. (#23650)
  • The debug_stacks method now supports an optional filter expression. (#23605)
  • For clique blocks returned by RPC, the "miner" field once again contains the actual block coinbase field instead of the derived block signer. This fixes a regression where clients would no longer be able to verify the block seal signature. (#23466)


  • The eth/65 peer-to-peer protocol is no longer supported. Geth only supports eth/66 as of this release. (#23456)
  • The cross-client eth protocol tests suite better distinguishes eth/65 and eth/66. (#23568)
  • ENR sequence numbers are now initialized as a timestamp. This prevents issues when the p2p nodes database is dropped/re-created while keeping the nodekey the same. (#19903)
  • Several data races are resolved in packages p2p and p2p/enode. (#23434)
  • Note: to simplify the ongoing rewrite of eth/downloader, the package has been duplicated temporarily. The additional copy will be removed later. (#23561)


  • This release is built with Go 1.17. (#23464, #23465, #23468)
  • 32 bit builds of Geth should be fully functional again. (#23543, #23542)
  • We no longer publish .deb packages for Ubuntu 20.10 Gorilla because this version is not supported by Launchpad anymore. (#23470)
  • The 'node' package no longer depends on wallet backends. Specifically, this removes the dependencies on libusb for contract bindings and other uses of the go-ethereum library. If you are using package node, you must now register required account manager backends individually. (#23019)
  • The 'metrics' package, and many packages that depend on it can now be compiled for WebAssembly. (#23449)
  • EVM performance tests no longer run on CI. (#23304)

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

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