hydra-node-0.13.0: The Hydra node
Safe HaskellSafe-Inferred
LanguageHaskell2010

Hydra.Network.Ouroboros

Description

Ouroboros-based implementation of Network interface. This implements a dumb FireForget protocol and maintains one connection to each peer. Contrary to other protocols implemented in Ouroboros, this is a push-based protocol.

Synopsis

Documentation

withOuroborosNetwork :: forall msg. (ToCBOR msg, FromCBOR msg) => Tracer IO (WithHost (TraceOuroborosNetwork msg)) -> Host -> [Host] -> NetworkCallback msg IO -> (Network IO msg -> IO ()) -> IO () Source #

withIOManager :: WithIOManager #

data TraceOuroborosNetwork msg Source #

Instances

Instances details
ToJSON msg => ToJSON (TraceOuroborosNetwork msg) Source # 
Instance details

Defined in Hydra.Network.Ouroboros

Methods

toJSON :: TraceOuroborosNetwork msg -> Value

toEncoding :: TraceOuroborosNetwork msg -> Encoding

toJSONList :: [TraceOuroborosNetwork msg] -> Value

toEncodingList :: [TraceOuroborosNetwork msg] -> Encoding

Generic (TraceOuroborosNetwork msg) Source # 
Instance details

Defined in Hydra.Network.Ouroboros

Associated Types

type Rep (TraceOuroborosNetwork msg) :: Type -> Type Source #

Show msg => Show (TraceOuroborosNetwork msg) Source # 
Instance details

Defined in Hydra.Network.Ouroboros

type Rep (TraceOuroborosNetwork msg) Source # 
Instance details

Defined in Hydra.Network.Ouroboros

type Rep (TraceOuroborosNetwork msg) = D1 ('MetaData "TraceOuroborosNetwork" "Hydra.Network.Ouroboros" "hydra-node-0.13.0-HKlbaPrFKjs2dhEMwn7ono" 'False) ((C1 ('MetaCons "TraceSubscriptions" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WithIPList (SubscriptionTrace SockAddr)))) :+: C1 ('MetaCons "TraceErrorPolicy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WithAddr SockAddr ErrorPolicyTrace)))) :+: (C1 ('MetaCons "TraceAcceptPolicy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AcceptConnectionsPolicyTrace)) :+: (C1 ('MetaCons "TraceHandshake" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WithMuxBearer (ConnectionId SockAddr) (TraceSendRecv (Handshake UnversionedProtocol Term))))) :+: C1 ('MetaCons "TraceSendRecv" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceSendRecv (FireForget msg)))))))

data PortNumber #

Instances

Instances details
Arbitrary PortNumber 
Instance details

Defined in Hydra.Network

FromJSON PortNumber 
Instance details

Defined in Hydra.Network

Methods

parseJSON :: Value -> Parser PortNumber

parseJSONList :: Value -> Parser [PortNumber]

ToJSON PortNumber 
Instance details

Defined in Hydra.Network

Methods

toJSON :: PortNumber -> Value

toEncoding :: PortNumber -> Encoding

toJSONList :: [PortNumber] -> Value

toEncodingList :: [PortNumber] -> Encoding

Storable PortNumber 
Instance details

Defined in Network.Socket.Types

Bounded PortNumber 
Instance details

Defined in Network.Socket.Types

Enum PortNumber 
Instance details

Defined in Network.Socket.Types

Num PortNumber 
Instance details

Defined in Network.Socket.Types

Read PortNumber 
Instance details

Defined in Network.Socket.Types

Integral PortNumber 
Instance details

Defined in Network.Socket.Types

Real PortNumber 
Instance details

Defined in Network.Socket.Types

Show PortNumber 
Instance details

Defined in Network.Socket.Types

FromCBOR PortNumber 
Instance details

Defined in Hydra.Network

Methods

fromCBOR :: Decoder s PortNumber

label :: Proxy PortNumber -> Text

ToCBOR PortNumber 
Instance details

Defined in Hydra.Network

Methods

toCBOR :: PortNumber -> Encoding

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy PortNumber -> Size

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [PortNumber] -> Size

Eq PortNumber 
Instance details

Defined in Network.Socket.Types

Ord PortNumber 
Instance details

Defined in Network.Socket.Types

data Host Source #

Constructors

Host 

Fields

Instances

Instances details
Arbitrary Host Source # 
Instance details

Defined in Hydra.Network

Methods

arbitrary :: Gen Host

shrink :: Host -> [Host]

FromJSON Host Source # 
Instance details

Defined in Hydra.Network

Methods

parseJSON :: Value -> Parser Host

parseJSONList :: Value -> Parser [Host]

ToJSON Host Source # 
Instance details

Defined in Hydra.Network

Methods

toJSON :: Host -> Value

toEncoding :: Host -> Encoding

toJSONList :: [Host] -> Value

toEncodingList :: [Host] -> Encoding

Generic Host Source # 
Instance details

Defined in Hydra.Network

Associated Types

type Rep Host :: Type -> Type Source #

Methods

from :: Host -> Rep Host x Source #

to :: Rep Host x -> Host Source #

Read Host Source # 
Instance details

Defined in Hydra.Network

Show Host Source # 
Instance details

Defined in Hydra.Network

FromCBOR Host Source # 
Instance details

Defined in Hydra.Network

Methods

fromCBOR :: Decoder s Host

label :: Proxy Host -> Text

ToCBOR Host Source # 
Instance details

Defined in Hydra.Network

Methods

toCBOR :: Host -> Encoding

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy Host -> Size

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [Host] -> Size

Eq Host Source # 
Instance details

Defined in Hydra.Network

Methods

(==) :: Host -> Host -> Bool Source #

(/=) :: Host -> Host -> Bool Source #

Ord Host Source # 
Instance details

Defined in Hydra.Network

type Rep Host Source # 
Instance details

Defined in Hydra.Network

type Rep Host = D1 ('MetaData "Host" "Hydra.Network" "hydra-node-0.13.0-HKlbaPrFKjs2dhEMwn7ono" 'False) (C1 ('MetaCons "Host" 'PrefixI 'True) (S1 ('MetaSel ('Just "hostname") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "port") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PortNumber)))

type NetworkComponent m msg a = NetworkCallback msg m -> (Network m msg -> m a) -> m a Source #

A type tying both inbound and outbound messages sending in a single Component.

type NetworkCallback msg m = msg -> m () Source #

Handle to interface for inbound messages.

newtype Network m msg Source #

Handle to interface with the hydra network and send messages "off chain".

Constructors

Network 

Fields

  • broadcast :: msg -> m ()

    Send a msg to the whole hydra network.

Instances

Instances details
Contravariant (Network m) Source # 
Instance details

Defined in Hydra.Network

Methods

contramap :: (a' -> a) -> Network m a -> Network m a' Source #

(>$) :: b -> Network m b -> Network m a Source #

encodeTraceSendRecvFireForget :: forall msg. ToJSON msg => TraceSendRecv (FireForget msg) -> [Pair] Source #