Commit graph

16403 commits

Author SHA1 Message Date
Marius van der Wijden
b19452dc11
params: add amsterdam fork config (#32687)
Some checks failed
/ Linux Build (arm) (push) Has been cancelled
/ Linux Build (push) Has been cancelled
/ Windows Build (push) Has been cancelled
/ Docker Image (push) Has been cancelled
Adds Amsterdam as fork config option.

Co-authored-by: lightclient <lightclient@protonmail.com>
2025-09-26 15:39:22 -06:00
Dragan Milic
c984d9086e
eth/tracers/native: add keccak256preimage tracer (#32569)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Introduces a new tracer which returns the preimages
of evm KECCAK256 hashes.

See #32570.

---------

Co-authored-by: Sina M <1591639+s1na@users.noreply.github.com>
Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2025-09-26 18:05:27 +02:00
MozirDmitriy
8e87b7539b
trie: correct error messages for UpdateStorage operations (#32746)
Fix incorrect error messages in TestVerkleTreeReadWrite and TestVerkleRollBack functions.
2025-09-26 07:47:58 -06:00
VolodymyrBg
16b735fddd
signer/core: fix TestSignTx to decode res2 (#32749)
Decode the modified transaction and verify the value differs from original.

---------

Co-authored-by: lightclient <lightclient@protonmail.com>
2025-09-26 07:26:22 -06:00
Matus Kysel
2e2fece0bb
ethapi: reject oversize storage keys before hex decode (#32750)
Bail out of decodeHash when the raw hex string is longer than 32 byte before actually decoding.
---------

Co-authored-by: lightclient <lightclient@protonmail.com>
2025-09-26 07:12:28 -06:00
wit liu
a8f7965d58
internal/ethapi: fix outdated comments (#32751)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Fix outdated comments
2025-09-26 06:11:50 -06:00
Felix Lange
b1eb33ce8b version: begin v1.16.5 release cycle 2025-09-26 11:41:02 +02:00
Felix Lange
b964b6574f version: release go-ethereum v1.16.4 stable 2025-09-25 18:19:45 +02:00
Felix Lange
0977a02ec1
params: schedule Osaka/BPO1/BPO2 for testnets (#32735)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Timestamps taken from:

- Holesky:
https://github.com/eth-clients/holesky/blob/main/metadata/genesis.json
- Sepolia:
https://github.com/eth-clients/sepolia/blob/main/metadata/genesis.json
- Hoodi:
https://github.com/eth-clients/hoodi/blob/main/metadata/genesis.json
2025-09-25 18:07:33 +02:00
cui
7d8ccddaac
all: refactor to use builtin max/min (#32694)
Replaces the last few instances of `math.Max` and `math.Min` with go builtins.
2025-09-25 07:05:27 -06:00
Delweng
bacc1504ba
core/txpool: add eip2681 check for incoming transactions (#32726)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
2025-09-25 13:15:12 +02:00
Felix Lange
ad484fcbd0
build: upgrade to execution-spec-tests v5.1.0 (#32742)
https://github.com/ethereum/execution-spec-tests/releases/tag/v5.1.0
2025-09-25 13:14:28 +02:00
Csaba Kiraly
89158aa64e
core/txpool/blobpool: convert and add one-by-one (#32718)
This is a small improvement on #32656 in case Add was called with
multiple type 3 transactions, adding transactions to the pool one-by-one
as they are converted.

Announcement to peers is still done in a batch.

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2025-09-25 10:27:23 +02:00
lightclient
965ffff9ac
all: add bpo1 and bpo2 overrides (#32737)
This adds overrides to the cli for BPO1 and BPO2.

---------

Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2025-09-25 10:21:41 +02:00
hero5512
7611f351c1
accounts/abi/bind: fix data race in TestWaitDeployedCornerCases (#32740)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Fixes race in WaitDeploy test where the backend is closed before goroutine using it wraps up.

---------

Co-authored-by: lightclient <lightclient@protonmail.com>
2025-09-24 20:05:14 -06:00
viktorking7
1c706d1571
accounts/keystore: use ticker to avoid timer allocations (#32732)
Replace time.After with a long‑lived time.Ticker in KeyStore.updater, preventing per‑iteration timer allocations and potential timer buildup.

Co-authored-by: lightclient <lightclient@protonmail.com>
2025-09-24 19:47:55 -06:00
radik878
7ed17f1933
trie: fix TestOneElementProof expected value message (#32738)
- Correct the error message in TestOneElementProof to expect 'v' instead
of 'k'.
- The trie is updated with key "k" and value "v"; on mismatch the
expected value must be 'v'.
- Aligns the message with the actual test logic and other similar checks
in this file, reducing confusion during test failures. No behavioral
changes.
2025-09-24 18:57:01 -06:00
Felix Lange
ad55a3e07f
core/txpool/blobpool: fork boundary conversion 3 (#32716)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
This implements the conversion of existing blob transactions to the new proof 
version. Conversion is triggered at the Osaka fork boundary. The conversion is 
designed to be idempotent, and may be triggered multiple times in case of a reorg 
around the fork boundary. 

This change is the last missing piece that completes our strategy for the blobpool 
conversion. After the Osaka fork,

- new transactions will be converted on-the-fly upon entry to the pool
- reorged transactions will be converted while being reinjected
- (this change) existing transactions will be converted in the background

---------

Co-authored-by: Gary Rong <garyrong0905@gmail.com>
Co-authored-by: lightclient <lightclient@protonmail.com>
2025-09-24 20:03:17 +02:00
Felix Lange
bc451546ae
miner: default gaslimit 60M (#32734) 2025-09-24 19:41:33 +02:00
Felix Lange
15a94b4331
build: module-aware FindMainPackages (#32736)
This fixes `go run build/ci.go install`. It was failing because we
resolved all main packages by parsing sources, which fails when the
source directory contains multiple modules.
2025-09-24 19:40:49 +02:00
VolodymyrBg
48c74f4593
trie: align AllFFPrefix test assertion and message (#32719)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
2025-09-24 10:36:56 +08:00
Nikita Mescheryakov
4074f745bd
internal/ethapi: fix merge transition in eth_simulate (#32616)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
This PR fixes the fork detection of `eth_simulateV1`, particularly
for networks that are post-merge since genesis, like Hoodi.
2025-09-23 20:00:16 +02:00
cui
1cd004871b
accounts/keystore: use runtime.AddCleanup (#32610) 2025-09-23 14:49:15 +02:00
rjl493456442
8dfd30fdd1
core/txpool/blobpool: add legacy sidecar conversion in reinject (#32688)
This adds the conversion for the legacy sidecar if these
transactions are reorged out after the osaka.
2025-09-23 14:45:36 +02:00
Bhargava Shastry
2b5718fe92
cmd/evm/internal/t8ntool: fix nil pointer dereference in Osaka blob gas calculation (#32714)
The parent header was missing the BaseFee field when calculating the
reserve price for EIP-7918 in the Osaka fork, causing a nil pointer
dereference. This fix ensures BaseFee is properly set from ParentBaseFee
in the environment.

Added regression test case 34 to verify Osaka fork blob gas calculation
works correctly with parent base fee.
2025-09-23 14:39:44 +02:00
MozirDmitriy
2872242045
cmd/era: fix iterator error source handling in checkAccumulator (#32698)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
This change replaces wrapping a stale outer err with the iterator’s own
error after Next(), and switches the post-BlockAndReceipts() check to
use the returned err. According to internal/era iterator contract,
Error() should be consulted immediately after Next() to surface
iteration errors, while decoding errors from Block/Receipts are returned
directly. The previous code could hide the real failure (using nil or
unrelated err), leading to misleading diagnostics and missed iteration
errors.

---------

Co-authored-by: lightclient <lightclient@protonmail.com>
2025-09-22 14:27:54 -06:00
Felix Lange
1597d58fae
go.work, build: remove workspace file (#32699)
https://go.dev/ref/mod#go-work-file advises against checking `go.work`
files because they can interfere with local development. We added the
workspace file in order to make `go test` and other tools work across
multiple modules. But it seems to cause weird issues with the
`go.work.sum` file being modified, etc.

So with this PR, we instead run all the `ci.go` commands for all modules
in the workspace manually.
2025-09-22 22:20:47 +02:00
rjl493456442
aa37bd063d
cmd, tests: fix snapshot dump and export-preimages (#32650)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Address #32646
2025-09-22 14:48:18 +08:00
rjl493456442
ada2db4304
triedb/pathdb: move head truncation log (#32649)
Print the `Truncating from head` log only if head truncation is needed.
2025-09-22 14:45:15 +08:00
GarmashAlex
479b8031dc
core/state: fix committed-state expectations in StateDB tests (#32678)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
2025-09-22 10:30:29 +08:00
lightclient
4414e2833f
go.work.sum: add to repo (#32677)
Some checks failed
/ Linux Build (push) Has been cancelled
/ Linux Build (arm) (push) Has been cancelled
/ Windows Build (push) Has been cancelled
/ Docker Image (push) Has been cancelled
2025-09-20 09:32:21 +02:00
rjl493456442
684f0db4a2
core/txpool/blobpool: introduce sidecar conversion for legacy blob transactions (#32656)
This pull request introduces a queue for legacy sidecar conversion to
handle transactions that persist after the Osaka fork. Simply dropping 
these transactions would significantly harm the user experience.

To balance usability with system complexity, we have introduced a
conversion time window of two hours post Osaka fork. During this period, 
the system will accept legacy blob transactions and convert them in a 
background process.

After the window, all legacy transactions will be rejected. Notably, all
the blob transactions will be validated statically before the conversion, 
and also all conversion are performed in a single thread, minimize the risk 
of being DoS.

We believe this two hour window provides sufficient time to process
in-flight legacy transactions and allows submitters to migrate to the 
new format.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2025-09-20 10:19:55 +08:00
lightclient
fd65f56031
params: update config description links to new format (#32681)
A PR in the specs repo broke our existing links:
https://github.com/ethereum/execution-specs/pull/1416

This PR fixes it and adds the Prague and Osaka specs.
2025-09-20 09:45:11 +08:00
MozirDmitriy
b62e0348e0
core/rawdb: fix bad blocks sorted failure message to map index→number correctly (#32627)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Fix the t.Fatalf format arguments in TestBadBlockStorage to match the
intended #index output. Previously, the left number used i+1 and the
right index used the block number, producing misleading diagnostics.
Correct mapping improves test failure clarity and debuggability.
2025-09-19 17:23:50 -06:00
Zach Brown
f770ec1ffc
common, eth: remove duplicate test cases (#32624)
Remove redundant duplicate test vectors. The two entries were identical
and back-to-back, providing no additional coverage while adding noise.
Keeping a single instance maintains test intent and clarity without
altering behavior.
2025-09-19 17:20:44 -06:00
Gengar
c7eb37608b
fix: correct typo in TestMustParseUint64Panic error message (#32648)
Fix typo in test error message where "MustParseBig" was incorrectly 
used instead of "MustParseUint64" in the TestMustParseUint64Panic 
function. 

The test still functions correctly, but now the error message 
accurately reflects the function being tested.
2025-09-19 17:13:58 -06:00
cui
a499a11a16
crypto: using testing.B.Loop (#32645)
before:
go test -run=^$ -bench=. ./crypto/... 94.83s user 2.68s system 138% cpu
1:10.55 tota

after:
go test -run=^$ -bench=. ./crypto/... 75.43s user 2.58s system 123% cpu
1:03.01 total
2025-09-19 17:12:41 -06:00
cui
e35c628656
core/types: using testing.B.Loop (#32643)
before:
go test -run=^$ -bench=. ./core/types 47.80s user 2.18s system 102% cpu
48.936 tota

after:
go test -run=^$ -bench=. ./core/types 42.42s user 2.27s system 112% cpu
39.593 total
2025-09-19 17:11:32 -06:00
cui
79a4f76b03
core/vm: using testing.B.Loop (#32660)
before:
go test -run=^$ -bench=. ./core/vm/... -timeout=1h 1841.87s user 40.96s
system 124% cpu 25:15.76 total
after:
go test -run=^$ -bench=. ./core/vm/... -timeout=1h 1588.65s user 33.79s
system 123% cpu 21:53.25 total

---------

Co-authored-by: lightclient <lightclient@protonmail.com>
2025-09-19 17:06:55 -06:00
cui
0758a561d6
core: using testing.B.Loop (#32662)
Co-authored-by: lightclient <lightclient@protonmail.com>
2025-09-19 17:06:27 -06:00
cui
9b1896bfb5
log: using testing.B.Loop (#32663)
before:
go test -run=^$ -bench=. ./log -timeout=1h 12.19s user 2.19s system 89%
cpu 16.025 total
after:
go test -run=^$ -bench=. ./log -timeout=1h 10.64s user 1.53s system 89%
cpu 13.607 total

---------

Co-authored-by: lightclient <lightclient@protonmail.com>
2025-09-19 17:05:21 -06:00
cui
3ebb1431d3
eth: using testing.B.Loop (#32657)
before:
go test -run=^$ -bench=. ./eth/... 827.57s user 23.80s system 361% cpu
3:55.49 total

after:
go test -run=^$ -bench=. ./eth/... 281.62s user 13.62s system 245% cpu
2:00.49 total
2025-09-19 17:00:29 -06:00
cui
d41dc92da9
core/state: using testing.B.Loop (#32658)
before:
go test -run=^$ -bench=. ./core/state/... 120.85s user 7.96s system 129%
cpu 1:39.13 tota

after:
go test -run=^$ -bench=. ./core/state/... 21.32s user 2.12s system 97%
cpu 24.006 total
2025-09-19 16:57:43 -06:00
cui
64c6de7747
p2p: using testing.B.Loop (#32664) 2025-09-19 16:38:36 -06:00
Csaba Kiraly
1601f398d4
core/txpool/blobpool: remove conversion in GetBlobs (#32578)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
This disables blob proof conversion in `GetBlobs` by default, making it
conditional.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2025-09-19 16:21:15 +02:00
Marius van der Wijden
103b8b2ec5
crypto/bn256: switch to gnark again (#32659)
We recently update our default implementation to gnark in
https://github.com/ethereum/go-ethereum/pull/32024
Then we found a consensus issue and reverted it in
65d77c5129
We fixed the consensus issue and have been fuzzing it more since then in
https://github.com/ethereum/go-ethereum/pull/32055/files
https://github.com/ethereum/go-ethereum/pull/32065
https://github.com/ethereum/go-ethereum/pull/32055/files

So I think now is the time to update it back to gnark
2025-09-19 15:18:42 +02:00
Galoretka
9b730e1997
core/state: add missing address key in state_object log (#32676) 2025-09-19 21:13:32 +08:00
Felföldi Zsolt
b08b629818
beacon/blsync: test validated finality (#32633)
This PR improves `TestBlockSync` so that it also tests the finality
update validation.

Note: to this date four long and complex (at least partly AI generated)
PRs arrived that did something related to testing finality but honestly
we do not need a bloated "comprehensive" test to test a trivial feature
because maintaining these tests can also be a pain over the long term.
This PR adds some sufficient sanity checks to detect if finality ever
gets broken by a future change.
2025-09-19 14:07:10 +02:00
Felix Lange
2b3d617e04
internal/ethapi: skip tx gas limit check for calls (#32641)
This disables the tx gaslimit cap for eth_call and related RPC operations.

I don't like how this fix works. Ideally we'd be checking the tx
gaslimit somewhere else, like in the block validator, or any other place
that considers block transactions. Doing the check in StateTransition
means it affects all possible ways of executing a message.

The challenge is finding a place for this check that also triggers
correctly in tests where it is wanted. So for now, we are just combining
this with the EOA sender check for transactions. Both are disabled for
call-type messages.
2025-09-19 13:29:17 +02:00
Klimov Sergei
b9e2eb5944
beacon/config: fix LoadForks with non-string values (#32609)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Fixes a crash when loading the beacon chain config if new fields like
`BLOB_SCHEDULE: []` are present.
Previously, the config loader assumed all values were strings, causing
errors such as:

```
Fatal: Could not load beacon chain config '/network-configs/config.yaml': failed to parse beacon chain config file: yaml: unmarshal errors:
line 242: cannot unmarshal !!seq into string
```

This PR updates the parsing logic to handle non-string values correctly
and adds explicit validation for fork fields.
2025-09-19 01:30:00 +02:00