cardano-diffusion
Safe HaskellNone
LanguageHaskell2010

Cardano.Network.PeerSelection.Governor.Types

Synopsis

Documentation

cardanoPeerSelectionGovernorArgs :: forall (m :: Type -> Type) peeraddr extraDebugState peerconn. (MonadTimer m, Alternative (STM m), Ord peeraddr) => ExtraPeerSelectionActions m -> PeerSelectionGovernorArgs ExtraState extraDebugState PeerTrustable (ExtraPeers peeraddr) (LedgerPeersConsensusInterface m) peeraddr peerconn BootstrapPeersCriticalTimeoutError m Source #

readAssociationMode :: forall (m :: Type -> Type). MonadSTM m => STM m UseLedgerPeers -> PeerSharing -> UseBootstrapPeers -> STM m AssociationMode Source #

Classify if a node is in promiscuous mode.

A node is not in promiscuous mode only if: it doesn't use ledger peers, peer sharing, the set of bootstrap peers is empty.

class (Ord peeraddr, Show peeraddr, Eq (ViewExtraPeers extraPeers), Show extraPeers, Show (ToExtraTrace extraPeers)) => SupportsPeerSelectionState extraPeers peeraddr where #

Associated Types

data ToExtraTrace extraPeers #

data ViewExtraPeers extraPeers #

Peer selection view.

This is a functor which is used to hold computation of various peer sets and their sizes. See peerSelectionStateToView, peerSelectionStateToCounters.

Methods

publicExtraPeersAPI :: PublicExtraPeersAPI extraPeers peeraddr #

mkViewExtraPeers :: PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> ViewExtraPeers extraPeers #

Instances

Instances details
(Ord peeraddr, Show peeraddr) => SupportsPeerSelectionState (ExtraPeers peeraddr) peeraddr Source # 
Instance details

Defined in Cardano.Network.PeerSelection.ExtraRootPeers

Methods

publicExtraPeersAPI :: PublicExtraPeersAPI (ExtraPeers peeraddr) peeraddr #

mkViewExtraPeers :: PeerSelectionState extraState extraFlags (ExtraPeers peeraddr) peeraddr peerconn -> ViewExtraPeers (ExtraPeers peeraddr) #

(Ord peeraddr, Show peeraddr) => SupportsPeerSelectionState (NoExtraPeers peeraddr) peeraddr 
Instance details

Defined in Ouroboros.Network.Diffusion.Types

Associated Types

data ToExtraTrace (NoExtraPeers peeraddr) 
Instance details

Defined in Ouroboros.Network.Diffusion.Types

data ToExtraTrace (NoExtraPeers peeraddr)
data ViewExtraPeers (NoExtraPeers peeraddr) 
Instance details

Defined in Ouroboros.Network.Diffusion.Types

Methods

publicExtraPeersAPI :: PublicExtraPeersAPI (NoExtraPeers peeraddr) peeraddr #

mkViewExtraPeers :: PeerSelectionState extraState extraFlags (NoExtraPeers peeraddr) peeraddr peerconn -> ViewExtraPeers (NoExtraPeers peeraddr) #

newtype NumberOfBigLedgerPeers Source #

Minimum number of hot big ledger peers in Genesis mode for trusted state to be signalled to Consensus. This number should be smaller than the targetNumberOfActiveBigLedgerPeers but greater than 1. In Genesis, we may demote a big ledger peer for underperformance, but not promote a replacement immediately to guard against adversaries which may want to slow down our progress.