Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Network.PeerSelection.Governor.Monitor
Description
This module contains governor decisions for monitoring tasks:
- monitoring local root peer config changes
- monitoring changes to the peer target numbers
- monitoring the completion of asynchronous governor job
- monitoring connections
Synopsis
- targetPeers :: forall (m :: Type -> Type) peeraddr extraState extraFlags extraPeers extraAPI extraCounters peerconn extraDebugState. (MonadSTM m, Ord peeraddr) => PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers peeraddr peerconn)
- jobs :: forall (m :: Type -> Type) extraState extraDebugState extraFlags extraPeers peeraddr peerconn. MonadSTM m => JobPool () m (Completion m extraState extraDebugState extraFlags extraPeers peeraddr peerconn) -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers peeraddr peerconn)
- jobVerifyPeerSnapshot :: forall (m :: Type -> Type) extraAPI extraState extraDebugState extraFlags extraPeers peeraddr peerconn. MonadSTM m => LedgerPeerSnapshot -> LedgerPeersConsensusInterface extraAPI m -> Job () m (Completion m extraState extraDebugState extraFlags extraPeers peeraddr peerconn)
- connections :: forall (m :: Type -> Type) extraState extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn. (MonadSTM m, Ord peeraddr) => PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers peeraddr peerconn)
- localRoots :: forall extraState extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn (m :: Type -> Type). (MonadSTM m, Ord peeraddr, Eq extraFlags) => PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers peeraddr peerconn)
- ledgerPeerSnapshotChange :: forall (m :: Type -> Type) extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn extraDebugState. MonadSTM m => (extraState -> extraState) -> PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers peeraddr peerconn)
Documentation
targetPeers :: forall (m :: Type -> Type) peeraddr extraState extraFlags extraPeers extraAPI extraCounters peerconn extraDebugState. (MonadSTM m, Ord peeraddr) => PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers peeraddr peerconn) Source #
Monitor PeerSelectionTargets
, if they change, we just need to update
PeerSelectionState
, since we return it in a Decision
action it will be
picked by the governor's peerSelectionGovernorLoop
.
jobs :: forall (m :: Type -> Type) extraState extraDebugState extraFlags extraPeers peeraddr peerconn. MonadSTM m => JobPool () m (Completion m extraState extraDebugState extraFlags extraPeers peeraddr peerconn) -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers peeraddr peerconn) Source #
jobVerifyPeerSnapshot :: forall (m :: Type -> Type) extraAPI extraState extraDebugState extraFlags extraPeers peeraddr peerconn. MonadSTM m => LedgerPeerSnapshot -> LedgerPeersConsensusInterface extraAPI m -> Job () m (Completion m extraState extraDebugState extraFlags extraPeers peeraddr peerconn) Source #
This job, which is initiated by monitorLedgerStateJudgement job, verifies whether the provided big ledger pools match up with the ledger state once the node catches up to the slot at which the snapshot was ostensibly taken
connections :: forall (m :: Type -> Type) extraState extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn. (MonadSTM m, Ord peeraddr) => PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers peeraddr peerconn) Source #
Monitor connections.
localRoots :: forall extraState extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn (m :: Type -> Type). (MonadSTM m, Ord peeraddr, Eq extraFlags) => PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers peeraddr peerconn) Source #
Monitor local roots using readLocalRootPeers
STM
action.
ledgerPeerSnapshotChange :: forall (m :: Type -> Type) extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn extraDebugState. MonadSTM m => (extraState -> extraState) -> PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers peeraddr peerconn) Source #
This job monitors for any changes in the big ledger peer snapshot
and flips ledger state judgement private state so that monitoring action
can launch jobVerifyPeerSnapshot