| 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 extraTrace. (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 extraTrace peeraddr peerconn)
- jobs :: forall (m :: Type -> Type) extraState extraDebugState extraFlags extraPeers extraTrace peeraddr peerconn. MonadSTM m => JobPool () m (Completion m extraState extraDebugState extraFlags extraPeers extraTrace peeraddr peerconn) -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers extraTrace peeraddr peerconn)
- jobVerifyPeerSnapshot :: forall (m :: Type -> Type) extraAPI extraState extraDebugState extraFlags extraPeers extraTrace peeraddr peerconn. MonadSTM m => SRVPrefix -> LedgerPeerSnapshot -> LedgerPeersConsensusInterface extraAPI m -> Job () m (Completion m extraState extraDebugState extraFlags extraPeers extraTrace peeraddr peerconn)
- connections :: forall (m :: Type -> Type) extraState extraDebugState extraFlags extraPeers extraAPI extraCounters extraTrace 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 extraTrace peeraddr peerconn)
- localRoots :: forall extraState extraDebugState extraFlags extraPeers extraAPI extraCounters extraTrace peeraddr peerconn (m :: Type -> Type). (MonadTimer 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 extraTrace peeraddr peerconn)
- ledgerPeerSnapshotChange :: forall (m :: Type -> Type) extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn extraDebugState extraTrace. 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 extraTrace peeraddr peerconn)
Documentation
targetPeers :: forall (m :: Type -> Type) peeraddr extraState extraFlags extraPeers extraAPI extraCounters peerconn extraDebugState extraTrace. (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 extraTrace 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 extraTrace peeraddr peerconn. MonadSTM m => JobPool () m (Completion m extraState extraDebugState extraFlags extraPeers extraTrace peeraddr peerconn) -> PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> Guarded (STM m) (TimedDecision m extraState extraDebugState extraFlags extraPeers extraTrace peeraddr peerconn) Source #
jobVerifyPeerSnapshot :: forall (m :: Type -> Type) extraAPI extraState extraDebugState extraFlags extraPeers extraTrace peeraddr peerconn. MonadSTM m => SRVPrefix -> LedgerPeerSnapshot -> LedgerPeersConsensusInterface extraAPI m -> Job () m (Completion m extraState extraDebugState extraFlags extraPeers extraTrace 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 extraTrace 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 extraTrace peeraddr peerconn) Source #
Monitor connections.
localRoots :: forall extraState extraDebugState extraFlags extraPeers extraAPI extraCounters extraTrace peeraddr peerconn (m :: Type -> Type). (MonadTimer 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 extraTrace peeraddr peerconn) Source #
Monitor local roots using readLocalRootPeers STM action.
ledgerPeerSnapshotChange :: forall (m :: Type -> Type) extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn extraDebugState extraTrace. 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 extraTrace 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