Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Ouroboros.Network.Diffusion
Synopsis
- data P2P
- data DiffusionTracer ntnAddr ntcAddr
- = RunServer (NonEmpty ntnAddr)
- | RunLocalServer ntcAddr
- | UsingSystemdSocket ntcAddr
- | CreateSystemdSocketForSnocketPath ntcAddr
- | CreatedLocalSocket ntcAddr
- | ConfiguringLocalSocket ntcAddr FileDescriptor
- | ListeningLocalSocket ntcAddr FileDescriptor
- | LocalSocketUp ntcAddr FileDescriptor
- | CreatingServerSocket ntnAddr
- | ConfiguringServerSocket ntnAddr
- | ListeningServerSocket ntnAddr
- | ServerSocketUp ntnAddr
- | UnsupportedLocalSystemdSocket ntnAddr
- | UnsupportedReadySocketCase
- | DiffusionErrored SomeException
- | SystemdSocketConfiguration SystemdSocketTracer
- data Tracers ntnAddr ntnVersion ntcAddr ntcVersion m = Tracers {
- dtMuxTracer :: Tracer m (WithMuxBearer (ConnectionId ntnAddr) MuxTrace)
- dtHandshakeTracer :: Tracer m (HandshakeTr ntnAddr ntnVersion)
- dtLocalMuxTracer :: Tracer m (WithMuxBearer (ConnectionId ntcAddr) MuxTrace)
- dtLocalHandshakeTracer :: Tracer m (HandshakeTr ntcAddr ntcVersion)
- dtDiffusionTracer :: Tracer m (DiffusionTracer ntnAddr ntcAddr)
- nullTracers :: Applicative m => Tracers ntnAddr ntnVersion ntcAddr ntcVersion m
- data ExtraTracers (p2p :: P2P) where
- data Failure where
- UnsupportedReadySocket :: Failure
- UnexpectedIPv4Address :: forall ntnAddr. (Show ntnAddr, Typeable ntnAddr) => ntnAddr -> Failure
- UnexpectedIPv6Address :: forall ntnAddr. (Show ntnAddr, Typeable ntnAddr) => ntnAddr -> Failure
- NoSocket :: Failure
- DiffusionError :: SomeException -> Failure
- data Arguments ntnFd ntnAddr ntcFd ntcAddr = Arguments {
- daIPv4Address :: Maybe (Either ntnFd ntnAddr)
- daIPv6Address :: Maybe (Either ntnFd ntnAddr)
- daLocalAddress :: Maybe (Either ntcFd ntcAddr)
- daAcceptedConnectionsLimit :: AcceptedConnectionsLimit
- daMode :: DiffusionMode
- data ExtraArguments (p2p :: P2P) m where
- P2PArguments :: ArgumentsExtra m -> ExtraArguments 'P2P m
- NonP2PArguments :: ArgumentsExtra -> ExtraArguments 'NonP2P m
- data Applications ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData m a = Applications {
- daApplicationInitiatorMode :: Versions ntnVersion ntnVersionData (OuroborosBundleWithExpandedCtx InitiatorMode ntnAddr ByteString m a Void)
- daApplicationInitiatorResponderMode :: (PeerSharingAmount -> m [ntnAddr]) -> Versions ntnVersion ntnVersionData (OuroborosBundleWithExpandedCtx InitiatorResponderMode ntnAddr ByteString m a ())
- daLocalResponderApplication :: Versions ntcVersion ntcVersionData (OuroborosApplicationWithMinimalCtx ResponderMode ntcAddr ByteString m Void ())
- daLedgerPeersCtx :: LedgerPeersConsensusInterface m
- data ExtraApplications (p2p :: P2P) ntnAddr m a where
- P2PApplications :: ApplicationsExtra ntnAddr m a -> ExtraApplications 'P2P ntnAddr m a
- NonP2PApplications :: ApplicationsExtra -> ExtraApplications 'NonP2P ntnAddr m a
- run :: forall (p2p :: P2P) a. Tracers RemoteAddress NodeToNodeVersion LocalAddress NodeToClientVersion IO -> ExtraTracers p2p -> Arguments Socket RemoteAddress LocalSocket LocalAddress -> ExtraArguments p2p IO -> Applications RemoteAddress NodeToNodeVersion NodeToNodeVersionData LocalAddress NodeToClientVersion NodeToClientVersionData IO a -> ExtraApplications p2p RemoteAddress IO a -> IO ()
- type AbstractTransitionTrace peerAddr = TransitionTrace' peerAddr AbstractState
Common API
data DiffusionTracer ntnAddr ntcAddr Source #
The DiffusionTracer
logs
- diffusion initialisation messages
- terminal errors thrown by diffusion
Constructors
RunServer (NonEmpty ntnAddr) | |
RunLocalServer ntcAddr | |
UsingSystemdSocket ntcAddr | |
CreateSystemdSocketForSnocketPath ntcAddr | |
CreatedLocalSocket ntcAddr | |
ConfiguringLocalSocket ntcAddr FileDescriptor | |
ListeningLocalSocket ntcAddr FileDescriptor | |
LocalSocketUp ntcAddr FileDescriptor | |
CreatingServerSocket ntnAddr | |
ConfiguringServerSocket ntnAddr | |
ListeningServerSocket ntnAddr | |
ServerSocketUp ntnAddr | |
UnsupportedLocalSystemdSocket ntnAddr | |
UnsupportedReadySocketCase | |
DiffusionErrored SomeException | |
SystemdSocketConfiguration SystemdSocketTracer |
Instances
(Show ntnAddr, Show ntcAddr) => Show (DiffusionTracer ntnAddr ntcAddr) Source # | |
Defined in Ouroboros.Network.Diffusion.Common |
data Tracers ntnAddr ntnVersion ntcAddr ntcVersion m Source #
Common DiffusionTracers interface between P2P and NonP2P
Constructors
Tracers | |
Fields
|
nullTracers :: Applicative m => Tracers ntnAddr ntnVersion ntcAddr ntcVersion m Source #
data ExtraTracers (p2p :: P2P) where Source #
Tracers which depend on p2p mode.
Constructors
UnsupportedReadySocket :: Failure | |
UnexpectedIPv4Address :: forall ntnAddr. (Show ntnAddr, Typeable ntnAddr) => ntnAddr -> Failure | |
UnexpectedIPv6Address :: forall ntnAddr. (Show ntnAddr, Typeable ntnAddr) => ntnAddr -> Failure | |
NoSocket :: Failure | |
DiffusionError :: SomeException -> Failure |
Instances
Exception Failure Source # | |
Defined in Ouroboros.Network.Diffusion.Common Methods toException :: Failure -> SomeException Source # fromException :: SomeException -> Maybe Failure Source # displayException :: Failure -> String Source # | |
Show Failure Source # | |
data Arguments ntnFd ntnAddr ntcFd ntcAddr Source #
Common DiffusionArguments interface between P2P and NonP2P
Constructors
Arguments | |
Fields
|
data ExtraArguments (p2p :: P2P) m where Source #
Diffusion arguments which depend on p2p mode.
Constructors
P2PArguments :: ArgumentsExtra m -> ExtraArguments 'P2P m | |
NonP2PArguments :: ArgumentsExtra -> ExtraArguments 'NonP2P m |
data Applications ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData m a Source #
Versioned mini-protocol bundles run on a negotiated connection.
Constructors
Applications | |
Fields
|
data ExtraApplications (p2p :: P2P) ntnAddr m a where Source #
Application data which depend on p2p mode.
Constructors
P2PApplications :: ApplicationsExtra ntnAddr m a -> ExtraApplications 'P2P ntnAddr m a | |
NonP2PApplications :: ApplicationsExtra -> ExtraApplications 'NonP2P ntnAddr m a |
Run data diffusion
run :: forall (p2p :: P2P) a. Tracers RemoteAddress NodeToNodeVersion LocalAddress NodeToClientVersion IO -> ExtraTracers p2p -> Arguments Socket RemoteAddress LocalSocket LocalAddress -> ExtraArguments p2p IO -> Applications RemoteAddress NodeToNodeVersion NodeToNodeVersionData LocalAddress NodeToClientVersion NodeToClientVersionData IO a -> ExtraApplications p2p RemoteAddress IO a -> IO () Source #
Re-exports
type AbstractTransitionTrace peerAddr = TransitionTrace' peerAddr AbstractState #