plugeth/core/state
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
..
pruner cmd, core, eth, graphql, trie: no persisted clean trie cache file (#27525) 2023-07-04 10:21:06 +03:00
snapshot all: expose block number information to statedb (#27753) 2023-07-24 13:22:09 +03:00
access_list.go all: implement EIP-2929 (gas cost increases for state access opcodes) + yolo-v2 (#21509) 2020-10-23 08:26:57 +02:00
database.go core/state, light, les: make signature of ContractCode hash-independent (#27209) 2023-06-28 12:11:02 +03:00
dump.go all: expose block number information to statedb (#27753) 2023-07-24 13:22:09 +03:00
iterator_test.go core/state: unexport NodeIterator (#27239) 2023-05-11 10:15:44 +03:00
iterator.go core/state, light, les: make signature of ContractCode hash-independent (#27209) 2023-06-28 12:11:02 +03:00
journal.go core, trie: track state change set with account address (#27815) 2023-07-31 15:07:51 +03:00
metrics.go core/state: value diff tracking in StateDB (#27349) 2023-07-11 15:43:23 +02:00
state_object_test.go build: use golangci-lint (#20295) 2019-11-18 10:49:17 +02:00
state_object.go core, trie: track state change set with account address (#27815) 2023-07-31 15:07:51 +03:00
state_test.go all: expose block number information to statedb (#27753) 2023-07-24 13:22:09 +03:00
statedb_fuzz_test.go core, trie: track state change set with account address (#27815) 2023-07-31 15:07:51 +03:00
statedb_test.go all: expose block number information to statedb (#27753) 2023-07-24 13:22:09 +03:00
statedb.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
sync_test.go all: expose block number information to statedb (#27753) 2023-07-24 13:22:09 +03:00
sync.go all: prepare for path-based trie storage (#26603) 2023-02-06 10:28:40 -05:00
transient_storage.go all: implement EIP-1153 transient storage (#26003) 2022-11-16 10:18:52 +01:00
trie_prefetcher_test.go all: new empty trie with types.EmptyRootHash instead of null (#27230) 2023-05-11 10:19:42 +03:00
trie_prefetcher.go core/state, light, les: make signature of ContractCode hash-independent (#27209) 2023-06-28 12:11:02 +03:00