Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Network.Diffusion.P2P
Description
This module is expected to be imported qualified (it will clash with the Ouroboros.Network.Diffusion.NonP2P).
Synopsis
- data TracersExtra ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData resolverError m = TracersExtra {
- dtTraceLocalRootPeersTracer ∷ Tracer m (TraceLocalRootPeers ntnAddr resolverError)
- dtTracePublicRootPeersTracer ∷ Tracer m TracePublicRootPeers
- dtTracePeerSelectionTracer ∷ Tracer m (TracePeerSelection ntnAddr)
- dtDebugPeerSelectionInitiatorTracer ∷ Tracer m (DebugPeerSelection ntnAddr (PeerConnectionHandle InitiatorMode ntnAddr ByteString m () Void))
- dtDebugPeerSelectionInitiatorResponderTracer ∷ Tracer m (DebugPeerSelection ntnAddr (PeerConnectionHandle InitiatorResponderMode ntnAddr ByteString m () ()))
- dtTracePeerSelectionCounters ∷ Tracer m PeerSelectionCounters
- dtPeerSelectionActionsTracer ∷ Tracer m (PeerSelectionActionsTrace ntnAddr)
- dtConnectionManagerTracer ∷ Tracer m (ConnectionManagerTrace ntnAddr (ConnectionHandlerTrace ntnVersion ntnVersionData))
- dtConnectionManagerTransitionTracer ∷ Tracer m (AbstractTransitionTrace ntnAddr)
- dtServerTracer ∷ Tracer m (ServerTrace ntnAddr)
- dtInboundGovernorTracer ∷ Tracer m (InboundGovernorTrace ntnAddr)
- dtInboundGovernorTransitionTracer ∷ Tracer m (RemoteTransitionTrace ntnAddr)
- dtLocalConnectionManagerTracer ∷ Tracer m (ConnectionManagerTrace ntcAddr (ConnectionHandlerTrace ntcVersion ntcVersionData))
- dtLocalServerTracer ∷ Tracer m (ServerTrace ntcAddr)
- dtLocalInboundGovernorTracer ∷ Tracer m (InboundGovernorTrace ntcAddr)
- nullTracers ∷ Applicative m ⇒ TracersExtra ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData resolverError m
- data ArgumentsExtra m = ArgumentsExtra {}
- data AcceptedConnectionsLimit = AcceptedConnectionsLimit {}
- data ApplicationsExtra ntnAddr m = ApplicationsExtra {
- daRethrowPolicy ∷ RethrowPolicy
- daLocalRethrowPolicy ∷ RethrowPolicy
- daPeerMetrics ∷ PeerMetrics m ntnAddr
- daBlockFetchMode ∷ STM m FetchMode
- run ∷ Tracers RemoteAddress NodeToNodeVersion LocalAddress NodeToClientVersion IO → TracersExtra RemoteAddress NodeToNodeVersion NodeToNodeVersionData LocalAddress NodeToClientVersion NodeToClientVersionData IOException IO → Arguments Socket RemoteAddress LocalSocket LocalAddress → ArgumentsExtra IO → Applications RemoteAddress NodeToNodeVersion NodeToNodeVersionData LocalAddress NodeToClientVersion NodeToClientVersionData IO → ApplicationsExtra RemoteAddress IO → IO Void
- data Interfaces ntnFd ntnAddr ntnVersion ntnVersionData ntcFd ntcAddr ntcVersion ntcVersionData resolver resolverError m = Interfaces {
- diNtnSnocket ∷ Snocket m ntnFd ntnAddr
- diNtnHandshakeArguments ∷ HandshakeArguments (ConnectionId ntnAddr) ntnVersion ntnVersionData m
- diNtnAddressType ∷ ntnAddr → Maybe AddressType
- diNtnDataFlow ∷ ntnVersion → ntnVersionData → DataFlow
- diNtnToPeerAddr ∷ IP → PortNumber → ntnAddr
- diNtnDomainResolver ∷ LookupReqs → [DomainAccessPoint] → m (Map DomainAccessPoint (Set ntnAddr))
- diNtcSnocket ∷ Snocket m ntcFd ntcAddr
- diNtcHandshakeArguments ∷ HandshakeArguments (ConnectionId ntcAddr) ntcVersion ntcVersionData m
- diNtcGetFileDescriptor ∷ ntcFd → m FileDescriptor
- diRng ∷ StdGen
- diInstallSigUSR1Handler ∷ ∀ mode x. NodeToNodeConnectionManager mode ntnFd ntnAddr ntnVersion m x → m ()
- diDnsActions ∷ LookupReqs → DNSActions resolver resolverError m
- runM ∷ ∀ m ntnFd ntnAddr ntnVersion ntnVersionData ntcFd ntcAddr ntcVersion ntcVersionData resolver resolverError. (MonadAsync m, MonadEvaluate m, MonadFix m, MonadFork m, MonadLabelledSTM m, MonadTraceSTM m, MonadMask m, MonadThrow (STM m), MonadTime m, MonadTimer m, Eq (Async m Void), Typeable ntnAddr, Ord ntnAddr, Show ntnAddr, Typeable ntnVersion, Ord ntnVersion, Show ntnVersion, Typeable ntcAddr, Ord ntcAddr, Show ntcAddr, Ord ntcVersion, Exception resolverError) ⇒ Interfaces ntnFd ntnAddr ntnVersion ntnVersionData ntcFd ntcAddr ntcVersion ntcVersionData resolver resolverError m → Tracers ntnAddr ntnVersion ntcAddr ntcVersion m → TracersExtra ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData resolverError m → Arguments ntnFd ntnAddr ntcFd ntcAddr → ArgumentsExtra m → Applications ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData m → ApplicationsExtra ntnAddr m → m Void
- type NodeToNodePeerConnectionHandle (mode ∷ MuxMode) ntnAddr m a = PeerConnectionHandle mode ntnAddr ByteString m () a
- type AbstractTransitionTrace peerAddr = TransitionTrace' peerAddr AbstractState
- type RemoteTransitionTrace peerAddr = TransitionTrace' peerAddr (Maybe RemoteSt)
Documentation
data TracersExtra ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData resolverError m Source #
P2P DiffusionTracers Extras
Constructors
nullTracers ∷ Applicative m ⇒ TracersExtra ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData resolverError m Source #
data ArgumentsExtra m Source #
P2P Arguments Extras
Constructors
ArgumentsExtra | |
Fields
|
data AcceptedConnectionsLimit Source #
Policy which governs how to limit the number of accepted connections.
Constructors
AcceptedConnectionsLimit | |
Fields
|
Instances
data ApplicationsExtra ntnAddr m Source #
P2P Applications Extras
TODO: we need initiator only mode for Deadalus, there's no reason why it should run a node-to-node server side.
Constructors
ApplicationsExtra | |
Fields
|
run ∷ Tracers RemoteAddress NodeToNodeVersion LocalAddress NodeToClientVersion IO → TracersExtra RemoteAddress NodeToNodeVersion NodeToNodeVersionData LocalAddress NodeToClientVersion NodeToClientVersionData IOException IO → Arguments Socket RemoteAddress LocalSocket LocalAddress → ArgumentsExtra IO → Applications RemoteAddress NodeToNodeVersion NodeToNodeVersionData LocalAddress NodeToClientVersion NodeToClientVersionData IO → ApplicationsExtra RemoteAddress IO → IO Void Source #
Main entry point for data diffusion service. It allows to:
- connect to upstream peers;
- accept connection from downstream peers, if run in
InitiatorAndResponderDiffusionMode
. - runs a local service which allows to use node-to-client protocol to obtain information from the running system. This is used by 'cardano-cli' or a wallet and a like local services.
data Interfaces ntnFd ntnAddr ntnVersion ntnVersionData ntcFd ntcAddr ntcVersion ntcVersionData resolver resolverError m Source #
Constructors
Interfaces | |
Fields
|
Arguments
∷ ∀ m ntnFd ntnAddr ntnVersion ntnVersionData ntcFd ntcAddr ntcVersion ntcVersionData resolver resolverError. (MonadAsync m, MonadEvaluate m, MonadFix m, MonadFork m, MonadLabelledSTM m, MonadTraceSTM m, MonadMask m, MonadThrow (STM m), MonadTime m, MonadTimer m, Eq (Async m Void), Typeable ntnAddr, Ord ntnAddr, Show ntnAddr, Typeable ntnVersion, Ord ntnVersion, Show ntnVersion, Typeable ntcAddr, Ord ntcAddr, Show ntcAddr, Ord ntcVersion, Exception resolverError) | |
⇒ Interfaces ntnFd ntnAddr ntnVersion ntnVersionData ntcFd ntcAddr ntcVersion ntcVersionData resolver resolverError m | interfaces |
→ Tracers ntnAddr ntnVersion ntcAddr ntcVersion m | tracers |
→ TracersExtra ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData resolverError m | p2p tracers |
→ Arguments ntnFd ntnAddr ntcFd ntcAddr | configuration |
→ ArgumentsExtra m | p2p configuration |
→ Applications ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData m | protocol handlers |
→ ApplicationsExtra ntnAddr m | p2p protocol handlers |
→ m Void |
type NodeToNodePeerConnectionHandle (mode ∷ MuxMode) ntnAddr m a = PeerConnectionHandle mode ntnAddr ByteString m () a Source #
type AbstractTransitionTrace peerAddr = TransitionTrace' peerAddr AbstractState Source #
type RemoteTransitionTrace peerAddr = TransitionTrace' peerAddr (Maybe RemoteSt) Source #