From e8e490de1e9dbafc09d83365a2e20c7578b254c3 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Sat, 22 Oct 2022 07:57:30 -0400 Subject: [PATCH] Add an assert to verify proposed children aren't best --- substrate/consensus/src/tendermint.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/substrate/consensus/src/tendermint.rs b/substrate/consensus/src/tendermint.rs index 037af327..711a9cfa 100644 --- a/substrate/consensus/src/tendermint.rs +++ b/substrate/consensus/src/tendermint.rs @@ -198,7 +198,6 @@ where Err(Error::InvalidJustification)?; } self.verify_justification(block.header.hash(), next.unwrap())?; - block.finalized = true; } } @@ -332,6 +331,7 @@ where async fn validate(&mut self, block: &B) -> Result<(), BlockError> { let hash = block.hash(); let (header, body) = block.clone().deconstruct(); + let parent = *header.parent_hash(); *self.importing_block.write().unwrap() = Some(hash); self.queue.write().await.as_mut().unwrap().import_blocks( // We do not want this block, which hasn't been confirmed, to be broadcast over the net @@ -353,11 +353,12 @@ where }], ); - if ImportFuture::new(hash, self.queue.write().await.as_mut().unwrap()).await { - Ok(()) - } else { + if !ImportFuture::new(hash, self.queue.write().await.as_mut().unwrap()).await { todo!() } + assert_eq!(self.client.info().best_hash, parent); + + Ok(()) } async fn add_block(&mut self, block: B, commit: Commit) -> B {