Commit graph

14080 commits

Author SHA1 Message Date
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
Daniel Liu
d7a42cb038
refactor(core): clean up EVM environmental structure #31061 (#1985) 2026-02-10 16:40:54 +05:30
Daniel Liu
81ac9cfb7e
fix(core): fix genesis error in #2019 (#2034) 2026-02-10 12:22:17 +08:00
Wanwiset Peerapatanapokin
b53fa6c6d9
skip gaslimit check on genesis block (#1968) 2026-02-09 16:06:16 +07:00
Daniel Liu
e39a523260
refactor(all): cleanup the APIs for initializing genesis #25473 #26747 (#2017)
* refactor(all): cleanup the APIs for initializing genesis #25473

* fix(core): fix accessor mismatch for genesis state #26747
2026-02-07 00:18:39 +05:30
Daniel Liu
f744e86dd7
feat(core): add ContractCode to the OpContext #30466 (#2030) 2026-02-07 00:15:38 +05:30
Daniel Liu
ec78122a31
ci: improve github pull request template (#2026) 2026-02-07 00:15:01 +05:30
Daniel Liu
0a7e7dde38
chore: add conventional-pre-commit hook (#2027) 2026-02-07 00:12:08 +05:30
Wanwiset Peerapatanapokin
6120def776
useful logging (#1986) 2026-02-06 17:42:26 +07:00
Daniel Liu
872c1248f3
test(params): move params.V2TestsGasLimit to engine_v2_tests package (#2028)
- V2TestsGasLimit should be changed to const
- V2TestsGasLimit is only used by engine_v2_tests package
2026-02-06 14:44:54 +05:30
Daniel Liu
2e2d12304e
chore: add local hook 'make generate' for pre-commit (#2025) 2026-02-06 14:44:35 +05:30
Daniel Liu
c25fa8d9ab
docs: udpate solidity version for mainnet (#2024) 2026-02-06 14:44:21 +05:30
Daniel Liu
07ed26f790
build: move tidy check to doTidy() (#2023) 2026-02-06 14:44:07 +05:30
Daniel Liu
29ad6db3bd
ci: validate gofmt, tidy, and generated files before test (#2022)
Check

- gofmt
- go mod tidy
- generated files

before tests.
2026-02-06 14:43:52 +05:30
Daniel Liu
7e12f036cc
refactor(core): harden SetupGenesisBlock flows (#2019)
- handle missing genesis header/state and validate stored hash
- avoid overwriting unchanged chain config; keep private net config
- extend TestSetupGenesis for missing header/state/config/head cases
2026-02-06 14:41:29 +05:30
Daniel Liu
75c05e5dde
feat(params): start osaka fork #31125 (#2013) 2026-02-06 14:40:58 +05:30
Daniel Liu
d8ce54db87
feat(p2p): add egress/ingress traffic metrics to discv5 udp transport #16369 (#2011) 2026-02-06 14:40:23 +05:30
Daniel Liu
a46e6a9a25
feat(p2p): ENR updates for discovery v4 compatibility #16679 (#2010) 2026-02-06 13:49:44 +05:30
Daniel Liu
70e17f09cd
fix(p2p): fix websocket log line parsing in exec p2p/simulations adapter #16667 (#2008) 2026-02-06 13:26:18 +05:30
Daniel Liu
59e9c72d94
styel(p2p): golint updates for this or self warning #16577 (#2007) 2026-02-06 13:25:53 +05:30
Daniel Liu
6fc437394c
style(p2p): changed if-else blocks to conform with golint #16660 (#2006) 2026-02-06 13:25:37 +05:30
Daniel Liu
5c2ac4d51c
refactor(p2p): enable goimports and varcheck linters #16446 (#2005) 2026-02-06 13:23:25 +05:30
Daniel Liu
9d79d44f1b
fix(p2p): a few minor code inspection fixes #18393 (#2004) 2026-02-06 13:23:01 +05:30
Wanwiset Peerapatanapokin
5340ce712c
all: make nodes publish coinbase address to stats server (#1967)
* allow customizable stats server parameters

* pass coinbase address to stats server
2026-02-05 18:59:00 +07:00
Wanwiset Peerapatanapokin
bfc69a09d7
add private chain test checkbox (#1989)
add private chain test checkbox
2026-02-05 18:56:40 +07:00
Daniel Liu
f08ea319d0
refactor(node): remove unused err var #32398 (#2001) 2026-02-05 16:13:55 +05:30
Daniel Liu
acc9371b8b
fix(node): fix HTTP server always force closing #25755 (#1998) 2026-02-05 16:13:28 +05:30
Daniel Liu
5199446cb6
style(node): fix typos (#1997) 2026-02-05 15:31:14 +05:30
Daniel Liu
46765b8486
test(node): more linters #24783 (#1996) 2026-02-05 15:30:40 +05:30
Daniel Liu
67a6e34188
perf(node, p2p): avoid unnecessary check len of map (#1995) 2026-02-05 14:47:48 +05:30
Daniel Liu
9dba15a673
feat(core): implement EIP-7623 increase calldata cost 30946 (#2031)
Link to spec: https://eips.ethereum.org/EIPS/eip-7623

---------

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
Co-authored-by: lightclient <lightclient@protonmail.com>
2026-02-05 14:45:11 +05:30
Daniel Liu
99749a2381
feat(crypto): use the ziren keccak precompile and implement ziren keccak state #32816 #32996 (#1991)
* feat(crypto): use the ziren keccak precompile #32816

Uses the go module's `replace` directive to delegate keccak computation
to precompiles.

This is still in draft because it needs more testing. Also, it relies on
a PR that I created, that hasn't been merged yet.

_Note that this PR doesn't implement the stateful keccak state
structure, and it reverts to the current behavior. This is a bit silly
since this is what is used in the tree root computation. The runtime
doesn't currently export the sponge. I will see if I can fix that in a
further PR, but it is going to take more time. In the meantime, this is
a useful first step_

* feat(crypto): implement ziren keccak state #32996

The #32816 was only using the keccak precompile for some minor task.
This PR implements a keccak state, which is what is used for hashing the
tree.

---------

Co-authored-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
2026-02-05 14:43:53 +05:30
Daniel Liu
d74c23cca1
perf(core): use uint256 in state #28598 (#1977) 2026-02-05 13:59:23 +05:30
Daniel Liu
1655f801d1
core/vm: add read only protection for opcodes #33637 (#1984) 2026-02-05 12:57:40 +05:30
Daniel Liu
798b0cdf2f
fix(accounts): not use magic numbers for rpc.BlockNumber (#2016) 2026-02-05 11:53:11 +05:30
Daniel Liu
44b4a51ed4
feat(ethclient): add support for eth_simulateV1 #32856 (#1992)
Adds ethclient support for the eth_simulateV1 RPC method, which allows
simulating transactions on top of a base state without making changes to
the blockchain.

---------

Co-authored-by: hero5512 <lvshuaino@gmail.com>
Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2026-02-05 11:46:44 +05:30
Daniel Liu
934c8d0679
perf(all): use big.Int.Sign() to compare with 0 (#1969) 2026-02-05 11:45:44 +05:30
Daniel Liu
a51eaa7200
fix(core, trie): revert error removal in (*state.Trie).Commit #27544 (#1168)
* trie, core/state: revert error removal in (*state.Trie).Commit

* Gary's nitpick :)



---------

Co-authored-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2026-02-05 11:43:33 +05:30
Daniel Liu
d749d54ea5
feate(core, trie): add UpdateContractCode to the Trie interface #27476 (#1167)
Verkle trees store the code inside the trie. This PR changes the interface to pass the code, as well as the dirty flag to tell the trie package if the code is dirty and needs to be updated. This is a no-op for the MPT and the odr trie.

Co-authored-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
2026-02-05 11:43:04 +05:30
Daniel Liu
9cf795c908
perf: improve state reader with error handling and committed flag #27428 (#1166)
- Add error returns to Database.Reader() and NodeIterator() methods
- Introduce committed flag to prevent usage of tries after commit
- Update callers to handle new error signatures
- Add MustNodeIterator() helper for backward compatibility

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2026-02-03 20:55:53 +05:30
Daniel Liu
76a53321df
common: fix block numbers for EIP-1559 and cancun (#2020) 2026-01-30 21:06:15 +08:00
Daniel Liu
7ce60a2a79
rpc: add a rpc.rangelimit flag #33163 (#1957) 2026-01-29 11:50:58 +05:30
Daniel Liu
e77ac510d0
all: replace Div/Mul with Rsh/Lsh if possible #29911 (#1966) 2026-01-29 11:31:58 +05:30