diff --git a/cabal.project b/cabal.project index b8a7399b94a..b8cb5e185a9 100644 --- a/cabal.project +++ b/cabal.project @@ -101,19 +101,23 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: a571776defab2aff8e1e0a9e62646494a1a8af08 - --sha256: sha256-eucib6kUGFbiIM09nNHC+XR+gUSjiAtpKxcuKO/Kl1Q= + tag: 86cc78704115007dc6c75185ae83decaa8e89348 + --sha256: sha256-K/q+sxmDrCaNEjAicoDYZwLc8gSw+Kw4mO0qbM8MujU= subdir: ouroboros-consensus ouroboros-consensus-cardano + ouroboros-consensus-protocol ouroboros-consensus-diffusion + ouroboros-consensus-observe + sop-extras + strict-sop-core --- Points to ouroboros-network/nfrisby/leios-202511-demo +-- Points to ouroboros-network/leios-prototype source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-network.git - tag: 479f0d0d82413162c8444b912394dd74c052831f - --sha256: sha256-Up+Zh3+nHuwlHmpXgH0nNIvQ/yHm/Hxb9ZYQHibrDLc= + tag: fb5f16f48af84950db0c2ecefd8cbda532c77d1a + --sha256: sha256-0LWD1zwOzhdcPJtBuw7pRDVcBd9CKJOFjm9o4BvsIMM= subdir: cardano-ping monoidal-synchronisation diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index 1624a529e08..4040dba52c3 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -197,6 +197,7 @@ library , ouroboros-consensus-cardano ^>= 0.25 , ouroboros-consensus-diffusion ^>= 0.23 , ouroboros-consensus-protocol + , ouroboros-consensus-observe , ouroboros-network-api ^>= 0.14.1 , ouroboros-network ^>= 0.21.3 , ouroboros-network-framework ^>= 0.18 diff --git a/cardano-node/src/Cardano/Node/TraceConstraints.hs b/cardano-node/src/Cardano/Node/TraceConstraints.hs index ec4b9f61034..13143aa39bd 100644 --- a/cardano-node/src/Cardano/Node/TraceConstraints.hs +++ b/cardano-node/src/Cardano/Node/TraceConstraints.hs @@ -15,14 +15,17 @@ import Cardano.Node.Queries (ConvertTxId, GetKESInfo (..), HasKESInfo import Cardano.Protocol.Crypto (StandardCrypto) import Cardano.Tracing.HasIssuer (HasIssuer) import Ouroboros.Consensus.Block (BlockProtocol, CannotForge, ForgeStateUpdateError, - GetHeader, HasHeader, Header) + GetHeader, HasHeader, Header, HeaderHash) import Ouroboros.Consensus.HeaderValidation (OtherHeaderEnvelopeError) import Ouroboros.Consensus.Ledger.Abstract (LedgerError) import Ouroboros.Consensus.Ledger.Inspect (LedgerEvent, LedgerUpdate, LedgerWarning) -import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr, HasTxId, HasTxs (..)) +import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr, HasTxId, HasTxs (..), + TxMeasure) import Ouroboros.Consensus.Node.NetworkProtocolVersion (HasNetworkProtocolVersion (BlockNodeToClientVersion, BlockNodeToNodeVersion)) import Ouroboros.Consensus.Node.Run (RunNode, SerialiseNodeToNodeConstraints) +import Ouroboros.Consensus.Node.Tracers (ForgedBlock) +import Ouroboros.Consensus.Observe.ConsensusJson (ConsensusJson) import Ouroboros.Consensus.Protocol.Abstract (SelectView, ValidationErr) import Ouroboros.Consensus.Shelley.Ledger.Mempool (GenTx, TxId) import Ouroboros.Network.Block (Serialised) @@ -58,7 +61,6 @@ type TraceConstraints blk = , ToJSON (BlockNodeToClientVersion blk) , ToJSON (BlockNodeToNodeVersion blk) - , LogFormatting (ApplyTxErr blk) , LogFormatting (GenTx blk) , LogFormatting (Header blk) @@ -72,4 +74,7 @@ type TraceConstraints blk = , LogFormatting (ForgeStateUpdateError blk) , LogFormatting (Set (Credential 'Staking)) , LogFormatting (NonEmpty.NonEmpty (KeyHash 'Staking)) + + , ConsensusJson (HeaderHash blk) + , ConsensusJson (TxMeasure blk) ) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 1eaa93077a8..0246155ee61 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -40,7 +40,7 @@ import Ouroboros.Consensus.Genesis.Governor (DensityBounds (..), GDDDe import Ouroboros.Consensus.Ledger.Extended (ExtValidationError) import Ouroboros.Consensus.Ledger.Inspect (LedgerEvent (..), LedgerUpdate, LedgerWarning) import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr, ByteSize32 (..), GenTxId, - HasTxId, LedgerSupportsMempool, txForgetValidated, txId) + HasTxId, LedgerSupportsMempool, txForgetValidated, txId, TxMeasureMetrics (txMeasureMetricTxSizeBytes, txMeasureMetricExUnitsMemory, txMeasureMetricExUnitsSteps, txMeasureMetricRefScriptsSizeBytes), TxLimits (TxMeasure)) import Ouroboros.Consensus.Ledger.SupportsProtocol import Ouroboros.Consensus.Mempool (MempoolSize (..), TraceEventMempool (..)) import Ouroboros.Consensus.MiniProtocol.BlockFetch.Server @@ -82,6 +82,8 @@ import Data.Word (Word32, Word64) import Network.TypedProtocol.Core import LeiosDemoTypes (TraceLeiosKernel, TraceLeiosPeer, traceLeiosKernelToObject, traceLeiosPeerToObject) +import Ouroboros.Consensus.Observe.ConsensusJson (ConsensusJson(toConsensusJson)) +import Ouroboros.Consensus.Mempool.TxSeq (TxSeqMeasure(mCount, mSize)) instance (LogFormatting adr, Show adr) => LogFormatting (ConnectionId adr) where forMachine _dtal (ConnectionId local' remote) = @@ -1447,7 +1449,10 @@ instance ( tx ~ GenTx blk , Show (TxId (GenTx blk)) , LogFormatting (CannotForge blk) , LogFormatting (ExtValidationError blk) - , LogFormatting (ForgeStateUpdateError blk)) + , LogFormatting (ForgeStateUpdateError blk) + , ConsensusJson (HeaderHash blk) + , ConsensusJson (TxMeasure blk) + ) => LogFormatting (TraceForgeEvent blk) where forMachine _dtal (TraceStartLeadershipCheck slotNo) = mconcat @@ -1530,16 +1535,11 @@ instance ( tx ~ GenTx blk , "mempoolHash" .= String (renderChainHash @blk (renderHeaderHash (Proxy @blk)) mpHash) , "mempoolSlot" .= toJSON (unSlotNo mpSlot) ] - forMachine _dtal (TraceForgedBlock slotNo _ blk _) = + forMachine _dtal (TraceForgedBlock slotNo fb) = mconcat [ "kind" .= String "TraceForgedBlock" , "slot" .= toJSON (unSlotNo slotNo) - , "block" .= String (renderHeaderHash (Proxy @blk) $ blockHash blk) - , "blockNo" .= toJSON (unBlockNo $ blockNo blk) - , "blockPrev" .= String (renderChainHash - @blk - (renderHeaderHash (Proxy @blk)) - $ blockPrevHash blk) + , "forgedBlock" .= toConsensusJson fb ] forMachine _dtal (TraceDidntAdoptBlock slotNo _) = mconcat @@ -1642,7 +1642,7 @@ instance ( tx ~ GenTx blk <> renderChainHash @blk (renderHeaderHash (Proxy @blk)) mpHash <> " ticked to slot " <> showT (unSlotNo mpSlot) - forHuman (TraceForgedBlock slotNo _ _ _) = + forHuman (TraceForgedBlock slotNo _) = "Forged block in slot " <> showT (unSlotNo slotNo) forHuman (TraceDidntAdoptBlock slotNo _) = "Didn't adopt forged block in slot " <> showT (unSlotNo slotNo) @@ -1700,9 +1700,36 @@ instance ( tx ~ GenTx blk [CounterM "Forge.node-is-leader" Nothing] asMetrics TraceForgeTickedLedgerState {} = [] asMetrics TraceForgingMempoolSnapshot {} = [] - asMetrics (TraceForgedBlock slot _ _ _) = - [IntM "forgedSlotLast" (fromIntegral $ unSlotNo slot), - CounterM "Forge.forged" Nothing] + asMetrics (TraceForgedBlock slot fb) = + [ IntM "forgedSlotLast" (fromIntegral $ unSlotNo slot) + , CounterM "Forge.forged" Nothing + -- NOTE(bladyjoker): New!!! + , CounterM "Forge.ranking-block.total-count" Nothing + + , CounterM "Forge.ranking-block.total-tx-count" (Just . fromInteger . toInteger . mCount . fbNewBlockSize $ fb) + , CounterM "Forge.endorser-block.total-tx-count" (Just . fromInteger . toInteger . mCount . fbNewEndorserBlockSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-count" (Just . fromInteger . toInteger . mCount . fbMempoolRestSize $ fb) + + , CounterM "Forge.ranking-block.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes . mSize . fbNewBlockSize $ fb) + , CounterM "Forge.endorser-block.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes . mSize . fbNewEndorserBlockSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes . mSize . fbMempoolRestSize $ fb) + + , CounterM "Forge.ranking-block.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory . mSize . fbNewBlockSize $ fb) + , CounterM "Forge.endorser-block.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory . mSize . fbNewEndorserBlockSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory . mSize . fbMempoolRestSize $ fb) + + , CounterM "Forge.ranking-block.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps . mSize . fbNewBlockSize $ fb) + , CounterM "Forge.endorser-block.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps . mSize . fbNewEndorserBlockSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps . mSize . fbMempoolRestSize $ fb) + + , CounterM "Forge.ranking-block.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes . mSize . fbNewBlockSize $ fb) + , CounterM "Forge.endorser-block.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes . mSize . fbNewEndorserBlockSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes . mSize . fbMempoolRestSize $ fb) + ] ++ case fbMaybeNewEndorserBlock fb of + Nothing -> [] + Just _ -> [ + CounterM "Forge.endorser-block.total-count" Nothing + ] asMetrics (TraceDidntAdoptBlock _slot _) = [CounterM "Forge.didnt-adopt" Nothing] asMetrics (TraceForgedInvalidBlock _slot _ _) = diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs index 587ac517702..f5231b663a9 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs @@ -31,8 +31,8 @@ import Cardano.Tracing.Render (renderChainHash, renderChunkNo, renderH renderWithOrigin) import Ouroboros.Consensus.Block (BlockProtocol, BlockSupportsProtocol, CannotForge, ConvertRawHash (..), ForgeStateUpdateError, GenesisWindow (..), GetHeader (..), - Header, RealPoint, blockNo, blockPoint, blockPrevHash, getHeader, pointHash, - realPointHash, realPointSlot, withOriginToMaybe) + Header, RealPoint, blockPoint, getHeader, pointHash, realPointHash, + realPointSlot, withOriginToMaybe) import Ouroboros.Consensus.Block.SupportsSanityCheck import Ouroboros.Consensus.Genesis.Governor (DensityBounds (..), GDDDebugInfo (..), TraceGDDEvent (..)) @@ -58,6 +58,7 @@ import Ouroboros.Consensus.Node.GSM import Ouroboros.Consensus.Node.Run (RunNode, estimateBlockSize) import Ouroboros.Consensus.Node.Tracers (TraceForgeEvent (..)) import qualified Ouroboros.Consensus.Node.Tracers as Consensus +import Ouroboros.Consensus.Observe.ConsensusJson (ConsensusJson (toConsensusJson)) import Ouroboros.Consensus.Protocol.Abstract import qualified Ouroboros.Consensus.Protocol.BFT as BFT import qualified Ouroboros.Consensus.Protocol.PBFT as PBFT @@ -402,6 +403,7 @@ instance ( tx ~ GenTx blk , ToObject (ValidationErr (BlockProtocol blk)) , ToObject (CannotForge blk) , ToObject (ForgeStateUpdateError blk) + , ConsensusJson (Consensus.ForgedBlock blk) , LedgerSupportsMempool blk) => Transformable Text IO (TraceForgeEvent blk) where trTransformer = trStructuredText @@ -476,7 +478,7 @@ instance ( tx ~ GenTx blk <> renderChainHash (Text.decodeLatin1 . toRawHash (Proxy @blk)) mpHash <> " ticked to slot " <> showT (unSlotNo mpSlot) - TraceForgedBlock slotNo _ _ _ -> const $ + TraceForgedBlock slotNo _forgedBlock -> const $ "Forged block in slot " <> showT (unSlotNo slotNo) TraceDidntAdoptBlock slotNo _ -> const $ "Didn't adopt forged block in slot " <> showT (unSlotNo slotNo) @@ -1616,7 +1618,9 @@ instance ( RunNode blk , ToObject (OtherHeaderEnvelopeError blk) , ToObject (ValidationErr (BlockProtocol blk)) , ToObject (CannotForge blk) - , ToObject (ForgeStateUpdateError blk)) + , ToObject (ForgeStateUpdateError blk) + , ConsensusJson (Consensus.ForgedBlock blk) + ) => ToObject (TraceForgeEvent blk) where toObject _verb (TraceStartLeadershipCheck slotNo) = mconcat @@ -1699,13 +1703,11 @@ instance ( RunNode blk , "mempoolHash" .= String (renderChainHash @blk (renderHeaderHash (Proxy @blk)) mpHash) , "mempoolSlot" .= toJSON (unSlotNo mpSlot) ] - toObject _verb (TraceForgedBlock slotNo _ blk _) = + toObject _verb (TraceForgedBlock slotNo forgedBlock) = mconcat [ "kind" .= String "TraceForgedBlock" , "slot" .= toJSON (unSlotNo slotNo) - , "block" .= String (renderHeaderHash (Proxy @blk) $ blockHash blk) - , "blockNo" .= toJSON (unBlockNo $ blockNo blk) - , "blockPrev" .= String (renderChainHash @blk (renderHeaderHash (Proxy @blk)) $ blockPrevHash blk) + , "forgedBlock" .= toConsensusJson forgedBlock ] toObject _verb (TraceDidntAdoptBlock slotNo _) = mconcat diff --git a/cardano-node/src/Cardano/Tracing/Tracers.hs b/cardano-node/src/Cardano/Tracing/Tracers.hs index 5154aeb95c4..0bc20dd2cc9 100644 --- a/cardano-node/src/Cardano/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Tracing/Tracers.hs @@ -21,11 +21,11 @@ {-# OPTIONS_GHC -Wno-orphans #-} {-# OPTIONS_GHC -fno-warn-redundant-constraints #-} -- needs different instances on ghc8 and on ghc9 -#if __GLASGOW_HASKELL__ < 904 --- Pattern synonym record fields with GHC-8.10 is issuing the `-Wname-shadowing` --- warning. -{-# OPTIONS_GHC -Wno-name-shadowing #-} -#endif + + + + + module Cardano.Tracing.Tracers @@ -43,6 +43,7 @@ import Cardano.BM.Data.Transformers import Cardano.BM.Internal.ElidingTracer import Cardano.BM.Trace (traceNamedObject) import Cardano.BM.Tracing +import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable) import Cardano.Node.Configuration.Logging import Cardano.Node.Protocol.Byron () import Cardano.Node.Protocol.Shelley () @@ -61,6 +62,9 @@ import Cardano.Tracing.OrphanInstances.Network () import Cardano.Tracing.Render (renderChainHash, renderHeaderHash) import Cardano.Tracing.Shutdown () import Cardano.Tracing.Startup () +import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano +import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as Cardano +import qualified Ouroboros.Cardano.Network.PublicRootPeers as Cardano.PublicRootPeers import Ouroboros.Consensus.Block (BlockConfig, BlockProtocol, CannotForge, ConvertRawHash (..), ForgeStateInfo, ForgeStateUpdateError, Header, realPointHash, realPointSlot) @@ -71,8 +75,8 @@ import Ouroboros.Consensus.Ledger.Abstract (LedgerErr, LedgerState) import Ouroboros.Consensus.Ledger.Extended (ledgerState) import Ouroboros.Consensus.Ledger.Inspect (InspectLedger, LedgerEvent) import Ouroboros.Consensus.Ledger.Query (BlockQuery, Query) -import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr, GenTx, GenTxId, HasTxs, - LedgerSupportsMempool, ByteSize32 (..)) +import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr, ByteSize32 (..), GenTx, + GenTxId, HasTxs, LedgerSupportsMempool) import Ouroboros.Consensus.Ledger.SupportsProtocol (LedgerSupportsProtocol) import Ouroboros.Consensus.Mempool (MempoolSize (..), TraceEventMempool (..)) import Ouroboros.Consensus.MiniProtocol.BlockFetch.Server @@ -82,17 +86,12 @@ import qualified Ouroboros.Consensus.Network.NodeToNode as NodeToNode import Ouroboros.Consensus.Node (NetworkP2PMode (..)) import qualified Ouroboros.Consensus.Node.Run as Consensus (RunNode) import qualified Ouroboros.Consensus.Node.Tracers as Consensus +import Ouroboros.Consensus.Observe.ConsensusJson (ConsensusJson) import Ouroboros.Consensus.Protocol.Abstract (SelectView, ValidationErr) import qualified Ouroboros.Consensus.Protocol.Ledger.HotKey as HotKey import qualified Ouroboros.Consensus.Storage.ChainDB as ChainDB import qualified Ouroboros.Consensus.Storage.LedgerDB as LedgerDB import Ouroboros.Consensus.Util.Enclose - -import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable) -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as Cardano -import qualified Ouroboros.Cardano.Network.PublicRootPeers as Cardano.PublicRootPeers - import qualified Ouroboros.Network.AnchoredFragment as AF import Ouroboros.Network.Block (BlockNo (..), ChainUpdate (..), HasHeader (..), Point, StandardHash, blockNo, pointSlot, unBlockNo) @@ -113,8 +112,8 @@ import Ouroboros.Network.InboundGovernor.State as InboundGovernor import Ouroboros.Network.NodeToClient (LocalAddress) import Ouroboros.Network.NodeToNode (RemoteAddress) import Ouroboros.Network.PeerSelection.Churn (ChurnCounters (..)) -import Ouroboros.Network.PeerSelection.Governor ( - PeerSelectionCounters, PeerSelectionView (..)) +import Ouroboros.Network.PeerSelection.Governor (PeerSelectionCounters, + PeerSelectionView (..)) import qualified Ouroboros.Network.PeerSelection.Governor as Governor import Ouroboros.Network.Point (fromWithOrigin) import Ouroboros.Network.Protocol.LocalStateQuery.Type (LocalStateQuery, ShowQuery) @@ -351,7 +350,8 @@ instance (StandardHash header, Eq peer) => ElidingTracer mkTracers :: forall blk p2p . ( Consensus.RunNode blk - , TraceConstraints blk + , TraceConstraints blk, + ConsensusJson (Consensus.ForgedBlock blk) ) => BlockConfig blk -> TraceOptions @@ -603,7 +603,7 @@ teeTraceChainTip , InspectLedger blk , ToObject (Header blk) , ToObject (LedgerEvent blk) - , ToObject (SelectView (BlockProtocol blk)) + , ToObject (Ouroboros.Consensus.Protocol.Abstract.SelectView (BlockProtocol blk)) ) => BlockConfig blk -> ForgingStats @@ -627,7 +627,7 @@ teeTraceChainTipElide , InspectLedger blk , ToObject (Header blk) , ToObject (LedgerEvent blk) - , ToObject (SelectView (BlockProtocol blk)) + , ToObject (Ouroboros.Consensus.Protocol.Abstract.SelectView (BlockProtocol blk)) ) => TracingVerbosity -> MVar (Maybe (WithSeverity (ChainDB.TraceEvent blk)), Integer) @@ -782,11 +782,11 @@ mkConsensusTracers , ToObject (GenTx blk) , ToObject (LedgerErr (LedgerState blk)) , ToObject (OtherHeaderEnvelopeError blk) - , ToObject (ValidationErr (BlockProtocol blk)) + , ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (BlockProtocol blk)) , ToObject (ForgeStateUpdateError blk) , Consensus.RunNode blk , HasKESMetricsData blk - , HasKESInfo blk + , HasKESInfo blk, ConsensusJson (Consensus.ForgedBlock blk) ) => Maybe EKGDirect -> TraceSelection @@ -1126,8 +1126,8 @@ teeForge :: , ToObject (CannotForge blk) , ToObject (LedgerErr (LedgerState blk)) , ToObject (OtherHeaderEnvelopeError blk) - , ToObject (ValidationErr (BlockProtocol blk)) - , ToObject (ForgeStateUpdateError blk) + , ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (BlockProtocol blk)) + , ToObject (ForgeStateUpdateError blk), ConsensusJson (Consensus.ForgedBlock blk) ) => ForgeTracers -> TracingVerbosity @@ -1196,7 +1196,7 @@ teeForge' tr = LogValue "forgeTickedLedgerState" $ PureI $ fromIntegral $ unSlotNo slot Consensus.TraceForgingMempoolSnapshot slot _prevPt _mpHash _mpSlotNo -> LogValue "forgingMempoolSnapshot" $ PureI $ fromIntegral $ unSlotNo slot - Consensus.TraceForgedBlock slot _ _ _ -> + Consensus.TraceForgedBlock slot _forgedBlock -> LogValue "forgedSlotLast" $ PureI $ fromIntegral $ unSlotNo slot Consensus.TraceDidntAdoptBlock slot _ -> LogValue "notAdoptedSlotLast" $ PureI $ fromIntegral $ unSlotNo slot @@ -1213,9 +1213,9 @@ forgeTracer , ToObject (CannotForge blk) , ToObject (LedgerErr (LedgerState blk)) , ToObject (OtherHeaderEnvelopeError blk) - , ToObject (ValidationErr (BlockProtocol blk)) + , ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (BlockProtocol blk)) , ToObject (ForgeStateUpdateError blk) - , HasKESInfo blk + , HasKESInfo blk, ConsensusJson (Consensus.ForgedBlock blk) ) => TracingVerbosity -> Trace IO Text