module Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState where
import Cardano.Network.ConsensusMode (ConsensusMode)
import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers (..))
import Cardano.Network.Types (LedgerStateJudgement (..),
NumberOfBigLedgerPeers (..))
import Control.Monad.Class.MonadTime.SI (Time (..))
data =
{
ExtraState -> LedgerStateJudgement
ledgerStateJudgement :: !LedgerStateJudgement
, ExtraState -> ConsensusMode
consensusMode :: !ConsensusMode
, ExtraState -> UseBootstrapPeers
bootstrapPeersFlag :: !UseBootstrapPeers
, ExtraState -> Bool
hasOnlyBootstrapPeers :: !Bool
, ExtraState -> Maybe Time
bootstrapPeersTimeout :: !(Maybe Time)
, ExtraState -> NumberOfBigLedgerPeers
minNumberOfBigLedgerPeers :: NumberOfBigLedgerPeers
}
deriving (ExtraState -> ExtraState -> Bool
(ExtraState -> ExtraState -> Bool)
-> (ExtraState -> ExtraState -> Bool) -> Eq ExtraState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ExtraState -> ExtraState -> Bool
== :: ExtraState -> ExtraState -> Bool
$c/= :: ExtraState -> ExtraState -> Bool
/= :: ExtraState -> ExtraState -> Bool
Eq, Int -> ExtraState -> ShowS
[ExtraState] -> ShowS
ExtraState -> String
(Int -> ExtraState -> ShowS)
-> (ExtraState -> String)
-> ([ExtraState] -> ShowS)
-> Show ExtraState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ExtraState -> ShowS
showsPrec :: Int -> ExtraState -> ShowS
$cshow :: ExtraState -> String
show :: ExtraState -> String
$cshowList :: [ExtraState] -> ShowS
showList :: [ExtraState] -> ShowS
Show)
empty :: ConsensusMode -> NumberOfBigLedgerPeers -> ExtraState
empty :: ConsensusMode -> NumberOfBigLedgerPeers -> ExtraState
empty ConsensusMode
cm NumberOfBigLedgerPeers
minActiveBigLedgerPeers =
ExtraState {
ledgerStateJudgement :: LedgerStateJudgement
ledgerStateJudgement = LedgerStateJudgement
TooOld,
consensusMode :: ConsensusMode
consensusMode = ConsensusMode
cm,
bootstrapPeersFlag :: UseBootstrapPeers
bootstrapPeersFlag = UseBootstrapPeers
DontUseBootstrapPeers,
hasOnlyBootstrapPeers :: Bool
hasOnlyBootstrapPeers = Bool
False,
bootstrapPeersTimeout :: Maybe Time
bootstrapPeersTimeout = Maybe Time
forall a. Maybe a
Nothing,
minNumberOfBigLedgerPeers :: NumberOfBigLedgerPeers
minNumberOfBigLedgerPeers = NumberOfBigLedgerPeers
minActiveBigLedgerPeers
}
data DebugPeerSelectionState =
DebugPeerSelectionState {
DebugPeerSelectionState -> LedgerStateJudgement
debugLedgerStateJudgement :: !LedgerStateJudgement
}
deriving Int -> DebugPeerSelectionState -> ShowS
[DebugPeerSelectionState] -> ShowS
DebugPeerSelectionState -> String
(Int -> DebugPeerSelectionState -> ShowS)
-> (DebugPeerSelectionState -> String)
-> ([DebugPeerSelectionState] -> ShowS)
-> Show DebugPeerSelectionState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DebugPeerSelectionState -> ShowS
showsPrec :: Int -> DebugPeerSelectionState -> ShowS
$cshow :: DebugPeerSelectionState -> String
show :: DebugPeerSelectionState -> String
$cshowList :: [DebugPeerSelectionState] -> ShowS
showList :: [DebugPeerSelectionState] -> ShowS
Show