Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Network.PeerSelection.Governor.ActivePeers
Synopsis
- belowTarget :: forall extraState extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn (m :: Type -> Type). (Alternative (STM m), MonadDelay m, MonadSTM m, Ord peeraddr, HasCallStack) => (extraState -> Bool) -> PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> MkGuardedDecision extraState extraDebugState extraFlags extraPeers peeraddr peerconn m
- aboveTarget :: forall extraState extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn (m :: Type -> Type). (Alternative (STM m), MonadTimer m, Ord peeraddr, HasCallStack) => PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> MkGuardedDecision extraState extraDebugState extraFlags extraPeers peeraddr peerconn m
- jobDemoteActivePeer :: forall extraState extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn (m :: Type -> Type). (MonadTimer m, Ord peeraddr) => PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> peeraddr -> peerconn -> Job () m (Completion m extraState extraDebugState extraFlags extraPeers peeraddr peerconn)
Documentation
Arguments
:: forall extraState extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn (m :: Type -> Type). (Alternative (STM m), MonadDelay m, MonadSTM m, Ord peeraddr, HasCallStack) | |
=> (extraState -> Bool) | This argument enables or disables this monitoring action based
on an This might be useful if the user requires its diffusion layer to stop making progress during a sensitive/vulnerable situation and quarantine it and make sure it is only connected to trusted peers. |
-> PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m | |
-> MkGuardedDecision extraState extraDebugState extraFlags extraPeers peeraddr peerconn m |
If we are below the target of hot peers we promote some of the /warm
peers/ according to policyPickWarmPeersToPromote
policy.
aboveTarget :: forall extraState extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn (m :: Type -> Type). (Alternative (STM m), MonadTimer m, Ord peeraddr, HasCallStack) => PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> MkGuardedDecision extraState extraDebugState extraFlags extraPeers peeraddr peerconn m Source #
If we are above the target of hot peers we demote some hot peers to be
warm peers, according to policyPickHotPeersToDemote
.
jobDemoteActivePeer :: forall extraState extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn (m :: Type -> Type). (MonadTimer m, Ord peeraddr) => PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> peeraddr -> peerconn -> Job () m (Completion m extraState extraDebugState extraFlags extraPeers peeraddr peerconn) Source #