A storage trie is now identified by StateRoot (root of state/account trie), Owner, Root. The state/account trie is identified with StateRoot = Root. Those params are now needed for init a trie.
Separate list of dirty nodes to updated nodes and deleted node. Also separate the updating/deleting operations.
Track previous value of each node (before committing).
Apply delete tracking logics to committer.
Add trie_reader.go, interface for reaching database layer(s) from trie. Support backward compatibility: can use hash_reader for old hash based scheme, and can use diffLayer for path based scheme in the future PRs.
Reference: https://github.com/ethereum/go-ethereum/pull/25757
Important changes:
A storage trie is now identified by StateRoot (root of state/account trie), Owner, Root. The state/account trie is identified with StateRoot = Root. Those params are now needed for init a trie.
Separate list of dirty nodes to updated nodes and deleted node. Also separate the updating/deleting operations.
Track previous value of each node (before committing).
Apply delete tracking logics to committer.
Add
trie_reader.go
, interface for reaching database layer(s) from trie. Support backward compatibility: can usehash_reader
for old hash based scheme, and can usediffLayer
for path based scheme in the future PRs.Add metrics for tracking trie commits.