-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | The cardano full node
@package cardano-node
@version 1.22.1

module Cardano.Node.Handlers.TopLevel

-- | An exception handler to use for a program top level, as an alternative
--   to the default top level handler provided by GHC.
--   
--   Use like:
--   
--   <pre>
--   main :: IO ()
--   main = toplevelExceptionHandler $ do
--     ...
--   </pre>
toplevelExceptionHandler :: IO a -> IO a

module Cardano.Node.Orphans
instance GHC.Show.Show Cardano.BM.Data.Tracer.TracingVerbosity
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.BM.Data.Tracer.TracingVerbosity
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Chain.Update.ApplicationName.ApplicationName

module Cardano.Tracing.Config
data TraceOptions
TracingOff :: TraceOptions
TracingOn :: TraceSelection -> TraceOptions
data TraceSelection
TraceSelection :: !TracingVerbosity -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> TraceSelection
[traceVerbosity] :: TraceSelection -> !TracingVerbosity
[traceAcceptPolicy] :: TraceSelection -> !Bool
[traceBlockchainTime] :: TraceSelection -> !Bool
[traceBlockFetchClient] :: TraceSelection -> !Bool
[traceBlockFetchDecisions] :: TraceSelection -> !Bool
[traceBlockFetchProtocol] :: TraceSelection -> !Bool
[traceBlockFetchProtocolSerialised] :: TraceSelection -> !Bool
[traceBlockFetchServer] :: TraceSelection -> !Bool
[traceChainDB] :: TraceSelection -> !Bool
[traceChainSyncClient] :: TraceSelection -> !Bool
[traceChainSyncBlockServer] :: TraceSelection -> !Bool
[traceChainSyncHeaderServer] :: TraceSelection -> !Bool
[traceChainSyncProtocol] :: TraceSelection -> !Bool
[traceDnsResolver] :: TraceSelection -> !Bool
[traceDnsSubscription] :: TraceSelection -> !Bool
[traceErrorPolicy] :: TraceSelection -> !Bool
[traceForge] :: TraceSelection -> !Bool
[traceForgeStateInfo] :: TraceSelection -> !Bool
[traceHandshake] :: TraceSelection -> !Bool
[traceIpSubscription] :: TraceSelection -> !Bool
[traceKeepAliveClient] :: TraceSelection -> !Bool
[traceLocalChainSyncProtocol] :: TraceSelection -> !Bool
[traceLocalErrorPolicy] :: TraceSelection -> !Bool
[traceLocalHandshake] :: TraceSelection -> !Bool
[traceLocalTxSubmissionProtocol] :: TraceSelection -> !Bool
[traceLocalTxSubmissionServer] :: TraceSelection -> !Bool
[traceLocalStateQueryProtocol] :: TraceSelection -> !Bool
[traceMempool] :: TraceSelection -> !Bool
[traceMux] :: TraceSelection -> !Bool
[traceTxInbound] :: TraceSelection -> !Bool
[traceTxOutbound] :: TraceSelection -> !Bool
[traceTxSubmissionProtocol] :: TraceSelection -> !Bool
traceConfigParser :: Object -> Parser TraceOptions
instance GHC.Show.Show Cardano.Tracing.Config.TraceSelection
instance GHC.Classes.Eq Cardano.Tracing.Config.TraceSelection
instance GHC.Show.Show Cardano.Tracing.Config.TraceOptions
instance GHC.Classes.Eq Cardano.Tracing.Config.TraceOptions

module Cardano.Tracing.ConvertTxId

-- | Convert a transaction ID to raw bytes.
class ConvertTxId blk
txIdToRawBytes :: ConvertTxId blk => TxId (GenTx blk) -> ByteString
instance Cardano.Tracing.ConvertTxId.ConvertTxId Ouroboros.Consensus.Byron.Ledger.Block.ByronBlock
instance Cardano.Tracing.ConvertTxId.ConvertTxId (Ouroboros.Consensus.Shelley.Ledger.Block.ShelleyBlock c)
instance Data.SOP.Constraint.All Cardano.Tracing.ConvertTxId.ConvertTxId xs => Cardano.Tracing.ConvertTxId.ConvertTxId (Ouroboros.Consensus.HardFork.Combinator.Basics.HardForkBlock xs)

module Cardano.Tracing.Kernel
newtype NodeKernelData blk
NodeKernelData :: IORef (StrictMaybe (NodeKernel IO RemoteConnectionId LocalConnectionId blk)) -> NodeKernelData blk
[unNodeKernelData] :: NodeKernelData blk -> IORef (StrictMaybe (NodeKernel IO RemoteConnectionId LocalConnectionId blk))
mkNodeKernelData :: IO (NodeKernelData blk)
setNodeKernel :: NodeKernelData blk -> NodeKernel IO RemoteConnectionId LocalConnectionId blk -> IO ()
mapNodeKernelDataIO :: (NodeKernel IO RemoteConnectionId LocalConnectionId blk -> IO a) -> NodeKernelData blk -> IO (StrictMaybe a)

-- | Interface against running relay node
data NodeKernel (m :: Type -> Type) remotePeer localPeer blk
NodeKernel :: ChainDB m blk -> Mempool m blk TicketNo -> TopLevelConfig blk -> FetchClientRegistry remotePeer (Header blk) blk m -> StrictTVar m (Map remotePeer (StrictTVar m (AnchoredFragment (Header blk)))) -> Tracers m remotePeer localPeer blk -> NodeKernel (m :: Type -> Type) remotePeer localPeer blk

-- | The <a>ChainDB</a> of the node
[$sel:getChainDB:NodeKernel] :: NodeKernel (m :: Type -> Type) remotePeer localPeer blk -> ChainDB m blk

-- | The node's mempool
[$sel:getMempool:NodeKernel] :: NodeKernel (m :: Type -> Type) remotePeer localPeer blk -> Mempool m blk TicketNo

-- | The node's top-level static configuration
[$sel:getTopLevelConfig:NodeKernel] :: NodeKernel (m :: Type -> Type) remotePeer localPeer blk -> TopLevelConfig blk

-- | The fetch client registry, used for the block fetch clients.
[$sel:getFetchClientRegistry:NodeKernel] :: NodeKernel (m :: Type -> Type) remotePeer localPeer blk -> FetchClientRegistry remotePeer (Header blk) blk m

-- | Read the current candidates
[$sel:getNodeCandidates:NodeKernel] :: NodeKernel (m :: Type -> Type) remotePeer localPeer blk -> StrictTVar m (Map remotePeer (StrictTVar m (AnchoredFragment (Header blk))))

-- | The node's tracers
[$sel:getTracers:NodeKernel] :: NodeKernel (m :: Type -> Type) remotePeer localPeer blk -> Tracers m remotePeer localPeer blk
type LocalConnectionId = ConnectionId LocalAddress
type RemoteConnectionId = ConnectionId SockAddr

-- | Strict <a>Maybe</a>.
--   
--   TODO move to <tt>cardano-prelude</tt>
data StrictMaybe a
SNothing :: StrictMaybe a
SJust :: !a -> StrictMaybe a
fromSMaybe :: a -> StrictMaybe a -> a

module Cardano.Tracing.Metrics

-- | KES-related data to be traced as metrics.
data KESMetricsData

-- | The current protocol does not support KES.
NoKESMetricsData :: KESMetricsData
TPraosKESMetricsData :: !Period -> !MaxKESEvolutions -> !OperationalCertStartKESPeriod -> KESMetricsData

-- | The maximum number of evolutions that a KES key can undergo before it
--   is considered expired.
newtype MaxKESEvolutions
MaxKESEvolutions :: Word64 -> MaxKESEvolutions

-- | The start KES period of the configured operational certificate.
newtype OperationalCertStartKESPeriod
OperationalCertStartKESPeriod :: Period -> OperationalCertStartKESPeriod
class HasKESMetricsData blk
getKESMetricsData :: HasKESMetricsData blk => Proxy blk -> ForgeStateInfo blk -> KESMetricsData
instance Cardano.Tracing.Metrics.HasKESMetricsData (Ouroboros.Consensus.Shelley.Ledger.Block.ShelleyBlock c)
instance Cardano.Tracing.Metrics.HasKESMetricsData Ouroboros.Consensus.Byron.Ledger.Block.ByronBlock
instance Data.SOP.Constraint.All Cardano.Tracing.Metrics.HasKESMetricsData xs => Cardano.Tracing.Metrics.HasKESMetricsData (Ouroboros.Consensus.HardFork.Combinator.Basics.HardForkBlock xs)

module Cardano.Tracing.OrphanInstances.Common
class ToObject a
toObject :: ToObject a => TracingVerbosity -> a -> Object
textTransformer :: ToObject a => a -> Object -> Text
data TracingVerbosity
MinimalVerbosity :: TracingVerbosity
NormalVerbosity :: TracingVerbosity
MaximalVerbosity :: TracingVerbosity
mkObject :: ToObject a => [(Text, a)] -> HashMap Text a
emptyObject :: ToObject a => HashMap Text a

-- | A type that can be converted to JSON.
--   
--   Instances in general <i>must</i> specify <a>toJSON</a> and
--   <i>should</i> (but don't need to) specify <a>toEncoding</a>.
--   
--   An example type and instance:
--   
--   <pre>
--   -- Allow ourselves to write <a>Text</a> literals.
--   {-# LANGUAGE OverloadedStrings #-}
--   
--   data Coord = Coord { x :: Double, y :: Double }
--   
--   instance <a>ToJSON</a> Coord where
--     <a>toJSON</a> (Coord x y) = <a>object</a> ["x" <a>.=</a> x, "y" <a>.=</a> y]
--   
--     <a>toEncoding</a> (Coord x y) = <tt>pairs</tt> ("x" <a>.=</a> x <a>&lt;&gt;</a> "y" <a>.=</a> y)
--   </pre>
--   
--   Instead of manually writing your <a>ToJSON</a> instance, there are two
--   options to do it automatically:
--   
--   <ul>
--   <li><a>Data.Aeson.TH</a> provides Template Haskell functions which
--   will derive an instance at compile time. The generated instance is
--   optimized for your type so it will probably be more efficient than the
--   following option.</li>
--   <li>The compiler can provide a default generic implementation for
--   <a>toJSON</a>.</li>
--   </ul>
--   
--   To use the second, simply add a <tt>deriving <a>Generic</a></tt>
--   clause to your datatype and declare a <a>ToJSON</a> instance. If you
--   require nothing other than <a>defaultOptions</a>, it is sufficient to
--   write (and this is the only alternative where the default
--   <a>toJSON</a> implementation is sufficient):
--   
--   <pre>
--   {-# LANGUAGE DeriveGeneric #-}
--   
--   import <a>GHC.Generics</a>
--   
--   data Coord = Coord { x :: Double, y :: Double } deriving <a>Generic</a>
--   
--   instance <a>ToJSON</a> Coord where
--       <a>toEncoding</a> = <a>genericToEncoding</a> <a>defaultOptions</a>
--   </pre>
--   
--   If on the other hand you wish to customize the generic decoding, you
--   have to implement both methods:
--   
--   <pre>
--   customOptions = <a>defaultOptions</a>
--                   { <a>fieldLabelModifier</a> = <a>map</a> <a>toUpper</a>
--                   }
--   
--   instance <a>ToJSON</a> Coord where
--       <a>toJSON</a>     = <a>genericToJSON</a> customOptions
--       <a>toEncoding</a> = <a>genericToEncoding</a> customOptions
--   </pre>
--   
--   Previous versions of this library only had the <a>toJSON</a> method.
--   Adding <a>toEncoding</a> had two reasons:
--   
--   <ol>
--   <li>toEncoding is more efficient for the common case that the output
--   of <a>toJSON</a> is directly serialized to a <tt>ByteString</tt>.
--   Further, expressing either method in terms of the other would be
--   non-optimal.</li>
--   <li>The choice of defaults allows a smooth transition for existing
--   users: Existing instances that do not define <a>toEncoding</a> still
--   compile and have the correct semantics. This is ensured by making the
--   default implementation of <a>toEncoding</a> use <a>toJSON</a>. This
--   produces correct results, but since it performs an intermediate
--   conversion to a <a>Value</a>, it will be less efficient than directly
--   emitting an <a>Encoding</a>. (this also means that specifying nothing
--   more than <tt>instance ToJSON Coord</tt> would be sufficient as a
--   generically decoding instance, but there probably exists no good
--   reason to not specify <a>toEncoding</a> in new instances.)</li>
--   </ol>
class ToJSON a

-- | A JSON value represented as a Haskell value.
data Value
Object :: !Object -> Value
Array :: !Array -> Value
String :: !Text -> Value
Number :: !Scientific -> Value
Bool :: !Bool -> Value
Null :: Value

-- | Convert a Haskell value to a JSON-friendly intermediate type.
toJSON :: ToJSON a => a -> Value
(.=) :: (KeyValue kv, ToJSON v) => Text -> v -> kv
infixr 8 .=
class (Monad m, HasPrivacyAnnotation b, HasSeverityAnnotation b) => Transformable a (m :: Type -> Type) b
trTransformer :: Transformable a m b => TracingVerbosity -> Trace m a -> Tracer m b
trStructured :: forall b (m :: Type -> Type) a. (ToObject b, MonadIO m, HasPrivacyAnnotation b, HasSeverityAnnotation b) => TracingVerbosity -> Trace m a -> Tracer m b
trStructuredText :: forall b (m :: Type -> Type) a. (ToObject b, MonadIO m, HasTextFormatter b, HasPrivacyAnnotation b, HasSeverityAnnotation b) => TracingVerbosity -> Trace m a -> Tracer m b
class HasTextFormatter a
formatText :: HasTextFormatter a => a -> Object -> Text
class HasSeverityAnnotation a
getSeverityAnnotation :: HasSeverityAnnotation a => a -> Severity
data Severity
Debug :: Severity
Info :: Severity
Notice :: Severity
Warning :: Severity
Error :: Severity
Critical :: Severity
Alert :: Severity
Emergency :: Severity
class HasPrivacyAnnotation a
getPrivacyAnnotation :: HasPrivacyAnnotation a => a -> PrivacyAnnotation
data PrivacyAnnotation
Confidential :: PrivacyAnnotation
Public :: PrivacyAnnotation

-- | example: simply output a message on the console
--   
--   <pre>
--   let logTrace = traceWith $ showTracing $ stdoutTracer
--   in  logTrace "hello world"
--   </pre>
--   
--   example: calling a function and passing in a <a>Tracer</a>
--   
--   <pre>
--   example1 :: IO ()
--   example1 = do
--       let logTrace a = traceWith (showTracing (contramap ("Debug: " ++) stdoutTracer)) a
--       void $ callFun1 logTrace
--   </pre>
--   
--   <pre>
--   callFun1 :: (String -&gt; IO ()) -&gt; IO Int
--   callFun1 logTrace = do
--       logTrace "in function 1"
--       return 42
--   </pre>
--   
--   <a>runTracer</a> evaluates a <a>Tracer</a> (i.e. consumes its
--   argument)
data Tracer (m :: Type -> Type) a
data LogObject a
LogObject :: LoggerName -> !LOMeta -> !LOContent a -> LogObject a
[loName] :: LogObject a -> LoggerName
[loMeta] :: LogObject a -> !LOMeta
[loContent] :: LogObject a -> !LOContent a
data LOContent a
LogMessage :: a -> LOContent a
LogError :: !Text -> LOContent a
LogValue :: !Text -> !Measurable -> LOContent a
LogStructuredText :: Object -> Text -> LOContent a
LogStructured :: Object -> LOContent a
ObserveOpen :: !CounterState -> LOContent a
ObserveDiff :: !CounterState -> LOContent a
ObserveClose :: !CounterState -> LOContent a
AggregatedMessage :: [(Text, Aggregated)] -> LOContent a
MonitoringEffect :: !MonitorAction -> LOContent a
Command :: !CommandValue -> LOContent a
KillPill :: LOContent a
mkLOMeta :: MonadIO m => Severity -> PrivacyAnnotation -> m LOMeta
instance GHC.Show.Show Cardano.BM.Data.Tracer.TracingVerbosity
instance Data.Aeson.Types.ToJSON.ToJSON Ouroboros.Consensus.Byron.Ledger.Block.ByronHash
instance Data.Aeson.Types.ToJSON.ToJSON Cardano.Slotting.Block.BlockNo
instance Cardano.BM.Data.Tracer.ToObject Data.Void.Void
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.BM.Data.Tracer.TracingVerbosity
instance Data.Aeson.Types.FromJSON.FromJSON Network.Socket.Types.PortNumber
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Chain.Update.ApplicationName.ApplicationName
instance Data.Aeson.Types.ToJSON.ToJSON (Ouroboros.Network.Block.HeaderHash blk) => Data.Aeson.Types.ToJSON.ToJSON (Ouroboros.Network.Block.Tip blk)
instance Data.Aeson.Types.ToJSON.ToJSON (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraHash xs)

module Cardano.Tracing.Peer
data Peer blk
Peer :: !RemoteConnectionId -> !AnchoredFragment (Header blk) -> !PeerFetchStatus (Header blk) -> !PeerFetchInFlight (Header blk) -> Peer blk
getCurrentPeers :: NodeKernelData blk -> IO [Peer blk]
ppPeer :: Peer blk -> Text

-- | Trace peers list, it will be forwarded to an external process (for
--   example, to RTView service).
tracePeers :: Trace IO Text -> [Peer blk] -> IO ()
instance NoThunks.Class.NoThunks (Cardano.Tracing.Peer.Peer blk)
instance GHC.Generics.Generic (Cardano.Tracing.Peer.Peer blk)
instance Control.DeepSeq.NFData (Cardano.Tracing.Peer.Peer blk)
instance Cardano.BM.Data.Tracer.ToObject [Cardano.Tracing.Peer.Peer blk]
instance Cardano.BM.Data.Tracer.ToObject (Cardano.Tracing.Peer.Peer blk)

module Cardano.Tracing.Queries
class LedgerQueries blk
ledgerUtxoSize :: LedgerQueries blk => LedgerState blk -> Int
instance Cardano.Tracing.Queries.LedgerQueries Ouroboros.Consensus.Byron.Ledger.Block.ByronBlock
instance Cardano.Tracing.Queries.LedgerQueries (Ouroboros.Consensus.Shelley.Ledger.Block.ShelleyBlock era)
instance (Cardano.Tracing.Queries.LedgerQueries x, Ouroboros.Consensus.HardFork.Combinator.Abstract.NoHardForks.NoHardForks x) => Cardano.Tracing.Queries.LedgerQueries (Ouroboros.Consensus.HardFork.Combinator.Basics.HardForkBlock '[x])
instance Cardano.Tracing.Queries.LedgerQueries (Ouroboros.Consensus.Cardano.Block.CardanoBlock c)

module Cardano.Tracing.Constraints

-- | Tracing-related constraints for monitoring purposes.
type TraceConstraints blk = (ConvertTxId blk, HasTxs blk, HasTxId (GenTx blk), LedgerQueries blk, ToJSON (TxId (GenTx blk)), ToObject (ApplyTxErr blk), ToObject (GenTx blk), ToObject (Header blk), ToObject (LedgerError blk), ToObject (LedgerEvent blk), ToObject (OtherHeaderEnvelopeError blk), ToObject (ValidationErr (BlockProtocol blk)), ToObject (CannotForge blk), ToObject (ForgeStateUpdateError blk))

module Cardano.Node.Protocol.Types
data Protocol
ByronProtocol :: Protocol
ShelleyProtocol :: Protocol
CardanoProtocol :: Protocol
data SomeConsensusProtocol
[SomeConsensusProtocol] :: SomeConsensusProtocolConstraints blk => Protocol IO blk (BlockProtocol blk) -> SomeConsensusProtocol
type SomeConsensusProtocolConstraints blk = (HasKESMetricsData blk, RunNode blk, TraceConstraints blk)
instance GHC.Generics.Generic Cardano.Node.Protocol.Types.Protocol
instance GHC.Show.Show Cardano.Node.Protocol.Types.Protocol
instance GHC.Classes.Eq Cardano.Node.Protocol.Types.Protocol
instance Control.DeepSeq.NFData Cardano.Node.Protocol.Types.Protocol
instance NoThunks.Class.NoThunks Cardano.Node.Protocol.Types.Protocol
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Protocol.Types.Protocol

module Cardano.Node.Types
class AdjustFilePaths a
adjustFilePaths :: AdjustFilePaths a => (FilePath -> FilePath) -> a -> a

-- | Errors for the cardano-config module.
newtype ConfigError
ConfigErrorFileNotFound :: FilePath -> ConfigError

-- | Filepath of the configuration yaml file. This file determines all the
--   configuration settings required for the cardano node (logging,
--   tracing, protocol, slot length etc)
newtype ConfigYamlFilePath
ConfigYamlFilePath :: FilePath -> ConfigYamlFilePath
[unConfigPath] :: ConfigYamlFilePath -> FilePath
newtype DbFile
DbFile :: FilePath -> DbFile
[unDB] :: DbFile -> FilePath
newtype GenesisFile
GenesisFile :: FilePath -> GenesisFile
[unGenesisFile] :: GenesisFile -> FilePath
data ProtocolFilepaths
ProtocolFilepaths :: !Maybe FilePath -> !Maybe FilePath -> !Maybe FilePath -> !Maybe FilePath -> !Maybe FilePath -> ProtocolFilepaths
[byronCertFile] :: ProtocolFilepaths -> !Maybe FilePath
[byronKeyFile] :: ProtocolFilepaths -> !Maybe FilePath
[shelleyKESFile] :: ProtocolFilepaths -> !Maybe FilePath
[shelleyVRFFile] :: ProtocolFilepaths -> !Maybe FilePath
[shelleyCertFile] :: ProtocolFilepaths -> !Maybe FilePath
newtype GenesisHash
GenesisHash :: Hash Blake2b_256 ByteString -> GenesisHash
newtype MaxConcurrencyBulkSync
MaxConcurrencyBulkSync :: Word -> MaxConcurrencyBulkSync
[unMaxConcurrencyBulkSync] :: MaxConcurrencyBulkSync -> Word
newtype MaxConcurrencyDeadline
MaxConcurrencyDeadline :: Word -> MaxConcurrencyDeadline
[unMaxConcurrencyDeadline] :: MaxConcurrencyDeadline -> Word

-- | IPv4 or IPv6 address with a port number.
data NodeAddress' addr
NodeAddress :: !addr -> !PortNumber -> NodeAddress' addr
[naHostAddress] :: NodeAddress' addr -> !addr
[naPort] :: NodeAddress' addr -> !PortNumber
type NodeIPAddress = NodeAddress' NodeHostIPAddress
nodeAddressToSockAddr :: NodeIPAddress -> SockAddr
type NodeIPv4Address = NodeAddress' NodeHostIPv4Address
type NodeIPv6Address = NodeAddress' NodeHostIPv6Address
type NodeDnsAddress = NodeAddress' NodeHostDnsAddress
nodeIPv4ToIPAddress :: NodeIPv4Address -> NodeIPAddress
nodeIPv6ToIPAddress :: NodeIPv6Address -> NodeIPAddress
nodeDnsAddressToDomainAddress :: NodeDnsAddress -> DomainAddress
newtype NodeHostIPAddress
NodeHostIPAddress :: IP -> NodeHostIPAddress
[unNodeHostIPAddress] :: NodeHostIPAddress -> IP
nodeHostIPAddressToSockAddr :: NodeIPAddress -> SockAddr
newtype NodeHostIPv4Address
NodeHostIPv4Address :: IPv4 -> NodeHostIPv4Address
[unNodeHostIPv4Address] :: NodeHostIPv4Address -> IPv4
newtype NodeHostIPv6Address
NodeHostIPv6Address :: IPv6 -> NodeHostIPv6Address
[unNodeHostIPv6Address] :: NodeHostIPv6Address -> IPv6
nodeHostIPv4AddressToIPAddress :: NodeHostIPv4Address -> NodeHostIPAddress
nodeHostIPv6AddressToIPAddress :: NodeHostIPv6Address -> NodeHostIPAddress

-- | Domain name.
newtype NodeHostDnsAddress
NodeHostDnsAddress :: Text -> NodeHostDnsAddress
[unNodeHostDnsAddress] :: NodeHostDnsAddress -> Text
nodeHostDnsAddressToDomain :: NodeHostDnsAddress -> Domain

-- | Port number. Use the <tt>Num</tt> instance (i.e. use a literal) to
--   create a <tt>PortNumber</tt> value.
--   
--   <pre>
--   &gt;&gt;&gt; 1 :: PortNumber
--   1
--   
--   &gt;&gt;&gt; read "1" :: PortNumber
--   1
--   
--   &gt;&gt;&gt; show (12345 :: PortNumber)
--   "12345"
--   
--   &gt;&gt;&gt; 50000 &lt; (51000 :: PortNumber)
--   True
--   
--   &gt;&gt;&gt; 50000 &lt; (52000 :: PortNumber)
--   True
--   
--   &gt;&gt;&gt; 50000 + (10000 :: PortNumber)
--   60000
--   </pre>
data PortNumber
newtype SocketPath
SocketPath :: FilePath -> SocketPath
[unSocketPath] :: SocketPath -> FilePath
newtype TopologyFile
TopologyFile :: FilePath -> TopologyFile
[unTopology] :: TopologyFile -> FilePath

-- | Newtype wrapper which provides <a>FromJSON</a> instance for
--   <a>DiffusionMode</a>.
newtype NodeDiffusionMode
NodeDiffusionMode :: DiffusionMode -> NodeDiffusionMode
[getDiffusionMode] :: NodeDiffusionMode -> DiffusionMode
data NodeByronProtocolConfiguration
NodeByronProtocolConfiguration :: !GenesisFile -> !Maybe GenesisHash -> !RequiresNetworkMagic -> !Maybe Double -> !ApplicationName -> !NumSoftwareVersion -> !Word16 -> !Word16 -> !Word8 -> NodeByronProtocolConfiguration
[npcByronGenesisFile] :: NodeByronProtocolConfiguration -> !GenesisFile
[npcByronGenesisFileHash] :: NodeByronProtocolConfiguration -> !Maybe GenesisHash
[npcByronReqNetworkMagic] :: NodeByronProtocolConfiguration -> !RequiresNetworkMagic
[npcByronPbftSignatureThresh] :: NodeByronProtocolConfiguration -> !Maybe Double

-- | Update application name.
[npcByronApplicationName] :: NodeByronProtocolConfiguration -> !ApplicationName

-- | Application (ie software) version.
[npcByronApplicationVersion] :: NodeByronProtocolConfiguration -> !NumSoftwareVersion

-- | These declare the version of the protocol that the node is prepared to
--   run. This is usually the version of the protocol in use on the chain
--   now, but during protocol updates this version will be the one that we
--   declare that we are ready to move to. This is the endorsement
--   mechanism for determining when enough block producers are ready to
--   move to the next version.
[npcByronSupportedProtocolVersionMajor] :: NodeByronProtocolConfiguration -> !Word16
[npcByronSupportedProtocolVersionMinor] :: NodeByronProtocolConfiguration -> !Word16
[npcByronSupportedProtocolVersionAlt] :: NodeByronProtocolConfiguration -> !Word8

-- | Configuration relating to a hard forks themselves, not the specific
--   eras.
data NodeHardForkProtocolConfiguration
NodeHardForkProtocolConfiguration :: Maybe EpochNo -> Maybe EpochNo -> Maybe Word -> Maybe EpochNo -> Maybe EpochNo -> Maybe Word -> Maybe EpochNo -> Maybe Word -> Maybe EpochNo -> NodeHardForkProtocolConfiguration

-- | If we have knowledge about when the Shelley hard fork is then we have
--   an opportunity to optimise the bulk sync slightly.
[npcShelleyHardForkNotBeforeEpoch] :: NodeHardForkProtocolConfiguration -> Maybe EpochNo

-- | For testing purposes we support specifying that the hard fork happens
--   at an exact epoch number (ie the first epoch of the new era).
--   
--   Obviously if this is used, all the nodes in the test cluster must be
--   configured the same, or they will disagree.
[npcTestShelleyHardForkAtEpoch] :: NodeHardForkProtocolConfiguration -> Maybe EpochNo

-- | For testing purposes we support specifying that the hard fork happens
--   at a given major protocol version. For example this can be used to
--   cause the Shelley hard fork to occur at the transition from protocol
--   version 0 to version 1 (rather than the default of from 1 to 2) which
--   can make the test setup simpler.
--   
--   Obviously if this is used, all the nodes in the test cluster must be
--   configured the same, or they will disagree.
[npcTestShelleyHardForkAtVersion] :: NodeHardForkProtocolConfiguration -> Maybe Word

-- | If we have knowledge about when the Allegra hard fork is then we have
--   an opportunity to optimise the bulk sync slightly.
[npcAllegraHardForkNotBeforeEpoch] :: NodeHardForkProtocolConfiguration -> Maybe EpochNo

-- | For testing purposes we support specifying that the hard fork happens
--   at an exact epoch number (ie the first epoch of the new era).
--   
--   Obviously if this is used, all the nodes in the test cluster must be
--   configured the same, or they will disagree.
[npcTestAllegraHardForkAtEpoch] :: NodeHardForkProtocolConfiguration -> Maybe EpochNo

-- | For testing purposes we support specifying that the hard fork happens
--   at a given major protocol version.
--   
--   Obviously if this is used, all the nodes in the test cluster must be
--   configured the same, or they will disagree.
[npcTestAllegraHardForkAtVersion] :: NodeHardForkProtocolConfiguration -> Maybe Word

-- | For testing purposes we support specifying that the hard fork happens
--   at an exact epoch number (ie the first epoch of the new era).
--   
--   Obviously if this is used, all the nodes in the test cluster must be
--   configured the same, or they will disagree.
[npcTestMaryHardForkAtEpoch] :: NodeHardForkProtocolConfiguration -> Maybe EpochNo

-- | For testing purposes we support specifying that the hard fork happens
--   at an exact epoch number (ie the first epoch of the new era).
--   
--   Obviously if this is used, all the nodes in the test cluster must be
--   configured the same, or they will disagree.
[npcTestMaryHardForkAtVersion] :: NodeHardForkProtocolConfiguration -> Maybe Word

-- | If we have knowledge about when the Shelley hard fork is then we have
--   an opportunity to optimise the bulk sync slightly.
[npcMaryHardForkNotBeforeEpoch] :: NodeHardForkProtocolConfiguration -> Maybe EpochNo
data NodeProtocolConfiguration
NodeProtocolConfigurationByron :: NodeByronProtocolConfiguration -> NodeProtocolConfiguration
NodeProtocolConfigurationShelley :: NodeShelleyProtocolConfiguration -> NodeProtocolConfiguration
NodeProtocolConfigurationCardano :: NodeByronProtocolConfiguration -> NodeShelleyProtocolConfiguration -> NodeHardForkProtocolConfiguration -> NodeProtocolConfiguration
data NodeShelleyProtocolConfiguration
NodeShelleyProtocolConfiguration :: !GenesisFile -> !Maybe GenesisHash -> !Natural -> !Natural -> NodeShelleyProtocolConfiguration
[npcShelleyGenesisFile] :: NodeShelleyProtocolConfiguration -> !GenesisFile
[npcShelleyGenesisFileHash] :: NodeShelleyProtocolConfiguration -> !Maybe GenesisHash

-- | These declare the version of the protocol that the node is prepared to
--   run. This is usually the version of the protocol in use on the chain
--   now, but during protocol updates this version will be the one that we
--   declare that we are ready to move to. This is the endorsement
--   mechanism for determining when enough block producers are ready to
--   move to the next version.
[npcShelleySupportedProtocolVersionMajor] :: NodeShelleyProtocolConfiguration -> !Natural
[npcShelleySupportedProtocolVersionMinor] :: NodeShelleyProtocolConfiguration -> !Natural
data VRFPrivateKeyFilePermissionError
OtherPermissionsExist :: FilePath -> VRFPrivateKeyFilePermissionError
GroupPermissionsExist :: FilePath -> VRFPrivateKeyFilePermissionError

-- | A human readable name for the protocol
protocolName :: Protocol -> String
renderVRFPrivateKeyFilePermissionError :: VRFPrivateKeyFilePermissionError -> Text
instance GHC.Show.Show Cardano.Node.Types.ConfigError
instance GHC.Show.Show Cardano.Node.Types.ConfigYamlFilePath
instance GHC.Classes.Eq Cardano.Node.Types.ConfigYamlFilePath
instance GHC.Show.Show Cardano.Node.Types.DbFile
instance GHC.Classes.Eq Cardano.Node.Types.DbFile
instance GHC.Show.Show Cardano.Node.Types.GenesisFile
instance Data.String.IsString Cardano.Node.Types.GenesisFile
instance GHC.Classes.Ord Cardano.Node.Types.GenesisFile
instance GHC.Classes.Eq Cardano.Node.Types.GenesisFile
instance GHC.Show.Show Cardano.Node.Types.MaxConcurrencyBulkSync
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Types.MaxConcurrencyBulkSync
instance GHC.Classes.Ord Cardano.Node.Types.MaxConcurrencyBulkSync
instance GHC.Classes.Eq Cardano.Node.Types.MaxConcurrencyBulkSync
instance GHC.Show.Show Cardano.Node.Types.MaxConcurrencyDeadline
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Types.MaxConcurrencyDeadline
instance GHC.Classes.Ord Cardano.Node.Types.MaxConcurrencyDeadline
instance GHC.Classes.Eq Cardano.Node.Types.MaxConcurrencyDeadline
instance GHC.Base.Functor Cardano.Node.Types.NodeAddress'
instance GHC.Show.Show addr => GHC.Show.Show (Cardano.Node.Types.NodeAddress' addr)
instance GHC.Classes.Ord addr => GHC.Classes.Ord (Cardano.Node.Types.NodeAddress' addr)
instance GHC.Classes.Eq addr => GHC.Classes.Eq (Cardano.Node.Types.NodeAddress' addr)
instance GHC.Classes.Ord Cardano.Node.Types.NodeHostIPv4Address
instance GHC.Classes.Eq Cardano.Node.Types.NodeHostIPv4Address
instance GHC.Show.Show Cardano.Node.Types.NodeHostIPv4Address
instance GHC.Classes.Ord Cardano.Node.Types.NodeHostIPv6Address
instance GHC.Classes.Eq Cardano.Node.Types.NodeHostIPv6Address
instance GHC.Show.Show Cardano.Node.Types.NodeHostIPv6Address
instance GHC.Classes.Ord Cardano.Node.Types.NodeHostIPAddress
instance GHC.Classes.Eq Cardano.Node.Types.NodeHostIPAddress
instance GHC.Show.Show Cardano.Node.Types.NodeHostIPAddress
instance GHC.Classes.Ord Cardano.Node.Types.NodeHostDnsAddress
instance GHC.Classes.Eq Cardano.Node.Types.NodeHostDnsAddress
instance GHC.Show.Show Cardano.Node.Types.NodeHostDnsAddress
instance GHC.Show.Show Cardano.Node.Types.NodeDiffusionMode
instance GHC.Show.Show Cardano.Node.Types.ProtocolFilepaths
instance GHC.Classes.Eq Cardano.Node.Types.ProtocolFilepaths
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Types.GenesisHash
instance Data.Aeson.Types.ToJSON.ToJSON Cardano.Node.Types.GenesisHash
instance GHC.Show.Show Cardano.Node.Types.GenesisHash
instance GHC.Classes.Eq Cardano.Node.Types.GenesisHash
instance GHC.Show.Show Cardano.Node.Types.NodeShelleyProtocolConfiguration
instance GHC.Classes.Eq Cardano.Node.Types.NodeShelleyProtocolConfiguration
instance GHC.Show.Show Cardano.Node.Types.NodeByronProtocolConfiguration
instance GHC.Classes.Eq Cardano.Node.Types.NodeByronProtocolConfiguration
instance GHC.Show.Show Cardano.Node.Types.NodeHardForkProtocolConfiguration
instance GHC.Classes.Eq Cardano.Node.Types.NodeHardForkProtocolConfiguration
instance GHC.Show.Show Cardano.Node.Types.NodeProtocolConfiguration
instance GHC.Classes.Eq Cardano.Node.Types.NodeProtocolConfiguration
instance GHC.Show.Show Cardano.Node.Types.SocketPath
instance Data.String.IsString Cardano.Node.Types.SocketPath
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Types.SocketPath
instance GHC.Classes.Ord Cardano.Node.Types.SocketPath
instance GHC.Classes.Eq Cardano.Node.Types.SocketPath
instance GHC.Classes.Eq Cardano.Node.Types.TopologyFile
instance GHC.Show.Show Cardano.Node.Types.TopologyFile
instance GHC.Show.Show Cardano.Node.Types.VRFPrivateKeyFilePermissionError
instance Cardano.Node.Types.AdjustFilePaths Cardano.Node.Types.SocketPath
instance Cardano.Node.Types.AdjustFilePaths (Data.Monoid.Last Cardano.Node.Types.SocketPath)
instance Cardano.Node.Types.AdjustFilePaths Cardano.Node.Types.NodeProtocolConfiguration
instance Cardano.Node.Types.AdjustFilePaths (Data.Monoid.Last Cardano.Node.Types.NodeProtocolConfiguration)
instance Cardano.Node.Types.AdjustFilePaths Cardano.Node.Types.NodeByronProtocolConfiguration
instance Cardano.Node.Types.AdjustFilePaths Cardano.Node.Types.NodeShelleyProtocolConfiguration
instance Cardano.Node.Types.AdjustFilePaths Cardano.Node.Types.GenesisFile
instance Cardano.Node.Types.AdjustFilePaths a => Cardano.Node.Types.AdjustFilePaths (GHC.Maybe.Maybe a)
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Types.NodeDiffusionMode
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Types.NodeHostIPAddress
instance Data.Aeson.Types.ToJSON.ToJSON Cardano.Node.Types.NodeHostIPAddress
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Types.NodeHostIPv6Address
instance Data.Aeson.Types.ToJSON.ToJSON Cardano.Node.Types.NodeHostIPv6Address
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Types.NodeHostIPv4Address
instance Data.Aeson.Types.ToJSON.ToJSON Cardano.Node.Types.NodeHostIPv4Address
instance Data.Aeson.Types.FromJSON.FromJSON addr => Data.Aeson.Types.FromJSON.FromJSON (Cardano.Node.Types.NodeAddress' addr)
instance Data.Aeson.Types.ToJSON.ToJSON addr => Data.Aeson.Types.ToJSON.ToJSON (Cardano.Node.Types.NodeAddress' addr)
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Types.GenesisFile

module Cardano.Node.Configuration.POM
data NodeConfiguration
NodeConfiguration :: !Maybe NodeHostIPv4Address -> !Maybe NodeHostIPv6Address -> !Maybe PortNumber -> !ConfigYamlFilePath -> !TopologyFile -> !DbFile -> !ProtocolFilepaths -> !Bool -> !Maybe Fd -> !MaxSlotNo -> !NodeProtocolConfiguration -> !Maybe SocketPath -> !DiffusionMode -> !Maybe MaxConcurrencyBulkSync -> !Maybe MaxConcurrencyDeadline -> !Bool -> !Bool -> !TraceOptions -> NodeConfiguration
[ncNodeIPv4Addr] :: NodeConfiguration -> !Maybe NodeHostIPv4Address
[ncNodeIPv6Addr] :: NodeConfiguration -> !Maybe NodeHostIPv6Address
[ncNodePortNumber] :: NodeConfiguration -> !Maybe PortNumber

-- | Filepath of the configuration yaml file. This file determines all the
--   configuration settings required for the cardano node (logging,
--   tracing, protocol, slot length etc)
[ncConfigFile] :: NodeConfiguration -> !ConfigYamlFilePath
[ncTopologyFile] :: NodeConfiguration -> !TopologyFile
[ncDatabaseFile] :: NodeConfiguration -> !DbFile
[ncProtocolFiles] :: NodeConfiguration -> !ProtocolFilepaths
[ncValidateDB] :: NodeConfiguration -> !Bool
[ncShutdownIPC] :: NodeConfiguration -> !Maybe Fd
[ncShutdownOnSlotSynced] :: NodeConfiguration -> !MaxSlotNo
[ncProtocolConfig] :: NodeConfiguration -> !NodeProtocolConfiguration
[ncSocketPath] :: NodeConfiguration -> !Maybe SocketPath
[ncDiffusionMode] :: NodeConfiguration -> !DiffusionMode
[ncMaxConcurrencyBulkSync] :: NodeConfiguration -> !Maybe MaxConcurrencyBulkSync
[ncMaxConcurrencyDeadline] :: NodeConfiguration -> !Maybe MaxConcurrencyDeadline
[ncLoggingSwitch] :: NodeConfiguration -> !Bool
[ncLogMetrics] :: NodeConfiguration -> !Bool
[ncTraceConfig] :: NodeConfiguration -> !TraceOptions
data PartialNodeConfiguration
PartialNodeConfiguration :: !Last NodeHostIPv4Address -> !Last NodeHostIPv6Address -> !Last PortNumber -> !Last ConfigYamlFilePath -> !Last TopologyFile -> !Last DbFile -> !Last ProtocolFilepaths -> !Last Bool -> !Last (Maybe Fd) -> !Last MaxSlotNo -> !Last NodeProtocolConfiguration -> !Last SocketPath -> !Last DiffusionMode -> !Last MaxConcurrencyBulkSync -> !Last MaxConcurrencyDeadline -> !Last Bool -> !Last Bool -> !Last TraceOptions -> PartialNodeConfiguration
[pncNodeIPv4Addr] :: PartialNodeConfiguration -> !Last NodeHostIPv4Address
[pncNodeIPv6Addr] :: PartialNodeConfiguration -> !Last NodeHostIPv6Address
[pncNodePortNumber] :: PartialNodeConfiguration -> !Last PortNumber

-- | Filepath of the configuration yaml file. This file determines all the
--   configuration settings required for the cardano node (logging,
--   tracing, protocol, slot length etc)
[pncConfigFile] :: PartialNodeConfiguration -> !Last ConfigYamlFilePath
[pncTopologyFile] :: PartialNodeConfiguration -> !Last TopologyFile
[pncDatabaseFile] :: PartialNodeConfiguration -> !Last DbFile
[pncProtocolFiles] :: PartialNodeConfiguration -> !Last ProtocolFilepaths
[pncValidateDB] :: PartialNodeConfiguration -> !Last Bool
[pncShutdownIPC] :: PartialNodeConfiguration -> !Last (Maybe Fd)
[pncShutdownOnSlotSynced] :: PartialNodeConfiguration -> !Last MaxSlotNo
[pncProtocolConfig] :: PartialNodeConfiguration -> !Last NodeProtocolConfiguration
[pncSocketPath] :: PartialNodeConfiguration -> !Last SocketPath
[pncDiffusionMode] :: PartialNodeConfiguration -> !Last DiffusionMode
[pncMaxConcurrencyBulkSync] :: PartialNodeConfiguration -> !Last MaxConcurrencyBulkSync
[pncMaxConcurrencyDeadline] :: PartialNodeConfiguration -> !Last MaxConcurrencyDeadline
[pncLoggingSwitch] :: PartialNodeConfiguration -> !Last Bool
[pncLogMetrics] :: PartialNodeConfiguration -> !Last Bool
[pncTraceConfig] :: PartialNodeConfiguration -> !Last TraceOptions

-- | Default configuration is mainnet
defaultPartialNodeConfiguration :: PartialNodeConfiguration
lastOption :: Parser a -> Parser (Last a)
makeNodeConfiguration :: PartialNodeConfiguration -> Either String NodeConfiguration
parseNodeConfigurationFP :: Maybe ConfigYamlFilePath -> IO PartialNodeConfiguration
pncProtocol :: PartialNodeConfiguration -> Either Text Protocol
ncProtocol :: NodeConfiguration -> Protocol
instance GHC.Show.Show Cardano.Node.Configuration.POM.NodeConfiguration
instance GHC.Classes.Eq Cardano.Node.Configuration.POM.NodeConfiguration
instance GHC.Show.Show Cardano.Node.Configuration.POM.PartialNodeConfiguration
instance GHC.Generics.Generic Cardano.Node.Configuration.POM.PartialNodeConfiguration
instance GHC.Classes.Eq Cardano.Node.Configuration.POM.PartialNodeConfiguration
instance Cardano.Node.Types.AdjustFilePaths Cardano.Node.Configuration.POM.PartialNodeConfiguration
instance GHC.Base.Semigroup Cardano.Node.Configuration.POM.PartialNodeConfiguration
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Configuration.POM.PartialNodeConfiguration

module Cardano.Node.Parsers
nodeCLIParser :: Parser PartialNodeConfiguration

-- | Produce just the brief help header for a given CLI option parser,
--   without the options.
parserHelpHeader :: String -> Parser a -> Doc

-- | Produce just the options help for a given CLI option parser, without
--   the header.
parserHelpOptions :: Parser a -> Doc

-- | Render the help pretty document.
renderHelpDoc :: Int -> Doc -> String

module Cardano.Node.Handlers.Shutdown

-- | <a>ShutdownFDs</a> mediate the graceful shutdown requests, either
--   external or internal to the process.
--   
--   In the external mediation case, the parent process passes us the file
--   descriptor number of the read end of a pipe, via the CLI with
--   <tt>--shutdown-ipc FD</tt>. In the internal mediation case, we create
--   our own pipe. In both cases we store the accessible ends in
--   <a>ShutdownFDs</a>.
--   
--   In either case, if the write end gets closed, either deliberately: -
--   by internal call of <a>triggerShutdown</a> on <a>ShutdownFDs</a>, or -
--   by parent process ..or automatically, because the parent process
--   itself terminated, then we initiate a clean shutdown.
data ShutdownFDs

-- | We provide an optional cross-platform method to politely request shut
--   down.
--   
--   For the duration of <tt>action</tt>, we gracefully handle shutdown
--   requests, external or internal, as requested by configuration in
--   <tt>NodeCLI</tt>, while allocating corresponding <a>ShutdownFDs</a>,
--   and providing them to the <tt>action</tt>.
withShutdownHandling :: NodeConfiguration -> Trace IO Text -> (ShutdownFDs -> IO ()) -> IO ()

-- | FD used to send an EOF-based request for shutdown.
data ShutdownDoorbell

-- | If <a>ShutdownFDs</a> supports internal shutdown requests, return its
--   shutdown doorbell.
getShutdownDoorbell :: ShutdownFDs -> Maybe ShutdownDoorbell

-- | Given the <a>ShutdownDoorbell</a> component of <a>ShutdownFDs</a>, and
--   an explanation of the reason, request a graceful shutdown.
triggerShutdown :: ShutdownDoorbell -> Trace IO Text -> Text -> IO ()

-- | If configuration in <tt>NodeCLI</tt> and <a>ShutdownFDs</a> agree,
--   spawn a thread that would cause node to shutdown upon ChainDB reaching
--   the configuration-defined slot.
maybeSpawnOnSlotSyncedShutdownHandler :: NodeConfiguration -> ShutdownFDs -> Trace IO Text -> ResourceRegistry IO -> ChainDB IO blk -> IO ()

module Cardano.Node.Configuration.Topology
newtype TopologyError
NodeIdNotFoundInToplogyFile :: FilePath -> TopologyError
data NetworkTopology
MockNodeTopology :: ![NodeSetup] -> NetworkTopology
RealNodeTopology :: ![RemoteAddress] -> NetworkTopology
newtype NodeHostIPAddress
NodeHostIPAddress :: IP -> NodeHostIPAddress
[unNodeHostIPAddress] :: NodeHostIPAddress -> IP
newtype NodeHostIPv4Address
NodeHostIPv4Address :: IPv4 -> NodeHostIPv4Address
[unNodeHostIPv4Address] :: NodeHostIPv4Address -> IPv4
newtype NodeHostIPv6Address
NodeHostIPv6Address :: IPv6 -> NodeHostIPv6Address
[unNodeHostIPv6Address] :: NodeHostIPv6Address -> IPv6
data NodeSetup
NodeSetup :: !Word64 -> !Maybe NodeIPv4Address -> !Maybe NodeIPv6Address -> ![RemoteAddress] -> NodeSetup
[nodeId] :: NodeSetup -> !Word64
[nodeIPv4Address] :: NodeSetup -> !Maybe NodeIPv4Address
[nodeIPv6Address] :: NodeSetup -> !Maybe NodeIPv6Address
[producers] :: NodeSetup -> ![RemoteAddress]

-- | Domain name with port number
data RemoteAddress
RemoteAddress :: !Text -> !PortNumber -> !Int -> RemoteAddress

-- | Either a dns address or an ip address.
[raAddress] :: RemoteAddress -> !Text

-- | Port number of the destination.
[raPort] :: RemoteAddress -> !PortNumber

-- | If a DNS address is given valency governs to how many resolved IP
--   addresses should we maintain active (hot) connection; if an IP address
--   is given valency is used as a Boolean value, <tt>0</tt> means to
--   ignore the address;
[raValency] :: RemoteAddress -> !Int
nodeAddressToSockAddr :: NodeIPAddress -> SockAddr

-- | Read the <a>NetworkTopology</a> configuration from the specified file.
--   While running a real protocol, this gives your node its own address
--   and other remote peers it will attempt to connect to.
readTopologyFile :: NodeConfiguration -> IO (Either Text NetworkTopology)

-- | Parse <a>raAddress</a> field as an IP address; if it parses and the
--   valency is non zero return corresponding NodeAddress.
remoteAddressToNodeAddress :: RemoteAddress -> Maybe (Either NodeIPAddress (NodeDnsAddress, Int))
instance GHC.Show.Show Cardano.Node.Configuration.Topology.TopologyError
instance GHC.Show.Show Cardano.Node.Configuration.Topology.RemoteAddress
instance GHC.Classes.Ord Cardano.Node.Configuration.Topology.RemoteAddress
instance GHC.Classes.Eq Cardano.Node.Configuration.Topology.RemoteAddress
instance GHC.Show.Show Cardano.Node.Configuration.Topology.NodeSetup
instance GHC.Classes.Eq Cardano.Node.Configuration.Topology.NodeSetup
instance GHC.Show.Show Cardano.Node.Configuration.Topology.NetworkTopology
instance GHC.Classes.Eq Cardano.Node.Configuration.Topology.NetworkTopology
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Configuration.Topology.NetworkTopology
instance Data.Aeson.Types.ToJSON.ToJSON Cardano.Node.Configuration.Topology.NetworkTopology
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Configuration.Topology.NodeSetup
instance Data.Aeson.Types.ToJSON.ToJSON Cardano.Node.Configuration.Topology.NodeSetup
instance Ouroboros.Consensus.Util.Condense.Condense Cardano.Node.Configuration.Topology.RemoteAddress
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Node.Configuration.Topology.RemoteAddress
instance Data.Aeson.Types.ToJSON.ToJSON Cardano.Node.Configuration.Topology.RemoteAddress

module Cardano.Node.Configuration.Logging

-- | The LoggingLayer interface that we can expose. We want to do this
--   since we want to be able to mock out any function tied to logging.
--   
--   The good side of this is that _each function has it's own effects_ and
--   that is ideal for tracking the functions effects and constraining the
--   user (programmer) of those function to use specific effects in them.
--   <a>https://github.com/input-output-hk/cardano-sl/blob/develop/util/src/Pos/Util/Log/LogSafe.hs</a>
data LoggingLayer
LoggingLayer :: (forall m. MonadIO m => Trace m Text) -> (forall m a. (MonadIO m, Show a) => Trace m a -> a -> m ()) -> (forall m a. (MonadIO m, Show a) => Trace m a -> a -> m ()) -> (forall m a. (MonadIO m, Show a) => Trace m a -> a -> m ()) -> (forall m a. (MonadIO m, Show a) => Trace m a -> a -> m ()) -> (forall m a. (MonadIO m, Show a) => Trace m a -> a -> m ()) -> (forall m a. Show a => LoggerName -> Trace m a -> Trace m a) -> (forall a t. Show a => Trace IO a -> Severity -> Text -> IO t -> IO t) -> (forall m a t. (MonadCatch m, MonadIO m, Show a) => Trace m a -> Severity -> Text -> m t -> m t) -> (forall m a t. (MonadIO m, Show a) => Trace m a -> Severity -> Text -> m t -> m t) -> (forall a t. Show a => Trace IO a -> Severity -> Text -> STM t -> IO t) -> (forall a t. Show a => Trace IO a -> Severity -> Text -> STM (t, [(LOMeta, LOContent a)]) -> IO t) -> Configuration -> (Backend Text -> BackendKind -> IO ()) -> Switchboard Text -> LoggingLayer
[llBasicTrace] :: LoggingLayer -> forall m. MonadIO m => Trace m Text
[llLogDebug] :: LoggingLayer -> forall m a. (MonadIO m, Show a) => Trace m a -> a -> m ()
[llLogInfo] :: LoggingLayer -> forall m a. (MonadIO m, Show a) => Trace m a -> a -> m ()
[llLogNotice] :: LoggingLayer -> forall m a. (MonadIO m, Show a) => Trace m a -> a -> m ()
[llLogWarning] :: LoggingLayer -> forall m a. (MonadIO m, Show a) => Trace m a -> a -> m ()
[llLogError] :: LoggingLayer -> forall m a. (MonadIO m, Show a) => Trace m a -> a -> m ()
[llAppendName] :: LoggingLayer -> forall m a. Show a => LoggerName -> Trace m a -> Trace m a
[llBracketMonadIO] :: LoggingLayer -> forall a t. Show a => Trace IO a -> Severity -> Text -> IO t -> IO t
[llBracketMonadM] :: LoggingLayer -> forall m a t. (MonadCatch m, MonadIO m, Show a) => Trace m a -> Severity -> Text -> m t -> m t
[llBracketMonadX] :: LoggingLayer -> forall m a t. (MonadIO m, Show a) => Trace m a -> Severity -> Text -> m t -> m t
[llBracketStmIO] :: LoggingLayer -> forall a t. Show a => Trace IO a -> Severity -> Text -> STM t -> IO t
[llBracketStmLogIO] :: LoggingLayer -> forall a t. Show a => Trace IO a -> Severity -> Text -> STM (t, [(LOMeta, LOContent a)]) -> IO t
[llConfiguration] :: LoggingLayer -> Configuration
[llAddBackend] :: LoggingLayer -> Backend Text -> BackendKind -> IO ()
[llSwitchboard] :: LoggingLayer -> Switchboard Text

-- | Create logging feature for `cardano-node`
createLoggingLayer :: Text -> NodeConfiguration -> ExceptT ConfigError IO LoggingLayer
shutdownLoggingLayer :: LoggingLayer -> IO ()
type Trace (m :: Type -> Type) a = Tracer m (LoggerName, LogObject a)
data Configuration
type LoggerName = Text
data Severity
Debug :: Severity
Info :: Severity
Notice :: Severity
Warning :: Severity
Error :: Severity
Critical :: Severity
Alert :: Severity
Emergency :: Severity
mkLOMeta :: MonadIO m => Severity -> PrivacyAnnotation -> m LOMeta
data LOMeta
LOMeta :: {-# UNPACK #-} !UTCTime -> {-# UNPACK #-} !Text -> {-# UNPACK #-} !Text -> !Severity -> !PrivacyAnnotation -> LOMeta
[tstamp] :: LOMeta -> {-# UNPACK #-} !UTCTime
[tid] :: LOMeta -> {-# UNPACK #-} !Text
[hostname] :: LOMeta -> {-# UNPACK #-} !Text
[severity] :: LOMeta -> !Severity
[privacy] :: LOMeta -> !PrivacyAnnotation
data LOContent a
LogMessage :: a -> LOContent a
LogError :: !Text -> LOContent a
LogValue :: !Text -> !Measurable -> LOContent a
LogStructuredText :: Object -> Text -> LOContent a
LogStructured :: Object -> LOContent a
ObserveOpen :: !CounterState -> LOContent a
ObserveDiff :: !CounterState -> LOContent a
ObserveClose :: !CounterState -> LOContent a
AggregatedMessage :: [(Text, Aggregated)] -> LOContent a
MonitoringEffect :: !MonitorAction -> LOContent a
Command :: !CommandValue -> LOContent a
KillPill :: LOContent a

module Cardano.Tracing.Render
renderBlockOrEBB :: BlockOrEBB -> Text
renderChunkNo :: ChunkNo -> Text

-- | Hex encode and render a <a>HeaderHash</a> as text.
renderHeaderHash :: ConvertRawHash blk => proxy blk -> HeaderHash blk -> Text
renderHeaderHashForVerbosity :: ConvertRawHash blk => proxy blk -> TracingVerbosity -> HeaderHash blk -> Text
renderChainHash :: (HeaderHash blk -> Text) -> ChainHash blk -> Text
renderTipBlockNo :: Tip blk -> Text
renderTipHash :: StandardHash blk => Tip blk -> Text
renderPoint :: ConvertRawHash blk => Point blk -> Text

-- | Render a short phrase describing a <a>Point</a>. e.g.
--   "62292d753b2ee7e903095bc5f10b03cf4209f456ea08f55308e0aaab4350dda4 at
--   slot 39920" or "genesis (origin)" in the case of a genesis point.
renderPointAsPhrase :: forall blk. ConvertRawHash blk => Point blk -> Text
renderPointForVerbosity :: forall blk. ConvertRawHash blk => TracingVerbosity -> Point blk -> Text
renderRealPoint :: forall blk. ConvertRawHash blk => RealPoint blk -> Text

-- | Render a short phrase describing a <a>RealPoint</a>. e.g.
--   "62292d753b2ee7e903095bc5f10b03cf4209f456ea08f55308e0aaab4350dda4 at
--   slot 39920"
renderRealPointAsPhrase :: forall blk. ConvertRawHash blk => RealPoint blk -> Text
renderSlotNo :: SlotNo -> Text
renderTip :: ConvertRawHash blk => Tip blk -> Text
renderTipForVerbosity :: ConvertRawHash blk => TracingVerbosity -> Tip blk -> Text
renderTxId :: ConvertTxId blk => TxId (GenTx blk) -> Text
renderTxIdForVerbosity :: ConvertTxId blk => TracingVerbosity -> TxId (GenTx blk) -> Text
renderWithOrigin :: (a -> Text) -> WithOrigin a -> Text

module Cardano.Tracing.OrphanInstances.Network
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation Ouroboros.Network.NodeToClient.HandshakeTr
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation Ouroboros.Network.NodeToClient.HandshakeTr
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation Ouroboros.Network.NodeToNode.HandshakeTr
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation Ouroboros.Network.NodeToNode.HandshakeTr
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation Ouroboros.Network.Server.RateLimiting.AcceptConnectionsPolicyTrace
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation Ouroboros.Network.Server.RateLimiting.AcceptConnectionsPolicyTrace
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Network.BlockFetch.ClientState.TraceFetchClientState header)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Network.BlockFetch.ClientState.TraceFetchClientState header)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Network.Driver.Simple.TraceSendRecv a)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Network.Driver.Simple.TraceSendRecv a)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation a => Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer a)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation a => Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer a)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation [Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer (Ouroboros.Network.BlockFetch.Decision.FetchDecision [Ouroboros.Network.Block.Point header])]
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation [Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer (Ouroboros.Network.BlockFetch.Decision.FetchDecision [Ouroboros.Network.Block.Point header])]
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Network.TxSubmission.Inbound.TraceTxSubmissionInbound txid tx)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Network.TxSubmission.Inbound.TraceTxSubmissionInbound txid tx)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Network.TxSubmission.Outbound.TraceTxSubmissionOutbound txid tx)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Network.TxSubmission.Outbound.TraceTxSubmissionOutbound txid tx)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Network.KeepAlive.TraceKeepAliveClient remotePeer)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Network.KeepAlive.TraceKeepAliveClient remotePeer)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Network.ErrorPolicy.WithAddr addr Ouroboros.Network.ErrorPolicy.ErrorPolicyTrace)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Network.ErrorPolicy.WithAddr addr Ouroboros.Network.ErrorPolicy.ErrorPolicyTrace)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Network.Subscription.Dns.WithDomainName Ouroboros.Network.Subscription.Dns.DnsTrace)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Network.Subscription.Dns.WithDomainName Ouroboros.Network.Subscription.Dns.DnsTrace)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Network.Subscription.Dns.WithDomainName (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Network.Socket.Types.SockAddr))
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Network.Subscription.Dns.WithDomainName (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Network.Socket.Types.SockAddr))
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Network.Subscription.Ip.WithIPList (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Network.Socket.Types.SockAddr))
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Network.Subscription.Ip.WithIPList (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Network.Socket.Types.SockAddr))
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Data.Functor.Identity.Identity (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Ouroboros.Network.Snocket.LocalAddress))
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Data.Functor.Identity.Identity (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Ouroboros.Network.Snocket.LocalAddress))
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Data.Functor.Identity.Identity (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Ouroboros.Network.Snocket.LocalAddress))
instance Cardano.BM.Data.Tracer.HasTextFormatter (Data.Functor.Identity.Identity (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Ouroboros.Network.Snocket.LocalAddress))
instance Cardano.BM.Data.Tracer.ToObject (Data.Functor.Identity.Identity (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Ouroboros.Network.Snocket.LocalAddress))
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Network.Mux.Trace.WithMuxBearer peer Network.Mux.Trace.MuxTrace)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Network.Mux.Trace.WithMuxBearer peer Network.Mux.Trace.MuxTrace)
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO Ouroboros.Network.NodeToNode.HandshakeTr
instance Cardano.BM.Data.Tracer.HasTextFormatter Ouroboros.Network.NodeToNode.HandshakeTr
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO Ouroboros.Network.NodeToClient.HandshakeTr
instance Cardano.BM.Data.Tracer.HasTextFormatter Ouroboros.Network.NodeToClient.HandshakeTr
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO Ouroboros.Network.Server.RateLimiting.AcceptConnectionsPolicyTrace
instance Cardano.BM.Data.Tracer.HasTextFormatter Ouroboros.Network.Server.RateLimiting.AcceptConnectionsPolicyTrace
instance GHC.Show.Show peer => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO [Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer (Ouroboros.Network.BlockFetch.Decision.FetchDecision [Ouroboros.Network.Block.Point header])]
instance Cardano.BM.Data.Tracer.HasTextFormatter [Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer (Ouroboros.Network.BlockFetch.Decision.FetchDecision [Ouroboros.Network.Block.Point header])]
instance (GHC.Show.Show peer, Cardano.BM.Data.Tracer.HasPrivacyAnnotation a, Cardano.BM.Data.Tracer.HasSeverityAnnotation a, Cardano.BM.Data.Tracer.ToObject a) => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer a)
instance Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer a)
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Network.TxSubmission.Inbound.TraceTxSubmissionInbound txid tx)
instance Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Network.TxSubmission.Inbound.TraceTxSubmissionInbound txid tx)
instance (GHC.Show.Show tx, GHC.Show.Show txid) => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Network.TxSubmission.Outbound.TraceTxSubmissionOutbound txid tx)
instance Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Network.TxSubmission.Outbound.TraceTxSubmissionOutbound txid tx)
instance GHC.Show.Show remotePeer => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Network.KeepAlive.TraceKeepAliveClient remotePeer)
instance Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Network.KeepAlive.TraceKeepAliveClient peer)
instance GHC.Show.Show addr => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Network.ErrorPolicy.WithAddr addr Ouroboros.Network.ErrorPolicy.ErrorPolicyTrace)
instance Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Network.ErrorPolicy.WithAddr addr Ouroboros.Network.ErrorPolicy.ErrorPolicyTrace)
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Network.Subscription.Dns.WithDomainName (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Network.Socket.Types.SockAddr))
instance Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Network.Subscription.Dns.WithDomainName (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Network.Socket.Types.SockAddr))
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Network.Subscription.Dns.WithDomainName Ouroboros.Network.Subscription.Dns.DnsTrace)
instance Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Network.Subscription.Dns.WithDomainName Ouroboros.Network.Subscription.Dns.DnsTrace)
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Network.Subscription.Ip.WithIPList (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Network.Socket.Types.SockAddr))
instance Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Network.Subscription.Ip.WithIPList (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Network.Socket.Types.SockAddr))
instance GHC.Show.Show peer => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Network.Mux.Trace.WithMuxBearer peer Network.Mux.Trace.MuxTrace)
instance GHC.Show.Show peer => Cardano.BM.Data.Tracer.HasTextFormatter (Network.Mux.Trace.WithMuxBearer peer Network.Mux.Trace.MuxTrace)
instance (Cardano.Tracing.ConvertTxId.ConvertTxId blk, Ouroboros.Consensus.Node.Run.RunNode blk, Ouroboros.Consensus.Ledger.SupportsMempool.HasTxs blk) => Cardano.BM.Data.Tracer.ToObject (Network.TypedProtocol.Codec.AnyMessageAndAgency (Ouroboros.Network.Protocol.BlockFetch.Type.BlockFetch blk (Ouroboros.Network.Block.Point blk)))
instance Cardano.BM.Data.Tracer.ToObject (Network.TypedProtocol.Codec.AnyMessageAndAgency (Ouroboros.Network.Protocol.LocalStateQuery.Type.LocalStateQuery blk pt query))
instance Cardano.BM.Data.Tracer.ToObject (Network.TypedProtocol.Codec.AnyMessageAndAgency (Ouroboros.Network.Protocol.LocalTxSubmission.Type.LocalTxSubmission tx err))
instance Cardano.BM.Data.Tracer.ToObject (Network.TypedProtocol.Codec.AnyMessageAndAgency (Ouroboros.Network.Protocol.ChainSync.Type.ChainSync blk pt tip))
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.BlockFetch.Decision.FetchDecision [Ouroboros.Network.Block.Point header])
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Network.NodeToClient.HandshakeTr
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Network.NodeToNode.HandshakeTr
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Network.Server.RateLimiting.AcceptConnectionsPolicyTrace
instance (GHC.Show.Show txid, GHC.Show.Show tx) => Cardano.BM.Data.Tracer.ToObject (Network.TypedProtocol.Codec.AnyMessageAndAgency (Ouroboros.Network.Protocol.TxSubmission.Type.TxSubmission txid tx))
instance Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.Block.Point blk)
instance Cardano.BM.Data.Tracer.ToObject Cardano.Slotting.Slot.SlotNo
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.BlockFetch.ClientState.TraceFetchClientState header)
instance GHC.Show.Show peer => Cardano.BM.Data.Tracer.ToObject [Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer (Ouroboros.Network.BlockFetch.Decision.FetchDecision [Ouroboros.Network.Block.Point header])]
instance (GHC.Show.Show peer, Cardano.BM.Data.Tracer.ToObject a) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer a)
instance Cardano.BM.Data.Tracer.ToObject (Network.TypedProtocol.Codec.AnyMessageAndAgency ps) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.Driver.Simple.TraceSendRecv ps)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.TxSubmission.Inbound.TraceTxSubmissionInbound txid tx)
instance (GHC.Show.Show txid, GHC.Show.Show tx) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.TxSubmission.Outbound.TraceTxSubmissionOutbound txid tx)
instance GHC.Show.Show remotePeer => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.KeepAlive.TraceKeepAliveClient remotePeer)
instance GHC.Show.Show addr => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.ErrorPolicy.WithAddr addr Ouroboros.Network.ErrorPolicy.ErrorPolicyTrace)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.Subscription.Ip.WithIPList (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Network.Socket.Types.SockAddr))
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.Subscription.Dns.WithDomainName Ouroboros.Network.Subscription.Dns.DnsTrace)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Network.Subscription.Dns.WithDomainName (Ouroboros.Network.Subscription.Worker.SubscriptionTrace Network.Socket.Types.SockAddr))
instance GHC.Show.Show peer => Cardano.BM.Data.Tracer.ToObject (Network.Mux.Trace.WithMuxBearer peer Network.Mux.Trace.MuxTrace)

module Cardano.Tracing.OrphanInstances.Consensus
instance Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk => Ouroboros.Consensus.Block.Abstract.ConvertRawHash (Ouroboros.Consensus.Block.Abstract.Header blk)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceEvent blk)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceEvent blk)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Consensus.Ledger.Inspect.LedgerEvent blk)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Consensus.MiniProtocol.BlockFetch.Server.TraceBlockFetchServerEvent blk)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Consensus.MiniProtocol.BlockFetch.Server.TraceBlockFetchServerEvent blk)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Consensus.MiniProtocol.ChainSync.Client.TraceChainSyncClientEvent blk)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Consensus.MiniProtocol.ChainSync.Client.TraceChainSyncClientEvent blk)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Consensus.MiniProtocol.ChainSync.Server.TraceChainSyncServerEvent blk)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Consensus.MiniProtocol.ChainSync.Server.TraceChainSyncServerEvent blk)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Consensus.Mempool.API.TraceEventMempool blk)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Consensus.Mempool.API.TraceEventMempool blk)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation ()
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation ()
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Consensus.Node.Tracers.TraceForgeEvent blk)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Consensus.Node.Tracers.TraceForgeEvent blk)
instance Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Consensus.MiniProtocol.LocalTxSubmission.Server.TraceLocalTxSubmissionServerEvent blk)
instance Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Consensus.MiniProtocol.LocalTxSubmission.Server.TraceLocalTxSubmissionServerEvent blk)
instance (Cardano.BM.Data.Tracer.HasPrivacyAnnotation (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceAddBlockEvent blk), Cardano.BM.Data.Tracer.HasSeverityAnnotation (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceAddBlockEvent blk), Ouroboros.Consensus.Ledger.SupportsProtocol.LedgerSupportsProtocol blk, Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceAddBlockEvent blk)) => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceAddBlockEvent blk)
instance Ouroboros.Consensus.Ledger.SupportsProtocol.LedgerSupportsProtocol blk => Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceAddBlockEvent blk)
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Consensus.MiniProtocol.BlockFetch.Server.TraceBlockFetchServerEvent blk)
instance Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Consensus.MiniProtocol.BlockFetch.Server.TraceBlockFetchServerEvent blk)
instance (Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk, Ouroboros.Consensus.Ledger.SupportsProtocol.LedgerSupportsProtocol blk) => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Consensus.MiniProtocol.ChainSync.Client.TraceChainSyncClientEvent blk)
instance Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Consensus.MiniProtocol.ChainSync.Server.TraceChainSyncServerEvent blk)
instance (Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.SupportsMempool.ApplyTxErr blk), GHC.Show.Show (Ouroboros.Consensus.Ledger.SupportsMempool.ApplyTxErr blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.SupportsMempool.GenTx blk), Data.Aeson.Types.ToJSON.ToJSON (Ouroboros.Consensus.Ledger.SupportsMempool.GenTxId blk)) => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Consensus.Mempool.API.TraceEventMempool blk)
instance (tx GHC.Types.~ Ouroboros.Consensus.Ledger.SupportsMempool.GenTx blk, Ouroboros.Consensus.Ledger.SupportsMempool.HasTxId tx, Ouroboros.Consensus.Node.Run.RunNode blk, GHC.Show.Show (Ouroboros.Consensus.Ledger.SupportsMempool.TxId tx), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Basics.LedgerError blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HeaderValidation.OtherHeaderEnvelopeError blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (Ouroboros.Consensus.Block.Abstract.BlockProtocol blk)), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Forging.CannotForge blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Forging.ForgeStateUpdateError blk)) => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Consensus.Node.Tracers.TraceForgeEvent blk)
instance (tx GHC.Types.~ Ouroboros.Consensus.Ledger.SupportsMempool.GenTx blk, Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk, Ouroboros.Consensus.Ledger.SupportsMempool.HasTxId tx, Ouroboros.Consensus.Ledger.SupportsProtocol.LedgerSupportsProtocol blk, GHC.Show.Show (Ouroboros.Consensus.Ledger.SupportsMempool.TxId tx), GHC.Show.Show (Ouroboros.Consensus.Block.Forging.ForgeStateUpdateError blk), GHC.Show.Show (Ouroboros.Consensus.Block.Forging.CannotForge blk)) => Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Consensus.Node.Tracers.TraceForgeEvent blk)
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Consensus.MiniProtocol.LocalTxSubmission.Server.TraceLocalTxSubmissionServerEvent blk)
instance (Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk, Ouroboros.Consensus.Ledger.SupportsProtocol.LedgerSupportsProtocol blk, Ouroboros.Consensus.Ledger.Inspect.InspectLedger blk, Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Abstract.Header blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Inspect.LedgerEvent blk)) => Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceEvent blk)
instance (Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk, Ouroboros.Consensus.Ledger.SupportsProtocol.LedgerSupportsProtocol blk, Ouroboros.Consensus.Ledger.Inspect.InspectLedger blk) => Cardano.BM.Data.Tracer.HasTextFormatter (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceEvent blk)
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Protocol.BFT.BftValidationErr
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Storage.LedgerDB.OnDisk.DiskSnapshot
instance (Ouroboros.Network.Block.StandardHash blk, Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Basics.LedgerError blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HeaderValidation.OtherHeaderEnvelopeError blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (Ouroboros.Consensus.Block.Abstract.BlockProtocol blk))) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Extended.ExtValidationError blk)
instance (Ouroboros.Network.Block.StandardHash blk, Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HeaderValidation.OtherHeaderEnvelopeError blk)) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HeaderValidation.HeaderEnvelopeError blk)
instance (Ouroboros.Network.Block.StandardHash blk, Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (Ouroboros.Consensus.Block.Abstract.BlockProtocol blk)), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HeaderValidation.OtherHeaderEnvelopeError blk)) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HeaderValidation.HeaderError blk)
instance (Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk, Ouroboros.Network.Block.StandardHash blk, Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Basics.LedgerError blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HeaderValidation.OtherHeaderEnvelopeError blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (Ouroboros.Consensus.Block.Abstract.BlockProtocol blk))) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Storage.ChainDB.API.InvalidBlockReason blk)
instance GHC.Show.Show (Ouroboros.Consensus.Protocol.PBFT.Crypto.PBftVerKeyHash c) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Protocol.PBFT.PBftValidationErr c)
instance GHC.Show.Show (Ouroboros.Consensus.Protocol.PBFT.Crypto.PBftVerKeyHash c) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Protocol.PBFT.PBftCannotForge c)
instance Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.RealPoint.RealPoint blk)
instance (Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Inspect.LedgerUpdate blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Inspect.LedgerWarning blk)) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Inspect.LedgerEvent blk)
instance (Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk, Ouroboros.Consensus.Ledger.SupportsProtocol.LedgerSupportsProtocol blk, Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Abstract.Header blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Inspect.LedgerEvent blk)) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceEvent blk)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.MiniProtocol.BlockFetch.Server.TraceBlockFetchServerEvent blk)
instance (Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk, Ouroboros.Consensus.Ledger.SupportsProtocol.LedgerSupportsProtocol blk) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.MiniProtocol.ChainSync.Client.TraceChainSyncClientEvent blk)
instance Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.MiniProtocol.ChainSync.Server.TraceChainSyncServerEvent blk)
instance (GHC.Show.Show (Ouroboros.Consensus.Ledger.SupportsMempool.ApplyTxErr blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.SupportsMempool.ApplyTxErr blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.SupportsMempool.GenTx blk), Data.Aeson.Types.ToJSON.ToJSON (Ouroboros.Consensus.Ledger.SupportsMempool.GenTxId blk)) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Mempool.API.TraceEventMempool blk)
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Mempool.API.MempoolSize
instance Cardano.BM.Data.Tracer.HasTextFormatter ()
instance Cardano.BM.Data.Tracer.Transformable Data.Text.Internal.Text GHC.Types.IO ()
instance (tx GHC.Types.~ Ouroboros.Consensus.Ledger.SupportsMempool.GenTx blk, Ouroboros.Consensus.Block.Abstract.ConvertRawHash blk, Ouroboros.Consensus.Ledger.SupportsMempool.HasTxId tx, Ouroboros.Consensus.Node.Run.RunNode blk, GHC.Show.Show (Ouroboros.Consensus.Ledger.SupportsMempool.TxId tx), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Basics.LedgerError blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HeaderValidation.OtherHeaderEnvelopeError blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (Ouroboros.Consensus.Block.Abstract.BlockProtocol blk)), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Forging.CannotForge blk), Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Forging.ForgeStateUpdateError blk)) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Node.Tracers.TraceForgeEvent blk)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.MiniProtocol.LocalTxSubmission.Server.TraceLocalTxSubmissionServerEvent blk)

module Cardano.Tracing.OrphanInstances.Shelley
instance Data.Aeson.Types.ToJSON.ToJSON Shelley.Spec.Ledger.OCert.KESPeriod
instance Shelley.Spec.Ledger.API.ShelleyBasedEra era => Data.Aeson.Types.ToJSON.ToJSON (Shelley.Spec.Ledger.MetaData.MetaDataHash era)
instance Shelley.Spec.Ledger.API.ShelleyBasedEra era => Data.Aeson.Types.ToJSON.ToJSON (Shelley.Spec.Ledger.TxBody.TxIn era)
instance Data.Aeson.Types.ToJSON.ToJSON (Shelley.Spec.Ledger.TxBody.TxId era)
instance Data.Aeson.Types.ToJSON.ToJSON Shelley.Spec.Ledger.Coin.DeltaCoin
instance Shelley.Spec.Ledger.API.ShelleyBasedEra era => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.SupportsMempool.GenTx (Ouroboros.Consensus.Shelley.Ledger.Block.ShelleyBlock era))
instance Data.Aeson.Types.ToJSON.ToJSON (Ouroboros.Consensus.Ledger.SupportsMempool.TxId (Ouroboros.Consensus.Ledger.SupportsMempool.GenTx (Ouroboros.Consensus.Shelley.Ledger.Block.ShelleyBlock era)))
instance Shelley.Spec.Ledger.API.ShelleyBasedEra era => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Abstract.Header (Ouroboros.Consensus.Shelley.Ledger.Block.ShelleyBlock era))
instance (Shelley.Spec.Ledger.API.ShelleyBasedEra era, Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxo.UTXO era)), Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxow.UTXOW era))) => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.API.Mempool.ApplyTxError era)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Shelley.Protocol.TPraosCannotForge era)
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Shelley.Protocol.HotKey.KESInfo
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Shelley.Protocol.HotKey.KESEvolutionError
instance (Shelley.Spec.Ledger.API.ShelleyBasedEra era, Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxo.UTXO era)), Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxow.UTXOW era))) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Shelley.Ledger.Ledger.ShelleyLedgerError era)
instance Shelley.Spec.Ledger.API.ShelleyBasedEra era => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Shelley.Ledger.Inspect.ShelleyLedgerUpdate era)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Shelley.Ledger.Inspect.ProtocolUpdate crypto)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Shelley.Ledger.Inspect.UpdateProposal crypto)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Shelley.Ledger.Inspect.UpdateState crypto)
instance Data.Aeson.Types.ToJSON.ToJSON (Shelley.Spec.Ledger.PParams.PParamsUpdate era)
instance Cardano.Ledger.Crypto.Crypto crypto => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.API.Protocol.ChainTransitionError crypto)
instance (Shelley.Spec.Ledger.API.ShelleyBasedEra era, Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxo.UTXO era)), Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxow.UTXOW era))) => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Chain.ChainPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Prtcl.PrtlSeqFailure crypto)
instance (Shelley.Spec.Ledger.API.ShelleyBasedEra era, Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxo.UTXO era)), Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxow.UTXOW era))) => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Bbody.BbodyPredicateFailure era)
instance (Shelley.Spec.Ledger.API.ShelleyBasedEra era, Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxo.UTXO era)), Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxow.UTXOW era))) => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Ledgers.LedgersPredicateFailure era)
instance (Shelley.Spec.Ledger.API.ShelleyBasedEra era, Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxo.UTXO era)), Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxow.UTXOW era))) => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Ledger.LedgerPredicateFailure era)
instance (Shelley.Spec.Ledger.API.ShelleyBasedEra era, Cardano.BM.Data.Tracer.ToObject (Control.State.Transition.Extended.PredicateFailure (Shelley.Spec.Ledger.STS.Utxo.UTXO era))) => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Utxow.UtxowPredicateFailure era)
instance (Shelley.Spec.Ledger.API.ShelleyBasedEra era, Cardano.Ledger.Core.Value era GHC.Types.~ Shelley.Spec.Ledger.Coin.Coin) => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Utxo.UtxoPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Ppup.PpupPredicateFailure era)
instance Shelley.Spec.Ledger.API.ShelleyBasedEra era => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Delegs.DelegsPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Delpl.DelplPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Deleg.DelegPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Pool.PoolPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Tick.TickPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject Shelley.Spec.Ledger.STS.Tickn.TicknPredicateFailure
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.NewEpoch.NewEpochPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Epoch.EpochPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.PoolReap.PoolreapPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Snap.SnapPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Newpp.NewppPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Mir.MirPredicateFailure era)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Rupd.RupdPredicateFailure era)
instance Cardano.Ledger.Crypto.Crypto crypto => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Prtcl.PrtclPredicateFailure crypto)
instance Cardano.Ledger.Crypto.Crypto crypto => Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Overlay.OverlayPredicateFailure crypto)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Ocert.OcertPredicateFailure crypto)
instance Cardano.BM.Data.Tracer.ToObject (Shelley.Spec.Ledger.STS.Updn.UpdnPredicateFailure crypto)
instance Shelley.Spec.Ledger.API.ShelleyBasedEra era => Data.Aeson.Types.ToJSON.ToJSONKey (Shelley.Spec.Ledger.TxBody.TxIn era)
instance (Shelley.Spec.Ledger.API.ShelleyBasedEra era, Data.Aeson.Types.ToJSON.ToJSON (Cardano.Ledger.Core.Value era)) => Data.Aeson.Types.ToJSON.ToJSON (Shelley.Spec.Ledger.TxBody.TxOut era)

module Cardano.Tracing.OrphanInstances.HardFork
instance Data.Aeson.Types.ToJSON.ToJSON Ouroboros.Consensus.HardFork.History.EraParams.SafeZone
instance Data.Aeson.Types.ToJSON.ToJSON Ouroboros.Consensus.HardFork.History.EraParams.SafeBeforeEpoch
instance Ouroboros.Consensus.Util.Condense.Condense (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraHash xs)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Block.Abstract.Header) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Abstract.Header (Ouroboros.Consensus.HardFork.Combinator.Basics.HardForkBlock xs))
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Ledger.SupportsMempool.GenTx) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.SupportsMempool.GenTx (Ouroboros.Consensus.HardFork.Combinator.Basics.HardForkBlock xs))
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Data.Aeson.Types.ToJSON.ToJSON Ouroboros.Consensus.TypeFamilyWrappers.WrapGenTxId) xs => Data.Aeson.Types.ToJSON.ToJSON (Ouroboros.Consensus.Ledger.SupportsMempool.TxId (Ouroboros.Consensus.Ledger.SupportsMempool.GenTx (Ouroboros.Consensus.HardFork.Combinator.Basics.HardForkBlock xs)))
instance Data.Aeson.Types.ToJSON.ToJSON (Ouroboros.Consensus.Ledger.SupportsMempool.TxId (Ouroboros.Consensus.Ledger.SupportsMempool.GenTx blk)) => Data.Aeson.Types.ToJSON.ToJSON (Ouroboros.Consensus.TypeFamilyWrappers.WrapGenTxId blk)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapApplyTxErr) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.Mempool.HardForkApplyTxErr xs)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapApplyTxErr) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraApplyTxErr xs)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.SupportsMempool.ApplyTxErr blk) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.TypeFamilyWrappers.WrapApplyTxErr blk)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapLedgerErr) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.Ledger.HardForkLedgerError xs)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapLedgerErr) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraLedgerError xs)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Basics.LedgerError blk) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.TypeFamilyWrappers.WrapLedgerErr blk)
instance (Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapLedgerWarning) xs, Data.SOP.Constraint.All Ouroboros.Consensus.HardFork.Combinator.Abstract.SingleEraBlock.SingleEraBlock xs) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.Ledger.HardForkLedgerWarning xs)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapLedgerWarning) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraLedgerWarning xs)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Inspect.LedgerWarning blk) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.TypeFamilyWrappers.WrapLedgerWarning blk)
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.HardFork.History.EraParams.EraParams
instance (Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapLedgerUpdate) xs, Data.SOP.Constraint.All Ouroboros.Consensus.HardFork.Combinator.Abstract.SingleEraBlock.SingleEraBlock xs) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.Ledger.HardForkLedgerUpdate xs)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapLedgerUpdate) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraLedgerUpdate xs)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.Inspect.LedgerUpdate blk) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.TypeFamilyWrappers.WrapLedgerUpdate blk)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapEnvelopeErr) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.Ledger.HardForkEnvelopeErr xs)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapEnvelopeErr) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraEnvelopeErr xs)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HeaderValidation.OtherHeaderEnvelopeError blk) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.TypeFamilyWrappers.WrapEnvelopeErr blk)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapValidationErr) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.Protocol.HardForkValidationErr xs)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapValidationErr) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraValidationErr xs)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (Ouroboros.Consensus.Block.Abstract.BlockProtocol blk)) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.TypeFamilyWrappers.WrapValidationErr blk)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapCannotForge) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraCannotForge xs)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Forging.CannotForge blk) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.TypeFamilyWrappers.WrapCannotForge blk)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapForgeStateInfo) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraForgeStateInfo xs)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Forging.ForgeStateInfo blk) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.TypeFamilyWrappers.WrapForgeStateInfo blk)
instance Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.TypeFamilyWrappers.WrapForgeStateUpdateError) xs => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.HardFork.Combinator.AcrossEras.OneEraForgeStateUpdateError xs)
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Forging.ForgeStateUpdateError blk) => Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.TypeFamilyWrappers.WrapForgeStateUpdateError blk)

module Cardano.Node.Protocol.Shelley

-- | Instantiate <a>Protocol</a> for Shelley specifically.
--   
--   Use this when you need to run the consensus with this specific
--   protocol.
mkConsensusProtocolShelley :: NodeShelleyProtocolConfiguration -> Maybe ProtocolFilepaths -> ExceptT ShelleyProtocolInstantiationError IO (Protocol IO (ShelleyBlockHFC StandardShelley) ProtocolShelley)

-- | Make <a>SomeConsensusProtocol</a> using the Shelley instance.
--   
--   This lets us handle multiple protocols in a generic way.
--   
--   This also serves a purpose as a sanity check that we have all the
--   necessary type class instances available.
mkSomeConsensusProtocolShelley :: NodeShelleyProtocolConfiguration -> Maybe ProtocolFilepaths -> ExceptT ShelleyProtocolInstantiationError IO SomeConsensusProtocol
data ShelleyProtocolInstantiationError
GenesisReadError :: !FilePath -> !IOException -> ShelleyProtocolInstantiationError
GenesisHashMismatch :: !GenesisHash -> !GenesisHash -> ShelleyProtocolInstantiationError
GenesisDecodeError :: !FilePath -> !String -> ShelleyProtocolInstantiationError
GenesisValidationFailure :: ![ValidationErr] -> ShelleyProtocolInstantiationError
FileError :: !FileError TextEnvelopeError -> ShelleyProtocolInstantiationError
OCertNotSpecified :: ShelleyProtocolInstantiationError
VRFKeyNotSpecified :: ShelleyProtocolInstantiationError
KESKeyNotSpecified :: ShelleyProtocolInstantiationError
renderShelleyProtocolInstantiationError :: ShelleyProtocolInstantiationError -> Text
readGenesis :: GenesisFile -> Maybe GenesisHash -> ExceptT ShelleyProtocolInstantiationError IO (ShelleyGenesis StandardShelley, GenesisHash)
readLeaderCredentials :: Maybe ProtocolFilepaths -> ExceptT ShelleyProtocolInstantiationError IO (Maybe (TPraosLeaderCredentials StandardCrypto))
genesisHashToPraosNonce :: GenesisHash -> Nonce
instance GHC.Show.Show Cardano.Node.Protocol.Shelley.ShelleyProtocolInstantiationError

module Cardano.Tracing.OrphanInstances.Byron
instance Cardano.BM.Data.Tracer.ToObject Cardano.Chain.Byron.API.Mempool.ApplyMempoolPayloadErr
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Byron.Ledger.Inspect.ByronLedgerUpdate
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Byron.Ledger.Inspect.ProtocolUpdate
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Byron.Ledger.Inspect.UpdateState
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Ledger.SupportsMempool.GenTx Ouroboros.Consensus.Byron.Ledger.Block.ByronBlock)
instance Data.Aeson.Types.ToJSON.ToJSON (Ouroboros.Consensus.Ledger.SupportsMempool.TxId (Ouroboros.Consensus.Ledger.SupportsMempool.GenTx Ouroboros.Consensus.Byron.Ledger.Block.ByronBlock))
instance Cardano.BM.Data.Tracer.ToObject Cardano.Chain.Block.Validation.ChainValidationError
instance Cardano.BM.Data.Tracer.ToObject (Ouroboros.Consensus.Block.Abstract.Header Ouroboros.Consensus.Byron.Ledger.Block.ByronBlock)
instance Cardano.BM.Data.Tracer.ToObject Ouroboros.Consensus.Byron.Ledger.HeaderValidation.ByronOtherHeaderEnvelopeError

module Cardano.Node.Protocol.Byron

-- | Instantiate <a>Protocol</a> for Byron specifically.
--   
--   Use this when you need to run the consensus with this specific
--   protocol.
mkConsensusProtocolByron :: NodeByronProtocolConfiguration -> Maybe ProtocolFilepaths -> ExceptT ByronProtocolInstantiationError IO (Protocol IO ByronBlockHFC ProtocolByron)

-- | Make <a>SomeConsensusProtocol</a> using the Byron instance.
--   
--   This lets us handle multiple protocols in a generic way.
--   
--   This also serves a purpose as a sanity check that we have all the
--   necessary type class instances available.
mkSomeConsensusProtocolByron :: NodeByronProtocolConfiguration -> Maybe ProtocolFilepaths -> ExceptT ByronProtocolInstantiationError IO SomeConsensusProtocol
data ByronProtocolInstantiationError
CanonicalDecodeFailure :: !FilePath -> !Text -> ByronProtocolInstantiationError
GenesisHashMismatch :: !GenesisHash -> !GenesisHash -> ByronProtocolInstantiationError
DelegationCertificateFilepathNotSpecified :: ByronProtocolInstantiationError
GenesisConfigurationError :: !FilePath -> !ConfigurationError -> ByronProtocolInstantiationError
GenesisReadError :: !FilePath -> !GenesisDataError -> ByronProtocolInstantiationError
CredentialsError :: !ByronLeaderCredentialsError -> ByronProtocolInstantiationError
SigningKeyDeserialiseFailure :: !FilePath -> !DeserialiseFailure -> ByronProtocolInstantiationError
SigningKeyFilepathNotSpecified :: ByronProtocolInstantiationError
renderByronProtocolInstantiationError :: ByronProtocolInstantiationError -> Text
readGenesis :: GenesisFile -> Maybe GenesisHash -> RequiresNetworkMagic -> ExceptT ByronProtocolInstantiationError IO Config
readLeaderCredentials :: Config -> Maybe ProtocolFilepaths -> ExceptT ByronProtocolInstantiationError IO (Maybe ByronLeaderCredentials)
instance GHC.Show.Show Cardano.Node.Protocol.Byron.ByronProtocolInstantiationError

module Cardano.Node.Protocol.Cardano

-- | Instantiate <a>Protocol</a> for Byron specifically.
--   
--   Use this when you need to run the consensus with this specific
--   protocol.
mkConsensusProtocolCardano :: NodeByronProtocolConfiguration -> NodeShelleyProtocolConfiguration -> NodeHardForkProtocolConfiguration -> Maybe ProtocolFilepaths -> ExceptT CardanoProtocolInstantiationError IO (Protocol IO (CardanoBlock StandardCrypto) ProtocolCardano)

-- | Make <a>SomeConsensusProtocol</a> using the Cardano instance.
--   
--   The Cardano protocol instance is currently the sequential composition
--   of the Byron and Shelley protocols, and will likely be extended in
--   future with further sequentially composed protocol revisions.
--   
--   The use of <a>SomeConsensusProtocol</a> lets us handle multiple
--   protocols in a generic way.
--   
--   This also serves a purpose as a sanity check that we have all the
--   necessary type class instances available.
mkSomeConsensusProtocolCardano :: NodeByronProtocolConfiguration -> NodeShelleyProtocolConfiguration -> NodeHardForkProtocolConfiguration -> Maybe ProtocolFilepaths -> ExceptT CardanoProtocolInstantiationError IO SomeConsensusProtocol
data CardanoProtocolInstantiationError
CardanoProtocolInstantiationErrorByron :: ByronProtocolInstantiationError -> CardanoProtocolInstantiationError
CardanoProtocolInstantiationErrorShelley :: ShelleyProtocolInstantiationError -> CardanoProtocolInstantiationError
renderCardanoProtocolInstantiationError :: CardanoProtocolInstantiationError -> Text
instance GHC.Show.Show Cardano.Node.Protocol.Cardano.CardanoProtocolInstantiationError

module Cardano.Node.Protocol
mkConsensusProtocol :: NodeConfiguration -> ExceptT ProtocolInstantiationError IO SomeConsensusProtocol
data SomeConsensusProtocol
[SomeConsensusProtocol] :: SomeConsensusProtocolConstraints blk => Protocol IO blk (BlockProtocol blk) -> SomeConsensusProtocol
data ProtocolInstantiationError
ByronProtocolInstantiationError :: ByronProtocolInstantiationError -> ProtocolInstantiationError
ShelleyProtocolInstantiationError :: ShelleyProtocolInstantiationError -> ProtocolInstantiationError
CardanoProtocolInstantiationError :: CardanoProtocolInstantiationError -> ProtocolInstantiationError
renderProtocolInstantiationError :: ProtocolInstantiationError -> Text
instance GHC.Show.Show Cardano.Node.Protocol.ProtocolInstantiationError

module Cardano.Tracing.Tracers

-- | This structure stores counters of blockchain-related events. These
--   values will be traced periodically.
data BlockchainCounters
data Tracers peer localPeer blk
Tracers :: Tracer IO (TraceEvent blk) -> Tracers IO peer localPeer blk -> Tracers IO peer blk DeserialiseFailure -> Tracers IO localPeer blk DeserialiseFailure -> Tracer IO (WithIPList (SubscriptionTrace SockAddr)) -> Tracer IO (WithDomainName (SubscriptionTrace SockAddr)) -> Tracer IO (WithDomainName DnsTrace) -> Tracer IO (WithAddr SockAddr ErrorPolicyTrace) -> Tracer IO (WithAddr LocalAddress ErrorPolicyTrace) -> Tracer IO AcceptConnectionsPolicyTrace -> Tracer IO (WithMuxBearer peer MuxTrace) -> Tracer IO HandshakeTr -> Tracer IO HandshakeTr -> Tracers peer localPeer blk

-- | Trace the ChainDB
[chainDBTracer] :: Tracers peer localPeer blk -> Tracer IO (TraceEvent blk)

-- | Consensus-specific tracers.
[consensusTracers] :: Tracers peer localPeer blk -> Tracers IO peer localPeer blk

-- | Tracers for the node-to-node protocols.
[nodeToNodeTracers] :: Tracers peer localPeer blk -> Tracers IO peer blk DeserialiseFailure

-- | Tracers for the node-to-client protocols
[nodeToClientTracers] :: Tracers peer localPeer blk -> Tracers IO localPeer blk DeserialiseFailure

-- | Trace the IP subscription manager
[ipSubscriptionTracer] :: Tracers peer localPeer blk -> Tracer IO (WithIPList (SubscriptionTrace SockAddr))

-- | Trace the DNS subscription manager
[dnsSubscriptionTracer] :: Tracers peer localPeer blk -> Tracer IO (WithDomainName (SubscriptionTrace SockAddr))

-- | Trace the DNS resolver
[dnsResolverTracer] :: Tracers peer localPeer blk -> Tracer IO (WithDomainName DnsTrace)

-- | Trace error policy resolution
[errorPolicyTracer] :: Tracers peer localPeer blk -> Tracer IO (WithAddr SockAddr ErrorPolicyTrace)

-- | Trace local error policy resolution
[localErrorPolicyTracer] :: Tracers peer localPeer blk -> Tracer IO (WithAddr LocalAddress ErrorPolicyTrace)
[acceptPolicyTracer] :: Tracers peer localPeer blk -> Tracer IO AcceptConnectionsPolicyTrace

-- | Trace the Mux
[muxTracer] :: Tracers peer localPeer blk -> Tracer IO (WithMuxBearer peer MuxTrace)
[handshakeTracer] :: Tracers peer localPeer blk -> Tracer IO HandshakeTr
[localHandshakeTracer] :: Tracers peer localPeer blk -> Tracer IO HandshakeTr
data TraceOptions

-- | Tracers for all system components.
mkTracers :: forall peer localPeer blk. (RunNode blk, HasKESMetricsData blk, TraceConstraints blk, Show peer, Eq peer, Show localPeer) => TraceOptions -> Trace IO Text -> NodeKernelData blk -> IO (Tracers peer localPeer blk)
nullTracers :: Tracers peer localPeer blk
instance Cardano.BM.Internal.ElidingTracer.ElidingTracer (Cardano.BM.Data.Tracer.WithSeverity (Ouroboros.Consensus.Storage.ChainDB.Impl.Types.TraceEvent blk))
instance (Ouroboros.Network.Block.StandardHash header, GHC.Classes.Eq peer) => Cardano.BM.Internal.ElidingTracer.ElidingTracer (Cardano.BM.Data.Tracer.WithSeverity [Ouroboros.Network.BlockFetch.ClientState.TraceLabelPeer peer (Ouroboros.Network.BlockFetch.Decision.FetchDecision [Ouroboros.Network.Block.Point header])])
instance GHC.Show.Show a => GHC.Show.Show (Cardano.BM.Data.Tracer.WithSeverity a)

module Cardano.Node.Run
runNode :: PartialNodeConfiguration -> IO ()

-- | Make sure the VRF private key file is readable only by the current
--   process owner the node is running under.
checkVRFFilePermissions :: FilePath -> ExceptT VRFPrivateKeyFilePermissionError IO ()
