Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Network.PeerSelection.PeerSelectionActions
Synopsis
- withPeerSelectionActions :: 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) -> m a
- requestPeerSharingResult :: (MonadSTM m, MonadMVar m, Ord peeraddr) => STM m (Map peeraddr (PeerSharingController peeraddr m)) -> PeerSharingAmount -> peeraddr -> m (PeerSharingResult peeraddr)
- requestPublicRootPeers :: 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) -> (NumberOfPeers -> LedgerPeersKind -> m (Maybe (Set peeraddr, DiffTime))) -> LedgerPeersKind -> Int -> m (PublicRootPeers extraPeers peeraddr, DiffTime)
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.