go-ethereum/trie
rjl493456442 7de748d3f6
all: implement path-based state scheme (#25963)
* all: implement path-based state scheme

* all: edits from review

* core/rawdb, trie/triedb/pathdb: review changes

* core, light, trie, eth, tests: reimplement pbss history

* core, trie/triedb/pathdb: track block number in state history

* trie/triedb/pathdb: add history documentation

* core, trie/triedb/pathdb: address comments from Peter's review

Important changes to list:

- Cache trie nodes by path in clean cache
- Remove root->id mappings when history is truncated

* trie/triedb/pathdb: fallback to disk if unexpect node in clean cache

* core/rawdb: fix tests

* trie/triedb/pathdb: rename metrics, change clean cache key

* trie/triedb: manage the clean cache inside of disk layer

* trie/triedb/pathdb: move journal function

* trie/triedb/path: fix tests

* trie/triedb/pathdb: fix journal

* trie/triedb/pathdb: fix history

* trie/triedb/pathdb: try to fix tests on windows

* core, trie: address comments

* trie/triedb/pathdb: fix test issues

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2023-08-01 15:17:32 +03:00
..
testutil all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
triedb all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
trienode all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
triestate all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
committer.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
database.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
database_test.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
encoding.go trie: use stacktrie for Derivesha operation (#21407) 2020-09-29 17:38:13 +02:00
encoding_test.go all: remove deprecated uses of math.rand (#26710) 2023-02-16 14:36:58 -05:00
errors.go cmd, core/state, eth, tests, trie: improve state reader (#27428) 2023-06-20 15:31:45 -04:00
hasher.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
iterator.go core, trie: rework trie database (#26813) 2023-04-24 10:38:52 +03:00
iterator_test.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
node.go core, trie: rework trie database (#26813) 2023-04-24 10:38:52 +03:00
node_enc.go core, trie: rework trie database (#26813) 2023-04-24 10:38:52 +03:00
node_test.go trie: improve node rlp decoding performance (#25357) 2022-08-19 00:39:47 +02:00
preimages.go core, trie, eth, cmd: rework preimage store (#25287) 2022-07-27 20:37:04 +02:00
proof.go cmd, core/state, eth, tests, trie: improve state reader (#27428) 2023-06-20 15:31:45 -04:00
proof_test.go cmd, core/state, eth, tests, trie: improve state reader (#27428) 2023-06-20 15:31:45 -04:00
secure_trie.go trie, core/state: revert error removal in (*state.Trie).Commit (#27544) 2023-06-27 15:36:38 +03:00
secure_trie_test.go all: expose block number information to statedb (#27753) 2023-07-24 13:22:09 +03:00
stacktrie.go core, trie: rework trie database (#26813) 2023-04-24 10:38:52 +03:00
stacktrie_test.go all: refactor trie API (#26995) 2023-04-20 06:57:24 -04:00
sync.go all: use unified emptyRootHash and emptyCodeHash (#26718) 2023-02-21 06:12:27 -05:00
sync_test.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
tracer.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
tracer_test.go all: expose block number information to statedb (#27753) 2023-07-24 13:22:09 +03:00
trie.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
trie_id.go cmd, core, eth, les, light: track deleted nodes (#25757) 2022-09-27 10:01:02 +02:00
trie_reader.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
trie_test.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00