From 7aa54d3f97a193931514e5585f92abeab36aa1f2 Mon Sep 17 00:00:00 2001 From: drsk Date: Wed, 16 Oct 2024 11:37:23 +0200 Subject: [PATCH] move missed rounds to Word16 instead Int16 --- .../src/Concordium/GlobalState/BlockState.hs | 3 +-- .../src/Concordium/GlobalState/Persistent/BlockState.hs | 3 +-- .../src/Concordium/GlobalState/PoolRewards.hs | 5 ++--- .../src/Concordium/KonsensusV1/Consensus/Blocks.hs | 4 ++-- concordium-consensus/src/Concordium/KonsensusV1/Scheduler.hs | 4 ++-- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/concordium-consensus/src/Concordium/GlobalState/BlockState.hs b/concordium-consensus/src/Concordium/GlobalState/BlockState.hs index 2408a96eae..050f19b8fe 100644 --- a/concordium-consensus/src/Concordium/GlobalState/BlockState.hs +++ b/concordium-consensus/src/Concordium/GlobalState/BlockState.hs @@ -48,7 +48,6 @@ import Control.Monad.Trans.Except import Control.Monad.Trans.Maybe import qualified Data.ByteString as BS import Data.Foldable (foldl') -import Data.Int import Data.Kind (Type) import qualified Data.Map as Map import qualified Data.Sequence as Seq @@ -1511,7 +1510,7 @@ class (BlockStateQuery m) => BlockStateOperations m where bsoIsProtocolUpdateEffective :: UpdatableBlockState m -> m Bool -- | Update the count of missed rounds for a given validator - bsoUpdateMissedBlocks :: (PVSupportsDelegation (MPV m)) => UpdatableBlockState m -> (BakerId, Int16) -> m (UpdatableBlockState m) + bsoUpdateMissedBlocks :: (PVSupportsDelegation (MPV m)) => UpdatableBlockState m -> (BakerId, Word16) -> m (UpdatableBlockState m) -- | Clear the missed round count for a given validator bsoClearMissedBlocks :: (PVSupportsDelegation (MPV m)) => UpdatableBlockState m -> BakerId -> m (UpdatableBlockState m) diff --git a/concordium-consensus/src/Concordium/GlobalState/Persistent/BlockState.hs b/concordium-consensus/src/Concordium/GlobalState/Persistent/BlockState.hs index ffce2e1af0..a31e411e0c 100644 --- a/concordium-consensus/src/Concordium/GlobalState/Persistent/BlockState.hs +++ b/concordium-consensus/src/Concordium/GlobalState/Persistent/BlockState.hs @@ -116,7 +116,6 @@ import qualified Control.Monad.State.Strict as MTL import qualified Control.Monad.Writer.Strict as MTL import Data.Bool.Singletons import Data.IORef -import Data.Int import Data.Kind (Type) import qualified Data.Map.Strict as Map import Data.Maybe @@ -3465,7 +3464,7 @@ doGetProtocolUpdateStatus = protocolUpdateStatus . bspUpdates <=< loadPBS doIsProtocolUpdateEffective :: (SupportsPersistentState pv m) => PersistentBlockState pv -> m Bool doIsProtocolUpdateEffective = isProtocolUpdateEffective . bspUpdates <=< loadPBS -doUpdateMissedBlocks :: (PVSupportsDelegation pv, SupportsPersistentState pv m) => PersistentBlockState pv -> (BakerId, Int16) -> m (PersistentBlockState pv) +doUpdateMissedBlocks :: (PVSupportsDelegation pv, SupportsPersistentState pv m) => PersistentBlockState pv -> (BakerId, Word16) -> m (PersistentBlockState pv) doUpdateMissedBlocks pbs (bId, newMissedRounds) = do bsp <- loadPBS pbs bsp' <- diff --git a/concordium-consensus/src/Concordium/GlobalState/PoolRewards.hs b/concordium-consensus/src/Concordium/GlobalState/PoolRewards.hs index e3d577c47d..d3f82b6958 100644 --- a/concordium-consensus/src/Concordium/GlobalState/PoolRewards.hs +++ b/concordium-consensus/src/Concordium/GlobalState/PoolRewards.hs @@ -5,7 +5,6 @@ module Concordium.GlobalState.PoolRewards where -import Data.Int import Data.Serialize import Data.Word @@ -24,7 +23,7 @@ data BakerPoolRewardDetails = BakerPoolRewardDetails -- | Whether the pool contributed to a finalization proof in the reward period finalizationAwake :: !Bool, -- | The number of missed rounds in the reward period - missedRounds :: !Int16 + missedRounds :: !Word16 } deriving (Eq, Show) @@ -34,7 +33,7 @@ instance Serialize BakerPoolRewardDetails where put transactionFeesAccrued putBool finalizationAwake - get = BakerPoolRewardDetails <$> getWord64be <*> get <*> getBool <*> getInt16be + get = BakerPoolRewardDetails <$> getWord64be <*> get <*> getBool <*> getWord16be instance HashableTo Hash.Hash BakerPoolRewardDetails where getHash = Hash.hash . encode diff --git a/concordium-consensus/src/Concordium/KonsensusV1/Consensus/Blocks.hs b/concordium-consensus/src/Concordium/KonsensusV1/Consensus/Blocks.hs index c97fda77a5..3aab652e29 100644 --- a/concordium-consensus/src/Concordium/KonsensusV1/Consensus/Blocks.hs +++ b/concordium-consensus/src/Concordium/KonsensusV1/Consensus/Blocks.hs @@ -16,7 +16,7 @@ import Control.Monad.Reader import Control.Monad.State import Control.Monad.Trans.Maybe import Data.Function -import Data.Int +import Data.Word import Data.Ord import Data.Time import Data.List (group) @@ -1386,7 +1386,7 @@ computeMissedRounds :: Option TimeoutCertificate -> BlockPointer (MPV m) -> Round -> - m [(BakerId, Int16)] + m [(BakerId, Word16)] computeMissedRounds tc _parent _rnd | isAbsent tc = return [] computeMissedRounds _tc parent rnd = do let parentBlockState = bpState parent diff --git a/concordium-consensus/src/Concordium/KonsensusV1/Scheduler.hs b/concordium-consensus/src/Concordium/KonsensusV1/Scheduler.hs index 9b088a31dd..ee067c10aa 100644 --- a/concordium-consensus/src/Concordium/KonsensusV1/Scheduler.hs +++ b/concordium-consensus/src/Concordium/KonsensusV1/Scheduler.hs @@ -8,7 +8,7 @@ module Concordium.KonsensusV1.Scheduler where import Control.Monad import Data.Bool.Singletons -import Data.Int +import Data.Word import qualified Data.Map as Map import Data.Time import Data.Maybe @@ -84,7 +84,7 @@ data BlockExecutionData (pv :: ProtocolVersion) = BlockExecutionData -- | Number of rounds a validator has missed (e.g. the validator was -- elected leader but a timeout certificate exist for the round) since the parent -- block. - bedMissedRounds :: [(BakerId, Int16)] + bedMissedRounds :: [(BakerId, Word16)] } -- | Details of the transactions in a block that are used for computing rewards that accrue to the