ouroboros-network
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Network.PeerSelection.Churn

Description

This subsystem manages the discovery and selection of upstream peers.

Synopsis

Documentation

data PeerChurnArgs (m :: Type -> Type) extraArgs extraDebugState extraFlags extraPeers extraAPI extraCounters peeraddr Source #

Record of arguments for peer churn governor

Constructors

PeerChurnArgs 

Fields

type ModifyPeerSelectionTargets = PeerSelectionTargets -> PeerSelectionTargets Source #

Facilitates composing updates to various targets via back-to-back pipeline

peerChurnGovernor :: (MonadDelay m, Alternative (STM m), MonadTimer m, MonadCatch m) => PeerChurnArgs m extraArgs extraDebugState extraFlags extraPeers extraAPI extraCounters 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.