Go implementation of the Ethereum protocol
Geth v1.10.25 is a tiny update to flip the mainnet chain configuration to be post-merge. This disables legacy sync and will prevent Geth from even starting sync until a consensus client is attached and sends forkchoice updates. The update prevents bad PoW actors from trying to get the node to - temporarily, but annoyingly - download bad state data.
This release is optional and only affects initial sync. The release was made mostly for completeness' sake rather than out of necessity.
For a full rundown of the changes please consult the Geth 1.10.25 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go
.Geth v1.10.24 is a small hotfix release for users of the GraphQL APIs. It fixes a single bug where filtering for logs from a single transaction via GraphQL returned logs from the entire block, not just the single transaction. Single transaction log filtering is unavailable via the RPC and does not impact the merge.
You only need to apply this change if you rely on both GraphQL and single transaction log filtering.
For a full rundown of the changes please consult the Geth 1.10.24 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go
.Geth v1.10.23 is a hotfix release for a pruning regression that was introduced in v1.10.22. For technical details on the bug, please check out the PR that fixes it.
If anyone updated to v1.10.22 in these past couple of days, there is a fairly high probability that some state data might have gone missing from your node. Doing a full check on the state is possible geth snapshot traverse-state
, but will likely take a day and the fix is all the same anyway.
To ensure that your node has all the data, please rewind your local chain to a block before you updated (if unsure, just pick a block before the release time) with debug.setHead("0xblock-number-in-hex")
via the Geth console (on IPC), or debug_setHead
via JSON RPC (you might need to temporarilly expose the debug
namespace to do that). The brute force alternative of course is to resync after an update, which you can do by deleting your chaindata
folder (but please leave the ancient
folder within to keep the blocks).
We apologize for this regression and the headaches fixing it will entail on your side. We've learnt the hard way that there's an untested class of bugs that appear across full sync restarts.
For a full rundown of the changes please consult the Geth 1.10.23 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go
.Geth ~v1.10.22~ v1.10.23 enables the Merge for the Ethereum mainnet at a Terminal Total Difficulty of 58_750_000_000_000_000_000_000
.
This TTD is expected to be reached on the 15. September 2022.
--cache.blocklogs
command-line flag. (#25459)eth_createAccessList
is now much faster when no gas limit is provided. (#25467)eth_feeHistory
now also works with the finalized
block specifier. (#25442)onlyTopCall
. Enabling this option makes the tracer skip internal calls. We added this option to enable use of the callTracer
to get the return data of reverted transactions. (#25430)--cache.preimages
flag. (#25287, #25538, #25533)eth_feeHistory
method. (#25403)ReadHeaderTimeout
. (#25338)For a full rundown of the original merge release changes please consult the Geth 1.10.22 release milestone.
Geth v1.10.22 enables the Merge for the Ethereum mainnet at a Terminal Total Difficulty of 58_750_000_000_000_000_000_000
.
This TTD is expected to be reached on the 15. September 2022.
--cache.blocklogs
command-line flag. (#25459)eth_createAccessList
is now much faster when no gas limit is provided. (#25467)eth_feeHistory
now also works with the finalized
block specifier. (#25442)onlyTopCall
. Enabling this option makes the tracer skip internal calls. We added this option to enable use of the callTracer
to get the return data of reverted transactions. (#25430)--cache.preimages
flag. (#25287, #25538, #25533)eth_feeHistory
method. (#25403)ReadHeaderTimeout
. (#25338)For a full rundown of the changes please consult the Geth 1.10.22 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.Geth v1.10.21 is a maintenance release, adding built-in configuration for the merge fork on the Goerli testnet and the mergeNetsplitBlock
for the Sepolia testnet.
Specifically, this release
--netrestrict
option is now also applied for discv5. (#25304)eth_getBlockByNumber
, the safe
block specifier can now be used to refer to the "safe" block post-merge. (#25165)baseFee
can now be overridden in block tracing. (#25219)chainId
for legacy transactions. (#25244)eth_sendTransaction
, the chainId
parameter now verified even for legacy transactions. (#25157)eth_call
, eth_estimateGas
no longer add tx fees to the coinbase account. (#25214)revertReasonTracer
, has been added. (#25265)For a full rundown of the changes please consult the Geth 1.10.21 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.Geth v1.10.20 is a maintenance release, adding built-in configuration for the merge fork on the Sepolia testnet.
Specifically, this release defines a terminal total difficulty for Sepolia (#25179).
geth js
subcommand has been removed. (#25000)--discovery.port
flag allows configuring a separate port for the UDP listener. (#24979)eth_chainId
now always returns the configured chain ID regardless of sync status. This is a violation of EIP-695, but the previous behavior caused issues with CL clients. (#25166, #25168)eth_getTransactionByHash
) now always include the chainId
field, even for untyped (legacy) transactions. (#25155)personal_signAndSendTransaction
has been removed. (#25111)For a full rundown of the changes please consult the Geth 1.10.20 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.Geth v1.10.19 is yet another feature release.
The release contains the Gray Glacier fork definition. The Gray Glacier fork is a difficulty-bomb postponement, which is expected to go live on Ethereum Mainnet towards the end of June.
In other words: all users are required to upgrade before the Gray Glacier hardfork activates at block 15050000
(#25088)
Changes which may cause incompatibilities:
engine
API is now only available with JWT authentication.--ignore-legacy-receipts
, but we strongly recommend you run the conversion in this case (#24943).debug_traceCall
will now reject execution against the pending
block (#24871).Other changes in this release:
debug_traceCall
RPC method now also supports block overrides; making fields like timestamp or the block number settable by the caller (#24871).geth snapshot inspect-account
, allows investigations of snapshot data (#24765).eth/67
protocol, dropping support for GetNodeData (#24093).For a full rundown of the changes please consult the Geth 1.10.19 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go
.After a long train of maintenance releases, we are happy to announce this feature release of Geth!
This release is ready for the Merge transition on the Ropsten testnet, and will activate the Merge on Ropsten when the testnet reaches a total difficulty of 43531756765713534.
Please ensure you have a beacon chain node configured for the transition. You can find more information about preparing for the Merge in our guide: https://geth.ethereum.org/docs/interface/merge.
Note: the Merge transition on Ropsten was unsuccessful because the configured TD was reached earlier than expected. Please run geth with --override.terminaltotaldifficulty 100000000000000000000000
on Ropsten for the time being.
The tracing subsystem has been another focus area of this release cycle. We have replaced the JavaScript interpreter used by the tracing engine with Goja, which offers slightly better performance and implements many ES6 language features. There are minor differences in JS tracing semantics: The built-in functions memory.slice
, memory.getUint
, stack.peek
will now throw an exception and interrupt tracing when accessing out-of-bounds data. They previously returned an empty value for invalid args instead.
This release contains further breaking changes to tracing APIs. Be sure to check the tracing changelog section. Please also report any incompatibilities you encounter.
"finalized"
to refer to the latest finalized block. (#24282)--dev
mode. (#24759)--eth.requiredblocks
flag was fixed to work correctly. (#24817)geth --dev
with a datadir previously initialized by geth init
should now work correctly. (#24693)geth init
will now complain when creating a Clique-based chain without any configured signers. (#24470)geth db check-state-content
command checks integrity of trie nodes in the database. (#24840)geth snapshot verify-state
now checks for 'dangling' storage entries. (#24643, #24677)evm t8n
can now run post-merge state transitions. (#24546)evm run
is now verified to have even length. (#24721)MSTORE
is now 75% faster. (#24847, #24860)abigen --sol
does not work anymore. (#24936)Client
now has a PeerCount
method. (#24849)GetProof
now also returns storage proofs (#24697)ParseSelector
now handles tuple arrays. (#24587)Receipt.EncodeJSON
now actually returns JSON instead of RLP. (#24701)pending
block now correctly return the eth_call
RPC error, if any. (#24649)miner
field is now optional when decoding block headers from JSON (#24666)log.memory
object now has a length
method. (#24887)debug_traceTransaction
, in the default structured-logging mode, now returns the refund counter for every EVM execution step. (#24567)memory
and returnData
will only be present when they contain non-empty data. (#24547)intrinsicGas
property is now correct even when there are refunds. In the built-in "prestate" tracer, the sender balance added to the result should now be the true balance at the beginning of the transaction. (#24510)Long
(representing a block number, for example) can now be set using a query variable. (#24864)debug_testSignCliqueBlock
is not available anymore. (#24837)debug_getRawReceipts
RPC method returns the binary representation of block receipts. (#24773)debug_dbGet
method can be used to read from the chain database. (#24739)go generate
more deterministic. (#24682)go generate
after changing certain assets such as JS files. (#24744)For a full rundown of the changes please consult the Geth 1.10.18 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go
.This is a maintenance release. This release contains a lot of work in preparation for The Merge, and work for an upcoming change to the way state is stored in go-ethereum.
This release also adds a new tool to convert 'legacy' receipts into a newer format. During startup, geth will check the database and tell you if you need to perform the conversion. Converting receipts is only needed if geth's ancients
database has not been resynced from scratch during the last couple of years. It is recommended to back-up your receipts freezer table (ancients/receipts*
) before performing the conversion.
Compatibility note about core/types
: For optimization purposes, types.Header
and other types in this package now implement the rlp.Encoder
interface. This change can cause incompatibilities because the new method is implemented with pointer receiver. Attempting to RLP-encode unadressable (i.e. non-pointer) values of type Header
does not work anymore and will result in an error.
clef
(#24407)For a full rundown of the changes please consult the Geth 1.10.17 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go
.The focus of this release is bugfixes.
debug.traceBlockByHash
has sometimes produced inconsistent/corrupt results. Fixed via (#24286).--whitelist
CLI parameter functionality was broken in v1.10.14
, and is fixed in this release (#24210).metrics
, were sometimes incorrect. Fixed in (#24304).HTTP2
handling (#24292).RANDOM
opcode (#24141) and various other internal refactorings (#24328, #24280, #24236, #23256).devp2p
binary now supports doing snap/v1
protocol testing against a remote node, which can be used for Hive-testing (#24276).ethclient
support for CallContractAtHash
(#24355).prestate
tracer be a native tracer (#24320, #24268).For a full rundown of the changes please consult the Geth 1.10.16 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go
.