From 8d3efd6259bb05c171b545a47b5526b623b3060b Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Sun, 30 Oct 2022 01:22:11 -0400 Subject: [PATCH] Correct Substrate Tendermint start block The Tendermint machine uses the passed in number as the block's being worked on number. Substrate passed in the already finalized block's number. Also updates misc comments. --- substrate/tendermint/client/src/import_queue.rs | 5 +++-- substrate/tendermint/client/src/validators.rs | 4 ++-- substrate/tendermint/machine/src/lib.rs | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/substrate/tendermint/client/src/import_queue.rs b/substrate/tendermint/client/src/import_queue.rs index cf641d6a..14256978 100644 --- a/substrate/tendermint/client/src/import_queue.rs +++ b/substrate/tendermint/client/src/import_queue.rs @@ -1,4 +1,5 @@ use std::{ + convert::TryInto, pin::Pin, sync::{Arc, RwLock}, task::{Poll, Context}, @@ -115,8 +116,8 @@ where 0, ( // Header::Number: TryInto doesn't implement Debug and can't be unwrapped - match best.try_into() { - Ok(best) => BlockNumber(best), + match TryInto::::try_into(best) { + Ok(best) => BlockNumber(best + 1), Err(_) => panic!("BlockNumber exceeded u64"), }, Commit::>::decode( diff --git a/substrate/tendermint/client/src/validators.rs b/substrate/tendermint/client/src/validators.rs index 189805b7..45511aac 100644 --- a/substrate/tendermint/client/src/validators.rs +++ b/substrate/tendermint/client/src/validators.rs @@ -24,8 +24,8 @@ struct TendermintValidatorsStruct { total_weight: u64, weights: Vec, - keys: Pair, // TODO: sp_keystore - lookup: Vec, // TODO: sessions + keys: Pair, // TODO: sp_keystore + lookup: Vec, } impl TendermintValidatorsStruct { diff --git a/substrate/tendermint/machine/src/lib.rs b/substrate/tendermint/machine/src/lib.rs index a2134cd9..7fb02bf6 100644 --- a/substrate/tendermint/machine/src/lib.rs +++ b/substrate/tendermint/machine/src/lib.rs @@ -157,7 +157,7 @@ impl TendermintMachine { fn timeout(&self, step: Step) -> Instant { let mut round_time = Duration::from_secs(N::BLOCK_TIME.into()); round_time *= self.round.0 + 1; - let step_time = round_time / 3; + let step_time = round_time / 3; // TODO: Non-uniform timeouts let offset = match step { Step::Propose => step_time,