Skip to content

Commit d6dad2b

Browse files
committed
Move bloom seed into StatementProtocolConfig
1 parent 89e8806 commit d6dad2b

File tree

4 files changed

+16
-12
lines changed

4 files changed

+16
-12
lines changed

light-base/examples/statement_test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ fn main() {
6767
smoldot_light::network_service::StatementProtocolConfig::new(
6868
core::num::NonZeroUsize::new(65536).unwrap(),
6969
0.01,
70+
rand::random(),
7071
),
7172
),
7273
})

light-base/src/json_rpc_service/background.rs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,6 @@ struct Background<TPlat: PlatformRef> {
121121

122122
statement_protocol_config: Option<network_service::StatementProtocolConfig>,
123123

124-
bloom_seed: u128,
125-
126124
/// See [`Config::network_service`].
127125
network_service: Arc<network_service::NetworkServiceChain<TPlat>>,
128126
/// See [`Config::sync_service`].
@@ -519,11 +517,6 @@ pub(super) async fn run<TPlat: PlatformRef>(
519517
seed
520518
}),
521519
statement_protocol_config: config.statement_protocol_config,
522-
bloom_seed: {
523-
let mut seed_bytes = [0u8; 16];
524-
config.platform.fill_random_bytes(&mut seed_bytes);
525-
u128::from_le_bytes(seed_bytes)
526-
},
527520
next_garbage_collection: Box::pin(config.platform.sleep(Duration::new(0, 0))),
528521
network_service: config.network_service.clone(),
529522
sync_service: config.sync_service.clone(),
@@ -780,11 +773,11 @@ pub(super) async fn run<TPlat: PlatformRef>(
780773
if matches!(version, network_service::StatementProtocolVersion::V2) {
781774
me.v2_statement_peers.insert(peer_id.clone());
782775
if !me.statement_subscriptions.is_empty() {
783-
let fpr = me.statement_protocol_config.as_ref().expect("V2 peers require statement protocol; qed").false_positive_rate();
776+
let spc = me.statement_protocol_config.as_ref().expect("V2 peers require statement protocol; qed");
784777
let combined_filter = build_combined_affinity_filter(
785778
&me.statement_subscriptions,
786-
me.bloom_seed,
787-
fpr,
779+
spc.bloom_seed(),
780+
spc.false_positive_rate(),
788781
);
789782
let _ = me
790783
.network_service

light-base/src/network_service.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,15 @@ pub use service::{
8282
pub struct StatementProtocolConfig {
8383
max_seen_statements: NonZeroUsize,
8484
false_positive_rate: f64,
85+
bloom_seed: u128,
8586
}
8687

8788
impl StatementProtocolConfig {
88-
pub fn new(max_seen_statements: NonZeroUsize, false_positive_rate: f64) -> Self {
89+
pub fn new(max_seen_statements: NonZeroUsize, false_positive_rate: f64, bloom_seed: u128) -> Self {
8990
StatementProtocolConfig {
9091
max_seen_statements,
9192
false_positive_rate,
93+
bloom_seed,
9294
}
9395
}
9496

@@ -99,6 +101,10 @@ impl StatementProtocolConfig {
99101
pub fn false_positive_rate(&self) -> f64 {
100102
self.false_positive_rate
101103
}
104+
105+
pub fn bloom_seed(&self) -> u128 {
106+
self.bloom_seed
107+
}
102108
}
103109

104110
mod tasks;

wasm-node/rust/src/lib.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,11 @@ fn add_chain(
140140
statement_protocol_config: NonZero::<usize>::new(
141141
usize::try_from(statement_store_max_seen_statements).unwrap_or(0),
142142
)
143-
.map(|max_seen| smoldot_light::network_service::StatementProtocolConfig::new(max_seen, statement_store_false_positive_rate)),
143+
.map(|max_seen| {
144+
let mut seed_bytes = [0u8; 16];
145+
smoldot_light::platform::PlatformRef::fill_random_bytes(&platform::PLATFORM_REF, &mut seed_bytes);
146+
smoldot_light::network_service::StatementProtocolConfig::new(max_seen, statement_store_false_positive_rate, u128::from_le_bytes(seed_bytes))
147+
}),
144148
}) {
145149
Ok(c) => c,
146150
Err(error) => {

0 commit comments

Comments
 (0)