go-ethereum/core/rawdb
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
..
testdata core/rawdb: avoid unnecessary receipt processing for log filtering (#23147) 2021-09-28 12:54:49 +02:00
accessors_chain.go all: replace data gas to blob gas in comments (#27825) 2023-08-01 10:07:25 +03:00
accessors_chain_test.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
accessors_indexes.go core/types, params: add blob transaction type, RLP encoded for now (#27049) 2023-04-21 12:52:02 +03:00
accessors_indexes_test.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
accessors_metadata.go core: fix accessor mismatch for genesis state (#26747) 2023-02-21 12:18:33 +02:00
accessors_snapshot.go core/rawdb: add specified key length iterator (#24535) 2022-03-15 10:28:26 +02:00
accessors_state.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
accessors_sync.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
accessors_trie.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
ancient_scheme.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
ancient_utils.go core/rawdb: refactor db inspector for extending multiple ancient store (#25896) 2022-10-28 10:23:49 +02:00
chain_freezer.go core/rawdb: use atomic int added in go1.19 (#26935) 2023-03-21 07:10:23 -04:00
chain_iterator.go core/rawdb: use atomic int added in go1.19 (#26935) 2023-03-21 07:10:23 -04:00
chain_iterator_test.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: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
databases_64bit.go core/rawdb, ethdb/pebble: disable pebble on openbsd (#26801) 2023-03-03 12:05:00 +02:00
databases_non64bit.go core/rawdb, ethdb/pebble: disable pebble on openbsd (#26801) 2023-03-03 12:05:00 +02:00
freezer.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
freezer_batch.go core/rawdb: use atomic int added in go1.19 (#26935) 2023-03-21 07:10:23 -04:00
freezer_meta.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
freezer_meta_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
freezer_resettable.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
freezer_resettable_test.go core/rawdb: implement resettable freezer (#26324) 2022-12-19 04:59:12 -05:00
freezer_table.go core/rawdb: support freezer batch read with no size limit (#27687) 2023-07-12 03:19:01 -04:00
freezer_table_test.go core/rawdb: support freezer batch read with no size limit (#27687) 2023-07-12 03:19:01 -04:00
freezer_test.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
freezer_utils.go core/rawdb: support freezer batch read with no size limit (#27687) 2023-07-12 03:19:01 -04:00
freezer_utils_test.go all: more linters (#24783) 2022-06-13 16:24:45 +02:00
key_length_iterator.go core/rawdb: add specified key length iterator (#24535) 2022-03-15 10:28:26 +02:00
key_length_iterator_test.go core/rawdb: add specified key length iterator (#24535) 2022-03-15 10:28:26 +02:00
schema.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
table.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
table_test.go all: simplify and fix database iteration with prefix/start (#20808) 2020-04-15 14:08:53 +03:00