ouroboros-network-0.16.0.0: A networking layer for the Ouroboros blockchain protocol
Safe HaskellSafe-Inferred
LanguageHaskell2010

Ouroboros.Network.PeerSelection.PublicRootPeers

Synopsis

Types

data PublicRootPeers peeraddr Source #

Public Root Peers consist of either a set of manually configured bootstrap peers.

There's an implicit precedence that will priorise bootstrap peers over the other sets, so if we are adding a bootstrap peer and that peer is already a member of other public root set, it is going to be removed from that set and added to the bootstrap peer set.

Constructors

PublicRootPeers 

Fields

Instances

Instances details
Ord peeraddr ⇒ Monoid (PublicRootPeers peeraddr) Source # 
Instance details

Defined in Ouroboros.Network.PeerSelection.PublicRootPeers

Methods

memptyPublicRootPeers peeraddr #

mappendPublicRootPeers peeraddr → PublicRootPeers peeraddr → PublicRootPeers peeraddr #

mconcat ∷ [PublicRootPeers peeraddr] → PublicRootPeers peeraddr #

Ord peeraddr ⇒ Semigroup (PublicRootPeers peeraddr) Source # 
Instance details

Defined in Ouroboros.Network.PeerSelection.PublicRootPeers

Methods

(<>)PublicRootPeers peeraddr → PublicRootPeers peeraddr → PublicRootPeers peeraddr #

sconcatNonEmpty (PublicRootPeers peeraddr) → PublicRootPeers peeraddr #

stimesIntegral b ⇒ b → PublicRootPeers peeraddr → PublicRootPeers peeraddr #

Show peeraddr ⇒ Show (PublicRootPeers peeraddr) Source # 
Instance details

Defined in Ouroboros.Network.PeerSelection.PublicRootPeers

Methods

showsPrecIntPublicRootPeers peeraddr → ShowS #

showPublicRootPeers peeraddr → String #

showList ∷ [PublicRootPeers peeraddr] → ShowS #

Eq peeraddr ⇒ Eq (PublicRootPeers peeraddr) Source # 
Instance details

Defined in Ouroboros.Network.PeerSelection.PublicRootPeers

Methods

(==)PublicRootPeers peeraddr → PublicRootPeers peeraddr → Bool #

(/=)PublicRootPeers peeraddr → PublicRootPeers peeraddr → Bool #

invariantOrd peeraddr ⇒ PublicRootPeers peeraddr → Bool Source #

Basic operations

nullPublicRootPeers peeraddr → Bool Source #

sizePublicRootPeers peeraddr → Int Source #

memberOrd peeraddr ⇒ peeraddr → PublicRootPeers peeraddr → Bool Source #

mergeOrd peeraddr ⇒ PublicRootPeers peeraddr → PublicRootPeers peeraddr → PublicRootPeers peeraddr Source #

differenceOrd peeraddr ⇒ PublicRootPeers peeraddr → Set peeraddr → PublicRootPeers peeraddr Source #

intersectionOrd peeraddr ⇒ PublicRootPeers peeraddr → Set peeraddr → PublicRootPeers peeraddr Source #

toSetOrd peeraddr ⇒ PublicRootPeers peeraddr → Set peeraddr Source #

toAllLedgerPeerSetOrd peeraddr ⇒ PublicRootPeers peeraddr → Set peeraddr Source #

insertPublicConfigPeerOrd peeraddr ⇒ peeraddr → PeerAdvertisePublicRootPeers peeraddr → PublicRootPeers peeraddr Source #

insertBootstrapPeerOrd peeraddr ⇒ peeraddr → PublicRootPeers peeraddr → PublicRootPeers peeraddr Source #

insertLedgerPeerOrd peeraddr ⇒ peeraddr → PublicRootPeers peeraddr → PublicRootPeers peeraddr Source #

insertBigLedgerPeerOrd peeraddr ⇒ peeraddr → PublicRootPeers peeraddr → PublicRootPeers peeraddr Source #

fromBootstrapPeersSet peeraddr → PublicRootPeers peeraddr Source #

fromLedgerPeersSet peeraddr → PublicRootPeers peeraddr Source #

fromBigLedgerPeersSet peeraddr → PublicRootPeers peeraddr Source #

fromMapAndSet Source #

Arguments

Ord peeraddr 
Map peeraddr PeerAdvertise

public configured root peers

Set peeraddr

bootstrap peers

Set peeraddr

ledger peers

Set peeraddr

big ledger peers

PublicRootPeers peeraddr 

Preserves PublicRootPeers invariant. If the two sets are not disjoint, removes the common ones from the bootstrap peers set since its the most sensitive set.