From c486547295ca961ed7deccda195a7093c0e44d62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksandar=20Terenti=C4=87?= Date: Mon, 24 Jul 2023 09:38:22 +0200 Subject: [PATCH 1/4] Allow dead code in memory store. --- src/network/mem_store.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/network/mem_store.rs b/src/network/mem_store.rs index 15b955085..725d6afa6 100644 --- a/src/network/mem_store.rs +++ b/src/network/mem_store.rs @@ -72,6 +72,7 @@ impl Default for MemoryStoreConfig { } impl MemoryStore { + #[allow(dead_code)] /// Creates a new `MemoryRecordStore` with a default configuration. pub fn new(local_id: PeerId) -> Self { Self::with_config(local_id, Default::default()) @@ -88,6 +89,7 @@ impl MemoryStore { } } + #[allow(dead_code)] /// Retains the records satisfying a predicate. pub fn retain(&mut self, f: F) where From 8229332d74e9249b703ca7a2aae41d31767cbb0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksandar=20Terenti=C4=87?= Date: Mon, 24 Jul 2023 10:18:38 +0200 Subject: [PATCH 2/4] Remove redundant clone. --- src/network/network_analyzer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/network_analyzer.rs b/src/network/network_analyzer.rs index e7c7b1811..06691252f 100644 --- a/src/network/network_analyzer.rs +++ b/src/network/network_analyzer.rs @@ -24,7 +24,7 @@ pub async fn start_traffic_analyzer(port: u16, sampling_interval: u64) { }, }; let mut dev: Option = None; - for device in devices.clone() { + for device in devices { if !device.addresses.is_empty() // The first interface with Connected status is usually the one with all the traffic && device.flags.connection_status == ConnectionStatus::Connected From 0560bb6c8ce0975cdc982897db073908d2a5610c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksandar=20Terenti=C4=87?= Date: Mon, 24 Jul 2023 10:19:28 +0200 Subject: [PATCH 3/4] Replace redundant matches with is_ok query. --- src/network/network_analyzer.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/network/network_analyzer.rs b/src/network/network_analyzer.rs index 06691252f..fe4d2b60d 100644 --- a/src/network/network_analyzer.rs +++ b/src/network/network_analyzer.rs @@ -36,14 +36,14 @@ pub async fn start_traffic_analyzer(port: u16, sampling_interval: u64) { let total_bytes = Arc::new(AtomicU32::new(0)); // Listen to loopback device for local testing - if let Ok(_) = start_listening_on_device("lo".to_owned(), port, Arc::clone(&total_bytes)) { + if start_listening_on_device("lo".to_owned(), port, Arc::clone(&total_bytes)).is_ok() { is_one_capture_active = true; } // Listen to non-loopback device for local testing if let Some(device) = dev { debug!("Non lo device selected: {}", device.name.as_str()); - if let Ok(_) = start_listening_on_device(device.name, port, Arc::clone(&total_bytes)) { + if start_listening_on_device(device.name, port, Arc::clone(&total_bytes)).is_ok() { is_one_capture_active = true; } }; From 0dd72c36db0d3c538cbb4ec4e8848e11b84980bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksandar=20Terenti=C4=87?= Date: Mon, 24 Jul 2023 10:49:54 +0200 Subject: [PATCH 4/4] Group channels to struct to reduce args number. --- src/light_client.rs | 16 ++++++++++------ src/main.rs | 10 +++++++--- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/light_client.rs b/src/light_client.rs index 60d8fef60..84ea3d1c8 100644 --- a/src/light_client.rs +++ b/src/light_client.rs @@ -376,6 +376,12 @@ pub async fn process_block( Ok(()) } +pub struct Channels { + pub block_sender: Option>, + pub header_receiver: Receiver<(Header, Instant)>, + pub error_sender: Sender, +} + /// Runs light client. /// /// # Arguments @@ -389,16 +395,14 @@ pub async fn process_block( pub async fn run( light_client: impl LightClient, cfg: LightClientConfig, - block_tx: Option>, pp: PublicParameters, metrics: Metrics, counter: Arc>, - mut message_rx: Receiver<(Header, Instant)>, - error_sender: Sender, + mut channels: Channels, ) { info!("Starting light client..."); - while let Some((header, received_at)) = message_rx.recv().await { + while let Some((header, received_at)) = channels.header_receiver.recv().await { if let Some(seconds) = cfg.block_processing_delay.sleep_duration(received_at) { info!("Sleeping for {seconds:?} seconds"); tokio::time::sleep(seconds).await; @@ -416,7 +420,7 @@ pub async fn run( .await { error!("Cannot process block: {error}"); - if let Err(error) = error_sender.send(error).await { + if let Err(error) = channels.error_sender.send(error).await { error!("Cannot send error message: {error}"); } return; @@ -429,7 +433,7 @@ pub async fn run( // notify dht-based application client // that newly mined block has been received - if let Some(ref channel) = block_tx { + if let Some(ref channel) = channels.block_sender { if let Err(error) = channel.send(client_msg).await { error!("Cannot send block verified message: {error}"); continue; diff --git a/src/main.rs b/src/main.rs index 78d765eed..05a892bea 100644 --- a/src/main.rs +++ b/src/main.rs @@ -316,15 +316,19 @@ async fn run(error_sender: Sender) -> Result<()> { let light_client = light_client::new(db, network_client, rpc_client); + let lc_channels = light_client::Channels { + block_sender: block_tx, + header_receiver: message_rx, + error_sender, + }; + tokio::task::spawn(light_client::run( light_client, (&cfg).into(), - block_tx, pp, lc_metrics, counter, - message_rx, - error_sender, + lc_channels, )); Ok(()) }