ouroboros-consensus:diffusion
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Network.NodeToNode.LeiosFetch

Description

The node's LeiosFetch client and server, and what the node-to-node wiring needs to run them.

Synopsis

Documentation

leiosFetchClient ∷ ∀ (m ∷ Type → Type). MonadSTM m ⇒ ControlMessageSTM m → LeiosFetchClientPeer LeiosPoint EndorserBlock LeiosTx m () Source #

The node's LeiosFetch client, which requests nothing yet and ends when the node demotes the peer.

leiosFetchMiniProtocol ∷ ∀ (mode ∷ Mode) addr b (m ∷ Type → Type) a c. RunMiniProtocolWithExpandedCtx mode addr PeerTrustable b m a c → MiniProtocolWithExpandedCtx mode addr PeerTrustable b m a c Source #

LeiosFetch as a node-to-node mini-protocol.

leiosFetchServer ∷ ∀ (m ∷ Type → Type). MonadCatch m ⇒ Tracer m TraceLeiosFetchServerEvent → LeiosDbReader m → LeiosFetchServerPeer LeiosPoint EndorserBlock LeiosTx m () Source #

The node's LeiosFetch server, which serves endorser blocks and their transactions from the LeiosDB, through the connection's own reader.

catchAndRethrow ∷ (MonadCatch m, Exception e) ⇒ Tracer m ev → (e → ev) → m a → m a Source #

Trace an exception of the event's type that the action throws, then rethrow it.