Commit graph

16705 commits

Author SHA1 Message Date
Jared Wasinger
ef0a3a2a3b return block access lists in GetPayloadBodies*V2 2026-02-05 13:59:41 +01:00
Jared Wasinger
d87d3195d9 attempt fix decoding bal 2026-02-05 13:59:41 +01:00
Jared Wasinger
2266891ece persist access list correctly 2026-02-05 13:59:41 +01:00
Jared Wasinger
206eb81148 fix bal jsonrpc method naming to comply with the spec 2026-02-05 13:59:41 +01:00
Jared Wasinger
a780983dfa fix build 2026-02-05 13:59:41 +01:00
Jared Wasinger
669b26b280 simplify blockchain logic 2026-02-03 11:07:04 -05:00
Jared Wasinger
8906d9eba0 fix build 2026-02-03 11:07:04 -05:00
Jared Wasinger
e68fb247b0 add new test network 'BPO2ToAmsterdamAtTime15k'. correct invocation of selfdestruct hook for tracers 2026-02-03 11:07:04 -05:00
Jared Wasinger
3e07bb4598 remove static guard from callcode 2026-02-03 11:07:04 -05:00
Jared Wasinger
012efa11ab eip-7708 fix: don't emit log when calling to self 2026-02-03 11:07:04 -05:00
Jared Wasinger
097fe511dc update bal test fixtures. fix block test runner. fix issue where amsterdam fork was configuring bpo 2026-02-03 11:07:04 -05:00
felix
bca5642f56 core: fix initialization of parallelProcessor (#33723)
while trying to re-run 7843 tests again i saw geth panic (no clean hive
errors btw) and this fixes it. i think `parallelProcessor` field in
`BlockChain` was never initialized, so if u get a block with bal u run
`processBlockWithAccessList()` which then calls
`bc.parallelProcessor.Process(...)` which eventually calls
`p.chainConfig()` which then tries `p.chain.Config()` but `p.chain` is
still `nil`, ripbozo. i applied this fix and now geth again passes all
7843 tests. you also pass 179/184 tests of eip-8024, but those 5 failing
could be on our side and have nothing to do with this pr
2026-02-03 11:07:04 -05:00
Jared Wasinger
80af906c67 activate 8024 instructions in amsterdam. fix block tests 2026-02-03 11:07:04 -05:00
Jared Wasinger
33c864e227 fixes 2026-02-03 11:07:04 -05:00
Jared Wasinger
5a88101fa8 followup to last commit 2026-02-03 11:07:04 -05:00
Jared Wasinger
3435849244 a bunch of changes. mostly bal persistence and removing bal from block body object. wip... 2026-02-03 11:07:03 -05:00
Zsolt Felfoldi
7036b1cb39 core, params: add comments, move consts to params 2026-02-03 11:05:24 -05:00
Zsolt Felfoldi
593a6a77da core: emit logs for balance after selfdestruct 2026-02-03 11:05:24 -05:00
zsfelfoldi
6e3c6162b4 core: update according to latest specs 2026-02-03 11:05:24 -05:00
Zsolt Felfoldi
5ebefb21bf core: add test for ETH transfer logs 2026-02-03 11:05:24 -05:00
Zsolt Felfoldi
50b7009201 core, core/vm: implement EIP-7708 2026-02-03 11:05:24 -05:00
felix
d2dbbe48c4 core/vm: add amsterdam instruction set etc. (#33643)
had to make these changes to successfully test eip-7843 via `consume
engine`. could be useful to u.
edit: maybe the type change from `uint64` can be removed, i can fix that
on our end
2026-02-03 11:05:24 -05:00
jwasinger
9f758e8251 fix typo 2026-02-03 11:05:24 -05:00
MariusVanDerWijden
d322e378be harmonize spelling 2026-02-03 11:05:24 -05:00
Marius van der Wijden
cb8dd58448 Apply suggestions from code review
Co-authored-by: Jonny Rhea <5555162+jrhea@users.noreply.github.com>
2026-02-03 11:05:24 -05:00
MariusVanDerWijden
fd1f9cf0dd core/vm: implement eip-7843 2026-02-03 11:05:24 -05:00
MariusVanDerWijden
4a2a3d0e1f core/vm: implement eip-7843 2026-02-03 11:05:23 -05:00
MariusVanDerWijden
a644b7f03c core/vm: implement eip-7843 2026-02-03 10:56:27 -05:00
MariusVanDerWijden
3b0d27b1e7 core/vm: implement eip-7843 2026-02-03 10:56:26 -05:00
MariusVanDerWijden
f7ce5467e3 core/vm: implement eip-7843 2026-02-03 10:49:46 -05:00
Jared Wasinger
4c36eaf532 all: all block access list changes up through devnet 1 including perf changes 2026-01-27 13:48:18 -05:00
rjl493456442
181a3ae9e0
triedb/pathdb: improve trienode reader for searching (#33681)
Some checks are pending
/ Docker Image (push) Waiting to run
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
This PR optimizes the historical trie node reader by reworking how data
is accessed and memory is managed, reducing allocation overhead 
significantly.

Specifically:

- Instead of decoding an entire history object to locate a specific trie node, 
   the reader now searches directly within the history.

- Besides, slice pre-allocation can avoid unnecessary deep-copy significantly.
2026-01-27 20:05:35 +08:00
marukai67
e250836973
trie: preallocate slice capacity (#33689)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
This PR optimizes memory allocation in StateTrie.PrefetchAccount() and
StateTrie.PrefetchStorage() by preallocating slice capacity when the
final size is known.
2026-01-27 12:04:12 +08:00
rjl493456442
c2595381bf
core: extend the code reader statistics (#33659)
Some checks are pending
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
This PR extends the statistics of contract code read by adding these
fields:

- **CacheHitBytes**: the total number of bytes served by cache
- **CacheMissBytes**: the total number of bytes read on cache miss
- **CodeReadBytes**: the total number of bytes for contract code read
2026-01-26 11:25:53 +01:00
Csaba Kiraly
9a8e14e77e
core/txpool/legacypool: fix stale counter (#33653)
Some checks failed
/ Linux Build (push) Has been cancelled
/ Linux Build (arm) (push) Has been cancelled
/ Keeper Build (push) Has been cancelled
/ Windows Build (push) Has been cancelled
/ Docker Image (push) Has been cancelled
Calling `pool.priced.Removed` is needed to keep is sync with
`pool.all.Remove`.
It was called in other occurances, but not here.

The counter is used for internal heap management. It was working even without this, just not calling reheap at the intended frequency.

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2026-01-23 13:35:14 +01:00
Jonny Rhea
251b863107
core/vm: update EIP-8024 - Missing immediate byte is now treated as 0x00 (#33614)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
This PR updates the EIP-8024 implementation to match the latest spec
clarification.

---------

Co-authored-by: lightclient <lightclient@protonmail.com>
2026-01-22 12:16:02 -07:00
rjl493456442
1022c7637d
core, eth, internal, triedb/pathdb: enable eth_getProofs for history (#32727)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
This PR enables the `eth_getProofs ` endpoint against the historical states.
2026-01-22 09:19:27 +08:00
Csaba Kiraly
35922bcd33
core/txpool/legacypool: reset gauges on clear (#33654)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2026-01-21 16:00:57 +08:00
DeFi Junkie
8fad02ac63
core/types: fix panic on invalid signature length (#33647)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Replace panic with error return in decodeSignature to prevent crashes on
invalid inputs, and update callers to propagate the error.
2026-01-21 06:57:02 +01:00
Csaba Kiraly
54ab4e3c7d
core/txpool/legacypool: add metric for accounts in txpool (#33646)
This PR adds metrics that count the number of accounts having transactions 
in the txpool. Together with the transaction count this can be used as a 
simple indicator of the diversity of transactions in the pool.

Note: as an alternative implementation, we could use a periodic or event
driven update of these Gauges using len.

I've preferred this implementation to match what we have for the pool
sizes.

---------

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2026-01-21 09:23:03 +08:00
forkfury
2eb1ccc6c4
core/state: ensure deterministic hook emission order in Finalise (#33644)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Fixes #33630

Sort self-destructed addresses before emitting hooks in Finalise() to
ensure deterministic ordering and fix flaky test
TestHooks_OnCodeChangeV2.

---------

Co-authored-by: jwasinger <j-wasinger@hotmail.com>
2026-01-20 20:36:07 +08:00
DeFi Junkie
46d804776b
accounts/scwallet: fix panic in decryptAPDU (#33606)
Validate ciphertext length in decryptAPDU, preventing runtime panics on
invalid input.
2026-01-20 12:04:23 +01:00
Felix Lange
d58f6291a2
internal/debug: add integration with Grafana Pyroscope (#33623)
This adds support for Grafana Pyroscope, a continuous profiling solution. 
The client is configured similarly to metrics, i.e. run 

     geth --pyroscope --pyroscope.server=https://...

This commit is a resubmit of #33261 with some changes.

---------

Co-authored-by: Carlos Bermudez Porto <cbermudez.dev@gmail.com>
2026-01-20 10:33:09 +01:00
cui
d0af257aa2
triedb/pathdb: double check the list availability before regeneration (#33622)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2026-01-19 20:45:31 +08:00
rjl493456442
500931bc82
core/vm: add read only protection for opcodes (#33637)
This PR reverts a part of changes brought by https://github.com/ethereum/go-ethereum/pull/33281/changes

Specifically, read-only protection should always be enforced at the opcode level, 
regardless of whether the check has already been performed during gas metering.

It should act as a gatekeeper, otherwise, it is easy to introduce errors by adding
new gas measurement logic without consistently applying the read-only protection.
2026-01-19 20:43:14 +08:00
maskpp
ef815c59a2
rlp: improve SplitListValues allocation efficiency (#33554)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
2026-01-18 16:07:28 +08:00
lightclient
e78be59dc9
build: remove circleci config (#33616)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
This doesn't seem to be used anymore.
2026-01-17 16:22:00 +01:00
Lessa
0495350388
accounts/abi/bind/v2: replace rng in test (#33612)
Replace deprecated rand.Seed() with rand.New(rand.NewSource()) in
dep_tree_test.go.
2026-01-17 16:20:19 +01:00
Mael Regnery
3d78da9171
rpc: add a rpc.rangelimit flag (#33163)
Adding an RPC flag to limit the block range size for eth_getLogs and
eth_newFilter requests.

closing https://github.com/ethereum/go-ethereum/issues/24508

---------

Co-authored-by: MariusVanDerWijden <m.vanderwijden@live.de>
2026-01-17 14:34:08 +01:00
rjl493456442
add1890a57
triedb/pathdb: enable trienode history (#32621)
It's the part-4 for trienode history. The trienode history persistence
has been enabled with this PR by flag `history.trienode <non-negative-number>`
2026-01-17 21:23:48 +08:00