go-ethereum/trie
rjl493456442 e206d3f897
trie: remove inconsistent trie nodes during sync in path mode (#28595)
This fixes a database corruption issue that could occur during state healing.
When sync is aborted while certain modifications were already committed, and a
reorg occurs, the database would contain incorrect trie nodes stored by path.
These nodes need to detected/deleted in order to obtain a complete and fully correct state
after state healing.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2023-12-08 14:28:23 +01:00
..
testutil all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
triedb trie/triedb/hashdb: take lock around access to dirties cache (#28542) 2023-11-30 10:50:48 +01:00
trienode cmd, core, trie: verkle-capable `geth init` (#28270) 2023-11-14 13:09:40 +01:00
triestate all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
utils cmd, core, trie: verkle-capable `geth init` (#28270) 2023-11-14 13:09:40 +01:00
committer.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
database.go trie/triedb/hashdb: take lock around access to dirties cache (#28542) 2023-11-30 10:50:48 +01:00
database_test.go core, trie: cleanup trie database (#28062) 2023-09-07 21:17:14 +08:00
encoding.go trie: reduce allocs in recHash (#27770) 2023-08-18 22:41:19 +02:00
encoding_test.go trie: reduce allocs in recHash (#27770) 2023-08-18 22:41:19 +02:00
errors.go cmd, core/state, eth, tests, trie: improve state reader (#27428) 2023-06-20 15:31:45 -04:00
hasher.go trie: spelling - fix comments in hasher (#28507) 2023-11-14 14:27:07 +01:00
iterator.go ethdb/memorydb, trie: reduced allocations (#28473) 2023-11-15 16:20:34 +01:00
iterator_test.go ethdb/memorydb, trie: reduced allocations (#28473) 2023-11-15 16:20:34 +01: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 trie: make rhs-proof align with last key in range proofs (#28311) 2023-10-13 16:05:29 +02:00
proof_test.go trie: make rhs-proof align with last key in range proofs (#28311) 2023-10-13 16:05:29 +02: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: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
stacktrie.go trie: use explicit errors in stacktrie (instead of panic) (#28361) 2023-10-25 14:53:50 +02:00
stacktrie_fuzzer_test.go tests/fuzzers: move fuzzers into native packages (#28467) 2023-11-14 14:34:29 +01:00
stacktrie_test.go trie: use explicit errors in stacktrie (instead of panic) (#28361) 2023-10-25 14:53:50 +02:00
sync.go trie: remove inconsistent trie nodes during sync in path mode (#28595) 2023-12-08 14:28:23 +01:00
sync_test.go trie: remove inconsistent trie nodes during sync in path mode (#28595) 2023-12-08 14:28:23 +01:00
tracer.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
tracer_test.go all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +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: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
trie_test.go trie: fix random test generator early terminate (#28590) 2023-11-25 14:56:22 +01:00
verkle.go cmd, core, trie: verkle-capable `geth init` (#28270) 2023-11-14 13:09:40 +01:00
verkle_test.go eth/catalyst, eth/downloader: expose more sync information (#28584) 2023-11-28 08:38:30 +01:00