| 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)
- 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 -> PeerSelectionPolicy peeraddr 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 #
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 -> PeerSelectionPolicy peeraddr 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