Commit graph

221 commits

Author SHA1 Message Date
Daniel Liu
13fe871c25
trie: test for edgecase in VerifyRangeProof #24257 (#1083) 2025-08-20 15:04:35 +08:00
Daniel Liu
b196b7231c
trie: fix range prover #24266 (#1082)
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-08-20 14:54:24 +08:00
Daniel Liu
5702df86ee
trie: readonly interface for trie iterator resolver #24221 (#1081) 2025-08-20 14:52:56 +08:00
Daniel Liu
a75fa97f56
core, trie: use db.has over db.get where possible #24117 (#1078) 2025-08-20 14:51:32 +08:00
Daniel Liu
8750881da2
trie: remove the sync bloom, used by fast sync #24047 (#1077) 2025-08-08 09:31:26 +08:00
Daniel Liu
f0ee1211cc
trie: reject deletions when verifying range proofs #23960 (#1076)
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2025-08-08 09:23:50 +08:00
Daniel Liu
3da4549e07
core/state: move state account to core/types + abstracted write account to trie #23567 (#1072) 2025-08-08 09:13:34 +08:00
Daniel Liu
7464f0a7f3
trie: better error-handling #23657 (#1073) 2025-08-04 14:38:48 +08:00
Daniel Liu
655f975bbb
trie: simplify range proofs #22762 (#1067) 2025-08-04 14:36:02 +08:00
Daniel Liu
cb888541c5
core, trie: add state metrics #23433 (#1071) 2025-08-04 11:19:42 +08:00
Daniel Liu
77522e51ec
core, trie: decode the value for storage dump #19943 (#1189)
* core, trie: decode the value for storage dump

* core/state: address comment

Co-authored-by: gary rong <garyrong0905@gmail.com>
2025-07-28 16:52:06 +08:00
Daniel Liu
cf5766177a
trie: remove the duplicate write for preimage #23001 (#1068) 2025-07-28 16:50:39 +08:00
Daniel Liu
f552cebfcd
trie: remove redundant returns + use stacktrie where applicable #22760 (#1066)
* trie: add benchmark for proofless range

* trie: remove unused returns + use stacktrie

Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-07-28 16:49:31 +08:00
Daniel Liu
a9d4fffc97
trie: move fuzzers into native packages #28467 (#1239) 2025-07-17 17:55:19 +08:00
Daniel Liu
8f90413200
trie: fix range prover #22210 (#1061)
Fixes a special case when the trie only has a single trie node and the range proof only contains a single element.

Co-authored-by: gary rong <garyrong0905@gmail.com>
2025-07-11 09:20:18 +08:00
Daniel Liu
8ba50ab2aa
trie: remove deprecated uses of math.rand (#1136) 2025-06-25 16:57:23 +08:00
Daniel Liu
416c5cb7dd
trie: upgarde for snap protocol #21482 (#1058) 2025-06-25 16:55:07 +08:00
Daniel Liu
dbe173e794
core, trie: speed up some tests with quadratic processing flaw #21987 (#1057) 2025-06-25 16:17:05 +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
ea459d68a3
trie: fix spelling mistakes (#1122) 2025-06-20 16:29:57 +08:00
Daniel Liu
3a6beedb8c
trie: fix parallel typo in trie/hasher.go #25241 (#1095) 2025-06-17 13:32:04 +08:00
Daniel Liu
6200e8d7de
core, trie: change format 0x%x to %#x #25221 (#1094) 2025-06-17 13:31:20 +08:00
Daniel Liu
dabaf392a7
trie: fix size accounting in cleaner #25007 (#1093)
Decrease children size instead of dirties size when marking dirties as cleaned up in trie cleaner

Co-authored-by: aaronbuchwald <aaron.buchwald56@gmail.com>
2025-06-17 13:29:57 +08:00
Daniel Liu
e4de0e82a2
trie: remove unused makeHashNode #24702 (#1089)
Co-authored-by: Darioush Jalali <darioush.jalali@avalabs.org>
2025-06-17 13:28:59 +08:00
Daniel Liu
205a94ea4f
trie: fix two issues in trie iterator #24539 (#1086)
* trie: fix memory leak in trie iterator

In the trie iterator, live nodes are tracked in a stack while iterating.
Popped node states should be explictly set to nil in order to get
garbage-collected.

* trie: fix empty trie iterator
2025-06-17 13:27:57 +08:00
Daniel Liu
f07824db20
core, ethdb, tests, trie: implement NewBatchWithSize API for batcher #24392 (#1085) 2025-06-17 13:26:50 +08:00
Daniel Liu
bebc87e2f0
trie: fix typos (#1080) 2025-06-17 13:25:40 +08:00
Daniel Liu
5e8a096844
eth/fetcher, trie: unit test reliability fixes #23020 #23415 (#1070)
Some tests take quite some time during exit, which I think causes
some appveyor fails like this:

    https://ci.appveyor.com/project/ethereum/go-ethereum/builds/39511210/job/xhom84eg2e4uulq3

One of the things that seem to take time during exit is waiting
(up to 100ms) for the syncbloom to close. This PR changes it to use
a channel, instead of looping with a 100ms wait.

This also includes some unrelated changes improving the reliability of
eth/fetcher tests, which fail a lot because they are time-dependent.

Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-06-17 13:21:18 +08:00
Daniel Liu
a41a92978d
trie: small optimization of delete in fullNode case #22979 (#1069) 2025-06-17 13:17:07 +08:00
Daniel Liu
1f05c3e5fd
trie: reuse dirty data instead of hitting disk when generating #22667 (#1065)
* core/state/snapshot: reuse memory data instead of hitting disk when generating

* trie: minor nitpicks wrt the resolver optimization

* core/state/snapshot, trie: use key/value store for resolver

* trie: fix linter

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2025-06-17 13:15:22 +08:00
Daniel Liu
45d89bd4d1
trie: faster snapshot generation #22504 (#1062) 2025-06-17 13:13:14 +08:00
Daniel Liu
93c2745b7b
all: disable recording preimage of trie keys #21402 (#1054) 2025-06-17 13:10:47 +08:00
Daniel Liu
d6cecbf570
trie: extend range proof #21250 (#1050) 2025-06-17 13:06:36 +08:00
Daniel Liu
1490033ec9
trie: fix typos #23768 (#1074) 2025-06-04 17:13:58 +08:00
Daniel Liu
7fbf862806
trie: improve the node iterator seek operation #22470 (#1064) 2025-06-03 12:18:46 +08:00
Daniel Liu
958ad72b8e
trie: fix bloom crash on fast sync restart #22332 (#1060) 2025-06-03 11:54:40 +08:00
Daniel Liu
b18f9f2705
trie: use github.com/holiman/bloomfilter/v2 #22044 (#1059) 2025-06-03 11:52:45 +08:00
Daniel Liu
c4a98d2ddb
trie: remove redundant conversions (#1056) 2025-06-03 11:50:02 +08:00
Daniel Liu
aa7c8644c3
all: fix tests on 32-bit and windows + minor rpc fixes #21871 (#1055) 2025-06-03 11:47:11 +08:00
Daniel Liu
63ff193931
trie: avoid copybytes for stacktrie #22686 (#1063)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-06-03 10:58:46 +08:00
Daniel Liu
5b071d1b0d
trie: rename NodeFlag to nodeFlag (#1049) 2025-05-26 15:18:47 +08:00
Daniel Liu
5dd41a6765
trie: support empty range proof #21199 (#1048)
Co-authored-by: gary rong <garyrong0905@gmail.com>
2025-05-26 15:18:14 +08:00
Daniel Liu
b9626bfebf
trie: fix gaped range proof test case #21484 (#1047)
Co-authored-by: gary rong <garyrong0905@gmail.com>
2025-05-26 15:17:31 +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
b94b29b8d0
trie: check nil bloom (#1039) 2025-05-20 15:13:34 +08:00
Daniel Liu
b9a6c8c32d
cmd, core, eth, trie: add trie read caching layer (#18087) (#946) 2025-04-16 17:27:43 +08:00
Daniel Liu
5759893f2b
trie: quell linter warnings in commiter.go (#21329) (#945) 2025-04-16 17:10:42 +08:00
Daniel Liu
bf893cb73b
trie: reduce allocs in insertPreimage (#21261) (#943)
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2025-04-16 17:08:31 +08:00
Daniel Liu
5328a637c0 trie: use unified emptyRootHash and emptyCodeHash (#26718) 2025-04-07 16:44:32 +08:00
Daniel Liu
c8b39cabae trie: faster trie node encoding (#24126) 2025-04-07 16:44:32 +08:00