Commit graph

2115 commits

Author SHA1 Message Date
Matthieu Vachon
3cbe387cd6 Added a backward compatibility fix for aligning with Firehose 2.3 2024-12-20 16:20:00 -05:00
Matthieu Vachon
2ff5f62b6f Added a an extra logging for storage change in trace mode 2024-12-20 16:19:23 -05:00
Matthieu Vachon
d1f03614a4 Merge tag 'v1.14.12' into firehose-fh3.0
# Conflicts:
#	cmd/geth/misccmd.go
#	core/state/statedb.go
#	core/state_processor.go
#	go.mod
2024-12-17 16:01:41 -05:00
Matthieu Vachon
9bf4d2482f Added code to generate prestate test from RPC nodes
Alchemy and QuickNode offers `debug_traceTransaction` that we need, use one of them with a paid plan to generate prestate tests.
2024-05-01 19:31:22 -04:00
Matthieu Vachon
b567b08329 Added unit test to check different keccak256 on transaction 2024-05-01 19:26:40 -04:00
Matthieu Vachon
bc4162e99f Refactored tests and added new based on "prestate" testing 2024-05-01 13:41:36 -04:00
Matthieu Vachon
dccb2f36cd Fixed the rare case where a tx receipt is nil
I think this cannot happen in the wild while syncing block, otherwise it would mean the transaction would have no receipt which is impossible.

However in testing conditions or when doing "speculative exeuction", it's possible to get that condition.

This is just to better deal with a potential `nil pointer exception`.
2024-05-01 13:41:36 -04:00
Matthieu Vachon
f0dcb13f6b Fixed opcode representation when debugging via firehose(Info|Debug|Trace) call 2024-05-01 13:41:36 -04:00
Matthieu Vachon
f8c889f892 Fixed Kecakke256 computation panics in some transaction state
The EVM does memory expansion **after** notifying us about OnOpcode which we use to compute Keccak256 pre-images now. This creates problem when we want to retrieve the preimage data because the memory is not expanded yet but in the EVM is going to work because the memory is going to be expanded before the operation is actually executed so the memory will be of the correct size.

In this situation, we must pad with zeroes when the memory is not big enough.
2024-05-01 13:41:31 -04:00
Matthieu Vachon
c327b4d7fc Added first pass on integration tests 2024-04-29 17:10:51 -04:00
Matthieu Vachon
e3a43bf49c Removed callerView
This can work only if resolve at call site directly, which we don't want to do.
2024-04-29 17:10:37 -04:00
Matthieu Vachon
27ace57951 Renamed callerViewer to _callViewer to align with other "view" structs 2024-04-29 11:50:19 -04:00
Matthieu Vachon
8d802608f5 Adding standard Geth logging on NewFirehose and on OnBlockchainInit 2024-04-29 11:34:59 -04:00
Matthieu Vachon
bb041978a7 Added back OnSystemCallStart/End that were lost in update to latest Geth version 2024-04-29 10:37:32 -04:00
Matthieu Vachon
a4e3ab8818 Merge tag 'v1.14.0' into firehose-fh3.0 2024-04-24 09:02:12 -04:00
jwasinger
5f3c58f1de
eth/downloader: fix case where skeleton reorgs below the filled block (#29358)
This change adds a testcase and fixes a corner-case in the skeleton sync.

With this change, when doing the skeleton cleanup, we check if the filled header is acually within the range of what we were meant to backfill. If not, it means the backfill was a noop (possibly because we started and stopped it so quickly that it didn't have time to do any meaningful work). In that case, just don't clean up anything.

---------

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2024-04-24 09:07:39 +02:00
Matthieu Vachon
ade7515c81
eth, eth/tracers: process beacon root before transactions (#29402)
The beacon root when applied in `state_processor.go` is performed right before executing transaction. That means that contract reliying on this value would query the same value found in the block header.

In that spirit, it means that any tracing/operation relying on state data which touches transaction must have updated the beacon root before any transaction processing.
2024-04-24 07:58:05 +02:00
Chris Ziogas
882d1e22f6
cmd/geth, cmd/utils: rename config and flag to VMTraceJsonConfig (#29573)
renames the yaml config field VMTraceConfig to VMTraceJsonConfig, in order to be consistent with the renaming of the CLI flag.
2024-04-24 07:53:16 +02:00
Matthieu Vachon
a64a69dbfc Merge remote-tracking branch 'origin/master' into firehose-fh3.0
# Conflicts:
#	go.mod
2024-04-23 15:40:14 -04:00
haoran
b2b0e1da8c
all: fix various typos (#29600)
* core: fix typo

* rpc: fix typo

* snap: fix typo

* trie: fix typo

* main: fix typo

* abi: fix typo

* main: fix field comment for basicOp
2024-04-23 13:09:42 +03:00
Martin HS
853e0c23f3
eth/catalyst, trie/pathdb: fix flaky tests (#29571)
This change fixes three flaky tests `TestEth2AssembleBlock`,`TestEth2NewBlock`, `TestEth2PrepareAndGetPayload` and `TestDisable`.

---------

Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2024-04-23 10:33:36 +02:00
Matthieu Vachon
7ae7701b37 Added further tracing on config and apply backward compatibility value 2024-04-22 14:22:14 -04:00
Matthieu Vachon
2108b9d42a Fixed a few linting errors 2024-04-22 14:22:03 -04:00
Ryan Schneider
1ec7af2612
eth: Add eth_blobBaseFee RPC and blob fields to eth_feeHistory (#29140)
Co-authored-by: lightclient <lightclient@protonmail.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-04-22 12:17:06 +02:00
Felix Lange
82b0dec713
eth/filters: remove support for pending logs (#29574)
This change removes support for subscribing to pending logs. 

"Pending logs" were always an odd feature, because it can never be fully reliable. When support for it was added many years ago, the intention was for this to be used by wallet apps to show the 'potential future token balance' of accounts, i.e. as a way of notifying the user of incoming transfers before they were mined. In order to generate the pending logs, the node must pick a subset of all public mempool transactions, execute them in the EVM, and then dispatch the resulting logs to API consumers.
2024-04-22 10:31:17 +02:00
ids
81349ff6e5
eth/catalyst: fix typo (#29580) 2024-04-19 09:58:14 +02:00
ucwong
5f95145308
eth/ethconfig: regenerate autogen files (#29559)
eth/ethconfig/gen_config.go : go generate fix
2024-04-18 08:21:23 +02:00
Matthieu Vachon
ad7fdb83cc Ported various improvements done in the Firehose tracer in other supported chains 2024-04-17 16:15:59 -04:00
law wang
fadd9d8b81
eth/catalyst: fix log (#29549)
log:output the correct variable

Co-authored-by: steven <steven@stevendeMacBook-Pro.local>
2024-04-16 11:21:20 +02:00
rjl493456442
d3c4466edd
core, eth/protocols/snap, trie: fix cause for snap-sync corruption, implement gentrie (#29313)
This pull request defines a gentrie for snap sync purpose.

The stackTrie is used to generate the merkle tree nodes upon receiving a state batch. Several additional options have been added into stackTrie to handle incomplete states (either missing states before or after).

In this pull request, these options have been relocated from stackTrie to genTrie, which serves as a wrapper for stackTrie specifically for snap sync purposes.

Further, the logic for managing incomplete state has been enhanced in this change. Originally, there are two cases handled:

-    boundary node filtering
-    internal (covered by extension node) node clearing

This changes adds one more:
 
- Clearing leftover nodes on the boundaries.

This feature is necessary if there are leftover trie nodes in database, otherwise node inconsistency may break the state healing.
2024-04-16 09:05:36 +02:00
Martin HS
ef5ac3fb7a
eth/filters: enforce topic-limit early on filter criterias (#29535)
This PR adds a limit of 1000 to the "inner" topics in a filter-criteria
2024-04-15 17:35:35 +02:00
Abirdcfly
b179b7b8e7
all: remove duplicate word in comments (#29531)
This change removes some duplicate words in in comments
2024-04-15 08:34:31 +02:00
rjl493456442
9dcf8aae47
eth/protocols/snap: skip retrieval for completed storages (#29378)
* eth/protocols/snap: skip retrieval for completed storages

* eth/protocols/snap: address comments from peter

* eth/protocols/snap: add comments
2024-04-10 12:02:45 +03:00
Aaron Chen
34aac1d756
all: use big.Sign to compare with zero (#29490) 2024-04-09 12:14:30 +02:00
Bin
0bbd88bda0
all: use timer instead of time.After in loops, to avoid memleaks (#29241)
time.After is equivalent to NewTimer(d).C, and does not call Stop if the timer is no longer needed. This can cause memory leaks. This change changes many such occations to use NewTimer instead, and calling Stop once the timer is no longer needed.
2024-04-09 08:51:54 +02:00
Martin HS
7aafad2233
core/vm: better error-info for vm errors (#29354) 2024-04-06 12:22:55 +02:00
Aaron Chen
ccb76c01d7
eth/tracers: use slices.Contains (#29461) 2024-04-06 12:16:25 +02:00
Aaron Chen
74995bf8a1
all: use slices.Contains (#29459)
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-04-06 12:05:06 +02:00
lmittmann
a851e39cbe
core/types: use new atomic types in caches (#29411)
* use generic atomic types in tx caches

* use generic atomic types in block caches

* eth/catalyst: avoid copying tx in test

---------

Co-authored-by: lmittmann <lmittmann@users.noreply.github.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-04-04 16:50:31 +03:00
cui
7bb3fb1481
eth: simplify peer counting logic (#29420) 2024-04-03 14:08:52 +08:00
cui
a83e57666d
eth/fetcher: using slices.Contains (#29383) 2024-04-02 21:17:34 +02:00
cui
0bd03dbc55
eth/filter: using atomic.Pointer instead of atomic.Value (#29435) 2024-04-02 11:25:57 +02:00
Delweng
8c5576b1ac
eth/tracers: fix base fee and set blob fee in tests (#29376)
Signed-off-by: jsvisa <delweng@gmail.com>
Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2024-04-01 14:53:56 +02:00
Brandon Liu
a3829178af
eth/tracers/js: consistent name for method receivers (#29375) 2024-03-28 17:35:40 +01:00
cui
0183c7ad82
eth/tracers/logger: using maps.Equal (#29384)
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-03-28 14:09:21 +01:00
Sina M
767b00b0b5
t8ntool: add optional call frames to json logger (#29353)
Adds a flag `--trace.callframes` to t8n which will log info when entering or exiting a call frame in addition to the execution steps.

---------

Co-authored-by: Mario Vega <marioevz@gmail.com>
2024-03-27 16:12:57 +01:00
rjl493456442
304879da20
eth/protocols/snap: check storage root existence for hash scheme (#29341) 2024-03-27 09:35:33 +08:00
Aaron Chen
723b1e36ad
all: fix mismatched names in comments (#29348)
* all: fix mismatched names in comments

* metrics: fix mismatched name in UpdateIfGt
2024-03-26 21:01:28 +01:00
Aaron Chen
f2a6ac17b2
eth/catalyst: fix flaw in withdrawal-gathering in simulated beacon (#29344)
return after reaching maxCount
2024-03-26 12:26:44 +01:00
Matthieu Vachon
4105834d36 Reverting more changes that were on firehose-fh3.0 but not on origin/master 2024-03-25 14:51:24 -04:00