From 4acd687685f12b8b45b9b7fcdf54f31dcf41283c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20Kaan=20G=C3=9CM=C3=9C=C5=9E?= <96421894+Tahinli@users.noreply.github.com> Date: Thu, 6 Jun 2024 01:35:00 +0300 Subject: [PATCH] fix: :ambulance: non checking genesis block in consensus refactor: :recycle: clippy --- src/client_network.rs | 12 ++++++------ src/consensus.rs | 17 ++++++++++------- src/lib.rs | 2 +- src/server_network.rs | 12 +++++------- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/client_network.rs b/src/client_network.rs index a286b58..262427d 100644 --- a/src/client_network.rs +++ b/src/client_network.rs @@ -64,12 +64,12 @@ async fn receive_blockchain( }; Some((ws_stream_receiver, blockchain)) } else { - return None; + None } } - Err(_) => return None, + Err(_) => None, }, - None => return None, + None => None, } } @@ -89,12 +89,12 @@ async fn receive_block( }; Some((ws_stream_receiver, block)) } else { - return None; + None } } - Err(_) => return None, + Err(_) => None, }, - None => return None, + None => None, } } diff --git a/src/consensus.rs b/src/consensus.rs index c5033c0..677a330 100644 --- a/src/consensus.rs +++ b/src/consensus.rs @@ -11,15 +11,16 @@ pub async fn accept_agreement( limbo_block: Arc>, ) { let mut received_blocks = vec![]; + let empty_string = String::new(); loop { for channel in consensus_data_channels.lock().await.iter_mut() { - match channel.block_receiver.try_recv() { - Ok(block) => { - if block.previous_hash == limbo_block.lock().await.previous_hash { - received_blocks.push(block); - } + if let Ok(block) = channel.block_receiver.try_recv() { + let limbo_block = limbo_block.lock().await; + if (limbo_block.previous_hash != empty_string) + && (block.previous_hash == limbo_block.previous_hash) + { + received_blocks.push(block); } - Err(_) => {} } } @@ -49,7 +50,9 @@ pub async fn accept_agreement( *limbo_block.lock().await = blockchain_thread_safe.lock().await.genesis_block.clone() } - Err(_) => {} + Err(_) => { + todo!() + } } } None => todo!(), diff --git a/src/lib.rs b/src/lib.rs index 3773e7c..d5dd5d6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -40,7 +40,7 @@ impl Ord for BlockReceiver { impl PartialOrd for BlockReceiver { fn partial_cmp(&self, other: &Self) -> Option { - self.uuid.partial_cmp(&other.uuid) + Some(self.cmp(other)) } } diff --git a/src/server_network.rs b/src/server_network.rs index 0920f5c..7843c8e 100644 --- a/src/server_network.rs +++ b/src/server_network.rs @@ -54,7 +54,7 @@ pub async fn start_network( uuid: Uuid::new_v4(), }; - let uuid = block_receiver.uuid.clone(); + let uuid = block_receiver.uuid; consensus_data_channels.lock().await.push(block_receiver); @@ -74,7 +74,6 @@ pub async fn start_network( consensus_data_channels.remove(block_receiver_index); }; drop(consensus_data_channels); - return ; } _ = sync_server(ws_stream_receiver, consensus_data_channel_sender) => { @@ -84,7 +83,6 @@ pub async fn start_network( consensus_data_channels.remove(block_receiver_index); }; drop(consensus_data_channels); - return ; } } }); @@ -102,7 +100,7 @@ async fn sync_server( Some((ws_stream_receiver, block)) => (ws_stream_receiver, block), None => return, }; - if let Err(_) = consensus_data_channel_sender.send(block) { + if consensus_data_channel_sender.send(block).is_err() { return; } } @@ -121,12 +119,12 @@ async fn receive_block( }; Some((ws_stream_receiver, block)) } else { - return None; + None } } - Err(_) => return None, + Err(_) => None, }, - None => return None, + None => None, } }