-
Notifications
You must be signed in to change notification settings - Fork 1
fix(deps): update module github.com/ethereum/go-ethereum to v1.16.0 #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/github.com-ethereum-go-ethereum-1.x
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6b5de3f
to
90e4fe2
Compare
90e4fe2
to
9dc06be
Compare
9dc06be
to
95001a1
Compare
95001a1
to
499df98
Compare
499df98
to
037d77e
Compare
037d77e
to
9f8aca0
Compare
26aa612
to
3bd1b59
Compare
3bd1b59
to
ae588d8
Compare
ae588d8
to
b3b6325
Compare
b61bea2
to
ab57063
Compare
ab57063
to
392dcd4
Compare
392dcd4
to
93e68fa
Compare
93e68fa
to
2a7ac9d
Compare
e6f2450
to
01d27d0
Compare
01d27d0
to
fff46a8
Compare
fff46a8
to
5af38dd
Compare
5af38dd
to
077a0b6
Compare
077a0b6
to
fea8013
Compare
fea8013
to
8e37242
Compare
e106dfd
to
40effe5
Compare
40effe5
to
d149c66
Compare
d149c66
to
0b8173b
Compare
0b8173b
to
550cad3
Compare
550cad3
to
39759a2
Compare
39759a2
to
4744723
Compare
4744723
to
4558c5e
Compare
4558c5e
to
ff881df
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
None yet
0 participants
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.11.5
->v1.16.0
Release Notes
ethereum/go-ethereum (github.com/ethereum/go-ethereum)
v1.16.0
: Terran Rivets (v1.16.0)Compare Source
We are proud to present the v1.16.0 release, introducing path-based archive node and several other improvements to the state database implementation. There is also the usual amount of bug fixes and small improvements.
Archive Node
This release includes a new, experimental implementation of the archive node (
--gcmode=archive
). As an archive node, Geth stores all historical states, and can thus retrieve account balances, nonces and storage values at old blocks.In previous versions of Geth, running as an archive node was only possible using the legacy 'hash-based' state storage scheme (
--state.scheme=hash
). When syncing mainnet the resulting database would reach sizes larger than 20TB, and it all had to be stored on a high-speed SSD.The new implementation provides the state archive in combination with 'path-based' storage (
--state.scheme=path
). Comparing to hash-based storage, there are three basic advantages:--history.state
flag.Notably, there is also one drawback with the new archive node:
eth_getProof
is not supported for historical blocks. With--state.scheme=path
, Geth can only serve state proofs for the latest 128 blocks. We believe this is an acceptable tradeoff. If you need older proofs, you can still a hash-based archive node as before, but we'd also really like to hear about your use case. Please contact us via email at[email protected]
so we can learn more, and possibly find a solution that can be implemented within Geth.How it works
With 'path-based' state storage, Geth keeps exactly one full state in the database. Specifically, the persistent state is 128 blocks in the past. For newer blocks up to the head, forward diffs are kept in memory. In order to support rolling back to blocks older than head-128, Geth also keeps 'state history' in the form of reverse key-value diffs. When the chain is reset to an old block, these diffs are applied to the persistent state, going backwards one diff at a time until the target block is reached.
A reverse state diff contains the previous values of all modified accounts and storage locations for a specific block. There is a reverse diff for each historical block. This makes reverse diffs suitable for storage into the 'freezer', i.e. they do not need to live within Pebble/LevelDB.
The new archive mode is built on the realization that reverse state diffs contain all necessary data to serve historical state queries. For example, in order to get the historical balance of an account X at block B, we can search forward through diffs starting at block B until we find a block where account X is modified. This diff will contain the balance of the account, since it stores the all modified pre-values.
To accelerate the search for a suitable diff, Geth creates a database index storing the block numbers in which an account was modified. This index is small compared to the overall state history, but it is crucial for correct operation of the archive node. The state index is stored in PebbleDB and will be generated automatically while geth is syncing the chain. It takes ~30h to build the archive state index for mainnet, and historical state will only be available when the index is fully built. Geth will report a syncing status through
eth_syncing
while the indexing happens.Other state implementation changes
In v1.16.0, the implementation of the 'state snapshot' has been rewritten for improved integration with path-based state storage. As you may recall, Geth stores the state in two different ways:
When the implementation of the snapshot and its layer tree was introduced in Geth v1.10.0, it was built to be entirely separate from the trie database. We added path-based state storage in v1.13.0, and that system contains a layer tree as well, with slight differences in semantics and implementation.
As of this release, the layer trees of the state snapshot and trie database have been merged into a single implementation (#30661). In path-based mode, the trie database now holds a reference to the corresponding snapshot layer for each tree state. The new layer tree has also been enhanced with an additional index of layers in which an account was modified (#30971). Note this is similar in spirit to the historical state index. The new index will enable us to increase the number of in-memory state layers in the future.
Full list of changes in this release
Geth
geth download-era
subcommand for fetching era1 files. (#31823, #31951, #32081)Ready for fork activation
messages are now printed based on the current clock time. (#31800)geth --dev
now shows a listing of pre-funded dev chain accounts and their keys. (#31898)geth --dev
now always enables preimage recording. (#31821)Fusaka
We have started merging some EIP implementations for the upcoming Fusaka fork:
Core
RPC
eth_getLogs
and similar requests will now return theblockTimestamp
. (#31887)eth_getBlockReceipts
will now returnnull
instead of an error for blocks which are not found. (#31949)Networking
For a full rundown of the changes please consult the Geth 1.16.0 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.11
: Armored Compartments (v1.15.11)Compare Source
This is a maintenance release, correcting issues with log and transaction indexing. Upgrading to this release is not required to follow the Pectra fork on mainnet, you can keep using v1.15.9 or v1.15.10, but we recommend you upgrade at your convenience to fix RPC issues.
All changes
eth_getTransactionByHash
is resolved. (#31752)eth_simulateV1
now correctly returns the transaction sender (from
). (#31480)eth_estimateGas
related tofloorDataGas
is resolved. (#31735)ethclient
'sBlockByNumber
can now retrieve the pending block. (#31504)geth init
will once again exit in error when trying to re-initialize a database with an incompatible config. (#31743)geth --dev
mode is resolved. (#31758)For a full rundown of the changes please consult the Geth 1.15.11 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.10
: Omni-Capacitors (v1.15.10)Compare Source
This is a bug-fix release that corrects an issue with the new log indexer and configures the beacon chain light client for the Electra fork on mainnet (we forgot about this in v1.15.9).
This release is also suitable for following the Pectra fork on Mainnet.
All changes
authorizationList
to calls. (#31198)debug_setMemoryLimit
has been added for tweaking Go garbage collector behavior. We do not recommended using this, it's just a facility for debugging Geth. (#31441)For a full rundown of the changes please consult the Geth 1.15.10 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.9
: Multicapacitor (v1.15.9)Compare Source
This release enables the Prague execution-layer fork on mainnet.
Prague
As of this release, the Prague fork is scheduled to occur on mainnet at block timestamp
1746612311
(Wed May 07 10:05:11 2025 UTC). As a reminder, the fork contains the following EIPs:MAX_EFFECTIVE_BALANCE
All changes
eth_sendRawTransaction
would always return a txhash, even if the transaction wasn't includable on chain. (#31618)eth_feeHistory
related to blob fees is resolved. (#31663)For a full rundown of the changes please consult the Geth 1.15.9 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.8
: Combatives Upgrade (v1.15.8)Compare Source
This is a bug-fix release with some performance improvements.
Geth
geth import
now applies database and cache flags correctly. (#31577, #31534)blsync
now has a feature to export checkpoint files. (#31469)Core library
fsync
a while ago to improve performance on slow filesystems, but it has lead to reports of instability. The performance hit from enabling data sync is negligible. (#31519)RPC
P2P networking
*enode.Node
to handlers. This is a breaking change, but the only known user of this API is the shisui portal network client. (#31075)skip
values when processingGetBlockHeaders
messages from peers. This is not a security fix, despite looking like one, it's more about correctness. (#31522)Build
For a full rundown of the changes please consult the Geth 1.15.8 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.7
: Juggernaut Shield (v1.15.7)Compare Source
This is a bug fix release. We are putting is out specifically to address a critical issue that could break archive node databases.
--state.scheme=hash
where the log indexer would accidentally delete trie nodes. (#31525)ethclient/simulated.Backend
is fixed in this release. (#31228)eth_createAccessList
now supports state overrides likeeth_call
. (#31497)eth_createAccessList
will now exclude 7702 authorities from the result. (#31336)eth_estimateGas
. (#31394)For a full rundown of the changes please consult the Geth 1.15.7 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.6
: Mental Focuser (v1.15.6)Compare Source
🚧 Note: we are investigating an issue with this release that affects archive nodes (--gcmode=archive).
If you are running Geth in this mode, please hold off upgrading. 🚧
This is a feature release, with two exciting upgrades:
Log filtering in Geth receives a huge performance upgrade with the introduction of our new 'filtermaps' index. Unlike the previous 'bloombits' index, query performance no longer suffers as the density of logs in a block increases. The new index design is also a step towards a future where filtering results can be proven by the server. See the PR and associated design documents for more information.
In practical terms, the new index is a bit larger than the old one. As before, you can choose the amount of historical blocks to be indexed using the
--history.logs
command-line flag. We have adjusted the default value of this flag to cover one year of history, and the resulting index has a size of ~10GB for Ethereum mainnnet. Indexing of the entire chain with--history.logs=0
will take up ~61GB.Once the index is built, searches will be fast, but note that querying outside of the indexed block range will fall back to a very slow unindexed search. We will continue optimizing log searches in future releases, and welcome your feedback and bug reports in this area. (#31065, #31079, #31080, #31081, #31419, #31429, #31450, #31463, #31455)
abigen v2 is finally here. abigen is a tool for creating Go bindings for Solidity contracts. In v1, the generated bindings presented an API for sending transactions, filtering logs, and performing read-only calls as Go methods on the contract object. In the new version, we have updated the interface of the generated code to focus purely on encoding and decoding ABI payloads. Generic helper functions are provided in a library package to enable the same interactions as before, but you can also use your own custom method of signing & sending transactions. Generated bindings are also significantly smaller. (#31379)
Other changes in this release:
RPC
eth_sendRawTransaction
- where transactions with too-low nonce would be accepted by the API - has been fixed. (#31473)eth_call
/estimateGas
RPC methods will now always return error code 3 for reverts. It previously only returned this code when the EVM produced revert data. (#31456)eth_simulateV1
now returns a correct logs bloom value in the simulated block (#31411)eth_simulateV1
supports block overrides for the beacon root and withdrawals (#31304)debug_traceCall
: themovePrecompileTo
override feature should now work correctly (#31348)debug_traceCall
and other related RPC methods now hex-encode the EVM return value. This is a breaking change. (#31216, #31445)ethclient
has a new methodEstimateGasAtBlock
(#27508)Geth
geth import
now properly handles Ctrl-C interrupts (#31360)geth --dev
mode will now pre-fund all precompile accounts supported by the Pectra upgrade (#31342)geth --dev
now respects the--miner.pending.feeRecipient
flag (#31316)Core library
For a full rundown of the changes please consult the Geth 1.15.6 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.5
: Stronghold Package (v1.15.5)Compare Source
Alright 🥲 This is a hotfix release for an issue on the Sepolia testnet. Shortly after the Pectra fork activation, an issue in deposit contract logs parsing was discovered. Sepolia has a custom version of the deposit contract that also implements ERC-20, and thus unexpected log events may be created by transactions to it. This issue affects all Ethereum execution clients.
The Sepolia testnet may take a short while to recover while the update is adopted by nodes. An incident report will be published once the network has fully recovered. ❤️🩹
Other changes in this release:
debug_traceTransaction
, the "memory" and "storage" fields will be omitted if empty. (#31289)For a full rundown of the changes please consult the Geth 1.15.5 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.4
: Commando Package (v1.15.4)Compare Source
This is a bug fix release.
Note: you need to upgrade to v1.15.3 or this release to be compatible with the Pectra fork on the Sepolia network (activates Wed, Mar 5 at 07:29:36 UTC).
eth_feeHistory
that caused incorrectblobGasRatio
return values. (#31246, #31270)BlobBaseFee
method to request the current blob basefee. (#31290)For a full rundown of the changes please consult the Geth 1.15.4 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.3
: Expert Package (v1.15.3)Compare Source
Oh look, another hotfix release! We are issuing this Geth release to correct the predefined fork configuration of the Holesky and Sepolia testnets. The deposit contract address was missing in the configuration for these networks, causing a chain validation failure.
This issue was discovered on the Holesky network after it had already forked into Pectra (Prague). As a reminder, the Sepolia network will fork to Pectra at slot
7118848
(Wed, Mar 5 at 07:29:36 UTC). You need to upgrade to Geth v1.15.3 until then in order to use the testnet after the fork.All changes in this release:
eth_simulateV1
RPC method was improved to match regular block processing semantics. (#31176, #31122)--discovery.dns
flag value will now cause an error at Geth startup. (#31233)--dev
mode can now handle custom genesis configs with forks older than the latest. (#31084)core/asm
) has been removed. (#31211)For a full rundown of the changes please consult the Geth 1.15.3 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.2
: Survivor Loadout (v1.15.2)Compare Source
This release fixes a few regressions. In particular, it restores block building on mainnet, which was broken in v1.15.1.
Note: a regression in the Prague fork implementation was discovered and fixed in a follow-up release. Please upgrade to at least v1.15.3 to follow the fork.
All changes in this release:
geth dumpconfig
related to theP2P.NAT
setting in TOML is fixed. (#31192)For a full rundown of the changes please consult the Geth 1.15.2 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.1
: Engineering Kit (v1.15.1)Compare Source
This release enables the Prague fork for the Holesky and Sepolia testnets. It is a required upgrade if you want to participate in these networks.
Note: a regression in the Prague fork implementation was discovered and fixed in a follow-up release. Please upgrade to at least v1.15.3 to follow the fork.
The fork is set to activate at
3710976
, timestamp: Mon, Feb 24 at 21:55:12 UTC7118848
, timestamp: Wed, Mar 5 at 07:29:36 UTCOther user-facing changes in this release:
blobSchedule
setting. Geth v1.15.1 has been updated no longer crash in this case, and we will have an improved fix in v1.15.2 (#31171)evm
command related to state dumps has been fixed. (#31158)debug_getRaw*
RPC methods has been fixed. (#31157)For a full rundown of the changes please consult the Geth 1.15.1 release milestone
As with all our previous releases, you can find the:
ethereum/client-go
.v1.15.0
: Operative Package (v1.15.0)Compare Source
We are proud to announce the Geth 1.15.0 release.
This release contains some breaking changes to the database. Downgrading to v1.14.x requires re-syncing the chain.
Prague Fork
As of this release, Geth implements the Prague fork specifications up to devnet-6.
Command changes
evm
command has seen lots of updates, improving its command-line interface and internals. (#30633, #30849, #30806, #30927, #30780, #30854, #31055, #30805, #30804, )--metrics
flag. (#30814)--nat
flag) with the config file. (#31041)geth --trace
flag is now called--go-execution-trace
to avoid confusion with EVM tracing. (#30846)bootnode
utility has been removed. (#30813)RPC & Tracing
eth_estimateGas
now supports block overrides likeeth_call
. (#30695)eth_simulateV1
now advances the timestamp by 12 seconds per block. (#30981)accounts/abi
now supports unpacking Solidity error types. (#30738)accounts/abi/bind
has new functionsWaitMinedHash
,WaitDeployedHash
. (#30079)accounts/usbwallet
was updated to support new Ledger firmware and the Ledger Flex device. (#31004)ethclient/simulated
, a bug was fixed where transactions couldn't be sent afterRollback
of the simulated chain. (#31020)Database
This release introduces a new database schema version. A downgrade to v1.14.x requires a resync.
Core Library & Networking
The fix for CVE-2025-24883 (recent v1.14.13 hotfix release) is also in v1.15.0 (#31100).
The transaction pool's notion of "locals" has been changed. This is a breaking change in some ways, and requires some explanation. Geth used to accept transactions at any fee level via RPC, storing them into the node's pool, and marking the sender as "local". When creating a new block (or the pending block), it would choose "local" transactions first. Finally, Geth tracks "local" transactions in a persistent journal file, and restores them on startup. The effect of all this is that once you had sent a transaction to Geth via RPC, it would keep prioritizing the sender account and its transactions (even ones received through p2p).
In Geth v1.15, we are changing this model to a different one. When receiving a transaction via RPC, it is stored into the pool like any other transaction, but it is also inserted into a separate "locals tracker" that keeps reinjecting the tx into the main pool periodically. When building a block, Geth no longer prefers the txpool locals, but you can configure a set of addresses that should get priority using the
--txpool.locals
CLI flag. (#30559, #31127)For static nodes (from configuration or RPC
admin_addPeer
), the node URL can contain a DNS name. Geth will now resolve these nConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.