Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Ouroboros.Network.NodeToClient
Description
This is the starting point for a module that will bring together the overall node to client protocol, as a collection of mini-protocols.
Synopsis
- nodeToClientProtocols ∷ NodeToClientProtocols appType addr bytes m a b → NodeToClientVersion → OuroborosApplicationWithMinimalCtx appType addr bytes m a b
- data NodeToClientProtocols appType ntcAddr bytes m a b = NodeToClientProtocols {
- localChainSyncProtocol ∷ RunMiniProtocolWithMinimalCtx appType ntcAddr bytes m a b
- localTxSubmissionProtocol ∷ RunMiniProtocolWithMinimalCtx appType ntcAddr bytes m a b
- localStateQueryProtocol ∷ RunMiniProtocolWithMinimalCtx appType ntcAddr bytes m a b
- localTxMonitorProtocol ∷ RunMiniProtocolWithMinimalCtx appType ntcAddr bytes m a b
- data NodeToClientVersion
- data NodeToClientVersionData = NodeToClientVersionData {}
- data NetworkConnectTracers addr vNumber = NetworkConnectTracers {
- nctMuxTracer ∷ Tracer IO (WithMuxBearer (ConnectionId addr) MuxTrace)
- nctHandshakeTracer ∷ Tracer IO (WithMuxBearer (ConnectionId addr) (TraceSendRecv (Handshake vNumber Term)))
- nullNetworkConnectTracers ∷ NetworkConnectTracers addr vNumber
- connectTo ∷ LocalSnocket → NetworkConnectTracers LocalAddress NodeToClientVersion → Versions NodeToClientVersion NodeToClientVersionData (OuroborosApplicationWithMinimalCtx InitiatorMode LocalAddress ByteString IO a b) → FilePath → IO ()
- data NetworkServerTracers addr vNumber = NetworkServerTracers {
- nstMuxTracer ∷ Tracer IO (WithMuxBearer (ConnectionId addr) MuxTrace)
- nstHandshakeTracer ∷ Tracer IO (WithMuxBearer (ConnectionId addr) (TraceSendRecv (Handshake vNumber Term)))
- nstErrorPolicyTracer ∷ Tracer IO (WithAddr addr ErrorPolicyTrace)
- nstAcceptPolicyTracer ∷ Tracer IO AcceptConnectionsPolicyTrace
- nullNetworkServerTracers ∷ NetworkServerTracers addr vNumber
- data NetworkMutableState addr = NetworkMutableState {
- nmsConnectionTable ∷ ConnectionTable IO addr
- nmsPeerStates ∷ StrictTVar IO (PeerStates IO addr)
- newNetworkMutableState ∷ IO (NetworkMutableState addr)
- newNetworkMutableStateSTM ∷ STM (NetworkMutableState addr)
- cleanNetworkMutableState ∷ NetworkMutableState addr → IO ()
- withServer ∷ LocalSnocket → NetworkServerTracers LocalAddress NodeToClientVersion → NetworkMutableState LocalAddress → LocalSocket → Versions NodeToClientVersion NodeToClientVersionData (OuroborosApplicationWithMinimalCtx ResponderMode LocalAddress ByteString IO a b) → ErrorPolicies → IO Void
- type NetworkClientSubcriptionTracers = NetworkSubscriptionTracers Identity LocalAddress NodeToClientVersion
- data NetworkSubscriptionTracers withIPList addr vNumber = NetworkSubscriptionTracers {
- nsMuxTracer ∷ Tracer IO (WithMuxBearer (ConnectionId addr) MuxTrace)
- nsHandshakeTracer ∷ Tracer IO (WithMuxBearer (ConnectionId addr) (TraceSendRecv (Handshake vNumber Term)))
- nsErrorPolicyTracer ∷ Tracer IO (WithAddr addr ErrorPolicyTrace)
- nsSubscriptionTracer ∷ Tracer IO (withIPList (SubscriptionTrace addr))
- data ClientSubscriptionParams a = ClientSubscriptionParams {}
- ncSubscriptionWorker ∷ ∀ mode x y. HasInitiator mode ~ True ⇒ LocalSnocket → NetworkClientSubcriptionTracers → NetworkMutableState LocalAddress → ClientSubscriptionParams () → Versions NodeToClientVersion NodeToClientVersionData (OuroborosApplicationWithMinimalCtx mode LocalAddress ByteString IO x y) → IO Void
- chainSyncPeerNull ∷ ∀ (header ∷ Type) (point ∷ Type) (tip ∷ Type) m a. MonadDelay m ⇒ Peer (ChainSync header point tip) AsClient StIdle m a
- localStateQueryPeerNull ∷ ∀ (block ∷ Type) (point ∷ Type) (query ∷ Type → Type) m a. MonadDelay m ⇒ Peer (LocalStateQuery block point query) AsClient StIdle m a
- localTxSubmissionPeerNull ∷ ∀ (tx ∷ Type) (reject ∷ Type) m a. MonadDelay m ⇒ Peer (LocalTxSubmission tx reject) AsClient StIdle m a
- localTxMonitorPeerNull ∷ ∀ (txid ∷ Type) (tx ∷ Type) (slot ∷ Type) m a. MonadDelay m ⇒ Peer (LocalTxMonitor txid tx slot) AsClient StIdle m a
- newtype IOManager = IOManager {
- associateWithIOManager ∷ ∀ hole. hole → IO ()
- type AssociateWithIOCP = IOManager
- withIOManager ∷ WithIOManager
- type LocalSnocket = Snocket IO LocalSocket LocalAddress
- localSnocket ∷ IOManager → LocalSnocket
- newtype LocalSocket = LocalSocket {
- getLocalHandle ∷ LocalHandle
- newtype LocalAddress = LocalAddress {}
- newtype Versions vNum vData r = Versions {
- getVersions ∷ Map vNum (Version vData r)
- versionedNodeToClientProtocols ∷ NodeToClientVersion → NodeToClientVersionData → NodeToClientProtocols appType LocalAddress bytes m a b → Versions NodeToClientVersion NodeToClientVersionData (OuroborosApplicationWithMinimalCtx appType LocalAddress bytes m a b)
- simpleSingletonVersions ∷ vNum → vData → r → Versions vNum vData r
- foldMapVersions ∷ (Ord vNum, Foldable f, HasCallStack) ⇒ (x → Versions vNum extra r) → f x → Versions vNum extra r
- combineVersions ∷ (Ord vNum, Foldable f, HasCallStack) ⇒ f (Versions vNum extra r) → Versions vNum extra r
- nodeToClientHandshakeCodec ∷ ∀ (m ∷ Type → Type). MonadST m ⇒ Codec (Handshake NodeToClientVersion Term) DeserialiseFailure m ByteString
- nodeToClientVersionCodec ∷ CodecCBORTerm (Text, Maybe Int) NodeToClientVersion
- nodeToClientCodecCBORTerm ∷ NodeToClientVersion → CodecCBORTerm Text NodeToClientVersionData
- data ConnectionId addr = ConnectionId {
- localAddress ∷ !addr
- remoteAddress ∷ !addr
- newtype MinimalInitiatorContext addr = MinimalInitiatorContext {
- micConnectionId ∷ ConnectionId addr
- newtype ResponderContext addr = ResponderContext {
- rcConnectionId ∷ ConnectionId addr
- type LocalConnectionId = ConnectionId LocalAddress
- data ErrorPolicies = ErrorPolicies {}
- networkErrorPolicies ∷ ErrorPolicies
- nullErrorPolicies ∷ ErrorPolicies
- data ErrorPolicy where
- ErrorPolicy ∷ ∀ e. Exception e ⇒ (e → Maybe (SuspendDecision DiffTime)) → ErrorPolicy
- data ErrorPolicyTrace
- = ErrorPolicySuspendPeer (Maybe (ConnectionOrApplicationExceptionTrace SomeException)) DiffTime DiffTime
- | ErrorPolicySuspendConsumer (Maybe (ConnectionOrApplicationExceptionTrace SomeException)) DiffTime
- | ErrorPolicyLocalNodeError (ConnectionOrApplicationExceptionTrace SomeException)
- | ErrorPolicyResumePeer
- | ErrorPolicyKeepSuspended
- | ErrorPolicyResumeConsumer
- | ErrorPolicyResumeProducer
- | ErrorPolicyUnhandledApplicationException SomeException
- | ErrorPolicyUnhandledConnectionException SomeException
- | ErrorPolicyAcceptException IOException
- data WithAddr addr a = WithAddr {}
- data SuspendDecision t
- = SuspendPeer !t !t
- | SuspendConsumer !t
- | Throw
- data TraceSendRecv ps where
- TraceSendMsg ∷ ∀ ps. AnyMessageAndAgency ps → TraceSendRecv ps
- TraceRecvMsg ∷ ∀ ps. AnyMessageAndAgency ps → TraceSendRecv ps
- data ProtocolLimitFailure
- data Handshake (vNumber ∷ k) (vParams ∷ k1)
- data LocalAddresses addr = LocalAddresses {}
- data SubscriptionTrace addr
- = SubscriptionTraceConnectStart addr
- | SubscriptionTraceConnectEnd addr ConnectResult
- | Exception e ⇒ SubscriptionTraceSocketAllocationException addr e
- | Exception e ⇒ SubscriptionTraceConnectException addr e
- | Exception e ⇒ SubscriptionTraceApplicationException addr e
- | SubscriptionTraceTryConnectToPeer addr
- | SubscriptionTraceSkippingPeer addr
- | SubscriptionTraceSubscriptionRunning
- | SubscriptionTraceSubscriptionWaiting Int
- | SubscriptionTraceSubscriptionFailed
- | SubscriptionTraceSubscriptionWaitingNewConnection DiffTime
- | SubscriptionTraceStart Int
- | SubscriptionTraceRestart DiffTime Int Int
- | SubscriptionTraceConnectionExist addr
- | SubscriptionTraceUnsupportedRemoteAddr addr
- | SubscriptionTraceMissingLocalAddress
- | SubscriptionTraceAllocateSocket addr
- | SubscriptionTraceCloseSocket addr
- type HandshakeTr ntcAddr ntcVersion = WithMuxBearer (ConnectionId ntcAddr) (TraceSendRecv (Handshake ntcVersion Term))
Documentation
nodeToClientProtocols ∷ NodeToClientProtocols appType addr bytes m a b → NodeToClientVersion → OuroborosApplicationWithMinimalCtx appType addr bytes m a b Source #
Make an OuroborosApplication
for the bundle of mini-protocols that
make up the overall node-to-client protocol.
This function specifies the wire format protocol numbers as well as the
protocols that run for each NodeToClientVersion
.
They are chosen to not overlap with the node to node protocol numbers. This is not essential for correctness, but is helpful to allow a single shared implementation of tools that can analyse both protocols, e.g. wireshark plugins.
data NodeToClientProtocols appType ntcAddr bytes m a b Source #
Record of node-to-client mini protocols.
Constructors
NodeToClientProtocols | |
Fields
|
data NodeToClientVersion Source #
Enumeration of node to client protocol versions.
Constructors
NodeToClientV_9 | enabled |
NodeToClientV_10 | added |
NodeToClientV_11 | added |
NodeToClientV_12 | added |
NodeToClientV_13 | enabled |
NodeToClientV_14 | added |
NodeToClientV_15 | added |
NodeToClientV_16 | enabled |
Instances
data NodeToClientVersionData Source #
Version data for NodeToClient protocol v1
Constructors
NodeToClientVersionData | |
Fields
|
Instances
data NetworkConnectTracers addr vNumber Source #
Tracer used by connectToNode
(and derivatives, like
connectTo
or
'Ouroboros.Network.NodeToClient.connectTo).
Constructors
NetworkConnectTracers | |
Fields
|
nullNetworkConnectTracers ∷ NetworkConnectTracers addr vNumber Source #
Arguments
∷ LocalSnocket | callback constructed by |
→ NetworkConnectTracers LocalAddress NodeToClientVersion | |
→ Versions NodeToClientVersion NodeToClientVersionData (OuroborosApplicationWithMinimalCtx InitiatorMode LocalAddress ByteString IO a b) | A dictionary of protocol versions & applications to run on an established connection. The application to run will be chosen by initial handshake protocol (the highest shared version will be chosen). |
→ FilePath | path of the unix socket or named pipe |
→ IO () |
A specialised version of connectToNode
. It is
a general purpose function which can connect using any version of the
protocol. This is mostly useful for future enhancements.
data NetworkServerTracers addr vNumber Source #
Tracers required by a server which handles inbound connections.
Constructors
NetworkServerTracers | |
Fields
|
nullNetworkServerTracers ∷ NetworkServerTracers addr vNumber Source #
data NetworkMutableState addr Source #
Mutable state maintained by the network component.
Constructors
NetworkMutableState | |
Fields
|
newNetworkMutableState ∷ IO (NetworkMutableState addr) Source #
cleanNetworkMutableState ∷ NetworkMutableState addr → IO () Source #
Clean PeerStates
within NetworkMutableState
every 200s
withServer ∷ LocalSnocket → NetworkServerTracers LocalAddress NodeToClientVersion → NetworkMutableState LocalAddress → LocalSocket → Versions NodeToClientVersion NodeToClientVersionData (OuroborosApplicationWithMinimalCtx ResponderMode LocalAddress ByteString IO a b) → ErrorPolicies → IO Void Source #
A specialised version of withServerNode
.
Comments to withServer
apply here as well.
type NetworkClientSubcriptionTracers = NetworkSubscriptionTracers Identity LocalAddress NodeToClientVersion Source #
data NetworkSubscriptionTracers withIPList addr vNumber Source #
IP subscription tracers.
Constructors
NetworkSubscriptionTracers | |
Fields
|
data ClientSubscriptionParams a Source #
Constructors
ClientSubscriptionParams | |
Fields
|
ncSubscriptionWorker ∷ ∀ mode x y. HasInitiator mode ~ True ⇒ LocalSnocket → NetworkClientSubcriptionTracers → NetworkMutableState LocalAddress → ClientSubscriptionParams () → Versions NodeToClientVersion NodeToClientVersionData (OuroborosApplicationWithMinimalCtx mode LocalAddress ByteString IO x y) → IO Void Source #
ncSubscriptionWorker
which starts given application versions on each
established connection.
Null Protocol Peers
chainSyncPeerNull ∷ ∀ (header ∷ Type) (point ∷ Type) (tip ∷ Type) m a. MonadDelay m ⇒ Peer (ChainSync header point tip) AsClient StIdle m a Source #
localStateQueryPeerNull ∷ ∀ (block ∷ Type) (point ∷ Type) (query ∷ Type → Type) m a. MonadDelay m ⇒ Peer (LocalStateQuery block point query) AsClient StIdle m a Source #
localTxSubmissionPeerNull ∷ ∀ (tx ∷ Type) (reject ∷ Type) m a. MonadDelay m ⇒ Peer (LocalTxSubmission tx reject) AsClient StIdle m a Source #
localTxMonitorPeerNull ∷ ∀ (txid ∷ Type) (tx ∷ Type) (slot ∷ Type) m a. MonadDelay m ⇒ Peer (LocalTxMonitor txid tx slot) AsClient StIdle m a Source #
Re-exported network interface
This is public api to interact with the io manager; On Windows IOManager
holds associateWithIOCompletionPort
;
on other platforms IOManager
can run over any type, and thus is
guaranteed to be no-op.
Constructors
IOManager | |
Fields
|
type AssociateWithIOCP = IOManager Source #
withIOManager ∷ WithIOManager Source #
withIOManager
allows to do asynchronous io on Windows hiding the
differences between posix and Win32.
It starts an io manger thread, which should be only one running at a time, so
the best place to call it is very close to the main
function and last for
duration of the application.
Async IO
operations which are using the iocp
port should not leak
out-side of withIOManager
. They will be silently cancelled when
withIOManager
exists. In particular one should not return IOManager
from withIOManager
.
type LocalSnocket = Snocket IO LocalSocket LocalAddress Source #
System dependent LocalSnocket
localSnocket ∷ IOManager → LocalSnocket Source #
Create a LocalSnocket
.
On Windows, there is no way to get path associated to a named pipe. To go
around this, the address passed to open
via LocalFamily
will be
referenced by LocalSocket
.
newtype LocalSocket Source #
System dependent LocalSnocket type
Constructors
LocalSocket | |
Fields
|
Instances
Generic LocalSocket | |
Defined in Ouroboros.Network.Snocket Associated Types type Rep LocalSocket ∷ Type → Type # | |
Show LocalSocket | |
Defined in Ouroboros.Network.Snocket Methods showsPrec ∷ Int → LocalSocket → ShowS # show ∷ LocalSocket → String # showList ∷ [LocalSocket] → ShowS # | |
Eq LocalSocket | |
Defined in Ouroboros.Network.Snocket | |
type Rep LocalSocket | |
Defined in Ouroboros.Network.Snocket type Rep LocalSocket = D1 ('MetaData "LocalSocket" "Ouroboros.Network.Snocket" "ouroboros-network-framework-0.10.1.0-inplace" 'True) (C1 ('MetaCons "LocalSocket" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLocalHandle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LocalHandle))) |
newtype LocalAddress Source #
Local address, on Unix is associated with AF_UNIX
family, on
Windows with `named-pipes`.
Constructors
LocalAddress | |
Fields |
Instances
Versions
newtype Versions vNum vData r Source #
The version map supported by the local agent keyed on the version identifier.
Each Version
contains a function which takes negotiated version data and
returns negotiated application (the r
type variable).
If one needs to combine multiple versions the simplest way is to use one of
the combinators: foldMapVersions
, combineVersions
or the Semigroup
instance directly:
fold $ (simpleSingletonVersions ...) :| [ (simpleSingletonVersions ...) , (simpleSingletonVersions ...) , ... ]
Constructors
Versions | |
Fields
|
versionedNodeToClientProtocols ∷ NodeToClientVersion → NodeToClientVersionData → NodeToClientProtocols appType LocalAddress bytes m a b → Versions NodeToClientVersion NodeToClientVersionData (OuroborosApplicationWithMinimalCtx appType LocalAddress bytes m a b) Source #
Versions
containing a single version of nodeToClientProtocols
.
simpleSingletonVersions ∷ vNum → vData → r → Versions vNum vData r Source #
Singleton smart constructor for Versions
.
foldMapVersions ∷ (Ord vNum, Foldable f, HasCallStack) ⇒ (x → Versions vNum extra r) → f x → Versions vNum extra r Source #
combineVersions ∷ (Ord vNum, Foldable f, HasCallStack) ⇒ f (Versions vNum extra r) → Versions vNum extra r Source #
Codecs
nodeToClientHandshakeCodec ∷ ∀ (m ∷ Type → Type). MonadST m ⇒ Codec (Handshake NodeToClientVersion Term) DeserialiseFailure m ByteString Source #
Handshake
codec for the node-to-client
protocol suite.
nodeToClientVersionCodec ∷ CodecCBORTerm (Text, Maybe Int) NodeToClientVersion Source #
We set 16ths bit to distinguish NodeToNodeVersion
and
NodeToClientVersion
. This way connecting wrong protocol suite will fail
during Handshake
negotiation
This is done in backward compatible way, so NodeToClientV_1
encoding is not
changed.
nodeToClientCodecCBORTerm ∷ NodeToClientVersion → CodecCBORTerm Text NodeToClientVersionData Source #
Re-exports
data ConnectionId addr Source #
Connection is identified by local and remote address.
TODO: the type variable which this data type fills in is called peerid
. We
should renamed to connectionId
.
Constructors
ConnectionId | |
Fields
|
Instances
newtype MinimalInitiatorContext addr Source #
A context passed to initiator mini-protocol execution for non-p2p applications.
Constructors
MinimalInitiatorContext | |
Fields
|
Instances
Functor MinimalInitiatorContext | |
Defined in Ouroboros.Network.Context Methods fmap ∷ (a → b) → MinimalInitiatorContext a → MinimalInitiatorContext b # (<$) ∷ a → MinimalInitiatorContext b → MinimalInitiatorContext a # |
newtype ResponderContext addr Source #
Context passed to each responder mini-protocol execution.
Constructors
ResponderContext | |
Fields
|
Instances
Functor ResponderContext | |
Defined in Ouroboros.Network.Context Methods fmap ∷ (a → b) → ResponderContext a → ResponderContext b # (<$) ∷ a → ResponderContext b → ResponderContext a # |
data ErrorPolicies Source #
List of error policies for exception handling and a policy for handing application return values.
Constructors
ErrorPolicies | |
Fields
|
Instances
Semigroup ErrorPolicies | |
Defined in Ouroboros.Network.ErrorPolicy Methods (<>) ∷ ErrorPolicies → ErrorPolicies → ErrorPolicies # sconcat ∷ NonEmpty ErrorPolicies → ErrorPolicies # stimes ∷ Integral b ⇒ b → ErrorPolicies → ErrorPolicies # |
networkErrorPolicies ∷ ErrorPolicies Source #
ErrorPolicies
for client application. Additional rules can be added by
means of a Semigroup
instance of ErrorPolicies
.
This error policies will try to preserve subscriptionWorker
, e.g. if the
connect function throws an IOException
we will suspend it for
a shortDelay
, and try to re-connect.
This allows to recover from a situation where a node temporarily shutsdown, or running a client application which is subscribed two more than one node (possibly over network).
data ErrorPolicy where Source #
Constructors
ErrorPolicy | |
Fields
|
Instances
Show ErrorPolicy | |
Defined in Ouroboros.Network.ErrorPolicy Methods showsPrec ∷ Int → ErrorPolicy → ShowS # show ∷ ErrorPolicy → String # showList ∷ [ErrorPolicy] → ShowS # |
data ErrorPolicyTrace Source #
Trace data for error policies
Constructors
ErrorPolicySuspendPeer (Maybe (ConnectionOrApplicationExceptionTrace SomeException)) DiffTime DiffTime | suspending peer with a given exception until |
ErrorPolicySuspendConsumer (Maybe (ConnectionOrApplicationExceptionTrace SomeException)) DiffTime | suspending consumer until |
ErrorPolicyLocalNodeError (ConnectionOrApplicationExceptionTrace SomeException) | caught a local exception |
ErrorPolicyResumePeer | resume a peer (both consumer and producer) |
ErrorPolicyKeepSuspended | consumer was suspended until producer will resume |
ErrorPolicyResumeConsumer | resume consumer |
ErrorPolicyResumeProducer | resume producer |
ErrorPolicyUnhandledApplicationException SomeException | an application throwed an exception, which was not handled by any
|
ErrorPolicyUnhandledConnectionException SomeException |
|
ErrorPolicyAcceptException IOException |
|
Instances
Show ErrorPolicyTrace | |
Defined in Ouroboros.Network.ErrorPolicy Methods showsPrec ∷ Int → ErrorPolicyTrace → ShowS # show ∷ ErrorPolicyTrace → String # showList ∷ [ErrorPolicyTrace] → ShowS # |
data SuspendDecision t Source #
Semigroup of commands which acts on PeerState
. The t
variable might
be initiated to DiffTime
or Time m
.
This semigroup allows to either suspend both consumer and producer or just the consumer part.
Constructors
SuspendPeer !t !t | peer is suspend; The first |
SuspendConsumer !t | suspend local consumer / initiator side until |
Throw | throw an error from the main thread. |
Instances
data TraceSendRecv ps where Source #
Constructors
TraceSendMsg ∷ ∀ ps. AnyMessageAndAgency ps → TraceSendRecv ps | |
TraceRecvMsg ∷ ∀ ps. AnyMessageAndAgency ps → TraceSendRecv ps |
Instances
Show (AnyMessageAndAgency ps) ⇒ Show (TraceSendRecv ps) | |
Defined in Ouroboros.Network.Driver.Simple Methods showsPrec ∷ Int → TraceSendRecv ps → ShowS # show ∷ TraceSendRecv ps → String # showList ∷ [TraceSendRecv ps] → ShowS # |
data ProtocolLimitFailure Source #
Instances
Exception ProtocolLimitFailure | |
Show ProtocolLimitFailure | |
Defined in Ouroboros.Network.Protocol.Limits Methods showsPrec ∷ Int → ProtocolLimitFailure → ShowS # show ∷ ProtocolLimitFailure → String # showList ∷ [ProtocolLimitFailure] → ShowS # |
data Handshake (vNumber ∷ k) (vParams ∷ k1) Source #
The handshake mini-protocol is used initially to agree the version and associated parameters of the protocol to use for all subsequent communication.
Instances
ShowProxy (Handshake vNumber vParams ∷ Type) | |
Show (ClientHasAgency st) | |
Defined in Ouroboros.Network.Protocol.Handshake.Type Methods showsPrec ∷ Int → ClientHasAgency st → ShowS # show ∷ ClientHasAgency st → String # showList ∷ [ClientHasAgency st] → ShowS # | |
Show (ServerHasAgency st) | |
Defined in Ouroboros.Network.Protocol.Handshake.Type Methods showsPrec ∷ Int → ServerHasAgency st → ShowS # show ∷ ServerHasAgency st → String # showList ∷ [ServerHasAgency st] → ShowS # | |
(Show vNumber, Show vParams) ⇒ Show (Message (Handshake vNumber vParams) from to) | |
Protocol (Handshake vNumber vParams) | |
Defined in Ouroboros.Network.Protocol.Handshake.Type Associated Types data Message (Handshake vNumber vParams) st st' Source # data ClientHasAgency st Source # data ServerHasAgency st Source # data NobodyHasAgency st Source # Methods exclusionLemma_ClientAndServerHaveAgency ∷ ∀ (st ∷ Handshake vNumber vParams). ClientHasAgency st → ServerHasAgency st → Void Source # exclusionLemma_NobodyAndClientHaveAgency ∷ ∀ (st ∷ Handshake vNumber vParams). NobodyHasAgency st → ClientHasAgency st → Void Source # exclusionLemma_NobodyAndServerHaveAgency ∷ ∀ (st ∷ Handshake vNumber vParams). NobodyHasAgency st → ServerHasAgency st → Void Source # | |
data ClientHasAgency (st ∷ Handshake vNumber vParams) | |
Defined in Ouroboros.Network.Protocol.Handshake.Type data ClientHasAgency (st ∷ Handshake vNumber vParams) where
| |
data Message (Handshake vNumber vParams) (from ∷ Handshake vNumber vParams) (to ∷ Handshake vNumber vParams) | |
Defined in Ouroboros.Network.Protocol.Handshake.Type data Message (Handshake vNumber vParams) (from ∷ Handshake vNumber vParams) (to ∷ Handshake vNumber vParams) where
| |
data NobodyHasAgency (st ∷ Handshake vNumber vParams) | |
Defined in Ouroboros.Network.Protocol.Handshake.Type data NobodyHasAgency (st ∷ Handshake vNumber vParams) where
| |
data ServerHasAgency (st ∷ Handshake vNumber vParams) | |
Defined in Ouroboros.Network.Protocol.Handshake.Type data ServerHasAgency (st ∷ Handshake vNumber vParams) where
|
data LocalAddresses addr Source #
Constructors
LocalAddresses | |
Instances
Semigroup (LocalAddresses addr) | |
Defined in Ouroboros.Network.Subscription.Worker Methods (<>) ∷ LocalAddresses addr → LocalAddresses addr → LocalAddresses addr # sconcat ∷ NonEmpty (LocalAddresses addr) → LocalAddresses addr # stimes ∷ Integral b ⇒ b → LocalAddresses addr → LocalAddresses addr # | |
Show addr ⇒ Show (LocalAddresses addr) | |
Defined in Ouroboros.Network.Subscription.Worker Methods showsPrec ∷ Int → LocalAddresses addr → ShowS # show ∷ LocalAddresses addr → String # showList ∷ [LocalAddresses addr] → ShowS # | |
Eq addr ⇒ Eq (LocalAddresses addr) | |
Defined in Ouroboros.Network.Subscription.Worker Methods (==) ∷ LocalAddresses addr → LocalAddresses addr → Bool # (/=) ∷ LocalAddresses addr → LocalAddresses addr → Bool # |
data SubscriptionTrace addr Source #
Constructors
Instances
Show addr ⇒ Show (SubscriptionTrace addr) | |
Defined in Ouroboros.Network.Subscription.Worker Methods showsPrec ∷ Int → SubscriptionTrace addr → ShowS # show ∷ SubscriptionTrace addr → String # showList ∷ [SubscriptionTrace addr] → ShowS # |
type HandshakeTr ntcAddr ntcVersion = WithMuxBearer (ConnectionId ntcAddr) (TraceSendRecv (Handshake ntcVersion Term)) Source #