| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Cardano.Network.PeerSelection.Churn
Description
This subsystem manages the discovery and selection of upstream peers.
Synopsis
- data PeerChurnArgs (m :: Type -> Type) extraArgs extraDebugState extraFlags extraPeers extraAPI extraCounters extraTrace peeraddr = PeerChurnArgs {
- pcaPeerSelectionTracer :: Tracer m (TracePeerSelection extraDebugState extraFlags extraPeers extraTrace peeraddr)
- pcaChurnTracer :: Tracer m ChurnCounters
- pcaDeadlineInterval :: DiffTime
- pcaBulkInterval :: DiffTime
- pcaPeerRequestTimeout :: DiffTime
- pcaRng :: StdGen
- pcaPeerSelectionVar :: StrictTVar m PeerSelectionTargets
- pcaReadCounters :: STM m (PeerSelectionCounters extraCounters)
- getLedgerPeersAPI :: LedgerPeersConsensusInterface extraAPI m
- getLocalRootHotTarget :: STM m HotValency
- pcaPeerSelectionTargets :: PeerSelectionTargets
- getExtraArgs :: extraArgs
- data ChurnMode
- newtype TraceChurnMode = TraceChurnMode ChurnMode
- data ExtraArguments (m :: Type -> Type) = ExtraArguments {}
- peerChurnGovernor :: forall m extraState extraFlags extraCounters extraPeers peeraddr. (MonadDelay m, Alternative (STM m), MonadTimer m, MonadCatch m) => PeerChurnArgs m (ExtraArguments m) extraState extraFlags extraPeers (LedgerPeersConsensusInterface m) extraCounters ExtraTrace peeraddr -> m Void
Documentation
data PeerChurnArgs (m :: Type -> Type) extraArgs extraDebugState extraFlags extraPeers extraAPI extraCounters extraTrace peeraddr #
Record of arguments for peer churn governor
Constructors
| PeerChurnArgs | |
Fields
| |
Constructors
| ChurnModeBulkSync | |
| ChurnModeNormal |
newtype TraceChurnMode Source #
Constructors
| TraceChurnMode ChurnMode |
Instances
| Show TraceChurnMode Source # | |
Defined in Cardano.Network.PeerSelection.Churn Methods showsPrec :: Int -> TraceChurnMode -> ShowS # show :: TraceChurnMode -> String # showList :: [TraceChurnMode] -> ShowS # | |
data ExtraArguments (m :: Type -> Type) Source #
Cardano Churn Extra Arguments
Constructors
| ExtraArguments | |
Fields
| |
peerChurnGovernor :: forall m extraState extraFlags extraCounters extraPeers peeraddr. (MonadDelay m, Alternative (STM m), MonadTimer m, MonadCatch m) => PeerChurnArgs m (ExtraArguments m) extraState extraFlags extraPeers (LedgerPeersConsensusInterface m) extraCounters ExtraTrace peeraddr -> m Void Source #
Churn governor.
At every churn interval decrease active peers for a short while (1s), so that we can pick new ones. Then we churn non-active peers.
On startup the churn governor gives a head start to local root peers over root peers.