| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Ouroboros.Network.PeerSelection.PeerSelectionActions
Synopsis
- data PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn (m :: Type -> Type) = PeerSelectionActions PeerSelectionTargets (STM m PeerSelectionTargets) (STM m (Config extraFlags RelayAccessPoint)) (STM m (Config extraFlags peeraddr)) (m (Map peeraddr PeerSharing)) PeerSharing (peerconn -> PeerSharing) (PublicExtraPeersAPI extraPeers peeraddr) (PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> extraCounters) (LedgerPeersKind -> StdGen -> Int -> m (PublicRootPeers extraPeers peeraddr, DiffTime)) (PeerSharingAmount -> peeraddr -> m (PeerSharingResult peeraddr)) (PeerStateActions peeraddr peerconn m) (LedgerPeersConsensusInterface extraAPI m) (STM m (Maybe LedgerPeerSnapshot))
- withPeerSelectionActions :: forall extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn resolver m a. (Alternative (STM m), MonadAsync m, MonadDelay m, MonadThrow m, Ord peeraddr, Eq extraFlags) => Tracer m (TraceLocalRootPeers extraFlags peeraddr) -> StrictTVar m (Config extraFlags peeraddr) -> PeerActionsDNS peeraddr resolver m -> ((NumberOfPeers -> LedgerPeersKind -> m (Maybe (Set peeraddr, DiffTime))) -> PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m) -> WithLedgerPeersArgs extraAPI m -> StdGen -> ((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)
- requestPublicRootPeersImpl :: forall m peeraddr extraPeers resolver. (MonadThrow m, MonadAsync m, Monoid extraPeers, Ord peeraddr) => Tracer m TracePublicRootPeers -> STM m (Map RelayAccessPoint PeerAdvertise) -> PeerActionsDNS peeraddr resolver m -> DNSSemaphore m -> (Map peeraddr PeerAdvertise -> extraPeers) -> (NumberOfPeers -> LedgerPeersKind -> m (Maybe (Set peeraddr, DiffTime))) -> LedgerPeersKind -> StdGen -> Int -> m (PublicRootPeers extraPeers peeraddr, DiffTime)
Documentation
data PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn (m :: Type -> Type) Source #
Constructors
| PeerSelectionActions PeerSelectionTargets (STM m PeerSelectionTargets) (STM m (Config extraFlags RelayAccessPoint)) (STM m (Config extraFlags peeraddr)) (m (Map peeraddr PeerSharing)) PeerSharing (peerconn -> PeerSharing) (PublicExtraPeersAPI extraPeers peeraddr) (PeerSelectionState extraState extraFlags extraPeers peeraddr peerconn -> extraCounters) (LedgerPeersKind -> StdGen -> Int -> m (PublicRootPeers extraPeers peeraddr, DiffTime)) (PeerSharingAmount -> peeraddr -> m (PeerSharingResult peeraddr)) (PeerStateActions peeraddr peerconn m) (LedgerPeersConsensusInterface extraAPI m) (STM m (Maybe LedgerPeerSnapshot)) |
withPeerSelectionActions Source #
Arguments
| :: forall extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn resolver m a. (Alternative (STM m), MonadAsync m, MonadDelay m, MonadThrow m, Ord peeraddr, Eq extraFlags) | |
| => Tracer m (TraceLocalRootPeers extraFlags peeraddr) | |
| -> StrictTVar m (Config extraFlags peeraddr) | |
| -> PeerActionsDNS peeraddr resolver m | |
| -> ((NumberOfPeers -> LedgerPeersKind -> m (Maybe (Set peeraddr, DiffTime))) -> PeerSelectionActions extraState extraFlags extraPeers extraAPI extraCounters peeraddr peerconn m) | construct PeerSelectionActions given a function which obtains ledger
peers that is supplied by |
| -> WithLedgerPeersArgs extraAPI m | |
| -> StdGen | |
| -> ((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 #
requestPublicRootPeersImpl Source #
Arguments
| :: forall m peeraddr extraPeers resolver. (MonadThrow m, MonadAsync m, Monoid extraPeers, Ord peeraddr) | |
| => Tracer m TracePublicRootPeers | |
| -> STM m (Map RelayAccessPoint PeerAdvertise) | |
| -> PeerActionsDNS peeraddr resolver m | |
| -> DNSSemaphore m | |
| -> (Map peeraddr PeerAdvertise -> extraPeers) | Function to convert DNS result into extra peers |
| -> (NumberOfPeers -> LedgerPeersKind -> m (Maybe (Set peeraddr, DiffTime))) | |
| -> LedgerPeersKind | |
| -> StdGen | |
| -> 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.