perf(tree): re-use intermediate nodes (#9836)

This commit is contained in:
Roman Krasiuk
2024-08-13 12:57:22 -07:00
committed by GitHub
parent 8a802dab60
commit ac3d62ba02
16 changed files with 329 additions and 53 deletions

View File

@ -25,6 +25,15 @@ impl<'a> reth_storage_api::StateRootProvider for StateProviderTraitObjWrapper<'a
self.0.hashed_state_root(hashed_state)
}
fn hashed_state_root_from_nodes(
&self,
nodes: reth_trie::updates::TrieUpdates,
hashed_state: reth_trie::HashedPostState,
prefix_sets: reth_trie::prefix_set::TriePrefixSetsMut,
) -> reth_errors::ProviderResult<B256> {
self.0.hashed_state_root_from_nodes(nodes, hashed_state, prefix_sets)
}
fn hashed_state_root_with_updates(
&self,
hashed_state: reth_trie::HashedPostState,
@ -32,6 +41,15 @@ impl<'a> reth_storage_api::StateRootProvider for StateProviderTraitObjWrapper<'a
self.0.hashed_state_root_with_updates(hashed_state)
}
fn hashed_state_root_from_nodes_with_updates(
&self,
nodes: reth_trie::updates::TrieUpdates,
hashed_state: reth_trie::HashedPostState,
prefix_sets: reth_trie::prefix_set::TriePrefixSetsMut,
) -> reth_errors::ProviderResult<(B256, reth_trie::updates::TrieUpdates)> {
self.0.hashed_state_root_from_nodes_with_updates(nodes, hashed_state, prefix_sets)
}
fn hashed_storage_root(
&self,
address: Address,