darkfid/task/sync: handle proposals appending errors

This commit is contained in:
skoupidi
2024-08-22 13:58:18 +03:00
parent 1d2df33e2b
commit 02a8652eb9

View File

@@ -395,7 +395,7 @@ async fn retrieve_blocks(
let mut received_blocks = 0;
let total = node.validator.blockchain.headers.len_sync();
'blocks_loop: loop {
for (index, peer) in peers.iter().enumerate() {
'peers_loop: for (index, peer) in peers.iter().enumerate() {
// Grab the response sub reference
let Some(ref response_sub) = peer_subs[index] else {
continue;
@@ -430,10 +430,20 @@ async fn retrieve_blocks(
debug!(target: "darkfid::task::sync::retrieve_blocks", "Processing received blocks");
received_blocks += response.blocks.len();
if checkpoint_blocks {
node.validator.add_checkpoint_blocks(&response.blocks, &headers_hashes).await?;
if let Err(e) =
node.validator.add_checkpoint_blocks(&response.blocks, &headers_hashes).await
{
debug!(target: "darkfid::task::sync::retrieve_blocks", "Error while adding checkpoint blocks: {e}");
continue
};
} else {
for block in &response.blocks {
node.validator.append_proposal(&Proposal::new(block.clone())).await?;
if let Err(e) =
node.validator.append_proposal(&Proposal::new(block.clone())).await
{
debug!(target: "darkfid::task::sync::retrieve_blocks", "Error while appending proposal: {e}");
continue 'peers_loop
};
}
}
last_received = (*synced_headers.last().unwrap(), *headers_hashes.last().unwrap());