Clean up the Substrate block processing code

This commit is contained in:
Luke Parker
2023-04-17 00:50:56 -04:00
parent 2604746586
commit 4d43c04916
2 changed files with 246 additions and 165 deletions

View File

@@ -2,6 +2,8 @@
#![allow(unreachable_code)]
#![allow(clippy::diverging_sub_expression)]
use std::time::Duration;
use zeroize::Zeroizing;
use ciphersuite::{group::ff::Field, Ciphersuite, Ristretto};
@@ -9,6 +11,8 @@ use ciphersuite::{group::ff::Field, Ciphersuite, Ristretto};
use serai_db::{Db, MemDb};
use serai_client::Serai;
use tokio::time::sleep;
mod db;
pub use db::*;
@@ -33,16 +37,26 @@ async fn run<D: Db, P: P2p>(
let mut last_substrate_block = db.last_substrate_block();
loop {
match substrate::handle_new_blocks(&mut db, &key, &p2p, &serai, &mut last_substrate_block).await
{
Ok(()) => {}
Err(e) => log::error!("couldn't communicate with serai node: {e}"),
tokio::spawn(async move {
loop {
match substrate::handle_new_blocks(&mut db, &key, &p2p, &serai, &mut last_substrate_block)
.await
{
Ok(()) => {}
Err(e) => {
log::error!("couldn't communicate with serai node: {e}");
sleep(Duration::from_secs(5)).await;
}
}
}
});
loop {
// Handle all messages from tributaries
// Handle all messages from processors
todo!()
}
}