{-# LANGUAGE DataKinds #-}
{-# LANGUAGE EmptyDataDeriving #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeFamilies #-}
module Ouroboros.Network.Diffusion.Types
( DiffusionTracer (..)
, Failure (..)
, Tracers (..)
, nullTracers
, Configuration (..)
, Applications (..)
, Arguments (..)
, Interfaces (..)
, NoExtraFlags (..)
, NoExtraState (..)
, NoExtraDebugState (..)
, NoExtraPeers (..)
, ViewExtraPeers (..)
, OuroborosPeerSelectionCounters
, OuroborosDebugPeerSelection
, OuroborosTracePeerSelection
, Mx.ForkPolicy
, Mx.noBindForkPolicy
, Mx.responderForkPolicy
, NodeToClientHandle
, NodeToClientHandleError
, NodeToClientHandlerError
, MkNodeToClientConnectionHandler
, NodeToNodeHandle
, NodeToNodeConnectionManager
, NodeToNodePeerConnectionHandle
, NodeToNodePeerSelectionActions
, AbstractTransitionTrace
, IG.RemoteTransitionTrace
, SRVPrefix
, DiffusionMode (..)
) where
import Control.Concurrent.Class.MonadSTM.Strict
import Control.Exception (Exception, SomeException)
import Control.Monad.Class.MonadTimer.SI
import Control.Tracer (Tracer, nullTracer)
import Codec.CBOR.Term qualified as CBOR
import Data.ByteString.Lazy (ByteString)
import Data.List.NonEmpty (NonEmpty)
import Data.Map (Map)
import Data.Maybe.Strict
import Data.Set (Set)
import Data.Typeable (Typeable)
import Data.Void (Void)
import System.Random (StdGen)
import Network.Mux qualified as Mx
import Network.Mux.Types (ReadBuffer)
import Network.Socket qualified as Socket
import Ouroboros.Network.Mux (OuroborosApplicationWithMinimalCtx,
OuroborosBundleWithExpandedCtx)
import Ouroboros.Network.PeerSharing (PeerSharingRegistry (..))
import Ouroboros.Network.ConnectionHandler
import Ouroboros.Network.ConnectionManager.Core qualified as CM
import Ouroboros.Network.ConnectionManager.State qualified as CM
import Ouroboros.Network.ConnectionManager.Types
import Ouroboros.Network.Context
import Ouroboros.Network.DiffusionMode
import Ouroboros.Network.Driver.Simple (TraceSendRecv)
import Ouroboros.Network.ExitPolicy
import Ouroboros.Network.InboundGovernor qualified as IG
import Ouroboros.Network.Mux qualified as Mx
import Ouroboros.Network.PeerSelection.Governor.Types
import Ouroboros.Network.Protocol.Handshake (Handshake, HandshakeArguments,
Versions)
import Ouroboros.Network.RethrowPolicy
import Ouroboros.Network.Server qualified as Server
import Ouroboros.Network.Snocket (FileDescriptor, Snocket)
import Ouroboros.Network.Socket (SystemdSocketTracer)
import Ouroboros.Network.PeerSelection as PeerSelection
import Ouroboros.Network.PeerSelection.Churn as PeerSelection
import Ouroboros.Network.PeerSelection.State.LocalRootPeers qualified as LocalRootPeers
import Ouroboros.Network.Server.RateLimiting (AcceptedConnectionsLimit)
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
deriving Int -> DiffusionTracer ntnAddr ntcAddr -> ShowS
[DiffusionTracer ntnAddr ntcAddr] -> ShowS
DiffusionTracer ntnAddr ntcAddr -> String
(Int -> DiffusionTracer ntnAddr ntcAddr -> ShowS)
-> (DiffusionTracer ntnAddr ntcAddr -> String)
-> ([DiffusionTracer ntnAddr ntcAddr] -> ShowS)
-> Show (DiffusionTracer ntnAddr ntcAddr)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall ntnAddr ntcAddr.
(Show ntcAddr, Show ntnAddr) =>
Int -> DiffusionTracer ntnAddr ntcAddr -> ShowS
forall ntnAddr ntcAddr.
(Show ntcAddr, Show ntnAddr) =>
[DiffusionTracer ntnAddr ntcAddr] -> ShowS
forall ntnAddr ntcAddr.
(Show ntcAddr, Show ntnAddr) =>
DiffusionTracer ntnAddr ntcAddr -> String
$cshowsPrec :: forall ntnAddr ntcAddr.
(Show ntcAddr, Show ntnAddr) =>
Int -> DiffusionTracer ntnAddr ntcAddr -> ShowS
showsPrec :: Int -> DiffusionTracer ntnAddr ntcAddr -> ShowS
$cshow :: forall ntnAddr ntcAddr.
(Show ntcAddr, Show ntnAddr) =>
DiffusionTracer ntnAddr ntcAddr -> String
show :: DiffusionTracer ntnAddr ntcAddr -> String
$cshowList :: forall ntnAddr ntcAddr.
(Show ntcAddr, Show ntnAddr) =>
[DiffusionTracer ntnAddr ntcAddr] -> ShowS
showList :: [DiffusionTracer ntnAddr ntcAddr] -> ShowS
Show
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
deriving instance Show Failure
instance Exception Failure
data =
deriving (NoExtraFlags -> NoExtraFlags -> Bool
(NoExtraFlags -> NoExtraFlags -> Bool)
-> (NoExtraFlags -> NoExtraFlags -> Bool) -> Eq NoExtraFlags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NoExtraFlags -> NoExtraFlags -> Bool
== :: NoExtraFlags -> NoExtraFlags -> Bool
$c/= :: NoExtraFlags -> NoExtraFlags -> Bool
/= :: NoExtraFlags -> NoExtraFlags -> Bool
Eq, Int -> NoExtraFlags -> ShowS
[NoExtraFlags] -> ShowS
NoExtraFlags -> String
(Int -> NoExtraFlags -> ShowS)
-> (NoExtraFlags -> String)
-> ([NoExtraFlags] -> ShowS)
-> Show NoExtraFlags
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NoExtraFlags -> ShowS
showsPrec :: Int -> NoExtraFlags -> ShowS
$cshow :: NoExtraFlags -> String
show :: NoExtraFlags -> String
$cshowList :: [NoExtraFlags] -> ShowS
showList :: [NoExtraFlags] -> ShowS
Show)
data =
deriving (NoExtraState -> NoExtraState -> Bool
(NoExtraState -> NoExtraState -> Bool)
-> (NoExtraState -> NoExtraState -> Bool) -> Eq NoExtraState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NoExtraState -> NoExtraState -> Bool
== :: NoExtraState -> NoExtraState -> Bool
$c/= :: NoExtraState -> NoExtraState -> Bool
/= :: NoExtraState -> NoExtraState -> Bool
Eq, Int -> NoExtraState -> ShowS
[NoExtraState] -> ShowS
NoExtraState -> String
(Int -> NoExtraState -> ShowS)
-> (NoExtraState -> String)
-> ([NoExtraState] -> ShowS)
-> Show NoExtraState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NoExtraState -> ShowS
showsPrec :: Int -> NoExtraState -> ShowS
$cshow :: NoExtraState -> String
show :: NoExtraState -> String
$cshowList :: [NoExtraState] -> ShowS
showList :: [NoExtraState] -> ShowS
Show)
data =
deriving (NoExtraDebugState -> NoExtraDebugState -> Bool
(NoExtraDebugState -> NoExtraDebugState -> Bool)
-> (NoExtraDebugState -> NoExtraDebugState -> Bool)
-> Eq NoExtraDebugState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NoExtraDebugState -> NoExtraDebugState -> Bool
== :: NoExtraDebugState -> NoExtraDebugState -> Bool
$c/= :: NoExtraDebugState -> NoExtraDebugState -> Bool
/= :: NoExtraDebugState -> NoExtraDebugState -> Bool
Eq, Int -> NoExtraDebugState -> ShowS
[NoExtraDebugState] -> ShowS
NoExtraDebugState -> String
(Int -> NoExtraDebugState -> ShowS)
-> (NoExtraDebugState -> String)
-> ([NoExtraDebugState] -> ShowS)
-> Show NoExtraDebugState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NoExtraDebugState -> ShowS
showsPrec :: Int -> NoExtraDebugState -> ShowS
$cshow :: NoExtraDebugState -> String
show :: NoExtraDebugState -> String
$cshowList :: [NoExtraDebugState] -> ShowS
showList :: [NoExtraDebugState] -> ShowS
Show)
data peeraddr =
deriving (NoExtraPeers peeraddr -> NoExtraPeers peeraddr -> Bool
(NoExtraPeers peeraddr -> NoExtraPeers peeraddr -> Bool)
-> (NoExtraPeers peeraddr -> NoExtraPeers peeraddr -> Bool)
-> Eq (NoExtraPeers peeraddr)
forall peeraddr.
NoExtraPeers peeraddr -> NoExtraPeers peeraddr -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall peeraddr.
NoExtraPeers peeraddr -> NoExtraPeers peeraddr -> Bool
== :: NoExtraPeers peeraddr -> NoExtraPeers peeraddr -> Bool
$c/= :: forall peeraddr.
NoExtraPeers peeraddr -> NoExtraPeers peeraddr -> Bool
/= :: NoExtraPeers peeraddr -> NoExtraPeers peeraddr -> Bool
Eq, Int -> NoExtraPeers peeraddr -> ShowS
[NoExtraPeers peeraddr] -> ShowS
NoExtraPeers peeraddr -> String
(Int -> NoExtraPeers peeraddr -> ShowS)
-> (NoExtraPeers peeraddr -> String)
-> ([NoExtraPeers peeraddr] -> ShowS)
-> Show (NoExtraPeers peeraddr)
forall peeraddr. Int -> NoExtraPeers peeraddr -> ShowS
forall peeraddr. [NoExtraPeers peeraddr] -> ShowS
forall peeraddr. NoExtraPeers peeraddr -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall peeraddr. Int -> NoExtraPeers peeraddr -> ShowS
showsPrec :: Int -> NoExtraPeers peeraddr -> ShowS
$cshow :: forall peeraddr. NoExtraPeers peeraddr -> String
show :: NoExtraPeers peeraddr -> String
$cshowList :: forall peeraddr. [NoExtraPeers peeraddr] -> ShowS
showList :: [NoExtraPeers peeraddr] -> ShowS
Show)
instance Monoid (NoExtraPeers peeraddr) where
mempty :: NoExtraPeers peeraddr
mempty = NoExtraPeers peeraddr
forall peeraddr. NoExtraPeers peeraddr
NoExtraPeers
instance Semigroup (NoExtraPeers peeraddr) where
NoExtraPeers peeraddr
_ <> :: NoExtraPeers peeraddr
-> NoExtraPeers peeraddr -> NoExtraPeers peeraddr
<> NoExtraPeers peeraddr
_ = NoExtraPeers peeraddr
forall peeraddr. NoExtraPeers peeraddr
NoExtraPeers
instance ( Ord peeraddr
, Show peeraddr
) => SupportsPeerSelectionState (NoExtraPeers peeraddr) peeraddr where
data (NoExtraPeers peeraddr)
deriving Int -> ToExtraTrace (NoExtraPeers peeraddr) -> ShowS
[ToExtraTrace (NoExtraPeers peeraddr)] -> ShowS
ToExtraTrace (NoExtraPeers peeraddr) -> String
(Int -> ToExtraTrace (NoExtraPeers peeraddr) -> ShowS)
-> (ToExtraTrace (NoExtraPeers peeraddr) -> String)
-> ([ToExtraTrace (NoExtraPeers peeraddr)] -> ShowS)
-> Show (ToExtraTrace (NoExtraPeers peeraddr))
forall peeraddr.
Int -> ToExtraTrace (NoExtraPeers peeraddr) -> ShowS
forall peeraddr. [ToExtraTrace (NoExtraPeers peeraddr)] -> ShowS
forall peeraddr. ToExtraTrace (NoExtraPeers peeraddr) -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall peeraddr.
Int -> ToExtraTrace (NoExtraPeers peeraddr) -> ShowS
showsPrec :: Int -> ToExtraTrace (NoExtraPeers peeraddr) -> ShowS
$cshow :: forall peeraddr. ToExtraTrace (NoExtraPeers peeraddr) -> String
show :: ToExtraTrace (NoExtraPeers peeraddr) -> String
$cshowList :: forall peeraddr. [ToExtraTrace (NoExtraPeers peeraddr)] -> ShowS
showList :: [ToExtraTrace (NoExtraPeers peeraddr)] -> ShowS
Show
data (NoExtraPeers peeraddr) =
deriving ViewExtraPeers (NoExtraPeers peeraddr)
-> ViewExtraPeers (NoExtraPeers peeraddr) -> Bool
(ViewExtraPeers (NoExtraPeers peeraddr)
-> ViewExtraPeers (NoExtraPeers peeraddr) -> Bool)
-> (ViewExtraPeers (NoExtraPeers peeraddr)
-> ViewExtraPeers (NoExtraPeers peeraddr) -> Bool)
-> Eq (ViewExtraPeers (NoExtraPeers peeraddr))
forall peeraddr.
ViewExtraPeers (NoExtraPeers peeraddr)
-> ViewExtraPeers (NoExtraPeers peeraddr) -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall peeraddr.
ViewExtraPeers (NoExtraPeers peeraddr)
-> ViewExtraPeers (NoExtraPeers peeraddr) -> Bool
== :: ViewExtraPeers (NoExtraPeers peeraddr)
-> ViewExtraPeers (NoExtraPeers peeraddr) -> Bool
$c/= :: forall peeraddr.
ViewExtraPeers (NoExtraPeers peeraddr)
-> ViewExtraPeers (NoExtraPeers peeraddr) -> Bool
/= :: ViewExtraPeers (NoExtraPeers peeraddr)
-> ViewExtraPeers (NoExtraPeers peeraddr) -> Bool
Eq
publicExtraPeersAPI :: PublicExtraPeersAPI (NoExtraPeers peeraddr) peeraddr
publicExtraPeersAPI = PublicExtraPeersAPI (NoExtraPeers peeraddr) peeraddr
forall extraPeers peeraddr.
Monoid extraPeers =>
PublicExtraPeersAPI extraPeers peeraddr
nullPublicExtraPeersAPI
mkViewExtraPeers :: forall extraState extraFlags peerconn.
PeerSelectionState
extraState extraFlags (NoExtraPeers peeraddr) peeraddr peerconn
-> ViewExtraPeers (NoExtraPeers peeraddr)
mkViewExtraPeers PeerSelectionState
extraState extraFlags (NoExtraPeers peeraddr) peeraddr peerconn
_ = ViewExtraPeers (NoExtraPeers peeraddr)
forall peeraddr. ViewExtraPeers (NoExtraPeers peeraddr)
NoExtraView
type OuroborosPeerSelectionCounters peeraddr =
PeerSelectionCounters (ViewExtraPeers (NoExtraPeers peeraddr))
type OuroborosDebugPeerSelection extraState extraFlags peeraddr =
DebugPeerSelection extraState extraFlags (NoExtraPeers peeraddr) peeraddr
type OuroborosTracePeerSelection extraDebugState extraFlags peeraddr =
TracePeerSelection extraDebugState extraFlags (NoExtraPeers peeraddr) peeraddr
data Tracers ntnAddr ntnVersion ntnVersionData
ntcAddr ntcVersion ntcVersionData
extraState extraDebugState
extraFlags extraPeers m = Tracers {
forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (WithBearer (ConnectionId ntnAddr) Trace)
dtMuxTracer
:: Tracer m (Mx.WithBearer (ConnectionId ntnAddr) Mx.Trace)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (WithBearer (ConnectionId ntnAddr) ChannelTrace)
dtChannelTracer
:: Tracer m (Mx.WithBearer (ConnectionId ntnAddr) Mx.ChannelTrace)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (WithBearer (ConnectionId ntnAddr) BearerTrace)
dtBearerTracer
:: Tracer m (Mx.WithBearer (ConnectionId ntnAddr) Mx.BearerTrace)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer
m
(WithBearer
(ConnectionId ntnAddr) (TraceSendRecv (Handshake ntnVersion Term)))
dtHandshakeTracer
:: Tracer m (Mx.WithBearer (ConnectionId ntnAddr) (TraceSendRecv (Handshake ntnVersion CBOR.Term)))
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (WithBearer (ConnectionId ntcAddr) Trace)
dtLocalMuxTracer
:: Tracer m (Mx.WithBearer (ConnectionId ntcAddr) Mx.Trace)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (WithBearer (ConnectionId ntcAddr) ChannelTrace)
dtLocalChannelTracer
:: Tracer m (Mx.WithBearer (ConnectionId ntcAddr) Mx.ChannelTrace)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (WithBearer (ConnectionId ntcAddr) BearerTrace)
dtLocalBearerTracer
:: Tracer m (Mx.WithBearer (ConnectionId ntcAddr) Mx.BearerTrace)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer
m
(WithBearer
(ConnectionId ntcAddr) (TraceSendRecv (Handshake ntcVersion Term)))
dtLocalHandshakeTracer
:: Tracer m (Mx.WithBearer (ConnectionId ntcAddr) (TraceSendRecv (Handshake ntcVersion CBOR.Term)))
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (DiffusionTracer ntnAddr ntcAddr)
dtDiffusionTracer
:: Tracer m (DiffusionTracer ntnAddr ntcAddr)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (TraceLocalRootPeers extraFlags ntnAddr)
dtTraceLocalRootPeersTracer
:: Tracer m (TraceLocalRootPeers extraFlags ntnAddr)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m TracePublicRootPeers
dtTracePublicRootPeersTracer
:: Tracer m TracePublicRootPeers
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m TraceLedgerPeers
dtTraceLedgerPeersTracer
:: Tracer m TraceLedgerPeers
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer
m
(TracePeerSelection extraDebugState extraFlags extraPeers ntnAddr)
dtTracePeerSelectionTracer
:: Tracer m (TracePeerSelection extraDebugState extraFlags extraPeers ntnAddr)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer
m (DebugPeerSelection extraState extraFlags extraPeers ntnAddr)
dtDebugPeerSelectionTracer
:: Tracer m (DebugPeerSelection extraState extraFlags extraPeers ntnAddr)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (PeerSelectionCounters (ViewExtraPeers extraPeers))
dtTracePeerSelectionCounters
:: Tracer m (PeerSelectionCounters (ViewExtraPeers extraPeers))
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (PeerSelectionActionsTrace ntnAddr ntnVersion)
dtPeerSelectionActionsTracer
:: Tracer m (PeerSelectionActionsTrace ntnAddr ntnVersion)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer
m
(Trace ntnAddr (ConnectionHandlerTrace ntnVersion ntnVersionData))
dtConnectionManagerTracer
:: Tracer m (CM.Trace
ntnAddr
(ConnectionHandlerTrace
ntnVersion
ntnVersionData))
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (AbstractTransitionTrace ConnStateId)
dtConnectionManagerTransitionTracer
:: Tracer m (AbstractTransitionTrace CM.ConnStateId)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (Trace ntnAddr)
dtServerTracer
:: Tracer m (Server.Trace ntnAddr)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (Trace ntnAddr)
dtInboundGovernorTracer
:: Tracer m (IG.Trace ntnAddr)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (RemoteTransitionTrace ntnAddr)
dtInboundGovernorTransitionTracer
:: Tracer m (IG.RemoteTransitionTrace ntnAddr)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m DNSTrace
dtDnsTracer :: Tracer m DNSTrace
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer
m
(Trace ntcAddr (ConnectionHandlerTrace ntcVersion ntcVersionData))
dtLocalConnectionManagerTracer
:: Tracer m (CM.Trace
ntcAddr
(ConnectionHandlerTrace
ntcVersion
ntcVersionData))
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (Trace ntcAddr)
dtLocalServerTracer
:: Tracer m (Server.Trace ntcAddr)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraState extraDebugState extraFlags extraPeers
(m :: * -> *).
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
-> Tracer m (Trace ntcAddr)
dtLocalInboundGovernorTracer
:: Tracer m (IG.Trace ntcAddr)
}
nullTracers :: Applicative m
=> Tracers ntnAddr ntnVersion ntnVersionData
ntcAddr ntcVersion ntcVersionData
extraState extraDebugState
extraFlags extraPeers
m
nullTracers :: forall (m :: * -> *) ntnAddr ntnVersion ntnVersionData ntcAddr
ntcVersion ntcVersionData extraState extraDebugState extraFlags
extraPeers.
Applicative m =>
Tracers
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraState
extraDebugState
extraFlags
extraPeers
m
nullTracers = Tracers {
dtMuxTracer :: Tracer m (WithBearer (ConnectionId ntnAddr) Trace)
dtMuxTracer = Tracer m (WithBearer (ConnectionId ntnAddr) Trace)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtChannelTracer :: Tracer m (WithBearer (ConnectionId ntnAddr) ChannelTrace)
dtChannelTracer = Tracer m (WithBearer (ConnectionId ntnAddr) ChannelTrace)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtBearerTracer :: Tracer m (WithBearer (ConnectionId ntnAddr) BearerTrace)
dtBearerTracer = Tracer m (WithBearer (ConnectionId ntnAddr) BearerTrace)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtHandshakeTracer :: Tracer
m
(WithBearer
(ConnectionId ntnAddr) (TraceSendRecv (Handshake ntnVersion Term)))
dtHandshakeTracer = Tracer
m
(WithBearer
(ConnectionId ntnAddr) (TraceSendRecv (Handshake ntnVersion Term)))
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtLocalMuxTracer :: Tracer m (WithBearer (ConnectionId ntcAddr) Trace)
dtLocalMuxTracer = Tracer m (WithBearer (ConnectionId ntcAddr) Trace)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtLocalChannelTracer :: Tracer m (WithBearer (ConnectionId ntcAddr) ChannelTrace)
dtLocalChannelTracer = Tracer m (WithBearer (ConnectionId ntcAddr) ChannelTrace)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtLocalBearerTracer :: Tracer m (WithBearer (ConnectionId ntcAddr) BearerTrace)
dtLocalBearerTracer = Tracer m (WithBearer (ConnectionId ntcAddr) BearerTrace)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtLocalHandshakeTracer :: Tracer
m
(WithBearer
(ConnectionId ntcAddr) (TraceSendRecv (Handshake ntcVersion Term)))
dtLocalHandshakeTracer = Tracer
m
(WithBearer
(ConnectionId ntcAddr) (TraceSendRecv (Handshake ntcVersion Term)))
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtDiffusionTracer :: Tracer m (DiffusionTracer ntnAddr ntcAddr)
dtDiffusionTracer = Tracer m (DiffusionTracer ntnAddr ntcAddr)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtTraceLocalRootPeersTracer :: Tracer m (TraceLocalRootPeers extraFlags ntnAddr)
dtTraceLocalRootPeersTracer = Tracer m (TraceLocalRootPeers extraFlags ntnAddr)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtTracePublicRootPeersTracer :: Tracer m TracePublicRootPeers
dtTracePublicRootPeersTracer = Tracer m TracePublicRootPeers
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtTraceLedgerPeersTracer :: Tracer m TraceLedgerPeers
dtTraceLedgerPeersTracer = Tracer m TraceLedgerPeers
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtTracePeerSelectionTracer :: Tracer
m
(TracePeerSelection extraDebugState extraFlags extraPeers ntnAddr)
dtTracePeerSelectionTracer = Tracer
m
(TracePeerSelection extraDebugState extraFlags extraPeers ntnAddr)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtDebugPeerSelectionTracer :: Tracer
m (DebugPeerSelection extraState extraFlags extraPeers ntnAddr)
dtDebugPeerSelectionTracer = Tracer
m (DebugPeerSelection extraState extraFlags extraPeers ntnAddr)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtTracePeerSelectionCounters :: Tracer m (PeerSelectionCounters (ViewExtraPeers extraPeers))
dtTracePeerSelectionCounters = Tracer m (PeerSelectionCounters (ViewExtraPeers extraPeers))
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtPeerSelectionActionsTracer :: Tracer m (PeerSelectionActionsTrace ntnAddr ntnVersion)
dtPeerSelectionActionsTracer = Tracer m (PeerSelectionActionsTrace ntnAddr ntnVersion)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtConnectionManagerTracer :: Tracer
m
(Trace ntnAddr (ConnectionHandlerTrace ntnVersion ntnVersionData))
dtConnectionManagerTracer = Tracer
m
(Trace ntnAddr (ConnectionHandlerTrace ntnVersion ntnVersionData))
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtConnectionManagerTransitionTracer :: Tracer m (AbstractTransitionTrace ConnStateId)
dtConnectionManagerTransitionTracer = Tracer m (AbstractTransitionTrace ConnStateId)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtServerTracer :: Tracer m (Trace ntnAddr)
dtServerTracer = Tracer m (Trace ntnAddr)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtInboundGovernorTracer :: Tracer m (Trace ntnAddr)
dtInboundGovernorTracer = Tracer m (Trace ntnAddr)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtInboundGovernorTransitionTracer :: Tracer m (RemoteTransitionTrace ntnAddr)
dtInboundGovernorTransitionTracer = Tracer m (RemoteTransitionTrace ntnAddr)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtLocalConnectionManagerTracer :: Tracer
m
(Trace ntcAddr (ConnectionHandlerTrace ntcVersion ntcVersionData))
dtLocalConnectionManagerTracer = Tracer
m
(Trace ntcAddr (ConnectionHandlerTrace ntcVersion ntcVersionData))
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtLocalServerTracer :: Tracer m (Trace ntcAddr)
dtLocalServerTracer = Tracer m (Trace ntcAddr)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtLocalInboundGovernorTracer :: Tracer m (Trace ntcAddr)
dtLocalInboundGovernorTracer = Tracer m (Trace ntcAddr)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, dtDnsTracer :: Tracer m DNSTrace
dtDnsTracer = Tracer m DNSTrace
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
}
data Arguments extraState extraDebugState extraFlags extraPeers
extraAPI extraChurnArgs
exception resolver m
ntnFd ntnAddr ntnVersion ntnVersionData
ntcAddr ntcVersion ntcVersionData =
Arguments {
forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> ntnVersionData -> DataFlow
daNtnDataFlow
:: ntnVersionData -> DataFlow
, forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> ntnVersionData -> PeerSharing
daNtnPeerSharing
:: ntnVersionData -> PeerSharing
, forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> ntnVersionData -> DiffusionMode -> ntnVersionData
daUpdateVersionData
:: ntnVersionData -> DiffusionMode -> ntnVersionData
, forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> HandshakeArguments
(ConnectionId ntnAddr) ntnVersion ntnVersionData m
daNtnHandshakeArguments
:: HandshakeArguments (ConnectionId ntnAddr) ntnVersion ntnVersionData m
, forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> HandshakeArguments
(ConnectionId ntcAddr) ntcVersion ntcVersionData m
daNtcHandshakeArguments
:: HandshakeArguments (ConnectionId ntcAddr) ntcVersion ntcVersionData m
, forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> LedgerPeersConsensusInterface extraAPI m
daLedgerPeersCtx :: LedgerPeersConsensusInterface extraAPI m
, :: extraState
, :: ViewExtraPeers extraPeers
, :: PublicExtraPeersAPI extraPeers ntnAddr
, forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> forall (mode :: Mode) x y.
NodeToNodeConnectionManager
mode ntnFd ntnAddr extraFlags ntnVersionData ntnVersion m x y
-> StrictTVar
m
(PeerSelectionState
extraState
extraFlags
extraPeers
ntnAddr
(NodeToNodePeerConnectionHandle
mode ntnAddr extraFlags ntnVersionData m x y))
-> m ()
daInstallSigUSR1Handler
:: forall mode x y.
NodeToNodeConnectionManager mode ntnFd ntnAddr
extraFlags ntnVersionData
ntnVersion m x y
-> StrictTVar m
(PeerSelectionState extraState extraFlags extraPeers
ntnAddr
(NodeToNodePeerConnectionHandle
mode ntnAddr extraFlags
ntnVersionData m x y))
-> m ()
, forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> forall (muxMode :: Mode) responderCtx bytes a b.
PeerSelectionGovernorArgs
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
ntnAddr
(PeerConnectionHandle
muxMode responderCtx ntnAddr extraFlags ntnVersionData bytes m a b)
exception
m
daPeerSelectionGovernorArgs
:: forall muxMode responderCtx bytes a b .
PeerSelectionGovernorArgs
extraState extraDebugState extraFlags extraPeers
extraAPI ntnAddr
(PeerConnectionHandle muxMode responderCtx ntnAddr
extraFlags ntnVersionData bytes m a b)
exception m
, :: Map ntnAddr PeerAdvertise -> extraPeers
, forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> Maybe
(PeerActionsDNS ntnAddr resolver m
-> DNSSemaphore m
-> (Map ntnAddr PeerAdvertise -> extraPeers)
-> (NumberOfPeers
-> SomeLedgerPeersKind -> m (Maybe (Set ntnAddr, DiffTime)))
-> SomeLedgerPeersKind
-> StdGen
-> Int
-> m (PublicRootPeers extraPeers ntnAddr, DiffTime))
daRequestPublicRootPeers
:: Maybe ( PeerActionsDNS ntnAddr resolver m
-> DNSSemaphore m
-> (Map ntnAddr PeerAdvertise -> extraPeers)
-> ( (NumberOfPeers -> SomeLedgerPeersKind -> m (Maybe (Set ntnAddr, DiffTime)))
-> SomeLedgerPeersKind
-> StdGen
-> Int
-> m (PublicRootPeers extraPeers ntnAddr, DiffTime)))
, forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> PeerChurnArgs
m
extraChurnArgs
extraDebugState
extraFlags
extraPeers
extraAPI
ntnAddr
-> m Void
daPeerChurnGovernor
:: PeerSelection.PeerChurnArgs
m
extraChurnArgs
extraDebugState
extraFlags
extraPeers
extraAPI
ntnAddr
-> m Void
, :: extraChurnArgs
, forall extraState extraDebugState extraFlags extraPeers extraAPI
extraChurnArgs exception resolver (m :: * -> *) ntnFd ntnAddr
ntnVersion ntnVersionData ntcAddr ntcVersion ntcVersionData.
Arguments
extraState
extraDebugState
extraFlags
extraPeers
extraAPI
extraChurnArgs
exception
resolver
m
ntnFd
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
-> SRVPrefix
daSRVPrefix :: SRVPrefix
}
data Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr = Configuration {
forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> Maybe (Either ntnFd ntnAddr)
dcIPv4Address :: Maybe (Either ntnFd ntnAddr)
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> Maybe (Either ntnFd ntnAddr)
dcIPv6Address :: Maybe (Either ntnFd ntnAddr)
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> Maybe (Either ntcFd ntcAddr)
dcLocalAddress :: Maybe (Either ntcFd ntcAddr)
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> AcceptedConnectionsLimit
dcAcceptedConnectionsLimit :: AcceptedConnectionsLimit
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> DiffusionMode
dcMode :: DiffusionMode
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> StrictTVar m (PublicPeerSelectionState ntnAddr)
dcPublicPeerSelectionVar :: StrictTVar m (PublicPeerSelectionState ntnAddr)
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> PeerSelectionTargets
dcPeerSelectionTargets :: PeerSelectionTargets
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> STM m (Config extraFlags RelayAccessPoint)
dcReadLocalRootPeers :: STM m (LocalRootPeers.Config extraFlags RelayAccessPoint)
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> STM m (Map RelayAccessPoint PeerAdvertise)
dcReadPublicRootPeers :: STM m (Map RelayAccessPoint PeerAdvertise)
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> STM m (Maybe (LedgerPeerSnapshot BigLedgerPeers))
dcReadLedgerPeerSnapshot :: STM m (Maybe (LedgerPeerSnapshot BigLedgerPeers))
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> STM m UseLedgerPeers
dcReadUseLedgerPeers :: STM m UseLedgerPeers
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> PeerSharing
dcPeerSharing :: PeerSharing
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr -> DiffTime
dcProtocolIdleTimeout :: DiffTime
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr -> DiffTime
dcTimeWaitTimeout :: DiffTime
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr -> DiffTime
dcDeadlineChurnInterval :: DiffTime
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr -> DiffTime
dcBulkChurnInterval :: DiffTime
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> ForkPolicy ntnAddr
dcMuxForkPolicy :: Mx.ForkPolicy ntnAddr
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr
-> ForkPolicy ntcAddr
dcLocalMuxForkPolicy :: Mx.ForkPolicy ntcAddr
, forall extraFlags (m :: * -> *) ntnFd ntnAddr ntcFd ntcAddr.
Configuration extraFlags m ntnFd ntnAddr ntcFd ntcAddr -> DiffTime
dcEgressPollInterval :: DiffTime
}
data Applications ntnAddr ntnVersion ntnVersionData
ntcAddr ntcVersion ntcVersionData
extraFlags m a =
Applications {
forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraFlags (m :: * -> *) a.
Applications
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraFlags
m
a
-> Versions
ntnVersion
ntnVersionData
(OuroborosBundleWithExpandedCtx
'InitiatorMode ntnAddr extraFlags ByteString m a Void)
daApplicationInitiatorMode
:: Versions ntnVersion
ntnVersionData
(OuroborosBundleWithExpandedCtx
Mx.InitiatorMode ntnAddr extraFlags
ByteString m a Void)
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraFlags (m :: * -> *) a.
Applications
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraFlags
m
a
-> Versions
ntnVersion
ntnVersionData
(OuroborosBundleWithExpandedCtx
'InitiatorResponderMode ntnAddr extraFlags ByteString m a ())
daApplicationInitiatorResponderMode
:: Versions ntnVersion
ntnVersionData
(OuroborosBundleWithExpandedCtx
Mx.InitiatorResponderMode ntnAddr extraFlags
ByteString m a ())
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraFlags (m :: * -> *) a.
Applications
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraFlags
m
a
-> Versions
ntcVersion
ntcVersionData
(OuroborosApplicationWithMinimalCtx
'ResponderMode ntcAddr ByteString m Void ())
daLocalResponderApplication
:: Versions ntcVersion
ntcVersionData
(OuroborosApplicationWithMinimalCtx
Mx.ResponderMode ntcAddr
ByteString m Void ())
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraFlags (m :: * -> *) a.
Applications
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraFlags
m
a
-> RethrowPolicy
daRethrowPolicy :: RethrowPolicy
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraFlags (m :: * -> *) a.
Applications
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraFlags
m
a
-> ReturnPolicy a
daReturnPolicy :: ReturnPolicy a
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraFlags (m :: * -> *) a.
Applications
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraFlags
m
a
-> RepromoteDelay
daRepromoteErrorDelay :: RepromoteDelay
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraFlags (m :: * -> *) a.
Applications
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraFlags
m
a
-> RethrowPolicy
daLocalRethrowPolicy :: RethrowPolicy
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraFlags (m :: * -> *) a.
Applications
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraFlags
m
a
-> PeerSelectionPolicy ntnAddr m
daPeerSelectionPolicy :: PeerSelectionPolicy ntnAddr m
, forall ntnAddr ntnVersion ntnVersionData ntcAddr ntcVersion
ntcVersionData extraFlags (m :: * -> *) a.
Applications
ntnAddr
ntnVersion
ntnVersionData
ntcAddr
ntcVersion
ntcVersionData
extraFlags
m
a
-> PeerSharingRegistry ntnAddr m
daPeerSharingRegistry :: PeerSharingRegistry ntnAddr m
}
type NodeToClientHandle ntcAddr versionData m =
HandleWithMinimalCtx Mx.ResponderMode ntcAddr versionData ByteString m Void ()
type NodeToClientHandleError ntcVersion =
HandlerError ntcVersion
{-# DEPRECATED NodeToClientHandleError "Use NodeToClientHandlerError" #-}
type NodeToClientHandlerError ntcVersion =
HandlerError ntcVersion
type MkNodeToClientConnectionHandler
ntcFd ntcAddr ntcVersion ntcVersionData m =
( StrictTVar m (StrictMaybe IG.ResponderCounters)
-> Tracer m (Mx.WithBearer (ConnectionId ntcAddr) Mx.Trace))
-> ConnectionHandler
Mx.ResponderMode
(ConnectionHandlerTrace ntcVersion ntcVersionData)
ntcFd
ntcAddr
(NodeToClientHandle ntcAddr ntcVersionData m)
(NodeToClientHandlerError ntcVersion)
ntcVersion
ntcVersionData
m
type NodeToNodeHandle
(mode :: Mx.Mode)
ntnAddr extraFlags ntnVersionData m a b =
HandleWithExpandedCtx mode ntnAddr extraFlags ntnVersionData ByteString m a b
type NodeToNodeConnectionManager
(mode :: Mx.Mode)
ntnFd ntnAddr extraFlags ntnVersionData ntnVersion m a b =
ConnectionManager
mode
ntnFd
ntnAddr
(NodeToNodeHandle mode ntnAddr extraFlags ntnVersionData m a b)
(HandlerError ntnVersion)
m
type NodeToNodePeerConnectionHandle (mode :: Mx.Mode) ntnAddr extraFlags ntnVersionData m a b =
PeerConnectionHandle
mode
(ResponderContext ntnAddr)
ntnAddr
extraFlags
ntnVersionData
ByteString
m a b
type NodeToNodePeerSelectionActions extraState extraFlags extraPeers extraAPI
(mode :: Mx.Mode) ntnAddr ntnVersionData m a b =
PeerSelectionActions
extraState extraFlags extraPeers extraAPI
ntnAddr
(NodeToNodePeerConnectionHandle mode ntnAddr extraFlags ntnVersionData m a b)
m
data Interfaces ntnFd ntnAddr ntcFd ntcAddr
resolver m =
Interfaces {
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> Snocket m ntnFd ntnAddr
diNtnSnocket
:: Snocket m ntnFd ntnAddr,
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> MakeBearer m ntnFd
diNtnBearer
:: Mx.MakeBearer m ntnFd,
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> (Maybe (ReadBuffer m) -> m ()) -> m ()
diWithBuffer
:: (Maybe (ReadBuffer m) -> m ()) -> m (),
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> ntnFd -> Maybe ntnAddr -> m ()
diNtnConfigureSocket
:: ntnFd -> Maybe ntnAddr -> m (),
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> ntnFd -> ntnAddr -> m ()
diNtnConfigureSystemdSocket
:: ntnFd -> ntnAddr -> m (),
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> ntnAddr -> Maybe AddressType
diNtnAddressType
:: ntnAddr -> Maybe AddressType,
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> IP -> PortNumber -> ntnAddr
diNtnToPeerAddr
:: IP -> Socket.PortNumber -> ntnAddr,
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> Snocket m ntcFd ntcAddr
diNtcSnocket
:: Snocket m ntcFd ntcAddr,
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> MakeBearer m ntcFd
diNtcBearer
:: Mx.MakeBearer m ntcFd,
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> ntcFd -> m FileDescriptor
diNtcGetFileDescriptor
:: ntcFd -> m FileDescriptor,
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m -> StdGen
diRng
:: StdGen,
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> Tracer m DNSTrace
-> DNSLookupType
-> (IP -> PortNumber -> ntnAddr)
-> DNSActions ntnAddr resolver m
diDnsActions
:: Tracer m DNSTrace
-> DNSLookupType
-> (IP -> Socket.PortNumber -> ntnAddr)
-> DNSActions ntnAddr resolver m,
forall ntnFd ntnAddr ntcFd ntcAddr resolver (m :: * -> *).
Interfaces ntnFd ntnAddr ntcFd ntcAddr resolver m
-> ConnStateIdSupply m
diConnStateIdSupply
:: CM.ConnStateIdSupply m
}