diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index a485ef897da..6b07cdb0dd1 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -79,6 +79,7 @@ library Cardano.Node.Run Cardano.Node.STM Cardano.Node.Startup + Cardano.Node.StateRep Cardano.Node.TraceConstraints Cardano.Node.Tracing Cardano.Node.Types diff --git a/cardano-node/src/Cardano/Node/StateRep.hs b/cardano-node/src/Cardano/Node/StateRep.hs new file mode 100644 index 00000000000..fdd25168a47 --- /dev/null +++ b/cardano-node/src/Cardano/Node/StateRep.hs @@ -0,0 +1,30 @@ +module Cardano.Node.StateRep where + +data NodeState blk + -- All node states prior to tracing system going online are effectively invisible. + = NodeTracingOnlineConfiguring -- <- initTraceDispatcher + | NodeConfigCompleteLoadingKernel -- just before Node.run + | NodeChainDBOpening (TraceEvent blk) + -- TraceOpenEvent (TraceOpenEvent blk) + -- StartedOpeningDB + -- StartedOpeningImmutableDB + -- OpenedImmutableDB + -- StartedOpeningVolatileDB + -- OpenedVolatileDB + -- StartedOpeningLgrDB + -- TraceLedgerReplayEvent (LedgerReplayEvent blk) + -- ReplayFromGenesis + -- ReplayFromSnapshot + -- ReplayedBlock + -- TraceOpenEvent (TraceOpenEvent blk) + -- OpenedLgrDB + -- TraceInitChainSelEvent (TraceInitChainSelEvent blk) + -- StartedInitChainSelection + -- InitalChainSelected + -- TraceOpenEvent (TraceOpenEvent blk) + -- OpenedDB + | NodeKernelOnlineSyncing -- just before onKernel in rnNodeKernelHook + | NodeSyncing (TraceEvent blk) + -- TraceAddBlockEvent (TraceAddBlockEvent blk) + -- ChainDB.AddedToCurrentChain + | NodeShutdownComplete -- <- finally in handleNodeWithTracers diff --git a/doc/new-tracing/initialisation-steps.org b/doc/new-tracing/initialisation-steps.org new file mode 100644 index 00000000000..8a3ff09eb1e --- /dev/null +++ b/doc/new-tracing/initialisation-steps.org @@ -0,0 +1,24 @@ +#+TITLE: Node state datapoints + +* Node + + Cardano.Node.StateRep + +* Consensus + https://github.com/input-output-hk/ouroboros-network/blob/master/ouroboros-consensus/docs/initialization-steps-and-the-related-tracer.org + + Consensus init: + + open the Chain DB + + open ImmutableDb + + open VolatileDB + + open LedgerDB + + setup the NodeKernel + + initialize the network layer + + - Ouroboros.Consensus.Node.run + - Ouroboros.Consensus.Node.runWith + + - TraceValidationEvent blk + - UpdateLedgerDbTraceEvent + - UpdateLedgerDbTraceEvent blk + - StartedPushingBlockToTheLedgerDb