github ethereum/go-ethereum v1.9.16
Ryncol (v1.9.16)

Geth v1.9.16 is another maintenance release containing a couple minor new features, bug fixes, and block processing optimizations.

This release adds the --rpc.txfeecap geth option, which limits transaction fees to a set value. This limit applies to transactions sent via eth_sendTransaction. The default limit is 1 ether. (#21212)

The default value for --rpc.gascap is now 25M gas. It previously defaulted to unlimited gas. This applies to eth_call and will reject calls which request more gas than the cap. (#21229)

Minor new features:

  • You can now run the metrics HTTP server on a separate endpoint. (#21290)
  • Protocol message metrics now count the number of messages in addition to bandwidth. (#21256)
  • The geth import command now exits with status 1 if errors have occurred. (#21244)
  • The debug_traceTransaction RPC method now includes read storage entries in structlog output. (#21204)
  • cmd/evm: add state transition tool for testing (#20958)
  • cmd/devp2p: the devp2p tool now contains a test suite for Discovery v4 (#21163)
  • cmd/devp2p: the new devp2p key command family provides node key management tools (#21202)
  • cmd/ethkey: you can now use the --passwordfile option with the ethkey generate command (#21183)


  • The EVM now uses the 'uint256' library, improving the performance of math-heavy calls. (#20787, #21206)
  • The LES server no longer queries the checkpoint contract for every peer connection, reducing CPU usage. (#21285)
  • The gas price oracle now requires significantly less bandwidth when using the light client. (#20409)
  • The RLP encoder allocates a lot less, especially for big.Int, [N]byte and list-heavy data structures. (#21291, #21274)
  • The dependency has been updated and includes a couple new new optimizations, including an assembly language implementation for arm64. (#21237, #21304)
  • crypto, core/types: less allocations when hashing and tx handling (#21265)
  • trie: reduce allocations in insertPreimage (#21261)
  • crypto/secp256k1: enable 128-bit int code and endomorphism optimization (#21203)
  • core/state: avoid escape analysis fault when accessing cached state (#21192)

Bug fixes:

  • A long standing bug related to internal fast sync restarts is resolved. (#21260)
  • Account management methods no longer crash when the external signer is enabled. (#21279)
  • eth_call now defaults to the gas cap value instead of MaxInt64. This avoids warnings for calls with unspecified gas. (#21284)
  • Geth now builds and runs on DragonflyBSD (#21275, #21241)
  • Package ethclient and the accounts/* package tree no longer depend on the RPC API implementation package. (#21319)
  • eth/downloader: fixes data race between synchronize and other methods (#21201)
  • utils: fix ineffectual miner config flags (#21271)
  • eth: returned revert reason in traceTx (#21195)
  • core/vm: fix incorrect computation of BLS discount (#21253)
  • eth: don't block if transaction broadcast loop fails (#21255)
  • core/rawdb: fix high memory usage in freezer (#21243)
  • core/rawdb: swap tailId and itemOffset for deleted items in freezer (#21220)
  • cmd, node: dump empty value config (#21296)
  • internal/web3ext: add missing params to debug.accountRange (#21208)
  • accounts/abi: make GetType public again (#21157)

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

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

latest releases: v1.9.25, v1.9.24, v1.9.23...
7 months ago