ouroboros-network-framework-0.1.0.1
Safe Haskell None
Language Haskell2010

Ouroboros.Network.InboundGovernor

Description

Server implementation based on ConnectionManager

Synopsis

Documentation

newtype InboundGovernorObservableState Source #

Currently only StdGen , but in the future this will be extended to a record which contains some useful statistics about peers to support more advances prune strategies (see. PruneStrategy ).

Run Inbound Protocol Governor

inboundGovernor :: forall (muxMode :: MuxMode ) socket peerAddr versionNumber m a b. ( MonadAsync m, MonadCatch m, MonadEvaluate m, MonadThrow m, MonadThrow ( STM m), MonadTime m, MonadTimer m, MonadMask m, Ord peerAddr, HasResponder muxMode ~ True ) => Tracer m ( RemoteTransitionTrace peerAddr) -> Tracer m ( InboundGovernorTrace peerAddr) -> ServerControlChannel muxMode peerAddr ByteString m a b -> DiffTime -> MuxConnectionManager muxMode socket peerAddr versionNumber ByteString m a b -> StrictTVar m InboundGovernorObservableState -> m Void Source #

Run the server, which consists of the following components:

  • inbound governor , it corresponds to p2p-governor on outbound side
  • accept loop(s) , one per given ip address. We support up to one ipv4 address and up to one ipv6 address, i.e. an ipv6 enabled node will run two accept loops on listening on different addresses with shared inbound governor .

The server can be run in either of two MuxMode -es:

The first one is used in data diffusion for Node-To-Node protocol , while the other is useful for running a server for the Node-To-Client protocol .

Trace

data InboundGovernorTrace peerAddr Source #

data AcceptConnectionsPolicyTrace Source #

Trace for the AcceptConnectionsLimit policy.

Re-exports