Commit graph

14122 commits

Author SHA1 Message Date
Daniel Liu
5b8c6ef8fd
feat(p2p): swarm POC3 #17041 (#2059) 2026-02-28 17:30:04 +04:00
Daniel Liu
ad0eea0f07
refactor(crypto): vendor in golang.org/x/crypto/sha3 #33323 (#2046)
The upstream libray has removed the assembly-based implementation of
keccak. We need to maintain our own library to avoid a peformance
regression.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: lightclient <lightclient@protonmail.com>
2026-02-28 17:23:57 +04:00
Daniel Liu
5f3613e203
fix(eth): add index to callTracer log #33629 (#2044)
closes https://github.com/ethereum/go-ethereum/issues/33566

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2026-02-28 17:01:13 +04:00
Daniel Liu
f11cf2cce7
fix(crypto): fix ECIES invalid-curve handling #33669 (#2043)
Co-authored-by: fengjian <445077+fengjian@users.noreply.github.com>
2026-02-28 17:00:35 +04:00
Daniel Liu
2a96ecf87e
feat(accounts): add support for Ledger Nano Gen5 #33297 (#2042)
adds support for the 0x0008 / 0x8000 product ID (Ledger Apex | Nano
Gen5).

Co-authored-by: mmsqe <tqd0800210105@gmail.com>
2026-02-28 17:00:13 +04:00
Daniel Liu
2515d6c6c5
fix(trie): fix embedded node size validation #33803 (#2047)
The `decodeRef` function used `size > hashLen` to reject oversized
embedded nodes, but this incorrectly allowed nodes of exactly 32 bytes
through. The encoding side (hasher.go, stacktrie.go) consistently uses
`len(enc) < 32` to decide whether to embed a node inline, meaning nodes
of 32+ bytes are always hash-referenced. The error message itself
already stated `want size < 32`, confirming the intended threshold.
Changed `size > hashLen` to `size >= hashLen` in `decodeRef` to align
the decoding validation with the encoding logic, the Yellow Paper spec,
and the surrounding comments.

Co-authored-by: sashass1315 <sashass1315@gmail.com>
2026-02-28 16:59:52 +04:00
Daniel Liu
01aafc93bf
fix(ethclient): use common.Hash to debug_traceTransaction #32404 (#2048) 2026-02-28 16:59:32 +04:00
Daniel Liu
fe317dc94c
feat(ethclient): add tracing API methods #31510 (#2050)
Added methods `TraceCallWithCallTracer` and `TraceTransactionWithCallTracer`.

Fixes #28182

---------

Co-authored-by: Ragnar <rodiondenmark@gmail.com>
Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2026-02-28 16:59:14 +04:00
Daniel Liu
906efdd4e7
chore(p2p): changes necessary by swarm-network-rewrite #16898 (#2051) 2026-02-28 16:58:25 +04:00
Daniel Liu
3454841ade
fix(core): hex encode validators/validator/penalties in Header JSON (#2057)
Ensure JSON marshal/unmarshal uses hex for validators, validator, and penalties so Header encoding is consistent with RPC output.
2026-02-28 16:56:37 +04:00
Daniel Liu
3367939f96
chore(version): update version to v2.7.0-devnet (#2058) 2026-02-28 16:56:10 +04:00
Daniel Liu
240b318dfb
feat(core): extends tracing.Hooks with OnSystemCallStartV2 #30786 (#2073) 2026-02-28 16:55:51 +04:00
Daniel Liu
11471fd4b0
fix(metrics): add missing GaugeInfo case in GetAll() #33748 (#2041)
GetAll did not return GaugeInfo metrics, which affects "chain/info" and "geth/info".

Co-authored-by: vickkkkkyy <vickyaviles847@gmail.com>
2026-02-28 16:53:35 +04:00
Daniel Liu
f781cee1b8
feat(rlp): add RawList for working with un-decoded lists #33755 (#2040)
This adds a new type wrapper that decodes as a list, but does not
actually decode the contents of the list. The type parameter exists as a
marker, and enables decoding the elements lazily. RawList can also be
used for building a list incrementally.

Co-authored-by: Felix Lange <fjl@twurst.com>
2026-02-28 16:53:16 +04:00
Daniel Liu
466e3684b9
fix(internal): fix error code for revert in eth_simulateV1 #33007 (#2039) 2026-02-28 16:52:55 +04:00
Daniel Liu
7fce11d1f1
fix(metrics): add missing ResettingTimer case in GetAll() #33749 (#2038)
Follow-up to https://github.com/ethereum/go-ethereum/pull/33748

Same issue - ResettingTimer can be registered via loadOrRegister() but
GetAll() silently drops it during JSON export. The prometheus exporter
handles it fine (collector.go:70), so this is just an oversight in the
JSON path.

Note: ResettingTimer.Snapshot() resets the timer by design, which is
consistent with how the prometheus exporter uses it.

Co-authored-by: vickkkkkyy <vickyaviles847@gmail.com>
2026-02-28 16:52:33 +04:00
Daniel Liu
6d11ab7bee
perf(metrics): reduce allocations for metrics #33699 (#2037)
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2026-02-28 16:52:03 +04:00
Daniel Liu
197735a088
fix(cmd): fix wrong flag names in influxdb metrics error messages #33804 (#2036) 2026-02-28 16:51:35 +04:00
Daniel Liu
233154933c
chore(.gitattributes): enable solidity highlighting on github #16425 (#2035)
Co-authored-by: Li Xuanji <xuanji@gmail.com>
2026-02-28 16:49:11 +04:00
Daniel Liu
ff37f8554d
fix(internal/ethapi): include AuthorizationList in gas estimation callArgs #33849 (#2084) 2026-02-28 04:36:04 +04:00
Daniel Liu
d754f363e5
core/state: remove account reset operation v2 #29520 (#1934) 2026-02-24 14:17:27 +05:30
Daniel Liu
fabfd1c485
perf(core): track state change set with account address #27815 (#2076) 2026-02-24 13:49:17 +05:30
Daniel Liu
edec80c08f
refactor(core): make stateobject.create selfcontain #28459 (#2074) 2026-02-24 13:48:29 +05:30
Daniel Liu
677f923125
refactor(all): track state changes in state db #27349 (#1947) 2026-02-24 10:27:31 +05:30
Daniel Liu
3211c8ef2f
perf(core): speed up push and interpreter loop #30662 (#2032) 2026-02-23 07:21:05 +05:30
Daniel Liu
fc6c692097
fix(internal): process prague system calls in eth_simulate #31176 (#2069) 2026-02-23 07:20:38 +05:30
Daniel Liu
9f720806e1
refactor(core): remove unnecessary parameters #30776 (#2068) 2026-02-20 13:51:30 +05:30
Wanwiset Peerapatanapokin
81416e008c
fix(consensus): use signer pubkey to check for unique signatures and optimize performance, close XFN-03 (#1625)
* use signer pubkey to check for unique signatures and optimize performance

* change waitgroup to errgroup

* optimize

* fix typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* format files

* after rebase new commits, refactor from snap.NextEpochCandidates to epochInfo.Masternodes

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-20 14:34:54 +07:00
Wanwiset Peerapatanapokin
f77d4e5668
test(consensus): add tests for getTCEpochInfo() (#2045)
* add tests for getTCEpochInfo()

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-20 14:34:29 +07:00
Wanwiset Peerapatanapokin
e324a78d94
fix(consensus): fix private chain initialization (#1987)
* revert: use masternodes from snapshot to verify vote

* fix underflow during chain initialization

* add previously removed test

* rename snapshot > snap for consistency
2026-02-19 01:47:03 +07:00
Daniel Liu
296d612167
fix(eth): align traceBlockParallel with Prague parent-hash pre-exec (#2067)
traceBlockParallel replays transactions from the parent state to build per-tx prestate for tracers. In the previous flow, Prague's parent-hash system contract processing was not applied before replay, so the prepared state could diverge from canonical block execution semantics.

This commit keeps the parallel tracing path consistent with block processing rules by applying ProcessParentBlockHash before tx replay when Prague is active.

The regression test TestTraceBlockParallelPragueParentHashSystemCall is strengthened to assert the actual EIP-2935 history slot value (ring-buffer key for block-1) equals block.ParentHash(), instead of relying on an indirect EXTCODESIZE side effect. This makes the test deterministic and directly tied to the bug.

Validation: go test ./eth/tracers -run TestTraceBlockParallelPragueParentHashSystemCall
2026-02-17 15:00:55 +05:30
Daniel Liu
bba58ec20b
fix(eth): fix state hooks in API #30830 (#2066) 2026-02-17 14:44:47 +05:30
Daniel Liu
cfca45a7eb
refactor(all): rework EVM constructor #30745 (#2065) 2026-02-17 14:35:18 +05:30
Daniel Liu
373037032f
fix(eth): do system contract processing prior to parallel-tracing #30520 (#2064) 2026-02-17 14:22:39 +05:30
Daniel Liu
398d9b693d
refactor(core): make signature of ContractCode hash-independent #27209 (#1169) 2026-02-13 09:11:43 +05:30
Daniel Liu
07d3c421f3
fix(trie): no persisted clean trie cache file #27525 (#1170) 2026-02-13 08:48:23 +05:30
benjamin202410
d318152a00
chore(common): setup EIP-7702 block number for devnet (#2021)
* setup eup7702 for devnet testing

* Update pragueBlock value in constants.devnet.go

---------

Co-authored-by: liam.lai <liam.lai@babylonchain.io>
2026-02-12 15:27:19 +05:30
Daniel Liu
e96ec6aab5
fix(core): remove vm.AccountRef (#2055) 2026-02-12 14:57:04 +05:30
Daniel Liu
cc2109342c
feat(core): implement EIP-2935 #29465 #30924 (#2033) 2026-02-12 09:01:26 +05:30
Daniel Liu
50210d90e3
refactor(all): remove term whitelist and blacklist (#1994) 2026-02-10 17:09:21 +05:30
Daniel Liu
85f2bebfd1
refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
Daniel Liu
35d5bbd240
fix(core): remove panic when address is not present #30414 (#2029) 2026-02-10 16:52:38 +05:30
Daniel Liu
81d0db2344
fix(common): fix race condition in countdown timer StopTimer method (#2014)
The TestCountdownShouldBeAbleToStop test was failing intermittently due to
a race condition in the StopTimer() implementation. Previously, the goroutine
used defer to set initilised=false, which executed after close(q) signaled
completion to StopTimer(). This allowed StopTimer() to return before the
state was properly cleaned up, causing isInitilised() checks to occasionally
see stale true values.

Fixed by explicitly calling setInitilised(false) before close(q), ensuring
the state is updated atomically before StopTimer() returns. This eliminates
the race condition and makes the test pass consistently.

Verified by running the test 30 times consecutively with no failures.
2026-02-10 16:51:42 +05:30
Daniel Liu
ec697ddbdb
core/vm: implement EIP-7939: CLZ opcode #31989 (#2012) 2026-02-10 16:51:20 +05:30
Daniel Liu
7dc82dde0f
fix(p2p): don't discard reason sent by Disconnect() #16559 (#2009) 2026-02-10 16:50:37 +05:30
Daniel Liu
4f7159b119
fix(cmd): fix disabling discovery through config file #33279 (#2003) 2026-02-10 16:49:55 +05:30
Daniel Liu
b95923e25c
fix(node): fix vhosts for adminAPI #32488 (#2002) 2026-02-10 16:44:22 +05:30
Daniel Liu
e6540472e0
fix(node): fix data race on httpConfig.prefix #32047 (#2000)
This fixes a data race when accessing the `httpConfig.prefix` field.
This field can be modified while the server is running through
`enableRPC`. The fix is storing the prefix in the handler, which is
accessed through the atomic pointer.

alternative to #32035
fixes https://github.com/ethereum/go-ethereum/issues/32019

Co-authored-by: Felix Lange <fjl@twurst.com>
2026-02-10 16:42:45 +05:30
Daniel Liu
42f49e3e20
test(node): fix flaky jwt-test #30388 (#1999)
This PR fixes a flaky jwt-test.

The test is a jwt "from one second in the future". The test passes; the
reason for this is that the CI-system is slow, and by the time the jwt
is actually evaluated, that second has passed, and it's no longer
future.

Alternative to #30380

Co-authored-by: Martin HS <martin@swende.se>
2026-02-10 16:42:20 +05:30
Daniel Liu
cf99bd07ff
refactor(node): use standalone flock dependency #19376 #26633 (#1993)
* refactor(node): switching prometheus flock location to tsdb #19376

* refactor(node): use standalone flock dependency #26633
2026-02-10 16:41:27 +05:30