cardano-diffusion
Safe HaskellNone
LanguageHaskell2010

Cardano.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 extraTrace peeraddr #

Record of arguments for peer churn governor

Constructors

PeerChurnArgs 

Fields

data ChurnMode Source #

Instances

Instances details
Show ChurnMode Source # 
Instance details

Defined in Cardano.Network.PeerSelection.Churn

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.