From 94127b977eae3667f0659c95200932b1f379ca64 Mon Sep 17 00:00:00 2001 From: qima Date: Wed, 13 Nov 2024 23:33:00 +0800 Subject: [PATCH] fix(node): initialize records_by_bucket properly --- sn_networking/src/record_store.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/sn_networking/src/record_store.rs b/sn_networking/src/record_store.rs index e3eb672d6c..34ab9c57c2 100644 --- a/sn_networking/src/record_store.rs +++ b/sn_networking/src/record_store.rs @@ -372,12 +372,23 @@ impl NodeRecordStore { let records = Self::update_records_from_an_existing_store(&config, &encryption_details); + // Initialize records_by_bucket + let mut records_by_bucket = HashMap::new(); + for (addr, _record_type) in records.values() { + let distance = self.local_address.distance(&addr); + let bucket = distance.ilog2().unwrap_or_default(); + records_by_bucket + .entry(bucket) + .or_default() + .insert(key.clone()); + } + let cache_size = config.records_cache_size; let mut record_store = NodeRecordStore { local_address: NetworkAddress::from_peer(local_id), config, records, - records_by_bucket: HashMap::new(), + records_by_bucket, records_cache: RecordCache::new(cache_size), network_event_sender, local_swarm_cmd_sender: swarm_cmd_sender,