cardano-diffusion
Safe HaskellNone
LanguageHaskell2010

Cardano.Network.PeerSelection.Governor.Types

Synopsis

Documentation

data ExtraPeerSelectionSetsWithSizes peeraddr Source #

Peer selection view.

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

cardanoPeerSelectionStatetoCounters :: Ord peeraddr => PeerSelectionState extraState extraFlags (ExtraPeers peeraddr) peeraddr peerconn -> ExtraPeerSelectionSetsWithSizes peeraddr Source #

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) (ExtraPeerSelectionSetsWithSizes peeraddr) ExtraTrace 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.

data ExtraTrace Source #

Extra trace points for TracePeerSelection.

TODO: it ought to be moved to Types, but that introduces a circular dependency.

Instances

Instances details
Show ExtraTrace Source # 
Instance details

Defined in Cardano.Network.PeerSelection.Governor.Monitor

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.