ouroboros-network
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers

Synopsis

DNS based provider for local root peers

localRootPeersProvider Source #

Arguments

:: forall m peerAddr resolver exception. (Alternative (STM m), MonadAsync m, MonadDelay m, MonadThrow m, Ord peerAddr) 
=> Tracer m (TraceLocalRootPeers peerAddr exception) 
-> (IP -> PortNumber -> peerAddr) 
-> ResolvConf 
-> DNSActions resolver exception m 
-> STM m [(HotValency, WarmValency, Map RelayAccessPoint (PeerAdvertise, PeerTrustable))]

input

-> StrictTVar m [(HotValency, WarmValency, Map peerAddr (PeerAdvertise, PeerTrustable))]

output TVar

-> m Void 

Resolve RelayAddress-es of local root peers using dns if needed. Local roots are provided wrapped in a StrictTVar, which value might change (re-read form a config file). The resolved dns names are available through the output StrictTVar.

data TraceLocalRootPeers peerAddr exception Source #

Constructors

TraceLocalRootDomains (Config RelayAccessPoint)

Int is the configured valency for the local producer groups

TraceLocalRootWaiting DomainAccessPoint DiffTime 
TraceLocalRootResult DomainAccessPoint [(IP, TTL)] 
TraceLocalRootGroups (Config peerAddr)

This traces the results of the local root peer provider

TraceLocalRootDNSMap (Map DomainAccessPoint [peerAddr])

This traces the results of the domain name resolution

TraceLocalRootReconfigured 

Fields

TraceLocalRootFailure DomainAccessPoint (DNSorIOError exception) 
TraceLocalRootError DomainAccessPoint SomeException 

Instances

Instances details
(Show peerAddr, Show exception) => Show (TraceLocalRootPeers peerAddr exception) Source # 
Instance details

Defined in Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers

Methods

showsPrec :: Int -> TraceLocalRootPeers peerAddr exception -> ShowS #

show :: TraceLocalRootPeers peerAddr exception -> String #

showList :: [TraceLocalRootPeers peerAddr exception] -> ShowS #