From 9b8f2f4487253cb2778bb0041015ff1cdf58f1d0 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Mon, 24 Oct 2022 06:18:16 -0400 Subject: [PATCH] More misc bug fixes --- substrate/consensus/src/import_queue.rs | 3 ++- substrate/tendermint/src/lib.rs | 8 ++++---- substrate/tendermint/tests/ext.rs | 6 +++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/substrate/consensus/src/import_queue.rs b/substrate/consensus/src/import_queue.rs index a6a2b154..ef74bc6c 100644 --- a/substrate/consensus/src/import_queue.rs +++ b/substrate/consensus/src/import_queue.rs @@ -3,6 +3,7 @@ use std::{ sync::{Arc, RwLock}, task::{Poll, Context}, future::Future, + time::{UNIX_EPOCH, SystemTime}, }; use sp_core::Decode; @@ -126,7 +127,7 @@ where ) .map(|commit| commit.end_time) // TODO: Genesis start time - .unwrap_or(0), + .unwrap_or_else(|_| SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs()), ), import_clone .get_proposal(&import_clone.client.header(BlockId::Number(0u8.into())).unwrap().unwrap()) diff --git a/substrate/tendermint/src/lib.rs b/substrate/tendermint/src/lib.rs index 0a1ac8a8..657b0370 100644 --- a/substrate/tendermint/src/lib.rs +++ b/substrate/tendermint/src/lib.rs @@ -367,6 +367,10 @@ impl TendermintMachine { &mut self, msg: Message::Signature>, ) -> Result, TendermintError> { + if msg.number != self.number { + Err(TendermintError::Temporal)?; + } + // Verify the end time and signature if this is a precommit if let Data::Precommit(Some((id, sig))) = &msg.data { if !self.signer.verify( @@ -379,10 +383,6 @@ impl TendermintMachine { } } - if msg.number != self.number { - Err(TendermintError::Temporal)?; - } - // Only let the proposer propose if matches!(msg.data, Data::Proposal(..)) && (msg.sender != self.weights.proposer(msg.number, msg.round)) diff --git a/substrate/tendermint/tests/ext.rs b/substrate/tendermint/tests/ext.rs index 9361d8da..dc9f3ed5 100644 --- a/substrate/tendermint/tests/ext.rs +++ b/substrate/tendermint/tests/ext.rs @@ -1,6 +1,6 @@ use std::{ sync::Arc, - time::{SystemTime, Duration}, + time::{UNIX_EPOCH, SystemTime, Duration}, }; use parity_scale_codec::{Encode, Decode}; @@ -104,7 +104,7 @@ impl Network for TestNetwork { } } - async fn slash(&mut self, validator: TestValidatorId) { + async fn slash(&mut self, _: TestValidatorId) { dbg!("Slash"); todo!() } @@ -135,7 +135,7 @@ impl TestNetwork { write.push(TendermintMachine::new( TestNetwork(i, arc.clone()), i, - (BlockNumber(1), SystemTime::now()), + (BlockNumber(1), (SystemTime::now().duration_since(UNIX_EPOCH)).unwrap().as_secs()), TestBlock { id: 1u32.to_le_bytes(), valid: Ok(()) }, )); }