fix: 🚑 non checking genesis block in consensus
refactor: ♻️ clippy
This commit is contained in:
parent
a3b1675bc3
commit
4acd687685
4 changed files with 22 additions and 21 deletions
|
@ -64,12 +64,12 @@ async fn receive_blockchain(
|
||||||
};
|
};
|
||||||
Some((ws_stream_receiver, blockchain))
|
Some((ws_stream_receiver, blockchain))
|
||||||
} else {
|
} 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))
|
Some((ws_stream_receiver, block))
|
||||||
} else {
|
} else {
|
||||||
return None;
|
None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(_) => return None,
|
Err(_) => None,
|
||||||
},
|
},
|
||||||
None => return None,
|
None => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,15 +11,16 @@ pub async fn accept_agreement(
|
||||||
limbo_block: Arc<Mutex<Block>>,
|
limbo_block: Arc<Mutex<Block>>,
|
||||||
) {
|
) {
|
||||||
let mut received_blocks = vec![];
|
let mut received_blocks = vec![];
|
||||||
|
let empty_string = String::new();
|
||||||
loop {
|
loop {
|
||||||
for channel in consensus_data_channels.lock().await.iter_mut() {
|
for channel in consensus_data_channels.lock().await.iter_mut() {
|
||||||
match channel.block_receiver.try_recv() {
|
if let Ok(block) = channel.block_receiver.try_recv() {
|
||||||
Ok(block) => {
|
let limbo_block = limbo_block.lock().await;
|
||||||
if block.previous_hash == limbo_block.lock().await.previous_hash {
|
if (limbo_block.previous_hash != empty_string)
|
||||||
received_blocks.push(block);
|
&& (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 =
|
*limbo_block.lock().await =
|
||||||
blockchain_thread_safe.lock().await.genesis_block.clone()
|
blockchain_thread_safe.lock().await.genesis_block.clone()
|
||||||
}
|
}
|
||||||
Err(_) => {}
|
Err(_) => {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => todo!(),
|
None => todo!(),
|
||||||
|
|
|
@ -40,7 +40,7 @@ impl Ord for BlockReceiver {
|
||||||
|
|
||||||
impl PartialOrd for BlockReceiver {
|
impl PartialOrd for BlockReceiver {
|
||||||
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
|
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
|
||||||
self.uuid.partial_cmp(&other.uuid)
|
Some(self.cmp(other))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ pub async fn start_network(
|
||||||
uuid: Uuid::new_v4(),
|
uuid: Uuid::new_v4(),
|
||||||
};
|
};
|
||||||
|
|
||||||
let uuid = block_receiver.uuid.clone();
|
let uuid = block_receiver.uuid;
|
||||||
|
|
||||||
consensus_data_channels.lock().await.push(block_receiver);
|
consensus_data_channels.lock().await.push(block_receiver);
|
||||||
|
|
||||||
|
@ -74,7 +74,6 @@ pub async fn start_network(
|
||||||
consensus_data_channels.remove(block_receiver_index);
|
consensus_data_channels.remove(block_receiver_index);
|
||||||
};
|
};
|
||||||
drop(consensus_data_channels);
|
drop(consensus_data_channels);
|
||||||
return ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_ = sync_server(ws_stream_receiver, consensus_data_channel_sender) => {
|
_ = 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);
|
consensus_data_channels.remove(block_receiver_index);
|
||||||
};
|
};
|
||||||
drop(consensus_data_channels);
|
drop(consensus_data_channels);
|
||||||
return ;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -102,7 +100,7 @@ async fn sync_server(
|
||||||
Some((ws_stream_receiver, block)) => (ws_stream_receiver, block),
|
Some((ws_stream_receiver, block)) => (ws_stream_receiver, block),
|
||||||
None => return,
|
None => return,
|
||||||
};
|
};
|
||||||
if let Err(_) = consensus_data_channel_sender.send(block) {
|
if consensus_data_channel_sender.send(block).is_err() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,12 +119,12 @@ async fn receive_block(
|
||||||
};
|
};
|
||||||
Some((ws_stream_receiver, block))
|
Some((ws_stream_receiver, block))
|
||||||
} else {
|
} else {
|
||||||
return None;
|
None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(_) => return None,
|
Err(_) => None,
|
||||||
},
|
},
|
||||||
None => return None,
|
None => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue