This commit is contained in:
Peilun Li 2024-10-10 19:01:20 +08:00
parent 5e14db6422
commit b16abe2303
3 changed files with 10 additions and 3 deletions

View File

@ -36,4 +36,8 @@ eth2_ssz = { path = "version-meld/eth2_ssz" }
enr = { path = "version-meld/enr" } enr = { path = "version-meld/enr" }
[profile.bench.package.'storage'] [profile.bench.package.'storage']
debug = true debug = true
[profile.dev]
# enabling debug_assertions will make node fail to start because of checks in `clap`.
debug-assertions = false

View File

@ -556,7 +556,7 @@ impl<E: HashElement, A: Algorithm<E>> AppendMerkleTree<E, A> {
.ok_or_else(|| anyhow!("tx_seq unavailable, root={:?}", tx_seq))? .ok_or_else(|| anyhow!("tx_seq unavailable, root={:?}", tx_seq))?
.clone(); .clone();
// Dropping the upper layers that are not in the old merkle tree. // Dropping the upper layers that are not in the old merkle tree.
for height in (self.height() - 1)..=delta_nodes.right_most_nodes.len() { for height in (delta_nodes.right_most_nodes.len()..(self.height() - 1)).rev() {
self.node_manager.truncate_layer(height); self.node_manager.truncate_layer(height);
} }
for (height, (last_index, right_most_node)) in for (height, (last_index, right_most_node)) in
@ -592,13 +592,15 @@ impl<E: HashElement, A: Algorithm<E>> AppendMerkleTree<E, A> {
} }
pub fn reset(&mut self) { pub fn reset(&mut self) {
for height in (self.height() - 1)..=0 { for height in (0..self.height()).rev() {
self.node_manager.truncate_layer(height); self.node_manager.truncate_layer(height);
} }
if let Some(depth) = self.min_depth { if let Some(depth) = self.min_depth {
for _ in 0..depth { for _ in 0..depth {
self.node_manager.add_layer(); self.node_manager.add_layer();
} }
} else {
self.node_manager.add_layer();
} }
} }

View File

@ -94,6 +94,7 @@ impl MerkleManager {
} }
fn revert_merkle_tree(&mut self, tx_seq: u64, tx_store: &TransactionStore) -> Result<()> { fn revert_merkle_tree(&mut self, tx_seq: u64, tx_store: &TransactionStore) -> Result<()> {
debug!("revert merkle tree {}", tx_seq);
// Special case for reverting tx_seq == 0 // Special case for reverting tx_seq == 0
if tx_seq == u64::MAX { if tx_seq == u64::MAX {
self.pora_chunks_merkle.reset(); self.pora_chunks_merkle.reset();