ouroboros-network
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Network.PeerSelection.PeerSelectionActions

Synopsis

Documentation

withPeerSelectionActions Source #

Arguments

:: forall extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn resolver exception m a. (Alternative (STM m), MonadAsync m, MonadDelay m, MonadThrow m, Ord peeraddr, Exception exception, Eq extraFlags) 
=> Tracer m (TraceLocalRootPeers extraFlags peeraddr exception) 
-> StrictTVar m (Config extraFlags peeraddr) 
-> PeerActionsDNS peeraddr resolver exception m 
-> ((NumberOfPeers -> LedgerPeersKind -> m (Maybe (Set peeraddr, DiffTime))) -> PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m) 
-> WithLedgerPeersArgs extraAPI m 
-> ((Async m Void, Async m Void) -> PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m -> m a)

continuation, receives a handle to the local roots peer provider thread (only if local root peers were non-empty).

-> m a 

requestPeerSharingResult :: (MonadSTM m, MonadMVar m, Ord peeraddr) => STM m (Map peeraddr (PeerSharingController peeraddr m)) -> PeerSharingAmount -> peeraddr -> m (PeerSharingResult peeraddr) Source #

requestPublicRootPeers Source #

Arguments

:: forall m peeraddr extraPeers resolver exception. (MonadThrow m, MonadAsync m, Exception exception, Monoid extraPeers, Ord peeraddr) 
=> Tracer m TracePublicRootPeers 
-> STM m (Map RelayAccessPoint PeerAdvertise) 
-> PeerActionsDNS peeraddr resolver exception m 
-> DNSSemaphore m 
-> (Map peeraddr PeerAdvertise -> extraPeers)

Function to convert DNS result into extra peers

-> (NumberOfPeers -> LedgerPeersKind -> m (Maybe (Set peeraddr, DiffTime))) 
-> LedgerPeersKind 
-> Int 
-> m (PublicRootPeers extraPeers peeraddr, DiffTime) 

Retrieves public root peers

This function attempts to fetch ledger peers of a specified kind. If no ledger peers are found, it retrieves extra peers instead. The result includes the public root peers and the time taken for the operation.