Commit graph

14141 commits

Author SHA1 Message Date
Daniel Liu
92ffb4dba7
test(ethclient): port gethclient tests from upstream (#2053) 2026-03-06 13:20:03 +05:30
Daniel Liu
0b47621d05
fix(miner): avoid XDPoS-only paths on non-XDPoS engines (#2049) 2026-03-06 11:24:39 +05:30
Daniel Liu
d542efe08d
feat(core/vm): implement EIP-7823 - Set upper bounds for MODEXP #31818 #32363 (#2119) 2026-03-06 11:24:22 +05:30
Daniel Liu
b71279d442
feat(metrics): allow changing influxdb interval #33767 (#2118) 2026-03-06 11:24:00 +05:30
Daniel Liu
436166e447
feat(internal/ethapi): add eth_getStorageValues method #32591 (#2116) 2026-03-06 11:22:36 +05:30
Daniel Liu
45aadcd311
build(build): upgrade toolchain to go 1.25.7 (#2115) 2026-03-06 11:22:02 +05:30
Daniel Liu
daad965727
build(build): upgrade -dlgo version to 1.25.7 #33874 (#2114) 2026-03-06 11:21:15 +05:30
Daniel Liu
c3f18256cb
build(build): upgrade to golangci-lint v2.10.1 #33875 (#2112) 2026-03-06 11:18:04 +05:30
Daniel Liu
5695f8a712
perf(core): reduce alloc #33576 (#2085) 2026-03-06 11:17:47 +05:30
Daniel Liu
275424c44f
fix(core): revert pending storage updates if they revert to original #29661 (#2079)
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2026-03-06 11:16:03 +05:30
Daniel Liu
3eb198b1a5
refactor(core): storage journal entry should revert dirtyness too #29641 (#2078)
Currently our state journal tracks each storage update to a contract, having the ability to revert those changes to the previously set value.

For the very first modification however, it behaves a bit wonky. Reverting the update doesn't actually remove the dirty-ness of the slot, rather leaves it as "change this slot to it's original value". This can cause issues down the line with for example write witnesses needing to gather an unneeded proof.

This PR modifies the storageChange journal entry to not only track the previous value of a slot, but also whether there was any previous value at all set in the current execution context. In essence, the PR changes the semantic of storageChange so it does not simply track storage changes, rather it tracks dirty storage changes, an important distinction for being able to cleanly revert the journal item.

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2026-03-06 11:15:44 +05:30
Daniel Liu
69ab9b8e30
fix(crypto): fix coordinate check (#2072)
Co-authored-by: Felix Lange <fjl@twurst.com>
2026-03-06 11:14:31 +05:30
Daniel Liu
2eed6c057b
fix(consensus): hardening header verification #33860 (#2071) 2026-03-06 11:10:32 +05:30
Daniel Liu
3fad5e1ab4
refactor(ethclient): implement new sim backend #28202 (#2062)
Introduce a new simulated backend implementation under ethclient/simulated and migrate bind-facing wrappers/tests to use it.

Key changes:

- Add the new backend entry points and behavior in ethclient/simulated, including chain control helpers used by tests (commit/rollback/fork/time adjustment).

- Update legacy bind wrappers in accounts/abi/bind/backends to delegate to the new simulated backend while preserving old APIs.

- Align bind v2/backend and utility tests to the new simulated backend client surface and transaction flow.

- Refresh abigen/bind tests and shared interfaces impacted by the backend migration.

Compatibility notes:

- Keep backward-compatible wrapper constructors for existing contract test code.

- Preserve legacy transaction paths in tests while supporting EIP-1559-aware flows where applicable.

Validation:

- Verified affected packages compile and pass tests.

- Verified repository-wide go test ./... passes after follow-up compatibility fixes.
2026-03-06 11:09:10 +05:30
benjamin202410
bad22c2515
chore: enable reward, penalty and dynamic gas on devnet (#2121)
* chore: enable reward, penalty and dynamic gas on devnet

* update number to 3420000 for devnet

---------

Co-authored-by: liam.lai <liam.lai@babylonchain.io>
2026-03-04 20:54:18 -08:00
Daniel Liu
41fb331a2e
chore(AGENTS.md): add AGENTS.md with guidelines for AI agents #33890 #33921 (#2083) 2026-03-03 17:26:58 +08:00
Daniel Liu
e250435851
fix(crypto): remove keccak_ziren.go (#2113) 2026-03-03 11:15:42 +08:00
Daniel Liu
b991bd8aa7
test(ethclient): port ethclient tests from upstream (#2060) 2026-03-01 22:45:01 +04:00
Daniel Liu
2611f1dd9a
fix(all): fix typo foudation (#2063) 2026-02-28 18:00:55 +04:00
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