Commit graph

385 commits

Author SHA1 Message Date
Daniel Liu
d52bfaa5ca
all: introduce trie owner notion #24750 (#1090)
* cmd, core/state, light, trie, eth: add trie owner notion

* all: refactor

* tests: fix goimports

* core/state/snapshot: fix ineffasigns

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-08-22 16:37:39 +08:00
Daniel Liu
8750881da2
trie: remove the sync bloom, used by fast sync #24047 (#1077) 2025-08-08 09:31:26 +08:00
JukLee0ira
5ad950ea51
all: Remove concept of public/private API definitions #25053 (#1141) 2025-06-24 15:15:25 +08:00
Daniel Liu
937b3d75e0
core, eth, trie: prepare trie sync for path based operation #21504 (#1046) 2025-06-21 08:30:25 +08:00
Daniel Liu
8e6d98e121
eth/downloader: change intial download size #21366 (#1045)
This changes how the downloader works, a little bit. Previously, when block sync started,
we immediately started filling up to 8192 blocks. Usually this is fine, blocks are small
in the early numbers. The threshold then is lowered as we measure the size of the blocks
that are filled.

However, if the node is shut down and restarts syncing while we're in a heavy segment,
that might be bad. This PR introduces a more conservative initial threshold of 2K blocks
instead.

Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-06-20 16:32:47 +08:00
Daniel Liu
67754ff3d4
eth/downloader: save the correct delivery time for state sync #21427 (#1044)
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2025-06-19 16:34:30 +08:00
Daniel Liu
45d89bd4d1
trie: faster snapshot generation #22504 (#1062) 2025-06-17 13:13:14 +08:00
Daniel Liu
e8c9fdde0f
eth/downloader: refactor downloader + queue #21263 (#1041)
* eth/downloader: refactor downloader + queue

downloader, fetcher: throttle-metrics, fetcher filter improvements, standalone resultcache

downloader: more accurate deliverytime calculation, less mem overhead in state requests

downloader/queue: increase underlying buffer of results, new throttle mechanism

eth/downloader: updates to tests

eth/downloader: fix up some review concerns

eth/downloader/queue: minor fixes

eth/downloader: minor fixes after review call

eth/downloader: testcases for queue.go

eth/downloader: minor change, don't set progress unless progress...

eth/downloader: fix flaw which prevented useless peers from being dropped

eth/downloader: try to fix tests

eth/downloader: verify non-deliveries against advertised remote head

eth/downloader: fix flaw with checking closed-status causing hang

eth/downloader: hashing avoidance

eth/downloader: review concerns + simplify resultcache and queue

eth/downloader: add back some locks, address review concerns

downloader/queue: fix remaining lock flaw

* eth/downloader: nitpick fixes

* eth/downloader: remove the *2*3/4 throttling threshold dance

* eth/downloader: print correct throttle threshold in stats

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2025-06-17 13:01:06 +08:00
Daniel Liu
2dd50b63ed
eth/downloader: improve test (#1043)
* eth/downloader: more context in errors #21067

* eth/downloader: fix spuriously failing tests #21149
2025-05-26 15:16:39 +08:00
Daniel Liu
e581aa5240
eth/downloader: flush state data before exit #16280 (#1042) 2025-05-26 15:15:32 +08:00
Daniel Liu
6395c15280
core/state, eth, trie: stabilize memory use, fix memory leak #21491 (#1040) 2025-05-20 15:14:47 +08:00
Daniel Liu
266cf85510
rpc: remove deprecated method Notifier.Closed #29162 (#1022)
Co-authored-by: Undefinedor <wanghao@imwh.net>
2025-05-06 09:44:20 +08:00
Daniel Liu
d25c6f02a7
all: not copy loop var for golang v1.22 (#1020) 2025-04-29 17:27:36 +08:00
Daniel Liu
54f73e471f trie: Derivesha with stacktrie (#21407) 2025-04-07 16:44:32 +08:00
Daniel Liu
a9b9f53701 core, eth, trie: add a prefix to contract code (21080) 2025-03-24 22:31:03 +08:00
Daniel Liu
9167867bab eth/downloader: fix peer idleness tracking when restarting statesync (#21260) 2025-03-11 16:37:02 +08:00
Daniel Liu
8d63a56777 eth/downloader: fix data race in downloader (#20204) 2025-03-11 16:35:31 +08:00
Daniel Liu
0273448333 core, eth/downloader: fix validation and downloader printout flaw (#17974) 2025-03-11 13:24:02 +08:00
Daniel Liu
6e8fe5121d eth/downloader: speed up tests by generating chain only once (#17916) 2025-03-01 15:55:27 +08:00
Daniel Liu
bf011986a5 eth/downloader: fixes data race between synchronize and other methods (#21201) 2025-02-26 15:06:08 +08:00
Daniel Liu
2955a988ca eth/downloader: more context in errors (#21067) 2025-02-26 15:06:08 +08:00
Daniel Liu
3ee371454f eth/downloader: make syncing error obvious (#19413) 2025-02-26 15:06:08 +08:00
Daniel Liu
04adabe55c eth/downloader: fix nil droppeer in state sync (#19232) 2025-02-26 15:06:08 +08:00
Daniel Liu
96db952576 downloader: fix edgecase where returned index is OOB for downloader (#18335) 2025-02-26 15:06:08 +08:00
Daniel Liu
3adec81483 downloader: different sync strategy (#18085) 2025-02-26 15:06:08 +08:00
Daniel Liu
9ad4e1d282 downloader: measure successfull deliveries, not failed (#17983) 2025-02-26 15:06:08 +08:00
Daniel Liu
31011d4aa9 eth/downloader: fix invalid hash chain error due to head mini reorg (#17839) 2025-02-26 15:06:08 +08:00
Daniel Liu
e424ff1380 eth/downloader: fix comment typos (#17956) 2025-02-26 15:06:08 +08:00
Daniel Liu
2a8b4501ef eth/downloader: use intermediate variable for better readability (#17510) 2025-02-26 15:06:08 +08:00
Daniel Liu
652c66e9d4 eth/downloader: fix issue #16539 (#16546) 2025-02-11 18:30:17 +08:00
Daniel Liu
3ebf97e721 eth/downloader: wait all fetcher goroutines to exit before terminating (#16509) 2025-02-11 18:30:17 +08:00
Daniel Liu
d8c9ad3c9f all: replace RWMutex with Mutex in places where RLock is not used (#21622) 2025-01-24 16:18:30 +08:00
Daniel Liu
002fac8b14 all: remove the duplicate 'the' in annotations (#17509) 2025-01-24 16:18:28 +08:00
Daniel Liu
1ff36996c0 cmd/XDC: delete copydb command 2025-01-24 14:41:28 +08:00
JukLee0ira
653b59710e core/rawdb: separate raw database access to own package (#16666 #19345) 2025-01-22 15:19:39 +08:00
Péter Szilágyi
39e9d8f94d common/prque: generic priority queue (#26290) 2024-12-28 09:06:31 +08:00
Daniel Liu
89c51c5e69 common: improve documentation comments (#16701) 2024-12-28 09:06:30 +08:00
Daniel Liu
6beee27886 metrics, cmd/XDC: change init-process of metrics (#30814)
This PR modifies how the metrics library handles `Enabled`: previously,
the package `init` decided whether to serve real metrics or just
dummy-types.

This has several drawbacks:
- During pkg init, we need to determine whether metrics are enabled or
not. So we first hacked in a check if certain geth-specific
commandline-flags were enabled. Then we added a similar check for
geth-env-vars. Then we almost added a very elaborate check for
toml-config-file, plus toml parsing.

- Using "real" types and dummy types interchangeably means that
everything is hidden behind interfaces. This has a performance penalty,
and also it just adds a lot of code.

This PR removes the interface stuff, uses concrete types, and allows for
the setting of Enabled to happen later. It is still assumed that
`metrics.Enable()` is invoked early on.

The somewhat 'heavy' operations, such as ticking meters and exp-decay,
now checks the enable-flag to prevent resource leak.

The change may be large, but it's mostly pretty trivial, and from the
last time I gutted the metrics, I ensured that we have fairly good test
coverage.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2024-12-13 14:00:14 +08:00
Daniel Liu
92fc843683 crypto: switch over to upstream sha3 package (#18390) 2024-12-09 17:48:59 +08:00
Daniel Liu
dbdca11501 accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2024-11-01 11:36:52 +08:00
Daniel Liu
af40f2e194 eth/downloader: fix staticcheck warning S1033: unnecessary guard for delete 2024-10-31 21:46:27 +08:00
Daniel Liu
a79411fa06 all: fix staticcheck warning ST1005: incorrectly formatted error string 2024-10-24 09:48:20 +08:00
wanwiset25
cb792ef34f Revert EIP-2464 2024-08-24 02:31:27 +07:00
wanwiset25
4be4f2eeb1 fix tests 2024-06-28 18:35:47 +04:00
wanwiset25
b5c7bd5cba enable bft and better protocol version check 2024-06-28 11:34:04 +04:00
wanwiset25
1b781530c6 add xdpos protocol test cases 2024-06-28 11:33:04 +04:00
Daniel Liu
76ab0b5115 eth/downloader: fix issue #277 2024-06-27 12:51:47 +08:00
Guillaume Ballet
b3e0f70a33 eth/downloader: minor typo fixes in comments (#21035) 2024-06-27 11:28:40 +08:00
Boqin Qin
0673fa1176 eth/downloader: fix possible data race by inconsistent field protection (#20690) 2024-06-27 11:23:49 +08:00
Daniel Liu
01e1728a94 all: add support for EIP-2718, EIP-2930 transactions (#21502) 2024-05-14 23:15:35 +08:00