Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Ouroboros.Network.PeerSelection.Churn
Description
This subsystem manages the discovery and selection of upstream peers.
Synopsis
- data PeerChurnArgs m peeraddr = PeerChurnArgs {
- pcaPeerSelectionTracer ∷ Tracer m (TracePeerSelection peeraddr)
- pcaChurnTracer ∷ Tracer m ChurnCounters
- pcaDeadlineInterval ∷ DiffTime
- pcaBulkInterval ∷ DiffTime
- pcaPeerRequestTimeout ∷ DiffTime
- pcaMetrics ∷ PeerMetrics m peeraddr
- pcaModeVar ∷ StrictTVar m ChurnMode
- pcaRng ∷ StdGen
- pcaReadFetchMode ∷ STM m FetchMode
- peerTargets ∷ ConsensusModePeerTargets
- pcaPeerSelectionVar ∷ StrictTVar m PeerSelectionTargets
- pcaReadCounters ∷ STM m PeerSelectionCounters
- pcaReadUseBootstrap ∷ STM m UseBootstrapPeers
- pcaConsensusMode ∷ ConsensusMode
- getLedgerStateCtx ∷ LedgerPeersConsensusInterface m
- getLocalRootHotTarget ∷ STM m HotValency
- data ChurnCounters = ChurnCounter ChurnAction Int
- peerChurnGovernor ∷ ∀ m peeraddr. (MonadDelay m, Alternative (STM m), MonadTimer m, MonadCatch m) ⇒ PeerChurnArgs m peeraddr → m Void
Documentation
data PeerChurnArgs m peeraddr Source #
Record of arguments for peer churn governor
Constructors
PeerChurnArgs | |
Fields
|
data ChurnCounters Source #
Constructors
ChurnCounter ChurnAction Int |
peerChurnGovernor ∷ ∀ m peeraddr. (MonadDelay m, Alternative (STM m), MonadTimer m, MonadCatch m) ⇒ PeerChurnArgs m 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.