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.
Created by
brew bumpCreated with
brew bump-formula-pr.release notes
Command changes
evmcommand has seen lots of updates, improving its command-line interface and internals. (#30633, #30849, #30806, #30927, #30780, #30854, #31055, #30805, #30804, )--metricsflag. (#30814)--natflag) with the config file. (#31041)geth --traceflag is now called--go-execution-traceto avoid confusion with EVM tracing. (#30846)bootnodeutility has been removed. (#30813)RPC & Tracing
eth_estimateGasnow supports block overrides likeeth_call. (#30695)eth_simulateV1now advances the timestamp by 12 seconds per block. (#30981)accounts/abinow supports unpacking Solidity error types. (#30738)accounts/abi/bindhas new functionsWaitMinedHash,WaitDeployedHash. (#30079)accounts/usbwalletwas updated to support new Ledger firmware and the Ledger Flex device. (#31004)ethclient/simulated, a bug was fixed where transactions couldn't be sent afterRollbackof 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.localsCLI 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 names when attempting to connect to the peer, instead of at configuration parsing time. This is useful for setting up testing networks in Docker or Kubernetes where the IP address of a node might not be known ahead of time. (#30822)Geth can now use the STUN protocol to figure out its own IP. There is a built-in list of public servers, or you can specify your own. Use
--nat=stunto enable. (#31064)Some minor bugs in the p2p protocol implementation got fixed. (#30855, #30918)
Build
For a full rundown of the changes please consult the Geth 1.15.0 release milestone
As with all our previous releases, you can find the:
ethereum/client-go.