Skip to content

Commit 2c96606

Browse files
starknet_committer: add number of empty leaves to BlockModificationsCounts
1 parent 44247cb commit 2c96606

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

crates/starknet_committer/src/block_committer/commit.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::collections::HashMap;
33
use async_trait::async_trait;
44
use starknet_api::core::{ClassHash, ContractAddress, Nonce};
55
use starknet_patricia::patricia_merkle_tree::types::{NodeIndex, SortedLeafIndices};
6+
use starknet_types_core::felt::Felt;
67
use tracing::{info, warn};
78

89
use crate::block_committer::errors::BlockCommitmentError;
@@ -45,15 +46,21 @@ pub trait CommitBlockTrait: Send {
4546
let actual_storage_updates = input.state_diff.actual_storage_updates();
4647
let actual_classes_updates = input.state_diff.actual_classes_updates();
4748
// Record the number of modifications.
49+
let n_empty_leaves = actual_storage_updates
50+
.values()
51+
.map(|storage_entry| {
52+
storage_entry.values().filter(|value| value.0 == Felt::ZERO).count()
53+
})
54+
.sum::<usize>();
4855
let n_storage_tries_modifications =
4956
actual_storage_updates.values().map(|value| value.len()).sum();
5057
measurements.set_number_of_modifications(BlockModificationsCounts {
5158
storage_tries: n_storage_tries_modifications,
5259
contracts_trie: n_contracts_trie_modifications,
5360
classes_trie: actual_classes_updates.len(),
61+
emptied_storage_leaves: n_empty_leaves,
5462
});
5563
// Reads - fetch_nodes.
56-
5764
measurements.start_measurement(Action::Read);
5865
let roots =
5966
trie_reader.read_roots(input.initial_read_context).await.map_err(ForestError::from)?;

crates/starknet_committer/src/block_committer/measurements_util.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ pub struct BlockModificationsCounts {
9898
pub storage_tries: usize,
9999
pub contracts_trie: usize,
100100
pub classes_trie: usize,
101+
pub emptied_storage_leaves: usize,
101102
}
102103

103104
#[derive(Default, Clone)]

crates/starknet_committer_cli/src/utils_test.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ const WRITE_DURATION: u64 = 100;
1515
const N_READ_ENTRIES: usize = 100;
1616
const N_WRITE_ENTRIES: usize = 100;
1717
const N_MODIFICATIONS: usize = 100;
18+
const N_EMPTY_LEAVES: usize = 10;
1819

1920
async fn measure_block(measurements: &mut BenchmarkMeasurements) {
2021
measurements.set_number_of_modifications(BlockModificationsCounts {
2122
storage_tries: N_MODIFICATIONS,
2223
contracts_trie: N_MODIFICATIONS,
2324
classes_trie: N_MODIFICATIONS,
25+
emptied_storage_leaves: N_EMPTY_LEAVES,
2426
});
2527
measurements.start_measurement(Action::EndToEnd);
2628
measurements.start_measurement(Action::Read);
@@ -69,7 +71,8 @@ fn assert_block_measurement(measurements: &BenchmarkMeasurements, number_of_bloc
6971
BlockModificationsCounts {
7072
storage_tries: N_MODIFICATIONS,
7173
contracts_trie: N_MODIFICATIONS,
72-
classes_trie: N_MODIFICATIONS
74+
classes_trie: N_MODIFICATIONS,
75+
emptied_storage_leaves: N_EMPTY_LEAVES,
7376
}
7477
);
7578
}

0 commit comments

Comments
 (0)