From e7f2f50ec6520a7502b9dc7026e9c85f14b15800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Nicklisch-Franken?= Date: Tue, 24 Jun 2025 10:22:45 +0200 Subject: [PATCH 01/69] Resolve erroneous line overwrite --- .../src/Cardano/Node/Tracing/Tracers/ForgingStats.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/ForgingStats.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/ForgingStats.hs index dddea2c4d6d..342da5c3e83 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/ForgingStats.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/ForgingStats.hs @@ -100,13 +100,17 @@ calculateForgingStats stats _context TraceNodeCannotForge {} = pure $ stats { fsNodeCannotForgeNum = fsNodeCannotForgeNum stats + 1 } calculateForgingStats stats _context - TraceNodeIsLeader {} = - pure $ stats { fsNodeIsLeaderNum = fsNodeIsLeaderNum stats + 1 } + (TraceNodeIsLeader (SlotNo slot)) = + pure $ stats { fsNodeIsLeaderNum = fsNodeIsLeaderNum stats + 1 + , fsLastSlot = fromIntegral slot } calculateForgingStats stats _context TraceForgedBlock {} = pure $ stats { fsBlocksForgedNum = fsBlocksForgedNum stats + 1 } calculateForgingStats stats _context (TraceNodeNotLeader (SlotNo slot')) = + -- Node is not a leader again: The number of blocks forged by + -- this node should now be equal to the number of slots when + -- this node was a leader. let slot = fromIntegral slot' in if fsLastSlot stats == 0 || succ (fsLastSlot stats) == slot then pure $ stats { fsLastSlot = slot } From b691d4601974997d44ea5c8633e2e229580d9550 Mon Sep 17 00:00:00 2001 From: John Lotoski Date: Tue, 1 Jul 2025 15:56:29 -0500 Subject: [PATCH 02/69] releaseArtifacts: add cardano-tracer to the bins as a musl build --- nix/haskell.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nix/haskell.nix b/nix/haskell.nix index cd58b3485cb..c186b0db7e6 100644 --- a/nix/haskell.nix +++ b/nix/haskell.nix @@ -114,7 +114,6 @@ let modules = [ ({ lib, pkgs, ... }: { - packages.cardano-tracer.package.buildable = with pkgs.stdenv.hostPlatform; lib.mkForce (!isMusl); packages.cardano-node-chairman.components.tests.chairman-tests.buildable = lib.mkForce pkgs.stdenv.hostPlatform.isUnix; packages.plutus-tx-plugin.components.library.platforms = with lib.platforms; [ linux darwin ]; packages.tx-generator.package.buildable = with pkgs.stdenv.hostPlatform; !isMusl; From 60a8955ee0f4139057c406784528ff364deb817b Mon Sep 17 00:00:00 2001 From: John Lotoski Date: Thu, 3 Jul 2025 12:40:32 -0500 Subject: [PATCH 03/69] tx-generator/gen-plutus: add to musl for release artifact inclusion --- flake.nix | 14 +------------- nix/haskell.nix | 1 - 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/flake.nix b/flake.nix index 848cfdda5c0..414d64d40f8 100644 --- a/flake.nix +++ b/flake.nix @@ -324,16 +324,7 @@ inherit pkgs; inherit (exes.cardano-node.identifier) version; platform = "linux"; - exes = lib.collect lib.isDerivation ( - # FIXME: restore tx-generator and gen-plutus once - # plutus-scripts-bench is fixed for musl - # - # It stands to question though, whether or not we want those to be - # in the cardano-node-linux as executables anyway? - # - # Also explicitly excluded from musl in nix/haskell.nix. - removeAttrs projectExes ["tx-generator" "gen-plutus"] - ); + exes = lib.collect lib.isDerivation projectExes; }; internal.roots.project = muslProject.roots; variants = mapAttrs (_: v: removeAttrs v.musl ["variants"]) ciJobsVariants; @@ -386,9 +377,6 @@ "windows\\.(.*\\.)?checks\\.cardano-tracer\\.cardano-tracer-test" # FIXME: plutus-scripts-bench (dep of tx-generator) does not compile for windows: "windows\\.(.*\\.)?tx-generator.*" - # FIXME: plutus-scripts-bench's gen-plutus does not compile for musl - "musl\\.(.*\\.)?tx-generator.*" - "musl\\.(.*\\.)?gen-plutus.*" # hlint required status is controlled via the github action: "native\\.(.*\\.)?checks/hlint" # system-tests are build and run separately: diff --git a/nix/haskell.nix b/nix/haskell.nix index c186b0db7e6..05abb35b59f 100644 --- a/nix/haskell.nix +++ b/nix/haskell.nix @@ -116,7 +116,6 @@ let ({ lib, pkgs, ... }: { packages.cardano-node-chairman.components.tests.chairman-tests.buildable = lib.mkForce pkgs.stdenv.hostPlatform.isUnix; packages.plutus-tx-plugin.components.library.platforms = with lib.platforms; [ linux darwin ]; - packages.tx-generator.package.buildable = with pkgs.stdenv.hostPlatform; !isMusl; packages.fs-api.components.library.doHaddock = false; packages.cardano-ledger-allegra.components.library.doHaddock = false; From aec83141211638d82dcd000182bf0dac6e3297d9 Mon Sep 17 00:00:00 2001 From: John Lotoski Date: Thu, 3 Jul 2025 12:41:30 -0500 Subject: [PATCH 04/69] tx-generator: is already excluded by cabal on windows --- flake.nix | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/flake.nix b/flake.nix index 414d64d40f8..5fbe9d4cc08 100644 --- a/flake.nix +++ b/flake.nix @@ -340,10 +340,7 @@ inherit pkgs; inherit (exes.cardano-node.identifier) version; platform = "win64"; - exes = lib.collect lib.isDerivation ( - # FIXME: restore tx-generator once plutus-scripts-bench is fixed for windows: - removeAttrs projectExes ["tx-generator"] - ); + exes = lib.collect lib.isDerivation projectExes; }; internal.roots.project = windowsProject.roots; variants = mapAttrs (_: v: removeAttrs v.windows ["variants"]) ciJobsVariants; @@ -375,8 +372,6 @@ [ # FIXME: cardano-tracer-test for windows should probably be disabled in haskell.nix config: "windows\\.(.*\\.)?checks\\.cardano-tracer\\.cardano-tracer-test" - # FIXME: plutus-scripts-bench (dep of tx-generator) does not compile for windows: - "windows\\.(.*\\.)?tx-generator.*" # hlint required status is controlled via the github action: "native\\.(.*\\.)?checks/hlint" # system-tests are build and run separately: From ee03bcc2eac1170078ede4bf63291f239755629b Mon Sep 17 00:00:00 2001 From: John Lotoski Date: Thu, 3 Jul 2025 12:42:34 -0500 Subject: [PATCH 05/69] tx-generator: use set-git-rev for release bin version stamping --- flake.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 5fbe9d4cc08..cbbd46aa066 100644 --- a/flake.nix +++ b/flake.nix @@ -131,7 +131,7 @@ # Add some executables from other relevant packages inherit (bech32.components.exes) bech32; inherit (ouroboros-consensus-cardano.components.exes) db-analyser db-synthesizer db-truncater snapshot-converter; - # Add cardano-node and cardano-cli with their git revision stamp. + # Add cardano-node, cardano-cli and tx-generator with their git revision stamp. # Keep available an alternative without the git revision, like the other # passthru (profiled and asserted in nix/haskell.nix) that # have no git revision but for the same compilation alternative. @@ -142,11 +142,18 @@ {passthru = {noGitRev = node;};} ; cardano-cli = - let cli = cardano-cli.components.exes.cardano-cli; + let cli = cardano-cli.components.exes.cardano-cli; in lib.recursiveUpdate (set-git-rev cli) {passthru = {noGitRev = cli;};} ; + } // optionalAttrs (project.exes ? tx-generator) { + tx-generator = + let tx-gen = project.exes.tx-generator; + in lib.recursiveUpdate + (set-git-rev tx-gen) + {passthru = {noGitRev = tx-gen;};} + ; }); mkCardanoNodePackages = project: @@ -458,7 +465,7 @@ customConfig.haskellNix ]; cardanoNodePackages = mkCardanoNodePackages final.cardanoNodeProject; - inherit (final.cardanoNodePackages) cardano-node cardano-cli cardano-submit-api cardano-tracer bech32 locli db-analyser; + inherit (final.cardanoNodePackages) cardano-node cardano-cli cardano-submit-api cardano-tracer bech32 locli db-analyser tx-generator; }; nixosModules = { cardano-node = { From 3238dd068498d032d2dd79772a3cb1e46f751867 Mon Sep 17 00:00:00 2001 From: John Lotoski Date: Thu, 3 Jul 2025 12:43:21 -0500 Subject: [PATCH 06/69] tx-generator: use passthru noGitRev for workbench ops --- nix/nixos/tx-generator-service.nix | 3 ++- nix/workbench/backend/nomad.nix | 4 ++-- nix/workbench/shell.nix | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/nix/nixos/tx-generator-service.nix b/nix/nixos/tx-generator-service.nix index cb1151a2569..e276e43a7b4 100644 --- a/nix/nixos/tx-generator-service.nix +++ b/nix/nixos/tx-generator-service.nix @@ -57,7 +57,8 @@ in pkgs.commonLib.defServiceModule svcPackageSelector = pkgs: ## Local: - pkgs.cardanoNodePackages.tx-generator + ## Avoid rebuilding on every commit because of `set-git-rev`. + pkgs.cardanoNodePackages.tx-generator.passthru.noGitRev ## Imported by another repo, that adds an overlay: or pkgs.tx-generator; ## TODO: that's actually a bit ugly and could be improved. diff --git a/nix/workbench/backend/nomad.nix b/nix/workbench/backend/nomad.nix index e323e526bd3..b562dc7e115 100644 --- a/nix/workbench/backend/nomad.nix +++ b/nix/workbench/backend/nomad.nix @@ -166,9 +166,9 @@ let }; tx-generator = rec { # Local reference only used if not "cloud". - nix-store-path = pkgs.cardanoNodePackages.tx-generator; + nix-store-path = pkgs.cardanoNodePackages.tx-generator.passthru.noGitRev; flake-reference = "github:intersectmbo/cardano-node"; - flake-output = "cardanoNodePackages.tx-generator"; + flake-output = "cardanoNodePackages.tx-generator.passthru.noGitRev"; }; } ; diff --git a/nix/workbench/shell.nix b/nix/workbench/shell.nix index cecf8381bc2..c0b3e7de24f 100644 --- a/nix/workbench/shell.nix +++ b/nix/workbench/shell.nix @@ -144,7 +144,7 @@ project.shellFor { cardano-topology cardano-tracer locli - tx-generator + tx-generator.passthru.noGitRev ] # Include the workbench as a derivation or use the sources directly ? ++ lib.optionals (!workbenchDevMode) [ workbench.workbench ] From 063fe1eba187cb708d10263ccd5e5b1ef7aeae55 Mon Sep 17 00:00:00 2001 From: John Lotoski Date: Mon, 7 Jul 2025 20:19:42 -0500 Subject: [PATCH 07/69] releaseBins: switch to an allowList rather than denyList approach --- flake.nix | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index cbbd46aa066..df199477cdb 100644 --- a/flake.nix +++ b/flake.nix @@ -292,12 +292,27 @@ exes; ciJobs = let + releaseBins = [ + "bech32" + "cardano-cli" + "cardano-node" + "cardano-submit-api" + "cardano-testnet" + "cardano-tracer" + "db-analyser" + "db-synthesizer" + "db-truncater" + "snapshot-converter" + "tx-generator" + ]; + ciJobsVariants = mapAttrs ( _: p: (mkFlakeAttrs (pkgs.extend (prev: final: {cardanoNodeProject = p;}))).ciJobs ) project.projectVariants; + ciJobs = { cardano-deployment = pkgs.cardanoLib.mkConfigHtml {inherit (pkgs.cardanoLib.environments) mainnet preview preprod;}; @@ -331,7 +346,9 @@ inherit pkgs; inherit (exes.cardano-node.identifier) version; platform = "linux"; - exes = lib.collect lib.isDerivation projectExes; + exes = lib.collect lib.isDerivation ( + lib.filterAttrs (n: _: builtins.elem n releaseBins) projectExes + ); }; internal.roots.project = muslProject.roots; variants = mapAttrs (_: v: removeAttrs v.musl ["variants"]) ciJobsVariants; @@ -347,7 +364,9 @@ inherit pkgs; inherit (exes.cardano-node.identifier) version; platform = "win64"; - exes = lib.collect lib.isDerivation projectExes; + exes = lib.collect lib.isDerivation ( + lib.filterAttrs (n: _: builtins.elem n releaseBins) projectExes + ); }; internal.roots.project = windowsProject.roots; variants = mapAttrs (_: v: removeAttrs v.windows ["variants"]) ciJobsVariants; @@ -365,7 +384,9 @@ inherit pkgs; inherit (exes.cardano-node.identifier) version; platform = "macos"; - exes = lib.collect lib.isDerivation (collectExes project); + exes = lib.collect lib.isDerivation ( + lib.filterAttrs (n: _: builtins.elem n releaseBins) (collectExes project) + ); }; shells = removeAttrs devShells ["profiled"]; internal = { @@ -375,6 +396,7 @@ variants = mapAttrs (_: v: removeAttrs v.native ["variants"]) ciJobsVariants; }; }; + nonRequiredPaths = [ # FIXME: cardano-tracer-test for windows should probably be disabled in haskell.nix config: From 32510c3303f34ebf6b2432f24df409a11f675f70 Mon Sep 17 00:00:00 2001 From: John Lotoski Date: Mon, 7 Jul 2025 20:20:43 -0500 Subject: [PATCH 08/69] nixStyle: inherit reused lib/builtins in flake.nix --- flake.nix | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/flake.nix b/flake.nix index df199477cdb..76722667027 100644 --- a/flake.nix +++ b/flake.nix @@ -76,8 +76,9 @@ utils, ... } @ input: let + inherit (builtins) elem match; inherit (nixpkgs) lib; - inherit (lib) head mapAttrs recursiveUpdate optionalAttrs; + inherit (lib) collect getAttr genAttrs filterAttrs hasPrefix head isDerivation mapAttrs optionalAttrs optionals recursiveUpdate ; inherit (utils.lib) eachSystem flattenTree; inherit (iohkNix.lib) prefixNamesWith; removeRecurse = lib.filterAttrsRecursive (n: _: n != "recurseForDerivations"); @@ -137,20 +138,20 @@ # have no git revision but for the same compilation alternative. cardano-node = let node = project.exes.cardano-node; - in lib.recursiveUpdate + in recursiveUpdate (set-git-rev node) {passthru = {noGitRev = node;};} ; cardano-cli = let cli = cardano-cli.components.exes.cardano-cli; - in lib.recursiveUpdate + in recursiveUpdate (set-git-rev cli) {passthru = {noGitRev = cli;};} ; } // optionalAttrs (project.exes ? tx-generator) { tx-generator = let tx-gen = project.exes.tx-generator; - in lib.recursiveUpdate + in recursiveUpdate (set-git-rev tx-gen) {passthru = {noGitRev = tx-gen;};} ; @@ -279,7 +280,7 @@ // (prefixNamesWith "checks/" checks); apps = - lib.mapAttrs (n: p: { + mapAttrs (n: p: { type = "app"; program = p.exePath @@ -326,11 +327,11 @@ roots.project = project.roots; plan-nix.project = project.plan-nix; }; - profiled = lib.genAttrs ["cardano-node" "tx-generator" "locli"] ( + profiled = genAttrs ["cardano-node" "tx-generator" "locli"] ( n: packages.${n}.passthru.profiled ); - asserted = lib.genAttrs ["cardano-node"] ( + asserted = genAttrs ["cardano-node"] ( n: packages.${n}.passthru.asserted ); @@ -346,8 +347,8 @@ inherit pkgs; inherit (exes.cardano-node.identifier) version; platform = "linux"; - exes = lib.collect lib.isDerivation ( - lib.filterAttrs (n: _: builtins.elem n releaseBins) projectExes + exes = collect isDerivation ( + filterAttrs (n: _: elem n releaseBins) projectExes ); }; internal.roots.project = muslProject.roots; @@ -364,8 +365,8 @@ inherit pkgs; inherit (exes.cardano-node.identifier) version; platform = "win64"; - exes = lib.collect lib.isDerivation ( - lib.filterAttrs (n: _: builtins.elem n releaseBins) projectExes + exes = collect isDerivation ( + filterAttrs (n: _: elem n releaseBins) projectExes ); }; internal.roots.project = windowsProject.roots; @@ -374,18 +375,18 @@ } // optionalAttrs (system == "x86_64-darwin") { native = - lib.filterAttrs + filterAttrs (n: _: # Only build docker images once on linux: - !(lib.hasPrefix "dockerImage" n)) + !(hasPrefix "dockerImage" n)) packages // { cardano-node-macos = import ./nix/binary-release.nix { inherit pkgs; inherit (exes.cardano-node.identifier) version; platform = "macos"; - exes = lib.collect lib.isDerivation ( - lib.filterAttrs (n: _: builtins.elem n releaseBins) (collectExes project) + exes = collect isDerivation ( + filterAttrs (n: _: elem n releaseBins) (collectExes project) ); }; shells = removeAttrs devShells ["profiled"]; @@ -406,7 +407,7 @@ # system-tests are build and run separately: "native\\.(.*\\.)?system-tests" ] - ++ lib.optionals (system == "x86_64-darwin") [ + ++ optionals (system == "x86_64-darwin") [ # FIXME: make variants nonrequired for macos until CI has more capacity for macos builds "native\\.variants\\..*" "native\\.checks/cardano-testnet/cardano-testnet-test" @@ -415,7 +416,7 @@ pkgs.callPackages iohkNix.utils.ciJobsAggregates { inherit ciJobs; - nonRequiredPaths = map (r: p: builtins.match r p != null) nonRequiredPaths; + nonRequiredPaths = map (r: p: match r p != null) nonRequiredPaths; } // ciJobs; }; @@ -463,7 +464,7 @@ inherit (pkgs.callPackages iohkNix.utils.ciJobsAggregates { ciJobs = - lib.mapAttrs (_: lib.getAttr "required") flake.ciJobs + mapAttrs (_: getAttr "required") flake.ciJobs // { # Ensure hydra notify: gitrev = pkgs.writeText "gitrev" pkgs.gitrev; From f0e43cdeedf88fd4ebe0f5ed328d251ada99e3ac Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Tue, 8 Jul 2025 11:01:40 +0200 Subject: [PATCH 09/69] StartAsNonProducingNode: configuration option The configuration option `StartAsNonProducingNode` was ignored, one could only use the switch `--non-producing-node` to set it. In this patch we fix this, and now it can be set either with the switch or if it's not given, it can be set in the configuration file. --- .../src/Cardano/Node/Configuration/POM.hs | 3 ++- cardano-node/src/Cardano/Node/Parsers.hs | 22 ++++++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Configuration/POM.hs b/cardano-node/src/Cardano/Node/Configuration/POM.hs index 5a5efc00079..2265b2f2077 100644 --- a/cardano-node/src/Cardano/Node/Configuration/POM.hs +++ b/cardano-node/src/Cardano/Node/Configuration/POM.hs @@ -314,6 +314,7 @@ instance Semigroup PartialNodeConfiguration where instance FromJSON PartialNodeConfiguration where parseJSON = withObject "PartialNodeConfiguration" $ \v -> do + pncStartAsNonProducingNode <- Last <$> v .:? "StartAsNonProducingNode" -- Node parameters, not protocol-specific pncSocketPath <- Last <$> v .:? "SocketPath" @@ -435,7 +436,7 @@ instance FromJSON PartialNodeConfiguration where , pncProtocolFiles = mempty , pncValidateDB = mempty , pncShutdownConfig = mempty - , pncStartAsNonProducingNode = Last $ Just False + , pncStartAsNonProducingNode , pncMaybeMempoolCapacityOverride , pncLedgerDbConfig , pncProtocolIdleTimeout diff --git a/cardano-node/src/Cardano/Node/Parsers.hs b/cardano-node/src/Cardano/Node/Parsers.hs index e8b2fadac9f..69fcc678102 100644 --- a/cardano-node/src/Cardano/Node/Parsers.hs +++ b/cardano-node/src/Cardano/Node/Parsers.hs @@ -27,8 +27,11 @@ import Data.Foldable import Data.Maybe (fromMaybe) import Data.Monoid (Last (..)) import Data.Text (Text) -import Data.Word (Word32) -import Options.Applicative hiding (str) +import qualified Data.Text as Text +import Data.Word (Word16, Word32) +import Options.Applicative hiding (str, switch) +-- Don't use switch. It will not allow to set an option in a configuration +-- file. See `parseStartAsNonProducingNode` and `parseValidateDB`. import qualified Options.Applicative as Opt import qualified Options.Applicative.Help as OptI import System.Posix.Types (Fd (..)) @@ -60,7 +63,7 @@ nodeRunParser = do shelleyVRFFile <- optional parseVrfKeyFilePath shelleyCertFile <- optional parseOperationalCertFilePath shelleyBulkCredsFile <- optional parseBulkCredsFilePath - startAsNonProducingNode <- lastOption parseStartAsNonProducingNode + startAsNonProducingNode <- Last <$> parseStartAsNonProducingNode -- Node Address nIPv4Address <- lastOption parseHostIPv4Addr @@ -266,9 +269,13 @@ parseImmutableDbPath = strOption $ ] +-- | This parser will always override configuration option, even if the +-- `--validate-db` is not present. This is fine for `--validate-db` switch, +-- but might not be for something else. See `parseStartAsNonProducingNode` for +-- an alternative solution. parseValidateDB :: Parser Bool parseValidateDB = - switch ( + Opt.switch ( long "validate-db" <> help "Validate all on-disk database files" ) @@ -353,9 +360,12 @@ parseVrfKeyFilePath = <> completer (bashCompleter "file") ) -parseStartAsNonProducingNode :: Parser Bool +-- | A parser which returns `Nothing` or `Just True`; the default value is set +-- in `defaultPartialNodeConfiguration`. This allows to set this option either +-- in the configuration file or as command line flag. +parseStartAsNonProducingNode :: Parser (Maybe Bool) parseStartAsNonProducingNode = - switch $ mconcat + flag Nothing (Just True) $ mconcat [ long "non-producing-node" , help $ mconcat [ "Start the node as a non block producing node even if " From 167da254e1eb1c8176d8a3a2e209174912d68347 Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Thu, 10 Jul 2025 11:34:18 +0200 Subject: [PATCH 10/69] peer sharing: default configuration value The default configuration value of peer sharing option depends now on `pncStartAsNonProducingNode` option and `ncProtocolFiles`. If a node runs as a relay, peer sharing is on by default, if it is running as a block producer, peer sharing is off by default. The default value can be overridden. --- .../src/Cardano/Node/Configuration/POM.hs | 26 ++++++++++--------- cardano-node/src/Cardano/Node/Parsers.hs | 3 +-- cardano-node/src/Cardano/Node/Types.hs | 21 +++++++++++++++ 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Configuration/POM.hs b/cardano-node/src/Cardano/Node/Configuration/POM.hs index 2265b2f2077..3feec1daaf8 100644 --- a/cardano-node/src/Cardano/Node/Configuration/POM.hs +++ b/cardano-node/src/Cardano/Node/Configuration/POM.hs @@ -228,6 +228,7 @@ data PartialNodeConfiguration , pncConfigFile :: !(Last ConfigYamlFilePath) , pncTopologyFile :: !(Last TopologyFile) , pncDatabaseFile :: !(Last NodeDatabasePaths) + -- | pncProtocolFiles can only be supplied with command line arguments. , pncProtocolFiles :: !(Last ProtocolFilepaths) , pncValidateDB :: !(Last Bool) , pncShutdownConfig :: !(Last ShutdownConfig) @@ -654,7 +655,7 @@ defaultPartialNodeConfiguration = , pncDiffusionMode = Last $ Just InitiatorAndResponderDiffusionMode , pncExperimentalProtocolsEnabled = Last $ Just False , pncTopologyFile = Last . Just $ TopologyFile "configuration/cardano/mainnet-topology.json" - , pncProtocolFiles = mempty + , pncProtocolFiles = Last . Just $ ProtocolFilepaths Nothing Nothing Nothing Nothing Nothing Nothing , pncValidateDB = Last $ Just False , pncShutdownConfig = Last . Just $ ShutdownConfig Nothing Nothing , pncStartAsNonProducingNode = Last $ Just False @@ -696,7 +697,8 @@ defaultPartialNodeConfiguration = , pncMinBigLedgerPeersForTrustedState = Last (Just Cardano.defaultNumberOfBigLedgerPeers) , pncConsensusMode = Last (Just Ouroboros.defaultConsensusMode) , pncEnableP2P = Last (Just EnabledP2PMode) - , pncPeerSharing = Last (Just Ouroboros.defaultPeerSharing) + , pncPeerSharing = mempty + -- the default is defined in `makeNodeConfiguration` , pncGenesisConfigFlags = Last (Just defaultGenesisConfigFlags) , pncResponderCoreAffinityPolicy = Last $ Just NoResponderCoreAffinity } @@ -731,6 +733,7 @@ makeNodeConfiguration pnc = do validateDB <- lastToEither "Missing ValidateDB" $ pncValidateDB pnc startAsNonProducingNode <- lastToEither "Missing StartAsNonProducingNode" $ pncStartAsNonProducingNode pnc protocolConfig <- lastToEither "Missing ProtocolConfig" $ pncProtocolConfig pnc + protocolFiles <- lastToEither "Missing ProtocolFiles" $ pncProtocolFiles pnc loggingSwitch <- lastToEither "Missing LoggingSwitch" $ pncLoggingSwitch pnc logMetrics <- lastToEither "Missing LogMetrics" $ pncLogMetrics pnc traceConfig <- first Text.unpack $ partialTraceSelectionToEither $ pncTraceConfig pnc @@ -810,9 +813,14 @@ makeNodeConfiguration pnc = do $ getLast $ pncChainSyncIdleTimeout pnc - ncPeerSharing <- - lastToEither "Missing PeerSharing" - $ pncPeerSharing pnc + let ncPeerSharing = + case pncPeerSharing pnc of + Last Nothing -> + if not startAsNonProducingNode + || hasProtocolFile protocolFiles + then PeerSharingDisabled + else PeerSharingEnabled + Last (Just peerSharing) -> peerSharing mGenesisConfigFlags <- case ncConsensusMode of PraosMode -> pure Nothing @@ -857,13 +865,7 @@ makeNodeConfiguration pnc = do { ncConfigFile = configFile , ncTopologyFile = topologyFile , ncDatabaseFile = databaseFile - , ncProtocolFiles = - -- TODO: ncProtocolFiles should be Maybe ProtocolFiles - -- as relay nodes don't need the protocol files because - -- they are not minting blocks. - case getLast $ pncProtocolFiles pnc of - Just pFiles -> pFiles - Nothing -> ProtocolFilepaths Nothing Nothing Nothing Nothing Nothing Nothing + , ncProtocolFiles = protocolFiles , ncValidateDB = validateDB , ncShutdownConfig = shutdownConfig , ncStartAsNonProducingNode = startAsNonProducingNode diff --git a/cardano-node/src/Cardano/Node/Parsers.hs b/cardano-node/src/Cardano/Node/Parsers.hs index 69fcc678102..5501f633d79 100644 --- a/cardano-node/src/Cardano/Node/Parsers.hs +++ b/cardano-node/src/Cardano/Node/Parsers.hs @@ -27,8 +27,7 @@ import Data.Foldable import Data.Maybe (fromMaybe) import Data.Monoid (Last (..)) import Data.Text (Text) -import qualified Data.Text as Text -import Data.Word (Word16, Word32) +import Data.Word (Word32) import Options.Applicative hiding (str, switch) -- Don't use switch. It will not allow to set an option in a configuration -- file. See `parseStartAsNonProducingNode` and `parseValidateDB`. diff --git a/cardano-node/src/Cardano/Node/Types.hs b/cardano-node/src/Cardano/Node/Types.hs index 1356505f99d..cd2efbffe75 100644 --- a/cardano-node/src/Cardano/Node/Types.hs +++ b/cardano-node/src/Cardano/Node/Types.hs @@ -17,6 +17,7 @@ module Cardano.Node.Types , PeerSnapshotFile (..) , CheckpointsFile(..) , ProtocolFilepaths (..) + , hasProtocolFile , GenesisHash(..) , CheckpointsHash(..) , MaxConcurrencyBulkSync(..) @@ -50,6 +51,7 @@ import Ouroboros.Network.NodeToNode (DiffusionMode (..)) import Control.Exception import Data.Aeson import Data.ByteString (ByteString) +import Data.Maybe (isJust) import Data.Monoid (Last (..)) import Data.String (IsString) import Data.Text (Text) @@ -174,6 +176,25 @@ data ProtocolFilepaths = , shelleyBulkCredsFile :: !(Maybe FilePath) } deriving (Eq, Show) +-- | If any of the 'ProtocolFilepath` is given `PeerSharing` option will be +-- disabled by default. +-- +hasProtocolFile :: ProtocolFilepaths -> Bool +hasProtocolFile ProtocolFilepaths { + byronCertFile, + byronKeyFile, + shelleyKESFile, + shelleyVRFFile, + shelleyCertFile, + shelleyBulkCredsFile + } + = isJust byronCertFile + || isJust byronKeyFile + || isJust shelleyKESFile + || isJust shelleyVRFFile + || isJust shelleyCertFile + || isJust shelleyBulkCredsFile + newtype GenesisHash = GenesisHash (Crypto.Hash Crypto.Blake2b_256 ByteString) deriving newtype (Eq, Show, ToJSON, FromJSON) From e499a0444925ba3cd4495ea7764be8047777f5a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20W=C3=B3jtowicz?= Date: Thu, 17 Jul 2025 12:10:41 +0200 Subject: [PATCH 11/69] bump ouroboros-network deps --- bench/locli/locli.cabal | 2 +- cabal.project | 10 ++++------ cardano-node/cardano-node.cabal | 6 +++--- cardano-submit-api/cardano-submit-api.cabal | 2 +- cardano-testnet/cardano-testnet.cabal | 2 +- cardano-tracer/cardano-tracer.cabal | 14 +++++++------- flake.lock | 6 +++--- trace-dispatcher/trace-dispatcher.cabal | 2 +- trace-forward/trace-forward.cabal | 2 +- 9 files changed, 22 insertions(+), 24 deletions(-) diff --git a/bench/locli/locli.cabal b/bench/locli/locli.cabal index a974169cdb8..ff4ec413e6b 100644 --- a/bench/locli/locli.cabal +++ b/bench/locli/locli.cabal @@ -126,7 +126,7 @@ library , hashable , optparse-applicative-fork >= 0.18.1 , ouroboros-consensus - , ouroboros-network-api ^>= 0.14 + , ouroboros-network-api ^>= 0.14.1 , sop-core , split , sqlite-easy >= 1.1.0.1 diff --git a/cabal.project b/cabal.project index bc421ffd20b..203826e8bed 100644 --- a/cabal.project +++ b/cabal.project @@ -14,7 +14,7 @@ repository cardano-haskell-packages -- you need to run if you change them index-state: , hackage.haskell.org 2025-06-03T08:07:10Z - , cardano-haskell-packages 2025-06-03T08:30:50Z + , cardano-haskell-packages 2025-07-17T12:00:21Z packages: cardano-node @@ -92,9 +92,7 @@ if impl (ghc >= 9.12) , servant:base , servant-server:base - , cardano-ping:base - , network-mux:base - , ouroboros-network:base - , ouroboros-network-api:base - , ouroboros-network-framework:base , ouroboros-network-protocols:base + +constraints: + hedgehog-extras == 0.7.0.0 diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index 43b1763f08c..6e40ed5e0b8 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -197,9 +197,9 @@ library , ouroboros-consensus-cardano ^>= 0.25 , ouroboros-consensus-diffusion ^>= 0.23 , ouroboros-consensus-protocol - , ouroboros-network-api ^>= 0.14 - , ouroboros-network ^>= 0.21.2 - , ouroboros-network-framework ^>= 0.18.0.1 + , ouroboros-network-api ^>= 0.14.1 + , ouroboros-network ^>= 0.21.3 + , ouroboros-network-framework ^>= 0.18 , ouroboros-network-protocols ^>= 0.14 , prettyprinter , prettyprinter-ansi-terminal diff --git a/cardano-submit-api/cardano-submit-api.cabal b/cardano-submit-api/cardano-submit-api.cabal index b7cd0d1e3ff..6267ac0062c 100644 --- a/cardano-submit-api/cardano-submit-api.cabal +++ b/cardano-submit-api/cardano-submit-api.cabal @@ -49,7 +49,7 @@ library , network , optparse-applicative-fork , ouroboros-consensus-cardano - , ouroboros-network ^>= 0.21.2 + , ouroboros-network ^>= 0.21.3 , ouroboros-network-protocols , prometheus >= 2.2.4 , servant diff --git a/cardano-testnet/cardano-testnet.cabal b/cardano-testnet/cardano-testnet.cabal index 1433154fb7e..5604f927bf7 100644 --- a/cardano-testnet/cardano-testnet.cabal +++ b/cardano-testnet/cardano-testnet.cabal @@ -72,7 +72,7 @@ library , network , network-mux , optparse-applicative-fork - , ouroboros-network ^>= 0.21 + , ouroboros-network ^>= 0.21.3 , ouroboros-network-api , prettyprinter , process diff --git a/cardano-tracer/cardano-tracer.cabal b/cardano-tracer/cardano-tracer.cabal index 6d60e25e79f..be71ee78aba 100644 --- a/cardano-tracer/cardano-tracer.cabal +++ b/cardano-tracer/cardano-tracer.cabal @@ -183,8 +183,8 @@ library , mime-mail , network-mux >= 0.8 , optparse-applicative - , ouroboros-network ^>= 0.21.2 - , ouroboros-network-api ^>= 0.14 + , ouroboros-network ^>= 0.21.3 + , ouroboros-network-api ^>= 0.14.1 , ouroboros-network-framework , signal , slugify @@ -250,7 +250,7 @@ library demo-forwarder-lib , generic-data , network-mux , optparse-applicative-fork >= 0.18.1 - , ouroboros-network-api ^>= 0.14 + , ouroboros-network-api ^>= 0.14.1 , ouroboros-network-framework , tasty-quickcheck , time @@ -293,7 +293,7 @@ library demo-acceptor-lib , filepath , generic-data , optparse-applicative-fork >= 0.18.1 - , ouroboros-network-api ^>= 0.14 + , ouroboros-network-api ^>= 0.14.1 , stm <2.5.2 || >=2.5.3 , text , tasty-quickcheck @@ -352,7 +352,7 @@ test-suite cardano-tracer-test , generic-data , network-mux , optparse-applicative-fork >= 0.18.1 - , ouroboros-network-api ^>= 0.14 + , ouroboros-network-api ^>= 0.14.1 , ouroboros-network-framework , stm <2.5.2 || >=2.5.3 , tasty @@ -411,8 +411,8 @@ test-suite cardano-tracer-test-ext , Glob , network-mux , optparse-applicative-fork >= 0.18.1 - , ouroboros-network ^>= 0.21.2 - , ouroboros-network-api ^>= 0.14 + , ouroboros-network ^>= 0.21.3 + , ouroboros-network-api ^>= 0.14.1 , ouroboros-network-framework , process , QuickCheck diff --git a/flake.lock b/flake.lock index 46b46d72f75..47c2726fb80 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1748961716, - "narHash": "sha256-t4wX4FOTmylk+mRjpJQllF15ntSXBwyXZfU8qLBIS9s=", + "lastModified": 1752755491, + "narHash": "sha256-LhTRY6kgvg5cGfoQ9FD2v15WucqO4C+VLMHa9JP/Zi4=", "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "14dfcdcbc66bbb07e00c048210c4002a4dbbfe90", + "rev": "fe5f8c99284ca892efe46d91a9ccb00aa76f2525", "type": "github" }, "original": { diff --git a/trace-dispatcher/trace-dispatcher.cabal b/trace-dispatcher/trace-dispatcher.cabal index 2c0745eac26..95e63d60eb6 100644 --- a/trace-dispatcher/trace-dispatcher.cabal +++ b/trace-dispatcher/trace-dispatcher.cabal @@ -73,7 +73,7 @@ library , network , network-mux , optparse-applicative-fork - , ouroboros-network ^>= 0.21.2 + , ouroboros-network ^>= 0.21.3 , ouroboros-network-api , ouroboros-network-framework , serialise diff --git a/trace-forward/trace-forward.cabal b/trace-forward/trace-forward.cabal index c4ee968b643..07ea61dfad2 100644 --- a/trace-forward/trace-forward.cabal +++ b/trace-forward/trace-forward.cabal @@ -67,7 +67,7 @@ library , network-mux , ouroboros-network-api , singletons ^>= 3.0 - , ouroboros-network-framework ^>= 0.18.0.1 + , ouroboros-network-framework ^>= 0.18.0.2 , serialise , stm , text From c1a9731d73789c87adec4ae1fd4cfc3e97dfd927 Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Tue, 15 Jul 2025 16:20:49 +0200 Subject: [PATCH 12/69] peer-sharing: default value only decided based on protocol files --- cardano-node/src/Cardano/Node/Configuration/POM.hs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Configuration/POM.hs b/cardano-node/src/Cardano/Node/Configuration/POM.hs index 3feec1daaf8..e5c29910f0a 100644 --- a/cardano-node/src/Cardano/Node/Configuration/POM.hs +++ b/cardano-node/src/Cardano/Node/Configuration/POM.hs @@ -816,8 +816,7 @@ makeNodeConfiguration pnc = do let ncPeerSharing = case pncPeerSharing pnc of Last Nothing -> - if not startAsNonProducingNode - || hasProtocolFile protocolFiles + if hasProtocolFile protocolFiles then PeerSharingDisabled else PeerSharingEnabled Last (Just peerSharing) -> peerSharing From a806c68d1cf9f958376662966ea644672408949f Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Tue, 15 Jul 2025 16:39:18 +0200 Subject: [PATCH 13/69] Renamed --non-producer-node to --start-as-non-producer-node The old option is kept, but deprecated. --- cardano-node/src/Cardano/Node/Parsers.hs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Parsers.hs b/cardano-node/src/Cardano/Node/Parsers.hs index 5501f633d79..5f9afd83c4c 100644 --- a/cardano-node/src/Cardano/Node/Parsers.hs +++ b/cardano-node/src/Cardano/Node/Parsers.hs @@ -62,7 +62,9 @@ nodeRunParser = do shelleyVRFFile <- optional parseVrfKeyFilePath shelleyCertFile <- optional parseOperationalCertFilePath shelleyBulkCredsFile <- optional parseBulkCredsFilePath - startAsNonProducingNode <- Last <$> parseStartAsNonProducingNode + startAsNonProducingNode <- (\depr new -> Last depr <> Last new) + <$> parseStartAsNonProducingNodeDeprecated + <*> parseStartAsNonProducingNode -- Node Address nIPv4Address <- lastOption parseHostIPv4Addr @@ -359,19 +361,31 @@ parseVrfKeyFilePath = <> completer (bashCompleter "file") ) +parseStartAsNonProducingNodeDeprecated :: Parser (Maybe Bool) +parseStartAsNonProducingNodeDeprecated = + flag Nothing (Just True) $ mconcat + [ long "non-producing-node" + , help $ mconcat + [ "DEPRECATED, use --start-as-non-producing-node instead. " + , "This option will be removed in one of the future versions of cardano-node." + ] + , hidden + ] + -- | A parser which returns `Nothing` or `Just True`; the default value is set -- in `defaultPartialNodeConfiguration`. This allows to set this option either -- in the configuration file or as command line flag. parseStartAsNonProducingNode :: Parser (Maybe Bool) parseStartAsNonProducingNode = flag Nothing (Just True) $ mconcat - [ long "non-producing-node" + [ long "start-as-non-producing-node" , help $ mconcat [ "Start the node as a non block producing node even if " , "credentials are specified." ] ] + -- | Produce just the brief help header for a given CLI option parser, -- without the options. parserHelpHeader :: String -> Opt.Parser a -> OptI.Doc From ca1ec278070baf4481564a6ba7b4a5b9e3d9f366 Mon Sep 17 00:00:00 2001 From: Jordan Millar Date: Wed, 2 Jul 2025 08:24:11 -0400 Subject: [PATCH 14/69] Bump node version to 10.5.1 --- cardano-node/cardano-node.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index 6e40ed5e0b8..1624a529e08 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -1,7 +1,7 @@ cabal-version: 3.8 name: cardano-node -version: 10.5.0 +version: 10.5.1 synopsis: The cardano full node description: The cardano full node. category: Cardano, From 80b704d07442be653a61b17ebda93cc1a8a7586e Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Fri, 24 Oct 2025 15:42:57 -0700 Subject: [PATCH 15/69] leiosdemo202510: half way through adding LeiosNotify tracers --- cardano-node/src/Cardano/Node/Tracing/Tracers.hs | 11 +++++++++-- cardano-node/src/Cardano/Tracing/Config.hs | 10 ++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs index da4c82fd265..91dc7205cca 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs @@ -68,7 +68,7 @@ import Ouroboros.Network.NodeToNode (RemoteAddress) import Codec.CBOR.Read (DeserialiseFailure) import Control.Monad (unless) -import "contra-tracer" Control.Tracer (Tracer (..)) +import "contra-tracer" Control.Tracer (Tracer (..), nullTracer) import Data.Proxy (Proxy (..)) import Network.Mux.Trace (TraceLabelPeer (..)) import Network.Socket (SockAddr) @@ -501,7 +501,12 @@ mkNodeToNodeTracers configReflection trBase trForward mbTrEKG _trDataPoint trCon trBase trForward mbTrEKG ["PeerSharing", "Remote"] configureTracers configReflection trConfig [peerSharingTracer] - +{- + !leiosNotifyTracer <- mkCardanoTracer + trBase trForward mbTrEKG + ["LeiosNotify", "Remote"] + configureTracers configReflection trConfig [leiosNotifyTracer] +-} pure $ NtN.Tracers { NtN.tChainSyncTracer = Tracer $ traceWith chainSyncTracer @@ -517,6 +522,8 @@ mkNodeToNodeTracers configReflection trBase trForward mbTrEKG _trDataPoint trCon traceWith keepAliveTracer , NtN.tPeerSharingTracer = Tracer $ traceWith peerSharingTracer + , NtN.tLeiosNotifyTracer = nullTracer {- Tracer $ + traceWith leiosNotifyTracer -} } mkDiffusionTracers diff --git a/cardano-node/src/Cardano/Tracing/Config.hs b/cardano-node/src/Cardano/Tracing/Config.hs index b71e90f52aa..5ab5ac5c3b0 100644 --- a/cardano-node/src/Cardano/Tracing/Config.hs +++ b/cardano-node/src/Cardano/Tracing/Config.hs @@ -72,6 +72,7 @@ module Cardano.Tracing.Config , TraceTxSubmission2Protocol , TraceKeepAliveProtocol , TracePeerSharingProtocol + , TraceLeiosNotifyProtocol , proxyName ) where @@ -180,6 +181,7 @@ type TraceTxSubmissionProtocol = ("TraceTxSubmissionProtocol" :: Symbol) type TraceTxSubmission2Protocol = ("TraceTxSubmission2Protocol" :: Symbol) type TraceKeepAliveProtocol = ("TraceKeepAliveProtocol" :: Symbol) type TracePeerSharingProtocol = ("TracePeerSharingProtocol" :: Symbol) +type TraceLeiosNotifyProtocol = ("TraceLeiosNotifyProtocol" :: Symbol) type TraceGsm = ("TraceGsm" :: Symbol) type TraceCsj = ("TraceCsj" :: Symbol) type TraceDevotedBlockFetch = ("TraceDevotedBlockFetch" :: Symbol) @@ -256,6 +258,7 @@ data TraceSelection , traceTxSubmission2Protocol :: OnOff TraceTxSubmission2Protocol , traceKeepAliveProtocol :: OnOff TraceKeepAliveProtocol , tracePeerSharingProtocol :: OnOff TracePeerSharingProtocol + , traceLeiosNotifyProtocol :: OnOff TraceLeiosNotifyProtocol , traceGsm :: OnOff TraceGsm , traceCsj :: OnOff TraceCsj , traceDevotedBlockFetch :: OnOff TraceDevotedBlockFetch @@ -326,6 +329,7 @@ data PartialTraceSelection , pTraceTxSubmission2Protocol :: Last (OnOff TraceTxSubmission2Protocol) , pTraceKeepAliveProtocol :: Last (OnOff TraceKeepAliveProtocol) , pTracePeerSharingProtocol :: Last (OnOff TracePeerSharingProtocol) + , pTraceLeiosNotifyProtocol :: Last (OnOff TraceLeiosNotifyProtocol) , pTraceGsm :: Last (OnOff TraceGsm) , pTraceCsj :: Last (OnOff TraceCsj) , pTraceDevotedBlockFetch :: Last (OnOff TraceDevotedBlockFetch) @@ -397,6 +401,7 @@ instance FromJSON PartialTraceSelection where <*> parseTracer (Proxy @TraceTxSubmission2Protocol) v <*> parseTracer (Proxy @TraceKeepAliveProtocol) v <*> parseTracer (Proxy @TracePeerSharingProtocol) v + <*> parseTracer (Proxy @TraceLeiosNotifyProtocol) v <*> parseTracer (Proxy @TraceGsm) v <*> parseTracer (Proxy @TraceCsj) v <*> parseTracer (Proxy @TraceDevotedBlockFetch) v @@ -465,6 +470,7 @@ defaultPartialTraceConfiguration = , pTraceTxSubmission2Protocol = pure $ OnOff False , pTraceKeepAliveProtocol = pure $ OnOff False , pTracePeerSharingProtocol = pure $ OnOff False + , pTraceLeiosNotifyProtocol = pure $ OnOff False , pTraceGsm = pure $ OnOff True , pTraceCsj = pure $ OnOff True , pTraceDevotedBlockFetch = pure $ OnOff True @@ -535,6 +541,7 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio traceTxSubmission2Protocol <- proxyLastToEither (Proxy @TraceTxSubmission2Protocol) pTraceTxSubmission2Protocol traceKeepAliveProtocol <- proxyLastToEither (Proxy @TraceKeepAliveProtocol) pTraceKeepAliveProtocol tracePeerSharingProtocol <- proxyLastToEither (Proxy @TracePeerSharingProtocol) pTracePeerSharingProtocol + traceLeiosNotifyProtocol <- proxyLastToEither (Proxy @TraceLeiosNotifyProtocol) pTraceLeiosNotifyProtocol traceGsm <- proxyLastToEither (Proxy @TraceGsm) pTraceGsm traceCsj <- proxyLastToEither (Proxy @TraceCsj) pTraceCsj traceDevotedBlockFetch <- proxyLastToEither (Proxy @TraceDevotedBlockFetch) pTraceDevotedBlockFetch @@ -598,6 +605,7 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio , traceTxSubmission2Protocol = traceTxSubmission2Protocol , traceKeepAliveProtocol = traceKeepAliveProtocol , tracePeerSharingProtocol = tracePeerSharingProtocol + , traceLeiosNotifyProtocol = traceLeiosNotifyProtocol , traceGsm = traceGsm , traceCsj = traceCsj , traceDevotedBlockFetch = traceDevotedBlockFetch @@ -665,6 +673,7 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio traceTxSubmission2Protocol <- proxyLastToEither (Proxy @TraceTxSubmission2Protocol) pTraceTxSubmission2Protocol traceKeepAliveProtocol <- proxyLastToEither (Proxy @TraceKeepAliveProtocol) pTraceKeepAliveProtocol tracePeerSharingProtocol <- proxyLastToEither (Proxy @TracePeerSharingProtocol) pTracePeerSharingProtocol + traceLeiosNotifyProtocol <- proxyLastToEither (Proxy @TraceLeiosNotifyProtocol) pTraceLeiosNotifyProtocol traceGsm <- proxyLastToEither (Proxy @TraceGsm) pTraceGsm traceCsj <- proxyLastToEither (Proxy @TraceCsj) pTraceCsj traceDevotedBlockFetch <- proxyLastToEither (Proxy @TraceDevotedBlockFetch) pTraceDevotedBlockFetch @@ -728,6 +737,7 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio , traceTxSubmission2Protocol = traceTxSubmission2Protocol , traceKeepAliveProtocol = traceKeepAliveProtocol , tracePeerSharingProtocol = tracePeerSharingProtocol + , traceLeiosNotifyProtocol = traceLeiosNotifyProtocol , traceGsm = traceGsm , traceCsj = traceCsj , traceDevotedBlockFetch = traceDevotedBlockFetch From 8123a78e5e08ec6d5819d2b7f330e57d3674ce7e Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Sat, 25 Oct 2025 14:25:13 -0700 Subject: [PATCH 16/69] fixup prev --- cardano-node/src/Cardano/Tracing/Tracers.hs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cardano-node/src/Cardano/Tracing/Tracers.hs b/cardano-node/src/Cardano/Tracing/Tracers.hs index 8a8d9bab3f6..55f9ea341ca 100644 --- a/cardano-node/src/Cardano/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Tracing/Tracers.hs @@ -571,6 +571,7 @@ mkTracers _ _ _ _ _ enableP2P = , NodeToNode.tTxSubmission2Tracer = nullTracer , NodeToNode.tKeepAliveTracer = nullTracer , NodeToNode.tPeerSharingTracer = nullTracer + , NodeToNode.tLeiosNotifyTracer = nullTracer } , diffusionTracers = Diffusion.nullTracers , diffusionTracersExtra = @@ -1513,6 +1514,9 @@ nodeToNodeTracers' trSel verb tr = , NodeToNode.tPeerSharingTracer = tracerOnOff (tracePeerSharingProtocol trSel) verb "PeerSharingPrototocol" tr + , NodeToNode.tLeiosNotifyTracer = nullTracer {- TODO + tracerOnOff (traceLeiosNotifyProtocol trSel) + verb "LeiosNotifyPrototocol" tr -} } -- TODO @ouroboros-network From 7aebae90b095764969ee8696aa38b9200d5dce20 Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Sat, 25 Oct 2025 14:27:28 -0700 Subject: [PATCH 17/69] leiosdemo202510: half way through adding LeiosFetch tracers --- cardano-node/src/Cardano/Node/Tracing/Tracers.hs | 1 + cardano-node/src/Cardano/Tracing/Config.hs | 10 ++++++++++ cardano-node/src/Cardano/Tracing/Tracers.hs | 4 ++++ 3 files changed, 15 insertions(+) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs index 91dc7205cca..f4c55fa947d 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs @@ -524,6 +524,7 @@ mkNodeToNodeTracers configReflection trBase trForward mbTrEKG _trDataPoint trCon traceWith peerSharingTracer , NtN.tLeiosNotifyTracer = nullTracer {- Tracer $ traceWith leiosNotifyTracer -} + , NtN.tLeiosFetchTracer = nullTracer } mkDiffusionTracers diff --git a/cardano-node/src/Cardano/Tracing/Config.hs b/cardano-node/src/Cardano/Tracing/Config.hs index 5ab5ac5c3b0..c258022badb 100644 --- a/cardano-node/src/Cardano/Tracing/Config.hs +++ b/cardano-node/src/Cardano/Tracing/Config.hs @@ -73,6 +73,7 @@ module Cardano.Tracing.Config , TraceKeepAliveProtocol , TracePeerSharingProtocol , TraceLeiosNotifyProtocol + , TraceLeiosFetchProtocol , proxyName ) where @@ -182,6 +183,7 @@ type TraceTxSubmission2Protocol = ("TraceTxSubmission2Protocol" :: Symbol) type TraceKeepAliveProtocol = ("TraceKeepAliveProtocol" :: Symbol) type TracePeerSharingProtocol = ("TracePeerSharingProtocol" :: Symbol) type TraceLeiosNotifyProtocol = ("TraceLeiosNotifyProtocol" :: Symbol) +type TraceLeiosFetchProtocol = ("TraceLeiosFetchProtocol" :: Symbol) type TraceGsm = ("TraceGsm" :: Symbol) type TraceCsj = ("TraceCsj" :: Symbol) type TraceDevotedBlockFetch = ("TraceDevotedBlockFetch" :: Symbol) @@ -259,6 +261,7 @@ data TraceSelection , traceKeepAliveProtocol :: OnOff TraceKeepAliveProtocol , tracePeerSharingProtocol :: OnOff TracePeerSharingProtocol , traceLeiosNotifyProtocol :: OnOff TraceLeiosNotifyProtocol + , traceLeiosFetchProtocol :: OnOff TraceLeiosFetchProtocol , traceGsm :: OnOff TraceGsm , traceCsj :: OnOff TraceCsj , traceDevotedBlockFetch :: OnOff TraceDevotedBlockFetch @@ -330,6 +333,7 @@ data PartialTraceSelection , pTraceKeepAliveProtocol :: Last (OnOff TraceKeepAliveProtocol) , pTracePeerSharingProtocol :: Last (OnOff TracePeerSharingProtocol) , pTraceLeiosNotifyProtocol :: Last (OnOff TraceLeiosNotifyProtocol) + , pTraceLeiosFetchProtocol :: Last (OnOff TraceLeiosFetchProtocol) , pTraceGsm :: Last (OnOff TraceGsm) , pTraceCsj :: Last (OnOff TraceCsj) , pTraceDevotedBlockFetch :: Last (OnOff TraceDevotedBlockFetch) @@ -402,6 +406,7 @@ instance FromJSON PartialTraceSelection where <*> parseTracer (Proxy @TraceKeepAliveProtocol) v <*> parseTracer (Proxy @TracePeerSharingProtocol) v <*> parseTracer (Proxy @TraceLeiosNotifyProtocol) v + <*> parseTracer (Proxy @TraceLeiosFetchProtocol) v <*> parseTracer (Proxy @TraceGsm) v <*> parseTracer (Proxy @TraceCsj) v <*> parseTracer (Proxy @TraceDevotedBlockFetch) v @@ -471,6 +476,7 @@ defaultPartialTraceConfiguration = , pTraceKeepAliveProtocol = pure $ OnOff False , pTracePeerSharingProtocol = pure $ OnOff False , pTraceLeiosNotifyProtocol = pure $ OnOff False + , pTraceLeiosFetchProtocol = pure $ OnOff False , pTraceGsm = pure $ OnOff True , pTraceCsj = pure $ OnOff True , pTraceDevotedBlockFetch = pure $ OnOff True @@ -542,6 +548,7 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio traceKeepAliveProtocol <- proxyLastToEither (Proxy @TraceKeepAliveProtocol) pTraceKeepAliveProtocol tracePeerSharingProtocol <- proxyLastToEither (Proxy @TracePeerSharingProtocol) pTracePeerSharingProtocol traceLeiosNotifyProtocol <- proxyLastToEither (Proxy @TraceLeiosNotifyProtocol) pTraceLeiosNotifyProtocol + traceLeiosFetchProtocol <- proxyLastToEither (Proxy @TraceLeiosFetchProtocol) pTraceLeiosFetchProtocol traceGsm <- proxyLastToEither (Proxy @TraceGsm) pTraceGsm traceCsj <- proxyLastToEither (Proxy @TraceCsj) pTraceCsj traceDevotedBlockFetch <- proxyLastToEither (Proxy @TraceDevotedBlockFetch) pTraceDevotedBlockFetch @@ -606,6 +613,7 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio , traceKeepAliveProtocol = traceKeepAliveProtocol , tracePeerSharingProtocol = tracePeerSharingProtocol , traceLeiosNotifyProtocol = traceLeiosNotifyProtocol + , traceLeiosFetchProtocol = traceLeiosFetchProtocol , traceGsm = traceGsm , traceCsj = traceCsj , traceDevotedBlockFetch = traceDevotedBlockFetch @@ -674,6 +682,7 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio traceKeepAliveProtocol <- proxyLastToEither (Proxy @TraceKeepAliveProtocol) pTraceKeepAliveProtocol tracePeerSharingProtocol <- proxyLastToEither (Proxy @TracePeerSharingProtocol) pTracePeerSharingProtocol traceLeiosNotifyProtocol <- proxyLastToEither (Proxy @TraceLeiosNotifyProtocol) pTraceLeiosNotifyProtocol + traceLeiosFetchProtocol <- proxyLastToEither (Proxy @TraceLeiosFetchProtocol) pTraceLeiosFetchProtocol traceGsm <- proxyLastToEither (Proxy @TraceGsm) pTraceGsm traceCsj <- proxyLastToEither (Proxy @TraceCsj) pTraceCsj traceDevotedBlockFetch <- proxyLastToEither (Proxy @TraceDevotedBlockFetch) pTraceDevotedBlockFetch @@ -738,6 +747,7 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio , traceKeepAliveProtocol = traceKeepAliveProtocol , tracePeerSharingProtocol = tracePeerSharingProtocol , traceLeiosNotifyProtocol = traceLeiosNotifyProtocol + , traceLeiosFetchProtocol = traceLeiosFetchProtocol , traceGsm = traceGsm , traceCsj = traceCsj , traceDevotedBlockFetch = traceDevotedBlockFetch diff --git a/cardano-node/src/Cardano/Tracing/Tracers.hs b/cardano-node/src/Cardano/Tracing/Tracers.hs index 55f9ea341ca..58af3c0e98a 100644 --- a/cardano-node/src/Cardano/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Tracing/Tracers.hs @@ -572,6 +572,7 @@ mkTracers _ _ _ _ _ enableP2P = , NodeToNode.tKeepAliveTracer = nullTracer , NodeToNode.tPeerSharingTracer = nullTracer , NodeToNode.tLeiosNotifyTracer = nullTracer + , NodeToNode.tLeiosFetchTracer = nullTracer } , diffusionTracers = Diffusion.nullTracers , diffusionTracersExtra = @@ -1517,6 +1518,9 @@ nodeToNodeTracers' trSel verb tr = , NodeToNode.tLeiosNotifyTracer = nullTracer {- TODO tracerOnOff (traceLeiosNotifyProtocol trSel) verb "LeiosNotifyPrototocol" tr -} + , NodeToNode.tLeiosFetchTracer = nullTracer {- TODO + tracerOnOff (traceLeiosFetchProtocol trSel) + verb "LeiosFetchPrototocol" tr -} } -- TODO @ouroboros-network From 89628e785e7eebcb012df66176844abaec417489 Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Sun, 26 Oct 2025 13:32:57 -0700 Subject: [PATCH 18/69] leiosdemo202510: plug in demoNewLeiosDbConnectionIO --- cardano-node/src/Cardano/Node/Run.hs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cardano-node/src/Cardano/Node/Run.hs b/cardano-node/src/Cardano/Node/Run.hs index a81e778428a..9844d26cd4f 100644 --- a/cardano-node/src/Cardano/Node/Run.hs +++ b/cardano-node/src/Cardano/Node/Run.hs @@ -169,6 +169,8 @@ import Paths_cardano_node (version) import Paths_cardano_node (version) +import LeiosDemoTypes (demoNewLeiosDbConnectionIO) + {- HLINT ignore "Fuse concatMap/map" -} {- HLINT ignore "Redundant <$>" -} {- HLINT ignore "Use fewer imports" -} @@ -520,6 +522,7 @@ handleSimpleNode blockType runP p2pMode tracers nc onKernel = do , rnEnableP2P = p2pMode , rnPeerSharing = ncPeerSharing nc , rnGetUseBootstrapPeers = readTVar useBootstrapVar + , rnNewLeiosDbConnection = demoNewLeiosDbConnectionIO } #ifdef UNIX -- initial `SIGHUP` handler, which only rereads the topology file but @@ -618,6 +621,7 @@ handleSimpleNode blockType runP p2pMode tracers nc onKernel = do , rnEnableP2P = p2pMode , rnPeerSharing = ncPeerSharing nc , rnGetUseBootstrapPeers = pure DontUseBootstrapPeers + , rnNewLeiosDbConnection = demoNewLeiosDbConnectionIO } #ifdef UNIX -- initial `SIGHUP` handler; it only warns that neither updating of From 6119c5cff0007eb2997ea3fe5b1405ec6754d529 Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Mon, 27 Oct 2025 08:01:09 -0700 Subject: [PATCH 19/69] WIP add Leios demo Consensus s-r-p --- cabal.project | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cabal.project b/cabal.project index 203826e8bed..7a2c0eee684 100644 --- a/cabal.project +++ b/cabal.project @@ -96,3 +96,19 @@ if impl (ghc >= 9.12) constraints: hedgehog-extras == 0.7.0.0 + + + + +source-repository-package + type: git + location: https://github.com/IntersectMBO/ouroboros-consensus + tag: 473d06fd7bae208cc5eb9578d442d8c8fdc31b1d + --sha256: sha256-9Y9CRiyMn0AWD+C4aNVMaJgrj3FDAYfCX4VrLvtoMaI= + subdir: + ouroboros-consensus + ouroboros-consensus-cardano + ouroboros-consensus-protocol + ouroboros-consensus-diffusion + sop-extras + strict-sop-core From 84f760f4ab95d180703180aeff0c6f61914058a5 Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Thu, 30 Oct 2025 07:49:43 -0700 Subject: [PATCH 20/69] leiosdemo202510: enable the Leios TraceSendRecv tracers, except Documentation.hs --- cabal.project | 4 +- cardano-node/cardano-node.cabal | 1 + .../src/Cardano/Node/Tracing/Consistency.hs | 17 +++ .../src/Cardano/Node/Tracing/Tracers.hs | 18 ++- .../Node/Tracing/Tracers/NodeToNode.hs | 127 +++++++++++++++++- .../Tracing/OrphanInstances/Network.hs | 93 +++++++++++++ cardano-node/src/Cardano/Tracing/Tracers.hs | 8 +- 7 files changed, 255 insertions(+), 13 deletions(-) diff --git a/cabal.project b/cabal.project index 7a2c0eee684..b4ad5f7f277 100644 --- a/cabal.project +++ b/cabal.project @@ -103,8 +103,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 473d06fd7bae208cc5eb9578d442d8c8fdc31b1d - --sha256: sha256-9Y9CRiyMn0AWD+C4aNVMaJgrj3FDAYfCX4VrLvtoMaI= + tag: 68f15b6aae8a7b5b2573abaeb4bb136eb9ec11ab + --sha256: sha256-ZJ1gSGfHzs/jBflZksVG/8dHRd3Fr7QQcvxtu0IpxHU= subdir: ouroboros-consensus ouroboros-consensus-cardano diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index 1624a529e08..da31ad77524 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -226,6 +226,7 @@ library , transformers-except , typed-protocols >= 0.3 , typed-protocols-stateful >= 0.3 + , vector , yaml executable cardano-node diff --git a/cardano-node/src/Cardano/Node/Tracing/Consistency.hs b/cardano-node/src/Cardano/Node/Tracing/Consistency.hs index 42732499ae1..339444b00aa 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Consistency.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Consistency.hs @@ -101,6 +101,9 @@ import qualified Data.Text as T import qualified Network.Mux as Mux import qualified Network.Socket as Socket +import LeiosDemoTypes (LeiosPoint, LeiosEb, LeiosTx) +import LeiosDemoOnlyTestFetch (LeiosFetch) +import LeiosDemoOnlyTestNotify (LeiosNotify) -- | Check the configuration in the given file. -- If there is no configuration in the file check the standard configuration @@ -263,6 +266,18 @@ getAllNamespaces = (TraceSendRecv (TxSubmission2 (GenTxId blk) (GenTx blk))))]) + leiosNotifyNS = map (nsGetTuple . nsReplacePrefix ["LeiosNotify", "Remote"]) + (allNamespaces :: [Namespace + (BlockFetch.TraceLabelPeer peer + (TraceSendRecv + (LeiosNotify LeiosPoint ())))]) + + leiosFetchNS = map (nsGetTuple . nsReplacePrefix ["LeiosFetch", "Remote"]) + (allNamespaces :: [Namespace + (BlockFetch.TraceLabelPeer peer + (TraceSendRecv + (LeiosFetch LeiosPoint LeiosEb LeiosTx)))]) + -- Diffusion dtMuxNS = map (nsGetTuple . nsReplacePrefix ["Net", "Mux", "Remote"]) @@ -432,6 +447,8 @@ getAllNamespaces = <> blockFetchNS <> blockFetchSerialisedNS <> txSubmission2NS + <> leiosNotifyNS + <> leiosFetchNS -- Diffusion <> dtMuxNS <> dtLocalMuxNS diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs index f4c55fa947d..6928810bf9e 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs @@ -68,7 +68,7 @@ import Ouroboros.Network.NodeToNode (RemoteAddress) import Codec.CBOR.Read (DeserialiseFailure) import Control.Monad (unless) -import "contra-tracer" Control.Tracer (Tracer (..), nullTracer) +import "contra-tracer" Control.Tracer (Tracer (..)) import Data.Proxy (Proxy (..)) import Network.Mux.Trace (TraceLabelPeer (..)) import Network.Socket (SockAddr) @@ -501,12 +501,17 @@ mkNodeToNodeTracers configReflection trBase trForward mbTrEKG _trDataPoint trCon trBase trForward mbTrEKG ["PeerSharing", "Remote"] configureTracers configReflection trConfig [peerSharingTracer] -{- + !leiosNotifyTracer <- mkCardanoTracer trBase trForward mbTrEKG ["LeiosNotify", "Remote"] configureTracers configReflection trConfig [leiosNotifyTracer] --} + + !leiosFetchTracer <- mkCardanoTracer + trBase trForward mbTrEKG + ["LeiosFetch", "Remote"] + configureTracers configReflection trConfig [leiosFetchTracer] + pure $ NtN.Tracers { NtN.tChainSyncTracer = Tracer $ traceWith chainSyncTracer @@ -522,9 +527,10 @@ mkNodeToNodeTracers configReflection trBase trForward mbTrEKG _trDataPoint trCon traceWith keepAliveTracer , NtN.tPeerSharingTracer = Tracer $ traceWith peerSharingTracer - , NtN.tLeiosNotifyTracer = nullTracer {- Tracer $ - traceWith leiosNotifyTracer -} - , NtN.tLeiosFetchTracer = nullTracer + , NtN.tLeiosNotifyTracer = Tracer $ + traceWith leiosNotifyTracer + , NtN.tLeiosFetchTracer = Tracer $ + traceWith leiosFetchTracer } mkDiffusionTracers diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs index 59adf4bb7b4..da4acd4d472 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs @@ -29,12 +29,18 @@ import qualified Ouroboros.Network.Protocol.PeerSharing.Type as PS import Ouroboros.Network.SizeInBytes (SizeInBytes (..)) import Control.Monad.Class.MonadTime.SI (Time (..)) -import Data.Aeson (ToJSON (..), Value (String), (.=)) +import Data.Aeson (ToJSON (..), Value (Array, Number, String), (.=)) import Data.Proxy (Proxy (..)) import Data.Time (DiffTime) import Data.Text (pack) import Network.TypedProtocol.Codec (AnyMessage (AnyMessageAndAgency)) +import qualified Data.Bits as Bits +import qualified Data.Vector as V +import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, leiosEbBytesSize, leiosTxBytesSize, prettyBitmap, prettyEbHash) +import qualified LeiosDemoOnlyTestFetch as LF +import qualified LeiosDemoOnlyTestNotify as LN + -------------------------------------------------------------------------------- -- BlockFetch Tracer -------------------------------------------------------------------------------- @@ -466,3 +472,122 @@ instance MetaTrace (TraceKeepAliveClient remotePeer) where documentFor _ = Just "" allNamespaces = [Namespace [] ["KeepAliveClient"]] + +----- + +instance ToJSON EbHash where toJSON = toJSON . prettyEbHash + +instance LogFormatting (AnyMessage (LN.LeiosNotify LeiosPoint ())) where + forHuman = showT + + forMachine _dtal (AnyMessageAndAgency _stok msg) = case msg of + + LN.MsgLeiosNotificationRequestNext -> + mconcat [ "kind" .= String "MsgLeiosNotificationRequestNext" + ] + + LN.MsgLeiosBlockAnnouncement () -> + mconcat [ "kind" .= String "MsgLeiosBlockAnnouncement" + ] + LN.MsgLeiosBlockOffer (MkLeiosPoint ebSlot ebHash) ebBytesSize -> + mconcat [ "kind" .= String "MsgLeiosBlockOffer" + , "ebSlot" .= ebSlot + , "ebHash" .= ebHash + , "ebBytesSize" .= ebBytesSize + ] + LN.MsgLeiosBlockTxsOffer (MkLeiosPoint ebSlot ebHash) -> + mconcat [ "kind" .= String "MsgLeiosBlockTxsOffer" + , "ebSlot" .= ebSlot + , "ebHash" .= ebHash + ] + + LN.MsgDone -> + mconcat [ "kind" .= String "MsgDone" + ] + +instance LogFormatting (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where + forHuman = showT + + forMachine _dtal (AnyMessageAndAgency _stok msg) = case msg of + + LF.MsgLeiosBlockRequest (MkLeiosPoint ebSlot ebHash) -> + mconcat [ "kind" .= String "MsgLeiosBlockRequest" + , "ebSlot" .= ebSlot + , "ebHash" .= ebHash + ] + + LF.MsgLeiosBlock eb -> + mconcat [ "kind" .= String "MsgLeiosBlock" + , "eb" .= String "" + , "ebBytesSize" .= Number (fromIntegral $ leiosEbBytesSize eb) + ] + + LF.MsgLeiosBlockTxsRequest (MkLeiosPoint ebSlot ebHash) bitmaps -> + mconcat [ "kind" .= String "MsgLeiosBlockTxsRequest" + , "ebSlot" .= ebSlot + , "ebHash" .= ebHash + , "numTxs" .= Number (fromIntegral $ sum $ map (Bits.popCount . snd) bitmaps) + , "bitmaps" .= Array (V.fromList $ map (String . pack . prettyBitmap) bitmaps) + ] + + LF.MsgLeiosBlockTxs txs -> + mconcat [ "kind" .= String "MsgLeiosBlockTxs" + , "numTxs" .= Number (fromIntegral (V.length txs)) + , "txsBytesSize" .= Number (fromIntegral $ V.sum $ V.map leiosTxBytesSize txs) + , "txs" .= String "" + ] + + -- LF.MsgLeiosVotesRequest + -- LF.MsgLeiosVoteDelivery + + -- LF.MsgLeiosBlockRangeRequest + -- LF.MsgLeiosNextBlockAndTxsInRange + -- LF.MsgLeiosLastBlockAndTxsInRange + + LF.MsgDone -> + mconcat [ "kind" .= String "MsgDone" + ] + + where +-- agency :: Aeson.Object +-- agency = "agency" .= show stok + +instance MetaTrace (AnyMessage (LN.LeiosNotify LeiosPoint ())) where + namespaceFor (AnyMessageAndAgency _stok msg) = case msg of + LN.MsgLeiosNotificationRequestNext {} -> Namespace [] ["RequestNext"] + LN.MsgLeiosBlockAnnouncement {} -> Namespace [] ["BlockAnnouncement"] + LN.MsgLeiosBlockOffer {} -> Namespace [] ["BlockOffer"] + LN.MsgLeiosBlockTxsOffer {} -> Namespace [] ["BlockTxsOffer"] + LN.MsgDone -> Namespace [] ["Done"] + + severityFor _ _ = Just Debug + + documentFor _ = Nothing + + allNamespaces = [ + Namespace [] ["RequestNext"] + , Namespace [] ["BlockAnnouncement"] + , Namespace [] ["BlockOffer"] + , Namespace [] ["BlockTxsOffer"] + , Namespace [] ["Done"] + ] + +instance MetaTrace (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where + namespaceFor (AnyMessageAndAgency _stok msg) = case msg of + LF.MsgLeiosBlockRequest {} -> Namespace [] ["BlockRequest"] + LF.MsgLeiosBlock {} -> Namespace [] ["Block"] + LF.MsgLeiosBlockTxsRequest {} -> Namespace [] ["BlockTxsRequest"] + LF.MsgLeiosBlockTxs {} -> Namespace [] ["BlockTxs"] + LF.MsgDone -> Namespace [] ["Done"] + + severityFor _ _ = Just Debug + + documentFor _ = Nothing + + allNamespaces = [ + Namespace [] ["BlockRequest"] + , Namespace [] ["Block"] + , Namespace [] ["BlockTxsRequest"] + , Namespace [] ["BlockTxs"] + , Namespace [] ["Done"] + ] diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index 5e3398c9174..60dcad7f243 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -142,6 +142,12 @@ import qualified Network.TypedProtocol.Stateful.Codec as Stateful {- HLINT ignore "Use record patterns" -} +import qualified Data.Bits as Bits +import qualified Data.Vector as V +import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, leiosEbBytesSize, leiosTxBytesSize, prettyBitmap, prettyEbHash) +import qualified LeiosDemoOnlyTestFetch as LF +import qualified LeiosDemoOnlyTestNotify as LN + -- -- * instances of @HasPrivacyAnnotation@ and @HasSeverityAnnotation@ -- @@ -2871,3 +2877,90 @@ instance FromJSON PeerTrustable where instance ToJSON PeerTrustable where toJSON IsTrustable = Bool True toJSON IsNotTrustable = Bool False + +----- + +instance ToJSON EbHash where toJSON = toJSON . prettyEbHash + +instance ToObject peer + => Transformable Text IO (TraceLabelPeer peer (NtN.TraceSendRecv (LN.LeiosNotify LeiosPoint ()))) where + trTransformer = trStructured + +instance ToObject (AnyMessage (LN.LeiosNotify LeiosPoint ())) where + toObject _verb (AnyMessageAndAgency _stok msg) = case msg of + + LN.MsgLeiosNotificationRequestNext -> + mconcat [ "kind" .= String "MsgLeiosNotificationRequestNext" + ] + + LN.MsgLeiosBlockAnnouncement () -> + mconcat [ "kind" .= String "MsgLeiosBlockAnnouncement" + ] + LN.MsgLeiosBlockOffer (MkLeiosPoint ebSlot ebHash) ebBytesSize -> + mconcat [ "kind" .= String "MsgLeiosBlockOffer" + , "ebSlot" .= ebSlot + , "ebHash" .= ebHash + , "ebBytesSize" .= ebBytesSize + ] + LN.MsgLeiosBlockTxsOffer (MkLeiosPoint ebSlot ebHash) -> + mconcat [ "kind" .= String "MsgLeiosBlockTxsOffer" + , "ebSlot" .= ebSlot + , "ebHash" .= ebHash + ] + + LN.MsgDone -> + mconcat [ "kind" .= String "MsgDone" + ] + +-- where +-- agency :: Aeson.Object +-- agency = "agency" .= show stok + +instance ToObject peer + => Transformable Text IO (TraceLabelPeer peer (NtN.TraceSendRecv (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx))) where + trTransformer = trStructured + +instance ToObject (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where + toObject _verb (AnyMessageAndAgency _stok msg) = case msg of + + LF.MsgLeiosBlockRequest (MkLeiosPoint ebSlot ebHash) -> + mconcat [ "kind" .= String "MsgLeiosBlockRequest" + , "ebSlot" .= ebSlot + , "ebHash" .= ebHash + ] + + LF.MsgLeiosBlock eb -> + mconcat [ "kind" .= String "MsgLeiosBlock" + , "eb" .= String "" + , "ebBytesSize" .= Number (fromIntegral $ leiosEbBytesSize eb) + ] + + LF.MsgLeiosBlockTxsRequest (MkLeiosPoint ebSlot ebHash) bitmaps -> + mconcat [ "kind" .= String "MsgLeiosBlockTxsRequest" + , "ebSlot" .= ebSlot + , "ebHash" .= ebHash + , "numTxs" .= Number (fromIntegral $ sum $ map (Bits.popCount . snd) bitmaps) + , "bitmaps" .= Array (V.fromList $ map (String . pack . prettyBitmap) bitmaps) + ] + + LF.MsgLeiosBlockTxs txs -> + mconcat [ "kind" .= String "MsgLeiosBlockTxs" + , "numTxs" .= Number (fromIntegral (V.length txs)) + , "txsBytesSize" .= Number (fromIntegral $ V.sum $ V.map leiosTxBytesSize txs) + , "txs" .= String "" + ] + + -- LF.MsgLeiosVotesRequest + -- LF.MsgLeiosVoteDelivery + + -- LF.MsgLeiosBlockRangeRequest + -- LF.MsgLeiosNextBlockAndTxsInRange + -- LF.MsgLeiosLastBlockAndTxsInRange + + LF.MsgDone -> + mconcat [ "kind" .= String "MsgDone" + ] + + where +-- agency :: Aeson.Object +-- agency = "agency" .= show stok diff --git a/cardano-node/src/Cardano/Tracing/Tracers.hs b/cardano-node/src/Cardano/Tracing/Tracers.hs index 58af3c0e98a..56858b1d66b 100644 --- a/cardano-node/src/Cardano/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Tracing/Tracers.hs @@ -1515,12 +1515,12 @@ nodeToNodeTracers' trSel verb tr = , NodeToNode.tPeerSharingTracer = tracerOnOff (tracePeerSharingProtocol trSel) verb "PeerSharingPrototocol" tr - , NodeToNode.tLeiosNotifyTracer = nullTracer {- TODO + , NodeToNode.tLeiosNotifyTracer = tracerOnOff (traceLeiosNotifyProtocol trSel) - verb "LeiosNotifyPrototocol" tr -} - , NodeToNode.tLeiosFetchTracer = nullTracer {- TODO + verb "LeiosNotifyPrototocol" tr + , NodeToNode.tLeiosFetchTracer = tracerOnOff (traceLeiosFetchProtocol trSel) - verb "LeiosFetchPrototocol" tr -} + verb "LeiosFetchPrototocol" tr } -- TODO @ouroboros-network From 95f49601daa43bc14782b8404f1d5caa3868afac Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Thu, 30 Oct 2025 11:23:04 -0700 Subject: [PATCH 21/69] leiosdemo202510: enable the Leios Kernel&Peer tracers --- cabal.project | 4 ++-- .../src/Cardano/Node/Tracing/Consistency.hs | 9 +++++-- .../src/Cardano/Node/Tracing/Tracers.hs | 14 +++++++++++ .../Cardano/Node/Tracing/Tracers/Consensus.hs | 23 ++++++++++++++++++ cardano-node/src/Cardano/Tracing/Config.hs | 18 ++++++++++++++ .../Tracing/OrphanInstances/Network.hs | 24 +++++++++++++++++++ cardano-node/src/Cardano/Tracing/Tracers.hs | 4 ++++ 7 files changed, 92 insertions(+), 4 deletions(-) diff --git a/cabal.project b/cabal.project index b4ad5f7f277..f0fe0c83ebe 100644 --- a/cabal.project +++ b/cabal.project @@ -103,8 +103,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 68f15b6aae8a7b5b2573abaeb4bb136eb9ec11ab - --sha256: sha256-ZJ1gSGfHzs/jBflZksVG/8dHRd3Fr7QQcvxtu0IpxHU= + tag: 045b3e39458d9ae077d3134858cedac70cfac8ba + --sha256: sha256-+M8WFkZY6qIxCUraqTc/9w+pphYqVOpnjIpXZeEZOpY= subdir: ouroboros-consensus ouroboros-consensus-cardano diff --git a/cardano-node/src/Cardano/Node/Tracing/Consistency.hs b/cardano-node/src/Cardano/Node/Tracing/Consistency.hs index 339444b00aa..b955d6605ce 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Consistency.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Consistency.hs @@ -101,7 +101,7 @@ import qualified Data.Text as T import qualified Network.Mux as Mux import qualified Network.Socket as Socket -import LeiosDemoTypes (LeiosPoint, LeiosEb, LeiosTx) +import LeiosDemoTypes (LeiosPoint, LeiosEb, LeiosTx, TraceLeiosKernel, TraceLeiosPeer) import LeiosDemoOnlyTestFetch (LeiosFetch) import LeiosDemoOnlyTestNotify (LeiosNotify) @@ -210,7 +210,10 @@ getAllNamespaces = (allNamespaces :: [Namespace (Jumping.TraceEventCsj peer blk)]) dbfNS = map (nsGetTuple . nsReplacePrefix ["Consensus", "DevotedBlockFetch"]) (allNamespaces :: [Namespace (Jumping.TraceEventDbf peer)]) - + leiosKernelNS = map (nsGetTuple . nsReplacePrefix ["Consensus", "LeiosKernel"]) + (allNamespaces :: [Namespace TraceLeiosKernel]) + leiosPeerNS = map (nsGetTuple . nsReplacePrefix ["Consensus", "LeiosPeer"]) + (allNamespaces :: [Namespace (BlockFetch.TraceLabelPeer remotePeer TraceLeiosPeer)]) -- Node to client keepAliveClientNS = map (nsGetTuple . nsReplacePrefix ["Net"]) (allNamespaces :: [Namespace (TraceKeepAliveClient peer)]) @@ -435,6 +438,8 @@ getAllNamespaces = <> gsmNS <> csjNS <> dbfNS + <> leiosKernelNS + <> leiosPeerNS -- NodeToClient <> keepAliveClientNS <> chainSyncNS diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs index 6928810bf9e..b9bb87bf7ac 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs @@ -362,6 +362,16 @@ mkConsensusTracers configReflection trBase trForward mbTrEKG _trDataPoint trConf ["Consensus", "DevotedBlockFetch"] configureTracers configReflection trConfig [consensusDbfTr] + !consensusLeiosKernelTr <- mkCardanoTracer + trBase trForward mbTrEKG + ["Consensus", "LeiosKernel"] + configureTracers configReflection trConfig [consensusLeiosKernelTr] + + !consensusLeiosPeerTr <- mkCardanoTracer + trBase trForward mbTrEKG + ["Consensus", "LeiosPeer"] + configureTracers configReflection trConfig [consensusLeiosPeerTr] + pure $ Consensus.Tracers { Consensus.chainSyncClientTracer = Tracer $ traceWith chainSyncClientTr @@ -408,6 +418,10 @@ mkConsensusTracers configReflection trBase trForward mbTrEKG _trDataPoint trConf traceWith consensusCsjTr , Consensus.dbfTracer = Tracer $ traceWith consensusDbfTr + , Consensus.leiosKernelTracer = Tracer $ + traceWith consensusLeiosKernelTr + , Consensus.leiosPeerTracer = Tracer $ + traceWith consensusLeiosPeerTr } mkNodeToClientTracers :: forall blk. diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 3daec1eb691..1eaa93077a8 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -81,6 +81,7 @@ import Data.Time (NominalDiffTime) import Data.Word (Word32, Word64) import Network.TypedProtocol.Core +import LeiosDemoTypes (TraceLeiosKernel, TraceLeiosPeer, traceLeiosKernelToObject, traceLeiosPeerToObject) instance (LogFormatting adr, Show adr) => LogFormatting (ConnectionId adr) where forMachine _dtal (ConnectionId local' remote) = @@ -2267,3 +2268,25 @@ instance ( StandardHash blk ] forHuman = showT + +----- + +instance LogFormatting TraceLeiosKernel where + forHuman = showT + forMachine _dtal = traceLeiosKernelToObject + +instance MetaTrace TraceLeiosKernel where + namespaceFor _ = Namespace [] [] + severityFor _ _ = Just Debug + documentFor _ = Nothing + allNamespaces = [ Namespace [] [] ] + +instance LogFormatting TraceLeiosPeer where + forHuman = showT + forMachine _dtal = traceLeiosPeerToObject + +instance MetaTrace TraceLeiosPeer where + namespaceFor _ = Namespace [] [] + severityFor _ _ = Just Debug + documentFor _ = Nothing + allNamespaces = [ Namespace [] [] ] diff --git a/cardano-node/src/Cardano/Tracing/Config.hs b/cardano-node/src/Cardano/Tracing/Config.hs index c258022badb..158c0a498d6 100644 --- a/cardano-node/src/Cardano/Tracing/Config.hs +++ b/cardano-node/src/Cardano/Tracing/Config.hs @@ -187,6 +187,8 @@ type TraceLeiosFetchProtocol = ("TraceLeiosFetchProtocol" :: Symbol) type TraceGsm = ("TraceGsm" :: Symbol) type TraceCsj = ("TraceCsj" :: Symbol) type TraceDevotedBlockFetch = ("TraceDevotedBlockFetch" :: Symbol) +type TraceLeiosKernel = ("TraceLeiosKernel" :: Symbol) +type TraceLeiosPeer = ("TraceLeiosPeer" :: Symbol) newtype OnOff (name :: Symbol) = OnOff { isOn :: Bool } deriving (Eq, Show) @@ -265,6 +267,8 @@ data TraceSelection , traceGsm :: OnOff TraceGsm , traceCsj :: OnOff TraceCsj , traceDevotedBlockFetch :: OnOff TraceDevotedBlockFetch + , traceLeiosKernel :: OnOff TraceLeiosKernel + , traceLeiosPeer :: OnOff TraceLeiosPeer } deriving (Eq, Show) @@ -337,6 +341,8 @@ data PartialTraceSelection , pTraceGsm :: Last (OnOff TraceGsm) , pTraceCsj :: Last (OnOff TraceCsj) , pTraceDevotedBlockFetch :: Last (OnOff TraceDevotedBlockFetch) + , pTraceLeiosKernel :: Last (OnOff TraceLeiosKernel) + , pTraceLeiosPeer :: Last (OnOff TraceLeiosPeer) } deriving (Eq, Generic, Show) @@ -410,6 +416,8 @@ instance FromJSON PartialTraceSelection where <*> parseTracer (Proxy @TraceGsm) v <*> parseTracer (Proxy @TraceCsj) v <*> parseTracer (Proxy @TraceDevotedBlockFetch) v + <*> parseTracer (Proxy @TraceLeiosKernel) v + <*> parseTracer (Proxy @TraceLeiosPeer) v defaultPartialTraceConfiguration :: PartialTraceSelection @@ -480,6 +488,8 @@ defaultPartialTraceConfiguration = , pTraceGsm = pure $ OnOff True , pTraceCsj = pure $ OnOff True , pTraceDevotedBlockFetch = pure $ OnOff True + , pTraceLeiosKernel = pure $ OnOff True + , pTraceLeiosPeer = pure $ OnOff True } @@ -552,6 +562,8 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio traceGsm <- proxyLastToEither (Proxy @TraceGsm) pTraceGsm traceCsj <- proxyLastToEither (Proxy @TraceCsj) pTraceCsj traceDevotedBlockFetch <- proxyLastToEither (Proxy @TraceDevotedBlockFetch) pTraceDevotedBlockFetch + traceLeiosKernel <- proxyLastToEither (Proxy @TraceLeiosKernel) pTraceLeiosKernel + traceLeiosPeer <- proxyLastToEither (Proxy @TraceLeiosPeer) pTraceLeiosPeer Right $ TraceDispatcher $ TraceSelection { traceVerbosity = traceVerbosity , traceAcceptPolicy = traceAcceptPolicy @@ -617,6 +629,8 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio , traceGsm = traceGsm , traceCsj = traceCsj , traceDevotedBlockFetch = traceDevotedBlockFetch + , traceLeiosKernel = traceLeiosKernel + , traceLeiosPeer = traceLeiosPeer } partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelection))) = do @@ -686,6 +700,8 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio traceGsm <- proxyLastToEither (Proxy @TraceGsm) pTraceGsm traceCsj <- proxyLastToEither (Proxy @TraceCsj) pTraceCsj traceDevotedBlockFetch <- proxyLastToEither (Proxy @TraceDevotedBlockFetch) pTraceDevotedBlockFetch + traceLeiosKernel <- proxyLastToEither (Proxy @TraceLeiosKernel) pTraceLeiosKernel + traceLeiosPeer <- proxyLastToEither (Proxy @TraceLeiosPeer) pTraceLeiosPeer Right $ TracingOnLegacy $ TraceSelection { traceVerbosity = traceVerbosity , traceAcceptPolicy = traceAcceptPolicy @@ -751,6 +767,8 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio , traceGsm = traceGsm , traceCsj = traceCsj , traceDevotedBlockFetch = traceDevotedBlockFetch + , traceLeiosKernel = traceLeiosKernel + , traceLeiosPeer = traceLeiosPeer } proxyLastToEither :: KnownSymbol name => Proxy name -> Last (OnOff name) -> Either Text (OnOff name) diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index 60dcad7f243..62eed6a670c 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -145,6 +145,7 @@ import qualified Network.TypedProtocol.Stateful.Codec as Stateful import qualified Data.Bits as Bits import qualified Data.Vector as V import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, leiosEbBytesSize, leiosTxBytesSize, prettyBitmap, prettyEbHash) +import LeiosDemoTypes (TraceLeiosKernel, TraceLeiosPeer, traceLeiosKernelToObject, traceLeiosPeerToObject) import qualified LeiosDemoOnlyTestFetch as LF import qualified LeiosDemoOnlyTestNotify as LN @@ -2964,3 +2965,26 @@ instance ToObject (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where where -- agency :: Aeson.Object -- agency = "agency" .= show stok + +instance Transformable Text IO TraceLeiosKernel where + trTransformer = trStructured + +instance ToObject TraceLeiosKernel where + toObject _verb = traceLeiosKernelToObject + +instance HasPrivacyAnnotation TraceLeiosKernel + +instance HasSeverityAnnotation TraceLeiosKernel where + getSeverityAnnotation _ = Debug + +instance ToObject peer + => Transformable Text IO (TraceLabelPeer peer TraceLeiosPeer) where + trTransformer = trStructured + +instance ToObject TraceLeiosPeer where + toObject _verb = traceLeiosPeerToObject + +instance HasPrivacyAnnotation TraceLeiosPeer + +instance HasSeverityAnnotation TraceLeiosPeer where + getSeverityAnnotation _ = Debug diff --git a/cardano-node/src/Cardano/Tracing/Tracers.hs b/cardano-node/src/Cardano/Tracing/Tracers.hs index 56858b1d66b..5154aeb95c4 100644 --- a/cardano-node/src/Cardano/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Tracing/Tracers.hs @@ -556,6 +556,8 @@ mkTracers _ _ _ _ _ enableP2P = , Consensus.gsmTracer = nullTracer , Consensus.csjTracer = nullTracer , Consensus.dbfTracer = nullTracer + , Consensus.leiosKernelTracer = nullTracer + , Consensus.leiosPeerTracer = nullTracer } , nodeToClientTracers = NodeToClient.Tracers { NodeToClient.tChainSyncTracer = nullTracer @@ -864,6 +866,8 @@ mkConsensusTracers mbEKGDirect trSel verb tr nodeKern fStats = do , Consensus.gsmTracer = tracerOnOff (traceGsm trSel) verb "GSM" tr , Consensus.csjTracer = tracerOnOff (traceCsj trSel) verb "CSJ" tr , Consensus.dbfTracer = tracerOnOff (traceDevotedBlockFetch trSel) verb "DevotedBlockFetch" tr + , Consensus.leiosKernelTracer = tracerOnOff (traceLeiosKernel trSel) verb "LeiosKernel" tr + , Consensus.leiosPeerTracer = tracerOnOff (traceLeiosPeer trSel) verb "LeiosPeer" tr } where mkForgeTracers :: IO ForgeTracers From 9e457f93aa302674708edb9fd1266ca2d89cbb84 Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Tue, 25 Nov 2025 15:22:23 -0800 Subject: [PATCH 22/69] leiosdemo202511: fixup build for ouroboros-network:runDriver* and TraceSendRecv changes --- .../Node/Tracing/Tracers/NodeToClient.hs | 66 +++++++++---------- .../Tracing/OrphanInstances/Network.hs | 16 ++--- .../Trace/Forward/Run/DataPoint/Acceptor.hs | 1 + .../Trace/Forward/Run/DataPoint/Forwarder.hs | 1 + .../Trace/Forward/Run/TraceObject/Acceptor.hs | 1 + .../Forward/Run/TraceObject/Forwarder.hs | 1 + 6 files changed, 45 insertions(+), 41 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs index a504b19c4a9..4af33840d65 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs @@ -19,7 +19,7 @@ import qualified Ouroboros.Network.Protocol.LocalStateQuery.Type as LSQ import qualified Ouroboros.Network.Protocol.LocalTxMonitor.Type as LTM import qualified Ouroboros.Network.Protocol.LocalTxSubmission.Type as LTS -import Data.Aeson (Value (String), (.=)) +import Data.Aeson (Value (String), (.=), (.?=)) import Data.Text (Text, pack) import qualified Network.TypedProtocol.Codec as Simple import qualified Network.TypedProtocol.Stateful.Codec as Stateful @@ -28,62 +28,62 @@ import qualified Network.TypedProtocol.Stateful.Codec as Stateful instance LogFormatting (Simple.AnyMessage ps) => LogFormatting (Simple.TraceSendRecv ps) where - forMachine dtal (Simple.TraceSendMsg m) = mconcat - [ "kind" .= String "Send" , "msg" .= forMachine dtal m ] - forMachine dtal (Simple.TraceRecvMsg m) = mconcat - [ "kind" .= String "Recv" , "msg" .= forMachine dtal m ] + forMachine dtal (Simple.TraceSendMsg tm m) = mconcat + [ "kind" .= String "Send" , "msg" .= forMachine dtal m, "tm" .= String (pack $ show tm) ] + forMachine dtal (Simple.TraceRecvMsg mbTm m) = mconcat + [ "kind" .= String "Recv" , "msg" .= forMachine dtal m, "tm" .?= fmap (String . pack . show) mbTm ] - forHuman (Simple.TraceSendMsg m) = "Send: " <> forHumanOrMachine m - forHuman (Simple.TraceRecvMsg m) = "Receive: " <> forHumanOrMachine m + forHuman (Simple.TraceSendMsg _tm m) = "Send: " <> forHumanOrMachine m + forHuman (Simple.TraceRecvMsg _mbTm m) = "Receive: " <> forHumanOrMachine m - asMetrics (Simple.TraceSendMsg m) = asMetrics m - asMetrics (Simple.TraceRecvMsg m) = asMetrics m + asMetrics (Simple.TraceSendMsg _tm m) = asMetrics m + asMetrics (Simple.TraceRecvMsg _mbTm m) = asMetrics m instance LogFormatting (Stateful.AnyMessage ps f) => LogFormatting (Stateful.TraceSendRecv ps f) where - forMachine dtal (Stateful.TraceSendMsg m) = mconcat - [ "kind" .= String "Send" , "msg" .= forMachine dtal m ] - forMachine dtal (Stateful.TraceRecvMsg m) = mconcat - [ "kind" .= String "Recv" , "msg" .= forMachine dtal m ] + forMachine dtal (Stateful.TraceSendMsg tm m) = mconcat + [ "kind" .= String "Send" , "msg" .= forMachine dtal m, "tm" .= String (pack $ show tm) ] + forMachine dtal (Stateful.TraceRecvMsg mbTm m) = mconcat + [ "kind" .= String "Recv" , "msg" .= forMachine dtal m, "tm" .?= fmap (String . pack . show) mbTm ] - forHuman (Stateful.TraceSendMsg m) = "Send: " <> forHumanOrMachine m - forHuman (Stateful.TraceRecvMsg m) = "Receive: " <> forHumanOrMachine m + forHuman (Stateful.TraceSendMsg _tm m) = "Send: " <> forHumanOrMachine m + forHuman (Stateful.TraceRecvMsg _mbTm m) = "Receive: " <> forHumanOrMachine m - asMetrics (Stateful.TraceSendMsg m) = asMetrics m - asMetrics (Stateful.TraceRecvMsg m) = asMetrics m + asMetrics (Stateful.TraceSendMsg _tm m) = asMetrics m + asMetrics (Stateful.TraceRecvMsg _mbTm m) = asMetrics m instance MetaTrace (Simple.AnyMessage ps) => MetaTrace (Simple.TraceSendRecv ps) where - namespaceFor (Simple.TraceSendMsg msg) = + namespaceFor (Simple.TraceSendMsg _tm msg) = nsPrependInner "Send" (namespaceFor msg) - namespaceFor (Simple.TraceRecvMsg msg) = + namespaceFor (Simple.TraceRecvMsg _mbTm msg) = nsPrependInner "Receive" (namespaceFor msg) - severityFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg msg)) = + severityFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = severityFor (Namespace out tl) (Just msg) severityFor (Namespace out ("Send" : tl)) Nothing = severityFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing - severityFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg msg)) = + severityFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = severityFor (Namespace out tl) (Just msg) severityFor (Namespace out ("Receive" : tl)) Nothing = severityFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing severityFor _ _ = Nothing - privacyFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg msg)) = + privacyFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = privacyFor (Namespace out tl) (Just msg) privacyFor (Namespace out ("Send" : tl)) Nothing = privacyFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing - privacyFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg msg)) = + privacyFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = privacyFor (Namespace out tl) (Just msg) privacyFor (Namespace out ("Receive" : tl)) Nothing = privacyFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing privacyFor _ _ = Nothing - detailsFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg msg)) = + detailsFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = detailsFor (Namespace out tl) (Just msg) detailsFor (Namespace out ("Send" : tl)) Nothing = detailsFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing - detailsFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg msg)) = + detailsFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = detailsFor (Namespace out tl) (Just msg) detailsFor (Namespace out ("Receive" : tl)) Nothing = detailsFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing @@ -107,36 +107,36 @@ instance MetaTrace (Simple.AnyMessage ps) => instance MetaTrace (Stateful.AnyMessage ps f) => MetaTrace (Stateful.TraceSendRecv ps f) where - namespaceFor (Stateful.TraceSendMsg msg) = + namespaceFor (Stateful.TraceSendMsg _tm msg) = nsPrependInner "Send" (namespaceFor msg) - namespaceFor (Stateful.TraceRecvMsg msg) = + namespaceFor (Stateful.TraceRecvMsg _mbTm msg) = nsPrependInner "Receive" (namespaceFor msg) - severityFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg msg)) = + severityFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = severityFor (Namespace out tl) (Just msg) severityFor (Namespace out ("Send" : tl)) Nothing = severityFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing - severityFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg msg)) = + severityFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = severityFor (Namespace out tl) (Just msg) severityFor (Namespace out ("Receive" : tl)) Nothing = severityFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing severityFor _ _ = Nothing - privacyFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg msg)) = + privacyFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = privacyFor (Namespace out tl) (Just msg) privacyFor (Namespace out ("Send" : tl)) Nothing = privacyFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing - privacyFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg msg)) = + privacyFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = privacyFor (Namespace out tl) (Just msg) privacyFor (Namespace out ("Receive" : tl)) Nothing = privacyFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing privacyFor _ _ = Nothing - detailsFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg msg)) = + detailsFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = detailsFor (Namespace out tl) (Just msg) detailsFor (Namespace out ("Send" : tl)) Nothing = detailsFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing - detailsFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg msg)) = + detailsFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = detailsFor (Namespace out tl) (Just msg) detailsFor (Namespace out ("Receive" : tl)) Nothing = detailsFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index 62eed6a670c..d546c051154 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -1444,18 +1444,18 @@ instance (ToJSON peer, ConvertRawHash header) instance ToObject (AnyMessage ps) => ToObject (TraceSendRecv ps) where - toObject verb (TraceSendMsg m) = mconcat - [ "kind" .= String "Send" , "msg" .= toObject verb m ] - toObject verb (TraceRecvMsg m) = mconcat - [ "kind" .= String "Recv" , "msg" .= toObject verb m ] + toObject verb (TraceSendMsg tm m) = mconcat + [ "kind" .= String "Send" , "msg" .= toObject verb m, "tm" .= String (pack $ show tm) ] + toObject verb (TraceRecvMsg mbTm m) = mconcat + [ "kind" .= String "Recv" , "msg" .= toObject verb m, "tm" Aeson..?= fmap (String . pack . show) mbTm ] instance ToObject (Stateful.AnyMessage ps f) => ToObject (Stateful.TraceSendRecv ps f) where - toObject verb (Stateful.TraceSendMsg m) = mconcat - [ "kind" .= String "Send" , "msg" .= toObject verb m ] - toObject verb (Stateful.TraceRecvMsg m) = mconcat - [ "kind" .= String "Recv" , "msg" .= toObject verb m ] + toObject verb (Stateful.TraceSendMsg tm m) = mconcat + [ "kind" .= String "Send" , "msg" .= toObject verb m, "tm" .= String (pack $ show tm) ] + toObject verb (Stateful.TraceRecvMsg mbTm m) = mconcat + [ "kind" .= String "Recv" , "msg" .= toObject verb m, "tm" Aeson..?= fmap (String . pack . show) mbTm ] instance ToObject (TraceTxSubmissionInbound txid tx) where diff --git a/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs b/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs index 5131d36efed..e535dc3d305 100644 --- a/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs +++ b/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs @@ -54,6 +54,7 @@ runPeerWithRequestor config mkDPRequestor peerErrorHandler = (acceptorTracer config) (Acceptor.codecDataPointForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) + (fromIntegral . LBS.length) channel (Acceptor.dataPointAcceptorPeer $ acceptorActions config dpRequestor []) `finally` peerErrorHandler ctx diff --git a/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs b/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs index 3a8537540f3..554aac56943 100644 --- a/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs +++ b/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs @@ -42,5 +42,6 @@ runPeerWithDPStore config dpStore = (forwarderTracer config) (Forwarder.codecDataPointForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) + (fromIntegral . LBS.length) channel (Forwarder.dataPointForwarderPeer $ readFromStore dpStore) diff --git a/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs b/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs index 511fb50e7f8..175506dd981 100644 --- a/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs +++ b/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs @@ -68,6 +68,7 @@ runPeerWithHandler config@AcceptorConfiguration{acceptorTracer, shouldWeStop} lo acceptorTracer (Acceptor.codecTraceObjectForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) + (fromIntegral . LBS.length) channel (Acceptor.traceObjectAcceptorPeer $ acceptorActions config (loHandler ctx)) `finally` peerErrorHandler ctx diff --git a/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs b/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs index bd460ba36c7..e01bc8680db 100644 --- a/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs +++ b/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs @@ -48,5 +48,6 @@ runPeerWithSink config sink = (forwarderTracer config) (Forwarder.codecTraceObjectForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) + (fromIntegral . LBS.length) channel (Forwarder.traceObjectForwarderPeer $ readFromSink sink) From 6ac41d4bd3f7ae4700a78699715f00ffbf597838 Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Thu, 27 Nov 2025 11:02:04 -0800 Subject: [PATCH 23/69] leiosdemo202511: hacky special case for mux_tm --- .../Node/Tracing/Tracers/NodeToClient.hs | 12 +++++++---- .../Tracing/OrphanInstances/Network.hs | 10 +++++---- .../src/Cardano/Logging/Formatter.hs | 21 +++++++++++++++++-- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs index 4af33840d65..e4f9b46d036 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs @@ -19,6 +19,7 @@ import qualified Ouroboros.Network.Protocol.LocalStateQuery.Type as LSQ import qualified Ouroboros.Network.Protocol.LocalTxMonitor.Type as LTM import qualified Ouroboros.Network.Protocol.LocalTxSubmission.Type as LTS +import Control.Monad.Class.MonadTime.SI (Time (..)) import Data.Aeson (Value (String), (.=), (.?=)) import Data.Text (Text, pack) import qualified Network.TypedProtocol.Codec as Simple @@ -26,12 +27,15 @@ import qualified Network.TypedProtocol.Stateful.Codec as Stateful {-# ANN module ("HLint: ignore Redundant bracket" :: Text) #-} +jsonTime :: Time -> Double +jsonTime (Time x) = realToFrac x + instance LogFormatting (Simple.AnyMessage ps) => LogFormatting (Simple.TraceSendRecv ps) where forMachine dtal (Simple.TraceSendMsg tm m) = mconcat - [ "kind" .= String "Send" , "msg" .= forMachine dtal m, "tm" .= String (pack $ show tm) ] + [ "kind" .= String "Send" , "msg" .= forMachine dtal m, "mux_at" .= jsonTime tm ] forMachine dtal (Simple.TraceRecvMsg mbTm m) = mconcat - [ "kind" .= String "Recv" , "msg" .= forMachine dtal m, "tm" .?= fmap (String . pack . show) mbTm ] + [ "kind" .= String "Recv" , "msg" .= forMachine dtal m, "mux_at" .?= fmap jsonTime mbTm ] forHuman (Simple.TraceSendMsg _tm m) = "Send: " <> forHumanOrMachine m forHuman (Simple.TraceRecvMsg _mbTm m) = "Receive: " <> forHumanOrMachine m @@ -42,9 +46,9 @@ instance LogFormatting (Simple.AnyMessage ps) instance LogFormatting (Stateful.AnyMessage ps f) => LogFormatting (Stateful.TraceSendRecv ps f) where forMachine dtal (Stateful.TraceSendMsg tm m) = mconcat - [ "kind" .= String "Send" , "msg" .= forMachine dtal m, "tm" .= String (pack $ show tm) ] + [ "kind" .= String "Send" , "msg" .= forMachine dtal m, "mux_at" .= jsonTime tm ] forMachine dtal (Stateful.TraceRecvMsg mbTm m) = mconcat - [ "kind" .= String "Recv" , "msg" .= forMachine dtal m, "tm" .?= fmap (String . pack . show) mbTm ] + [ "kind" .= String "Recv" , "msg" .= forMachine dtal m, "mux_at" .?= fmap jsonTime mbTm ] forHuman (Stateful.TraceSendMsg _tm m) = "Send: " <> forHumanOrMachine m forHuman (Stateful.TraceRecvMsg _mbTm m) = "Receive: " <> forHumanOrMachine m diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index d546c051154..87055bddf1d 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -1445,18 +1445,20 @@ instance (ToJSON peer, ConvertRawHash header) instance ToObject (AnyMessage ps) => ToObject (TraceSendRecv ps) where toObject verb (TraceSendMsg tm m) = mconcat - [ "kind" .= String "Send" , "msg" .= toObject verb m, "tm" .= String (pack $ show tm) ] + [ "kind" .= String "Send" , "msg" .= toObject verb m, "mux_at" .= jsonTime tm ] toObject verb (TraceRecvMsg mbTm m) = mconcat - [ "kind" .= String "Recv" , "msg" .= toObject verb m, "tm" Aeson..?= fmap (String . pack . show) mbTm ] + [ "kind" .= String "Recv" , "msg" .= toObject verb m, "mux_at" Aeson..?= fmap jsonTime mbTm ] instance ToObject (Stateful.AnyMessage ps f) => ToObject (Stateful.TraceSendRecv ps f) where toObject verb (Stateful.TraceSendMsg tm m) = mconcat - [ "kind" .= String "Send" , "msg" .= toObject verb m, "tm" .= String (pack $ show tm) ] + [ "kind" .= String "Send" , "msg" .= toObject verb m, "mux_at" .= jsonTime tm ] toObject verb (Stateful.TraceRecvMsg mbTm m) = mconcat - [ "kind" .= String "Recv" , "msg" .= toObject verb m, "tm" Aeson..?= fmap (String . pack . show) mbTm ] + [ "kind" .= String "Recv" , "msg" .= toObject verb m, "mux_at" Aeson..?= fmap jsonTime mbTm ] +jsonTime :: Time -> Double +jsonTime (Time x) = realToFrac x instance ToObject (TraceTxSubmissionInbound txid tx) where toObject _verb (TraceTxSubmissionCollected count) = diff --git a/trace-dispatcher/src/Cardano/Logging/Formatter.hs b/trace-dispatcher/src/Cardano/Logging/Formatter.hs index 16de345dd87..aa7b0ef04ed 100644 --- a/trace-dispatcher/src/Cardano/Logging/Formatter.hs +++ b/trace-dispatcher/src/Cardano/Logging/Formatter.hs @@ -26,17 +26,22 @@ import qualified Control.Tracer as T import Data.Aeson ((.=)) import qualified Data.Aeson as AE import qualified Data.Aeson.Encoding as AE +import qualified Data.Aeson.KeyMap as AE import Data.Functor.Contravariant import Data.Maybe (fromMaybe) import Data.Text as T (Text, intercalate, null, pack) import Data.Text.Lazy (toStrict) import Data.Text.Lazy.Builder as TB import Data.Text.Lazy.Encoding (decodeUtf8) -import Data.Time (UTCTime, defaultTimeLocale, formatTime, getCurrentTime) +import Data.Time (UTCTime, addUTCTime, defaultTimeLocale, formatTime, getCurrentTime) +import GHC.Clock (getMonotonicTime) import Network.HostName import System.IO.Unsafe (unsafePerformIO) +data I a = I a +instance Functor I where fmap f (I x) = I (f x) + encodingToText :: AE.Encoding -> Text {-# INLINE encodingToText #-} encodingToText = toStrict . decodeUtf8 . AE.encodingToLazyByteString @@ -45,6 +50,10 @@ timeFormatted :: UTCTime -> Text {-# INLINE timeFormatted #-} timeFormatted = pack . formatTime defaultTimeLocale "%F %H:%M:%S%4QZ" +timeFormattedT :: UTCTime -> Text +{-# INLINE timeFormattedT #-} +timeFormattedT = pack . formatTime defaultTimeLocale "%FT%H:%M:%S%8QZ" + -- If the hostname in the logs should be anything different from the system reported hostname, -- a new field would need to be added to PreFormatted to carry a new hostname argument to preFormatted. hostname :: Text @@ -84,13 +93,21 @@ preFormatted withForHuman = flip contramapM (\case (lc, Right msg) -> do + tm <- liftIO getMonotonicTime time <- liftIO getCurrentTime + let tmf tm' = flip addUTCTime time $ fromRational $ tm' - toRational tm threadId <- liftIO myThreadId let ns' = lcNSPrefix lc ++ lcNSInner lc threadTextShortened = T.pack $ drop 9 $ show threadId -- drop "ThreadId " prefix details = fromMaybe DNormal (lcDetails lc) condForHuman = let txt = forHuman msg in if T.null txt then Nothing else Just txt - machineFormatted = AE.toEncoding $ forMachine details msg + obj = forMachine details msg + -- nasty special case for a numeric "mux_tm" field + I obj' = (\f -> AE.alterF f "mux_at" obj) $ \case + Nothing -> I Nothing + Just (AE.Number tm') -> I $ Just $ AE.String $ timeFormattedT $ tmf $ toRational tm' + Just x -> I $ Just x + machineFormatted = AE.toEncoding $ obj' pure (lc, Right (PreFormatted { pfForHuman = if withForHuman then condForHuman else Nothing From 93d2c8481912309faf5a7d9058f9fdeca95710a0 Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Thu, 27 Nov 2025 11:02:11 -0800 Subject: [PATCH 24/69] leiosdemo202511: integrate ouroboros-network BearerBytes --- trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs | 1 - trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs | 1 - trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs | 1 - trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs | 1 - 4 files changed, 4 deletions(-) diff --git a/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs b/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs index e535dc3d305..5131d36efed 100644 --- a/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs +++ b/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs @@ -54,7 +54,6 @@ runPeerWithRequestor config mkDPRequestor peerErrorHandler = (acceptorTracer config) (Acceptor.codecDataPointForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) - (fromIntegral . LBS.length) channel (Acceptor.dataPointAcceptorPeer $ acceptorActions config dpRequestor []) `finally` peerErrorHandler ctx diff --git a/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs b/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs index 554aac56943..3a8537540f3 100644 --- a/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs +++ b/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs @@ -42,6 +42,5 @@ runPeerWithDPStore config dpStore = (forwarderTracer config) (Forwarder.codecDataPointForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) - (fromIntegral . LBS.length) channel (Forwarder.dataPointForwarderPeer $ readFromStore dpStore) diff --git a/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs b/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs index 175506dd981..511fb50e7f8 100644 --- a/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs +++ b/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs @@ -68,7 +68,6 @@ runPeerWithHandler config@AcceptorConfiguration{acceptorTracer, shouldWeStop} lo acceptorTracer (Acceptor.codecTraceObjectForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) - (fromIntegral . LBS.length) channel (Acceptor.traceObjectAcceptorPeer $ acceptorActions config (loHandler ctx)) `finally` peerErrorHandler ctx diff --git a/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs b/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs index e01bc8680db..bd460ba36c7 100644 --- a/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs +++ b/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs @@ -48,6 +48,5 @@ runPeerWithSink config sink = (forwarderTracer config) (Forwarder.codecTraceObjectForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) - (fromIntegral . LBS.length) channel (Forwarder.traceObjectForwarderPeer $ readFromSink sink) From b1dc13a8ae782cbe53e28347ccaaf56f39fa296d Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Wed, 3 Dec 2025 10:27:23 +0100 Subject: [PATCH 25/69] Add ouroboros-network and ouroboros-consensus SRPs for the Leios 202511 Demo NOTE: - Tests and benchmarks fail to build, and that's ok --- cabal.project | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/cabal.project b/cabal.project index f0fe0c83ebe..df38cebf485 100644 --- a/cabal.project +++ b/cabal.project @@ -97,14 +97,11 @@ if impl (ghc >= 9.12) constraints: hedgehog-extras == 0.7.0.0 - - - source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 045b3e39458d9ae077d3134858cedac70cfac8ba - --sha256: sha256-+M8WFkZY6qIxCUraqTc/9w+pphYqVOpnjIpXZeEZOpY= + tag: fe40068d881db59df3cb4be0cfd5a564a75bfabb + --sha256: sha256-qxj529w4d8dkpS5Kyv8aAAPu+hCQqtFvqpiJJxQ/BFE= subdir: ouroboros-consensus ouroboros-consensus-cardano @@ -112,3 +109,22 @@ source-repository-package ouroboros-consensus-diffusion sop-extras strict-sop-core + +source-repository-package + type: git + location: https://github.com/IntersectMBO/ouroboros-network.git + tag: 7e0069f85d973cfa665e1c3d0963ece269fb68e0 + --sha256: sha256-D85sAsK4Z9yyGll1rGILzuGw/xarzRDxZvOzgeHOjv4= + subdir: + cardano-ping + monoidal-synchronisation + quickcheck-monoids + network-mux + ouroboros-network + ouroboros-network-api + ouroboros-network-framework + ouroboros-network-mock + ouroboros-network-protocols + ouroboros-network-testing + ntp-client + cardano-client From 5c62bb9e4ad701c2de1ecb34815016d1765be953 Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Wed, 3 Dec 2025 14:38:35 +0100 Subject: [PATCH 26/69] Updates ouroboros-consensus and ouroboros-network SRPs to latest in Nicks branch --- cabal.project | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cabal.project b/cabal.project index df38cebf485..3bc1c83c3fa 100644 --- a/cabal.project +++ b/cabal.project @@ -97,11 +97,12 @@ if impl (ghc >= 9.12) constraints: hedgehog-extras == 0.7.0.0 +-- Points to ouroboros-consensus/leios-prototype source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: fe40068d881db59df3cb4be0cfd5a564a75bfabb - --sha256: sha256-qxj529w4d8dkpS5Kyv8aAAPu+hCQqtFvqpiJJxQ/BFE= + tag: a2e3c598b96efa1e2add0bc7b893a7a007ace606 + --sha256: sha256-uMImzqUvdDCyuso/fN0BEJuhj1BuT8U1Gafbhz4CBRU= subdir: ouroboros-consensus ouroboros-consensus-cardano @@ -110,11 +111,12 @@ source-repository-package sop-extras strict-sop-core +-- Points to ouroboros-network/nfrisby/leios-202511-demo source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-network.git - tag: 7e0069f85d973cfa665e1c3d0963ece269fb68e0 - --sha256: sha256-D85sAsK4Z9yyGll1rGILzuGw/xarzRDxZvOzgeHOjv4= + tag: 479f0d0d82413162c8444b912394dd74c052831f + --sha256: sha256-Up+Zh3+nHuwlHmpXgH0nNIvQ/yHm/Hxb9ZYQHibrDLc= subdir: cardano-ping monoidal-synchronisation From 71c79d828acfd7362938b94c7aa1b8e64bcb83b9 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 15 Dec 2025 12:24:51 +0100 Subject: [PATCH 27/69] Do not elide eb hash in traces --- cabal.project | 7 ++----- .../src/Cardano/Node/Tracing/Tracers/NodeToNode.hs | 5 +++-- .../src/Cardano/Tracing/OrphanInstances/Network.hs | 5 +++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/cabal.project b/cabal.project index 3bc1c83c3fa..2b3d57add58 100644 --- a/cabal.project +++ b/cabal.project @@ -101,15 +101,12 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: a2e3c598b96efa1e2add0bc7b893a7a007ace606 - --sha256: sha256-uMImzqUvdDCyuso/fN0BEJuhj1BuT8U1Gafbhz4CBRU= + tag: e3ffce853e85d6e5e9ff6c7c078816fea689a5b1 + --sha256: sha256-tFUNTbyhnaaNv8AFSCSs+pPhQydGgOuhfJMGv3pvE1M= subdir: ouroboros-consensus ouroboros-consensus-cardano - ouroboros-consensus-protocol ouroboros-consensus-diffusion - sop-extras - strict-sop-core -- Points to ouroboros-network/nfrisby/leios-202511-demo source-repository-package diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs index da4acd4d472..0ffd771c84f 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs @@ -37,7 +37,7 @@ import Network.TypedProtocol.Codec (AnyMessage (AnyMessageAndAgency)) import qualified Data.Bits as Bits import qualified Data.Vector as V -import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, leiosEbBytesSize, leiosTxBytesSize, prettyBitmap, prettyEbHash) +import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, leiosEbBytesSize, leiosTxBytesSize, prettyBitmap, prettyEbHash, hashLeiosEb) import qualified LeiosDemoOnlyTestFetch as LF import qualified LeiosDemoOnlyTestNotify as LN @@ -508,6 +508,7 @@ instance LogFormatting (AnyMessage (LN.LeiosNotify LeiosPoint ())) where instance LogFormatting (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where forHuman = showT + -- FIXME: Duplicated (orphan!) instance with Cardano.Tracing.OrphanInstances.Network forMachine _dtal (AnyMessageAndAgency _stok msg) = case msg of LF.MsgLeiosBlockRequest (MkLeiosPoint ebSlot ebHash) -> @@ -518,7 +519,7 @@ instance LogFormatting (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) w LF.MsgLeiosBlock eb -> mconcat [ "kind" .= String "MsgLeiosBlock" - , "eb" .= String "" + , "eb" .= hashLeiosEb eb , "ebBytesSize" .= Number (fromIntegral $ leiosEbBytesSize eb) ] diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index 87055bddf1d..2e5f3799ea3 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -144,7 +144,7 @@ import qualified Network.TypedProtocol.Stateful.Codec as Stateful import qualified Data.Bits as Bits import qualified Data.Vector as V -import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, leiosEbBytesSize, leiosTxBytesSize, prettyBitmap, prettyEbHash) +import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, leiosEbBytesSize, leiosTxBytesSize, prettyBitmap, prettyEbHash, hashLeiosEb) import LeiosDemoTypes (TraceLeiosKernel, TraceLeiosPeer, traceLeiosKernelToObject, traceLeiosPeerToObject) import qualified LeiosDemoOnlyTestFetch as LF import qualified LeiosDemoOnlyTestNotify as LN @@ -2924,6 +2924,7 @@ instance ToObject peer trTransformer = trStructured instance ToObject (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where + -- FIXME: Duplicated (orphan!) instance with Cardano.Node.Tracing.Tracers.NodeToNode toObject _verb (AnyMessageAndAgency _stok msg) = case msg of LF.MsgLeiosBlockRequest (MkLeiosPoint ebSlot ebHash) -> @@ -2934,7 +2935,7 @@ instance ToObject (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where LF.MsgLeiosBlock eb -> mconcat [ "kind" .= String "MsgLeiosBlock" - , "eb" .= String "" + , "eb" .= hashLeiosEb eb , "ebBytesSize" .= Number (fromIntegral $ leiosEbBytesSize eb) ] From b6a9eb6d692ffbfe412c0dc3377c33a08eb3c55f Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 15 Dec 2025 15:28:35 +0100 Subject: [PATCH 28/69] Upstream trace conversion into ouroboros-consensus --- cabal.project | 4 +- cardano-node/cardano-node.cabal | 1 - .../Node/Tracing/Tracers/NodeToNode.hs | 57 ++----------- .../Tracing/OrphanInstances/Network.hs | 84 +++++-------------- 4 files changed, 28 insertions(+), 118 deletions(-) diff --git a/cabal.project b/cabal.project index 2b3d57add58..191d2fd6e16 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: e3ffce853e85d6e5e9ff6c7c078816fea689a5b1 - --sha256: sha256-tFUNTbyhnaaNv8AFSCSs+pPhQydGgOuhfJMGv3pvE1M= + tag: ed637941fc1a252ecdf2a1b1600ef95d17b52101 + --sha256: sha256-hvK7R9f28LV9daPn7PFBJZexh2cbsZGDYEGNdvew4nw= subdir: ouroboros-consensus ouroboros-consensus-cardano diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index da31ad77524..1624a529e08 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -226,7 +226,6 @@ library , transformers-except , typed-protocols >= 0.3 , typed-protocols-stateful >= 0.3 - , vector , yaml executable cardano-node diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs index 0ffd771c84f..ccddf7ad479 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs @@ -23,23 +23,22 @@ import Ouroboros.Network.Block (Point, Serialised (..), blockHash) import Ouroboros.Network.DeltaQ (GSV (..), PeerGSV (..)) import Ouroboros.Network.KeepAlive (TraceKeepAliveClient (..)) import Ouroboros.Network.Protocol.BlockFetch.Type (BlockFetch (..), Message (..)) -import qualified Ouroboros.Network.Protocol.TxSubmission2.Type as STX import qualified Ouroboros.Network.Protocol.KeepAlive.Type as KA import qualified Ouroboros.Network.Protocol.PeerSharing.Type as PS +import qualified Ouroboros.Network.Protocol.TxSubmission2.Type as STX import Ouroboros.Network.SizeInBytes (SizeInBytes (..)) import Control.Monad.Class.MonadTime.SI (Time (..)) -import Data.Aeson (ToJSON (..), Value (Array, Number, String), (.=)) +import Data.Aeson (ToJSON (..), Value (String), (.=)) import Data.Proxy (Proxy (..)) -import Data.Time (DiffTime) import Data.Text (pack) +import Data.Time (DiffTime) import Network.TypedProtocol.Codec (AnyMessage (AnyMessageAndAgency)) -import qualified Data.Bits as Bits -import qualified Data.Vector as V -import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, leiosEbBytesSize, leiosTxBytesSize, prettyBitmap, prettyEbHash, hashLeiosEb) import qualified LeiosDemoOnlyTestFetch as LF import qualified LeiosDemoOnlyTestNotify as LN +import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, + messageLeiosFetchToObject, prettyEbHash) -------------------------------------------------------------------------------- -- BlockFetch Tracer @@ -508,50 +507,8 @@ instance LogFormatting (AnyMessage (LN.LeiosNotify LeiosPoint ())) where instance LogFormatting (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where forHuman = showT - -- FIXME: Duplicated (orphan!) instance with Cardano.Tracing.OrphanInstances.Network - forMachine _dtal (AnyMessageAndAgency _stok msg) = case msg of - - LF.MsgLeiosBlockRequest (MkLeiosPoint ebSlot ebHash) -> - mconcat [ "kind" .= String "MsgLeiosBlockRequest" - , "ebSlot" .= ebSlot - , "ebHash" .= ebHash - ] - - LF.MsgLeiosBlock eb -> - mconcat [ "kind" .= String "MsgLeiosBlock" - , "eb" .= hashLeiosEb eb - , "ebBytesSize" .= Number (fromIntegral $ leiosEbBytesSize eb) - ] - - LF.MsgLeiosBlockTxsRequest (MkLeiosPoint ebSlot ebHash) bitmaps -> - mconcat [ "kind" .= String "MsgLeiosBlockTxsRequest" - , "ebSlot" .= ebSlot - , "ebHash" .= ebHash - , "numTxs" .= Number (fromIntegral $ sum $ map (Bits.popCount . snd) bitmaps) - , "bitmaps" .= Array (V.fromList $ map (String . pack . prettyBitmap) bitmaps) - ] - - LF.MsgLeiosBlockTxs txs -> - mconcat [ "kind" .= String "MsgLeiosBlockTxs" - , "numTxs" .= Number (fromIntegral (V.length txs)) - , "txsBytesSize" .= Number (fromIntegral $ V.sum $ V.map leiosTxBytesSize txs) - , "txs" .= String "" - ] - - -- LF.MsgLeiosVotesRequest - -- LF.MsgLeiosVoteDelivery - - -- LF.MsgLeiosBlockRangeRequest - -- LF.MsgLeiosNextBlockAndTxsInRange - -- LF.MsgLeiosLastBlockAndTxsInRange - - LF.MsgDone -> - mconcat [ "kind" .= String "MsgDone" - ] - - where --- agency :: Aeson.Object --- agency = "agency" .= show stok + forMachine _dtal (AnyMessageAndAgency _stok msg) = + messageLeiosFetchToObject msg instance MetaTrace (AnyMessage (LN.LeiosNotify LeiosPoint ())) where namespaceFor (AnyMessageAndAgency _stok msg) = case msg of diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index 2e5f3799ea3..35b4dda95e3 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -27,20 +27,20 @@ module Cardano.Tracing.OrphanInstances.Network , FetchDecisionToJSON (..) ) where +import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers (..)) +import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable (..)) +import Cardano.Network.Types (LedgerStateJudgement (..)) import Cardano.Node.Queries (ConvertTxId) import Cardano.Tracing.OrphanInstances.Common import Cardano.Tracing.Render +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 (ConvertRawHash (..), Header, getHeader) import Ouroboros.Consensus.Ledger.Query (BlockQuery, Query) import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr, GenTx, GenTxId, HasTxs (..), TxId, txId) import Ouroboros.Consensus.Node.Run (RunNode, estimateBlockSize) -import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers(..)) -import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable(..)) -import Cardano.Network.Types (LedgerStateJudgement(..)) -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 qualified Ouroboros.Network.AnchoredSeq as AS import Ouroboros.Network.Block @@ -51,15 +51,14 @@ import Ouroboros.Network.BlockFetch.Decision (FetchDecision, FetchDecl import qualified Ouroboros.Network.BlockFetch.Decision.Trace as BlockFetch import Ouroboros.Network.ConnectionHandler (ConnectionHandlerTrace (..)) import Ouroboros.Network.ConnectionId (ConnectionId (..)) -import Ouroboros.Network.ConnectionManager.Core as ConnMgr (Trace (..)) import Ouroboros.Network.ConnectionManager.ConnMap (ConnMap (..), LocalAddr (..)) +import Ouroboros.Network.ConnectionManager.Core as ConnMgr (Trace (..)) import Ouroboros.Network.ConnectionManager.State (ConnStateId (..)) import Ouroboros.Network.ConnectionManager.Types (AbstractState (..), - ConnectionManagerCounters (..), - OperationResult (..)) + ConnectionManagerCounters (..), OperationResult (..)) import qualified Ouroboros.Network.ConnectionManager.Types as ConnMgr -import qualified Ouroboros.Network.Diffusion.Common as Diffusion import Ouroboros.Network.DeltaQ (GSV (..), PeerGSV (..)) +import qualified Ouroboros.Network.Diffusion.Common as Diffusion import Ouroboros.Network.Driver.Limits (ProtocolLimitFailure (..)) import qualified Ouroboros.Network.Driver.Stateful as Stateful import Ouroboros.Network.ExitPolicy (RepromoteDelay (..)) @@ -73,10 +72,10 @@ import qualified Ouroboros.Network.NodeToClient as NtC import Ouroboros.Network.NodeToNode (ErrorPolicyTrace (..), NodeToNodeVersion (..), NodeToNodeVersionData (..), RemoteAddress, TraceSendRecv (..), WithAddr (..)) import qualified Ouroboros.Network.NodeToNode as NtN -import Ouroboros.Network.PeerSelection.Governor (AssociationMode (..), DebugPeerSelection (..), - DebugPeerSelectionState (..), PeerSelectionCounters, PeerSelectionState (..), - PeerSelectionTargets (..), PeerSelectionView (..), TracePeerSelection (..), - peerSelectionStateToCounters) +import Ouroboros.Network.PeerSelection.Governor (AssociationMode (..), + DebugPeerSelection (..), DebugPeerSelectionState (..), PeerSelectionCounters, + PeerSelectionState (..), PeerSelectionTargets (..), PeerSelectionView (..), + TracePeerSelection (..), peerSelectionStateToCounters) import Ouroboros.Network.PeerSelection.LedgerPeers import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing (..)) import Ouroboros.Network.PeerSelection.PeerStateActions (PeerSelectionActionsTrace (..)) @@ -89,7 +88,7 @@ import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers import Ouroboros.Network.PeerSelection.State.KnownPeers (KnownPeerInfo (..)) import qualified Ouroboros.Network.PeerSelection.State.KnownPeers as KnownPeers import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency (..), - LocalRootPeers, WarmValency (..), LocalRootConfig (..)) + LocalRootConfig (..), LocalRootPeers, WarmValency (..)) import qualified Ouroboros.Network.PeerSelection.State.LocalRootPeers as LocalRootPeers import Ouroboros.Network.PeerSelection.Types (PeerStatus (..)) import Ouroboros.Network.Protocol.BlockFetch.Type (BlockFetch, Message (..)) @@ -140,14 +139,11 @@ import Network.Socket (SockAddr (..)) import Network.TypedProtocol.Codec (AnyMessage (AnyMessageAndAgency)) import qualified Network.TypedProtocol.Stateful.Codec as Stateful -{- HLINT ignore "Use record patterns" -} - -import qualified Data.Bits as Bits -import qualified Data.Vector as V -import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, leiosEbBytesSize, leiosTxBytesSize, prettyBitmap, prettyEbHash, hashLeiosEb) -import LeiosDemoTypes (TraceLeiosKernel, TraceLeiosPeer, traceLeiosKernelToObject, traceLeiosPeerToObject) import qualified LeiosDemoOnlyTestFetch as LF import qualified LeiosDemoOnlyTestNotify as LN +import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, TraceLeiosKernel, + TraceLeiosPeer, messageLeiosFetchToObject, prettyEbHash, + traceLeiosKernelToObject, traceLeiosPeerToObject) -- -- * instances of @HasPrivacyAnnotation@ and @HasSeverityAnnotation@ @@ -2924,50 +2920,8 @@ instance ToObject peer trTransformer = trStructured instance ToObject (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where - -- FIXME: Duplicated (orphan!) instance with Cardano.Node.Tracing.Tracers.NodeToNode - toObject _verb (AnyMessageAndAgency _stok msg) = case msg of - - LF.MsgLeiosBlockRequest (MkLeiosPoint ebSlot ebHash) -> - mconcat [ "kind" .= String "MsgLeiosBlockRequest" - , "ebSlot" .= ebSlot - , "ebHash" .= ebHash - ] - - LF.MsgLeiosBlock eb -> - mconcat [ "kind" .= String "MsgLeiosBlock" - , "eb" .= hashLeiosEb eb - , "ebBytesSize" .= Number (fromIntegral $ leiosEbBytesSize eb) - ] - - LF.MsgLeiosBlockTxsRequest (MkLeiosPoint ebSlot ebHash) bitmaps -> - mconcat [ "kind" .= String "MsgLeiosBlockTxsRequest" - , "ebSlot" .= ebSlot - , "ebHash" .= ebHash - , "numTxs" .= Number (fromIntegral $ sum $ map (Bits.popCount . snd) bitmaps) - , "bitmaps" .= Array (V.fromList $ map (String . pack . prettyBitmap) bitmaps) - ] - - LF.MsgLeiosBlockTxs txs -> - mconcat [ "kind" .= String "MsgLeiosBlockTxs" - , "numTxs" .= Number (fromIntegral (V.length txs)) - , "txsBytesSize" .= Number (fromIntegral $ V.sum $ V.map leiosTxBytesSize txs) - , "txs" .= String "" - ] - - -- LF.MsgLeiosVotesRequest - -- LF.MsgLeiosVoteDelivery - - -- LF.MsgLeiosBlockRangeRequest - -- LF.MsgLeiosNextBlockAndTxsInRange - -- LF.MsgLeiosLastBlockAndTxsInRange - - LF.MsgDone -> - mconcat [ "kind" .= String "MsgDone" - ] - - where --- agency :: Aeson.Object --- agency = "agency" .= show stok + toObject _verb (AnyMessageAndAgency _stok msg) = + messageLeiosFetchToObject msg instance Transformable Text IO TraceLeiosKernel where trTransformer = trStructured From f0ef9b82b46908d8c3ed7d44aa407056d61cf0c0 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Thu, 8 Jan 2026 16:29:13 +0100 Subject: [PATCH 29/69] Update ouroboros-consensus srp --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 191d2fd6e16..c71c796e058 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: ed637941fc1a252ecdf2a1b1600ef95d17b52101 - --sha256: sha256-hvK7R9f28LV9daPn7PFBJZexh2cbsZGDYEGNdvew4nw= + tag: cdc39a0769ff07166da95712fd7cc559b2a75da8 + --sha256: sha256-KFZsKOQv8iPSfqzZo81Zg3kSYq9MliU0GzVhK5q8Y/4= subdir: ouroboros-consensus ouroboros-consensus-cardano From 9a429a33e8a204fb99a01df5d83b528f12bf4c54 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Wed, 21 Jan 2026 14:19:29 +0100 Subject: [PATCH 30/69] Bump ouroboros-consensus srp --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index c71c796e058..b8a7399b94a 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: cdc39a0769ff07166da95712fd7cc559b2a75da8 - --sha256: sha256-KFZsKOQv8iPSfqzZo81Zg3kSYq9MliU0GzVhK5q8Y/4= + tag: a571776defab2aff8e1e0a9e62646494a1a8af08 + --sha256: sha256-eucib6kUGFbiIM09nNHC+XR+gUSjiAtpKxcuKO/Kl1Q= subdir: ouroboros-consensus ouroboros-consensus-cardano From 378beefe63feb3498d2e25c9189894bb26d448e8 Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Fri, 23 Jan 2026 13:35:32 +0100 Subject: [PATCH 31/69] leios: Fixes compilation due to missing pattern matches --- .../Cardano/Node/Tracing/Tracers/Consensus.hs | 9 ++++++++ .../Tracing/OrphanInstances/Consensus.hs | 6 +++++ cardano-node/src/Cardano/Tracing/Tracers.hs | 23 +++++++++++-------- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 1eaa93077a8..14ccf301a21 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -1583,6 +1583,10 @@ instance ( tx ~ GenTx blk (blockHash blk) , "blockSize" .= toJSON (getSizeInBytes $ estimateBlockSize (getHeader blk)) ] + forMachine _dtal TraceForgedEndorserBlock = + mconcat + [ "kind" .= String "TraceForgedEndorserBlock" + ] forHuman (TraceStartLeadershipCheck slotNo) = "Checking for leadership in slot " <> showT (unSlotNo slotNo) @@ -1658,6 +1662,7 @@ instance ( tx ~ GenTx blk "Adoption thread died in slot " <> showT (unSlotNo slotNo) <> ": " <> renderHeaderHash (Proxy @blk) (blockHash blk) + forHuman TraceForgedEndorserBlock = "Forged an Endorser Block" asMetrics (TraceForgeStateUpdateError slot reason) = IntM "Forge.StateUpdateError" (fromIntegral $ unSlotNo slot) : @@ -1711,6 +1716,8 @@ instance ( tx ~ GenTx blk [CounterM "Forge.adopted" Nothing] asMetrics (TraceAdoptionThreadDied _slot _) = [CounterM "Forge.adoption-thread-died" Nothing] + asMetrics TraceForgedEndorserBlock = + [] instance MetaTrace (TraceForgeEvent blk) where namespaceFor TraceStartLeadershipCheck {} = @@ -1751,6 +1758,8 @@ instance MetaTrace (TraceForgeEvent blk) where Namespace [] ["AdoptedBlock"] namespaceFor TraceAdoptionThreadDied {} = Namespace [] ["AdoptionThreadDied"] + namespaceFor TraceForgedEndorserBlock {} = + Namespace [] ["ForgedEndorserBlock"] severityFor (Namespace _ ["StartLeadershipCheck"]) _ = Just Info severityFor (Namespace _ ["SlotIsImmutable"]) _ = Just Error diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs index 587ac517702..e1bb2b3cb56 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs @@ -323,6 +323,7 @@ instance HasSeverityAnnotation (TraceForgeEvent blk) where getSeverityAnnotation TraceForgedInvalidBlock {} = Error getSeverityAnnotation TraceAdoptedBlock {} = Info getSeverityAnnotation TraceAdoptionThreadDied {} = Error + getSeverityAnnotation TraceForgedEndorserBlock {} = Info instance HasPrivacyAnnotation (TraceLocalTxSubmissionServerEvent blk) @@ -493,6 +494,7 @@ instance ( tx ~ GenTx blk "Adoption Thread died in slot " <> showT (unSlotNo slotNo) <> ": " <> renderHeaderHash (Proxy @blk) (blockHash blk) + TraceForgedEndorserBlock -> const "Forged Endorser Block" -- TODO(bladyjoker) instance Transformable Text IO (TraceLocalTxSubmissionServerEvent blk) where @@ -1749,6 +1751,10 @@ instance ( RunNode blk (blockHash blk) , "blockSize" .= toJSON (getSizeInBytes $ estimateBlockSize (getHeader blk)) ] + toObject _verb TraceForgedEndorserBlock = + mconcat + [ "kind" .= String "TraceForgedEndorserBlock" + ] instance ToObject (TraceLocalTxSubmissionServerEvent blk) where diff --git a/cardano-node/src/Cardano/Tracing/Tracers.hs b/cardano-node/src/Cardano/Tracing/Tracers.hs index 5154aeb95c4..f21ab39ab6b 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 @@ -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,7 +782,7 @@ 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 @@ -1126,7 +1126,7 @@ teeForge :: , 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) ) => ForgeTracers @@ -1156,6 +1156,7 @@ teeForge ft tverb tr = Tracer $ Consensus.TraceForgedInvalidBlock{} -> teeForge' (ftForgedInvalid ft) Consensus.TraceAdoptedBlock{} -> teeForge' (ftAdopted ft) Consensus.TraceAdoptionThreadDied{} -> teeForge' (ftTraceAdoptionThreadDied ft) + Consensus.TraceForgedEndorserBlock{} -> teeForge' (ftForged ft) case event of Consensus.TraceStartLeadershipCheck _slot -> pure () _ -> traceWith (toLogObject' tverb tr) ev @@ -1206,6 +1207,8 @@ teeForge' tr = LogValue "adoptedSlotLast" $ PureI $ fromIntegral $ unSlotNo slot Consensus.TraceAdoptionThreadDied slot _ -> LogValue "adoptionThreadDied" $ PureI $ fromIntegral $ unSlotNo slot + Consensus.TraceForgedEndorserBlock -> + LogValue "forgedEndorserBlock" $ PureI 0 forgeTracer :: forall blk. @@ -1213,7 +1216,7 @@ 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 ) From e5cd1fe76e21fefadc5819238558c76a6edb1b02 Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Tue, 27 Jan 2026 23:29:22 +0100 Subject: [PATCH 32/69] leios: Defines new metrics, wires in ConsensusJson --- cardano-node/cardano-node.cabal | 1 + .../src/Cardano/Node/TraceConstraints.hs | 11 +++- .../Cardano/Node/Tracing/Tracers/Consensus.hs | 57 ++++++++++++------- .../Tracing/OrphanInstances/Consensus.hs | 24 ++++---- cardano-node/src/Cardano/Tracing/Tracers.hs | 33 +++++------ 5 files changed, 69 insertions(+), 57 deletions(-) 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 14ccf301a21..78cb9441e9c 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,7 @@ import Data.Word (Word32, Word64) import Network.TypedProtocol.Core import LeiosDemoTypes (TraceLeiosKernel, TraceLeiosPeer, traceLeiosKernelToObject, traceLeiosPeerToObject) +import Ouroboros.Consensus.Observe.ConsensusJson (ConsensusJson(toConsensusJson)) instance (LogFormatting adr, Show adr) => LogFormatting (ConnectionId adr) where forMachine _dtal (ConnectionId local' remote) = @@ -1447,7 +1448,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 +1534,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 @@ -1583,10 +1582,6 @@ instance ( tx ~ GenTx blk (blockHash blk) , "blockSize" .= toJSON (getSizeInBytes $ estimateBlockSize (getHeader blk)) ] - forMachine _dtal TraceForgedEndorserBlock = - mconcat - [ "kind" .= String "TraceForgedEndorserBlock" - ] forHuman (TraceStartLeadershipCheck slotNo) = "Checking for leadership in slot " <> showT (unSlotNo slotNo) @@ -1646,7 +1641,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) @@ -1662,7 +1657,6 @@ instance ( tx ~ GenTx blk "Adoption thread died in slot " <> showT (unSlotNo slotNo) <> ": " <> renderHeaderHash (Proxy @blk) (blockHash blk) - forHuman TraceForgedEndorserBlock = "Forged an Endorser Block" asMetrics (TraceForgeStateUpdateError slot reason) = IntM "Forge.StateUpdateError" (fromIntegral $ unSlotNo slot) : @@ -1705,9 +1699,32 @@ 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-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes . fbNewBlockSize $ fb) + , CounterM "Forge.endorser-block.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes . fbNewEndorserBlockSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes . fbMempoolRestSize $ fb) + + , CounterM "Forge.ranking-block.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory . fbNewBlockSize $ fb) + , CounterM "Forge.endorser-block.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory . fbNewEndorserBlockSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory . fbMempoolRestSize $ fb) + + , CounterM "Forge.ranking-block.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps . fbNewBlockSize $ fb) + , CounterM "Forge.endorser-block.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps . fbNewEndorserBlockSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps . fbMempoolRestSize $ fb) + + , CounterM "Forge.ranking-block.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes . fbNewBlockSize $ fb) + , CounterM "Forge.endorser-block.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes . fbNewEndorserBlockSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes . 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 _ _) = @@ -1716,8 +1733,6 @@ instance ( tx ~ GenTx blk [CounterM "Forge.adopted" Nothing] asMetrics (TraceAdoptionThreadDied _slot _) = [CounterM "Forge.adoption-thread-died" Nothing] - asMetrics TraceForgedEndorserBlock = - [] instance MetaTrace (TraceForgeEvent blk) where namespaceFor TraceStartLeadershipCheck {} = @@ -1758,8 +1773,6 @@ instance MetaTrace (TraceForgeEvent blk) where Namespace [] ["AdoptedBlock"] namespaceFor TraceAdoptionThreadDied {} = Namespace [] ["AdoptionThreadDied"] - namespaceFor TraceForgedEndorserBlock {} = - Namespace [] ["ForgedEndorserBlock"] severityFor (Namespace _ ["StartLeadershipCheck"]) _ = Just Info severityFor (Namespace _ ["SlotIsImmutable"]) _ = Just Error diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs index e1bb2b3cb56..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 @@ -323,7 +324,6 @@ instance HasSeverityAnnotation (TraceForgeEvent blk) where getSeverityAnnotation TraceForgedInvalidBlock {} = Error getSeverityAnnotation TraceAdoptedBlock {} = Info getSeverityAnnotation TraceAdoptionThreadDied {} = Error - getSeverityAnnotation TraceForgedEndorserBlock {} = Info instance HasPrivacyAnnotation (TraceLocalTxSubmissionServerEvent blk) @@ -403,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 @@ -477,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) @@ -494,7 +495,6 @@ instance ( tx ~ GenTx blk "Adoption Thread died in slot " <> showT (unSlotNo slotNo) <> ": " <> renderHeaderHash (Proxy @blk) (blockHash blk) - TraceForgedEndorserBlock -> const "Forged Endorser Block" -- TODO(bladyjoker) instance Transformable Text IO (TraceLocalTxSubmissionServerEvent blk) where @@ -1618,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 @@ -1701,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 @@ -1751,10 +1751,6 @@ instance ( RunNode blk (blockHash blk) , "blockSize" .= toJSON (getSizeInBytes $ estimateBlockSize (getHeader blk)) ] - toObject _verb TraceForgedEndorserBlock = - mconcat - [ "kind" .= String "TraceForgedEndorserBlock" - ] instance ToObject (TraceLocalTxSubmissionServerEvent blk) where diff --git a/cardano-node/src/Cardano/Tracing/Tracers.hs b/cardano-node/src/Cardano/Tracing/Tracers.hs index f21ab39ab6b..0bc20dd2cc9 100644 --- a/cardano-node/src/Cardano/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Tracing/Tracers.hs @@ -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 @@ -786,7 +786,7 @@ mkConsensusTracers , ToObject (ForgeStateUpdateError blk) , Consensus.RunNode blk , HasKESMetricsData blk - , HasKESInfo blk + , HasKESInfo blk, ConsensusJson (Consensus.ForgedBlock blk) ) => Maybe EKGDirect -> TraceSelection @@ -1127,7 +1127,7 @@ teeForge :: , ToObject (LedgerErr (LedgerState blk)) , ToObject (OtherHeaderEnvelopeError blk) , ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (BlockProtocol blk)) - , ToObject (ForgeStateUpdateError blk) + , ToObject (ForgeStateUpdateError blk), ConsensusJson (Consensus.ForgedBlock blk) ) => ForgeTracers -> TracingVerbosity @@ -1156,7 +1156,6 @@ teeForge ft tverb tr = Tracer $ Consensus.TraceForgedInvalidBlock{} -> teeForge' (ftForgedInvalid ft) Consensus.TraceAdoptedBlock{} -> teeForge' (ftAdopted ft) Consensus.TraceAdoptionThreadDied{} -> teeForge' (ftTraceAdoptionThreadDied ft) - Consensus.TraceForgedEndorserBlock{} -> teeForge' (ftForged ft) case event of Consensus.TraceStartLeadershipCheck _slot -> pure () _ -> traceWith (toLogObject' tverb tr) ev @@ -1197,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 @@ -1207,8 +1206,6 @@ teeForge' tr = LogValue "adoptedSlotLast" $ PureI $ fromIntegral $ unSlotNo slot Consensus.TraceAdoptionThreadDied slot _ -> LogValue "adoptionThreadDied" $ PureI $ fromIntegral $ unSlotNo slot - Consensus.TraceForgedEndorserBlock -> - LogValue "forgedEndorserBlock" $ PureI 0 forgeTracer :: forall blk. @@ -1218,7 +1215,7 @@ forgeTracer , ToObject (OtherHeaderEnvelopeError blk) , ToObject (Ouroboros.Consensus.Protocol.Abstract.ValidationErr (BlockProtocol blk)) , ToObject (ForgeStateUpdateError blk) - , HasKESInfo blk + , HasKESInfo blk, ConsensusJson (Consensus.ForgedBlock blk) ) => TracingVerbosity -> Trace IO Text From 16b828c95e2b53e3eb25546db2789f9f3ba88c70 Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Wed, 28 Jan 2026 10:32:53 +0100 Subject: [PATCH 33/69] leios: Add transaction counts to metrics --- .../Cardano/Node/Tracing/Tracers/Consensus.hs | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 78cb9441e9c..0246155ee61 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -83,6 +83,7 @@ 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) = @@ -1705,21 +1706,25 @@ instance ( tx ~ GenTx blk -- NOTE(bladyjoker): New!!! , CounterM "Forge.ranking-block.total-count" Nothing - , CounterM "Forge.ranking-block.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes . fbNewBlockSize $ fb) - , CounterM "Forge.endorser-block.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes . fbNewEndorserBlockSize $ fb) - , CounterM "Forge.rest-in-mempool.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes . fbMempoolRestSize $ fb) + , 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-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory . fbNewBlockSize $ fb) - , CounterM "Forge.endorser-block.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory . fbNewEndorserBlockSize $ fb) - , CounterM "Forge.rest-in-mempool.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory . 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-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps . fbNewBlockSize $ fb) - , CounterM "Forge.endorser-block.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps . fbNewEndorserBlockSize $ fb) - , CounterM "Forge.rest-in-mempool.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps . 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-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes . fbNewBlockSize $ fb) - , CounterM "Forge.endorser-block.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes . fbNewEndorserBlockSize $ fb) - , CounterM "Forge.rest-in-mempool.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes . 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 _ -> [ From 70911d171739b486daa0f98a467583b93975dced Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Wed, 28 Jan 2026 13:50:13 +0100 Subject: [PATCH 34/69] leios: Update ouroboros-consensus and ouroboros-network SRPs --- cabal.project | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cabal.project b/cabal.project index b8a7399b94a..809819c5715 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: c4318c0d8d0111ed0e4b70031a802a324d68ce12 + --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 From 7ef9ef7134b563d00ed60b736d1359066f30f95b Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Wed, 28 Jan 2026 14:35:08 +0100 Subject: [PATCH 35/69] leios: Update ouroboros-consensus SRP --- cabal.project | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cabal.project b/cabal.project index 809819c5715..b8cb5e185a9 100644 --- a/cabal.project +++ b/cabal.project @@ -101,7 +101,7 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: c4318c0d8d0111ed0e4b70031a802a324d68ce12 + tag: 86cc78704115007dc6c75185ae83decaa8e89348 --sha256: sha256-K/q+sxmDrCaNEjAicoDYZwLc8gSw+Kw4mO0qbM8MujU= subdir: ouroboros-consensus From 399ef9c0b8ab0d72526913fe4d464be359f6dea2 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Thu, 29 Jan 2026 08:56:27 +0100 Subject: [PATCH 36/69] Disable codeowners on leios-prototype branch --- CODEOWNERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index 497887eca97..456c46715dc 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,6 +1,7 @@ # catch-all -* @intersectmbo/cardano-node-maintainers +# FIXME: codeowners disabled for leios-prototype +# * @intersectmbo/cardano-node-maintainers # Specific reviewers for code pieces # NB - The last matching pattern takes precedence From 0b70e41f5821e86666d516932cab7b6fbe0900f5 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Thu, 29 Jan 2026 14:59:13 +0100 Subject: [PATCH 37/69] Define metrics from separate TraceLeiosBlockForged event --- .../Cardano/Node/Tracing/Tracers/Consensus.hs | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 0246155ee61..10e96b24707 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -40,9 +40,12 @@ 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, TxMeasureMetrics (txMeasureMetricTxSizeBytes, txMeasureMetricExUnitsMemory, txMeasureMetricExUnitsSteps, txMeasureMetricRefScriptsSizeBytes), TxLimits (TxMeasure)) + HasTxId, LedgerSupportsMempool, TxLimits (TxMeasure), + TxMeasureMetrics (txMeasureMetricExUnitsMemory, txMeasureMetricExUnitsSteps, txMeasureMetricRefScriptsSizeBytes, txMeasureMetricTxSizeBytes), + txForgetValidated, txId) import Ouroboros.Consensus.Ledger.SupportsProtocol import Ouroboros.Consensus.Mempool (MempoolSize (..), TraceEventMempool (..)) +import Ouroboros.Consensus.Mempool.TxSeq (TxSeqMeasure (mCount, mSize)) import Ouroboros.Consensus.MiniProtocol.BlockFetch.Server (TraceBlockFetchServerEvent (..)) import Ouroboros.Consensus.MiniProtocol.ChainSync.Client @@ -54,6 +57,7 @@ import Ouroboros.Consensus.MiniProtocol.LocalTxSubmission.Server import Ouroboros.Consensus.Node.GSM import Ouroboros.Consensus.Node.Run (SerialiseNodeToNodeConstraints, estimateBlockSize) import Ouroboros.Consensus.Node.Tracers +import Ouroboros.Consensus.Observe.ConsensusJson (ConsensusJson (toConsensusJson)) import qualified Ouroboros.Consensus.Protocol.Ledger.HotKey as HotKey import Ouroboros.Consensus.Util.Enclose import qualified Ouroboros.Network.AnchoredFragment as AF @@ -81,9 +85,8 @@ import Data.Time (NominalDiffTime) 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)) +import LeiosDemoTypes (TraceLeiosKernel (..), TraceLeiosPeer, leiosEbTxs, + traceLeiosKernelToObject, traceLeiosPeerToObject) instance (LogFormatting adr, Show adr) => LogFormatting (ConnectionId adr) where forMachine _dtal (ConnectionId local' remote) = @@ -1705,31 +1708,17 @@ instance ( tx ~ GenTx blk , 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-count" (Just . fromInteger . toInteger . mCount . fbMempoolRestSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes . mSize . fbMempoolRestSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory . mSize . fbMempoolRestSize $ fb) + , CounterM "Forge.rest-in-mempool.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps . mSize . fbMempoolRestSize $ 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 _ _) = @@ -2302,6 +2291,17 @@ instance LogFormatting TraceLeiosKernel where forHuman = showT forMachine _dtal = traceLeiosKernelToObject + asMetrics (TraceLeiosBlockForged{eb, ebMeasure}) = + [ CounterM "Forge.endorser-block.total-count" Nothing + , + CounterM "Forge.endorser-block.total-tx-count" (Just . fromIntegral . length $ leiosEbTxs eb) + , CounterM "Forge.endorser-block.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes $ ebMeasure) + ] + asMetrics _ = [] + instance MetaTrace TraceLeiosKernel where namespaceFor _ = Namespace [] [] severityFor _ _ = Just Debug From e90f99e83aec05f8ca095208938a9c0c0bdcad00 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Thu, 29 Jan 2026 15:52:15 +0100 Subject: [PATCH 38/69] Bump o-c srp --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index b8cb5e185a9..f48d1495cee 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 86cc78704115007dc6c75185ae83decaa8e89348 - --sha256: sha256-K/q+sxmDrCaNEjAicoDYZwLc8gSw+Kw4mO0qbM8MujU= + tag: 8f0e1423c99bcfa0025ae5476a5467a4af0d2828 + --sha256: sha256-/1hOntoPR10b7e2NogYzlN0qaBeuXk3O1UbGi9MwkBI= subdir: ouroboros-consensus ouroboros-consensus-cardano From 61722be9f4a9a53229d2b155d0131f94c4c147af Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 2 Feb 2026 11:56:36 +0100 Subject: [PATCH 39/69] Fix import to LeiosDemoDb --- cardano-node/src/Cardano/Node/Run.hs | 2 +- .../src/Cardano/Node/Tracing/Tracers/Consensus.hs | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Run.hs b/cardano-node/src/Cardano/Node/Run.hs index 9844d26cd4f..4e97a2ace2a 100644 --- a/cardano-node/src/Cardano/Node/Run.hs +++ b/cardano-node/src/Cardano/Node/Run.hs @@ -169,7 +169,7 @@ import Paths_cardano_node (version) import Paths_cardano_node (version) -import LeiosDemoTypes (demoNewLeiosDbConnectionIO) +import LeiosDemoDb (demoNewLeiosDbConnectionIO) {- HLINT ignore "Fuse concatMap/map" -} {- HLINT ignore "Redundant <$>" -} diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 10e96b24707..97a427e6943 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -2293,12 +2293,11 @@ instance LogFormatting TraceLeiosKernel where asMetrics (TraceLeiosBlockForged{eb, ebMeasure}) = [ CounterM "Forge.endorser-block.total-count" Nothing - , - CounterM "Forge.endorser-block.total-tx-count" (Just . fromIntegral . length $ leiosEbTxs eb) - , CounterM "Forge.endorser-block.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes $ ebMeasure) - , CounterM "Forge.endorser-block.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory $ ebMeasure) - , CounterM "Forge.endorser-block.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps $ ebMeasure) - , CounterM "Forge.endorser-block.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-count" (Just . fromIntegral . length $ leiosEbTxs eb) + , CounterM "Forge.endorser-block.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes $ ebMeasure) ] asMetrics _ = [] From 0a5e9b132b894c3e97f2ff53aa6dac1fbbafe565 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 9 Feb 2026 22:12:19 +0100 Subject: [PATCH 40/69] Bump o-c to abstracted LeiosDemoDbHandle --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index f48d1495cee..754eca7ec8f 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 8f0e1423c99bcfa0025ae5476a5467a4af0d2828 - --sha256: sha256-/1hOntoPR10b7e2NogYzlN0qaBeuXk3O1UbGi9MwkBI= + tag: 4f20aeb08b4f8eaf20fd2762e7ffc5738e7d05af + --sha256: sha256-lh7vjF0syncKucXlN4DE7D3GnDBPg/cN3uDQwhHPLmo= subdir: ouroboros-consensus ouroboros-consensus-cardano From c601a7adb954d78d5c97c6fcc9183fe877cb32c1 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Wed, 4 Feb 2026 10:50:41 +0100 Subject: [PATCH 41/69] Use updated leios-prototype with new db schema --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 754eca7ec8f..ed9d83fd2dc 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 4f20aeb08b4f8eaf20fd2762e7ffc5738e7d05af - --sha256: sha256-lh7vjF0syncKucXlN4DE7D3GnDBPg/cN3uDQwhHPLmo= + tag: b81608e9fcea516ba68271def093cd6df5db1e50 + --sha256: sha256-vt78NaGGqVbSPijRjOpMVgFJWtafUOH3mtKvHKeNaow= subdir: ouroboros-consensus ouroboros-consensus-cardano From 2d8ff7b0796066fb6f959f63573b33f7ed3874dd Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Wed, 11 Feb 2026 09:37:16 +0100 Subject: [PATCH 42/69] Share same LeiosDB handle across threads This also depends on the new initializer names. --- cabal.project | 4 ++-- cardano-node/src/Cardano/Node/Run.hs | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cabal.project b/cabal.project index ed9d83fd2dc..aa88c2de71c 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: b81608e9fcea516ba68271def093cd6df5db1e50 - --sha256: sha256-vt78NaGGqVbSPijRjOpMVgFJWtafUOH3mtKvHKeNaow= + tag: 0238db8facc3bc2217e3ad35bd50a6de82c9301c + --sha256: sha256-wSRsnPyHbNNX+R7APkqUen8uE6L6DKVw2pHl2tdwkQI= subdir: ouroboros-consensus ouroboros-consensus-cardano diff --git a/cardano-node/src/Cardano/Node/Run.hs b/cardano-node/src/Cardano/Node/Run.hs index 4e97a2ace2a..a81f6c9641d 100644 --- a/cardano-node/src/Cardano/Node/Run.hs +++ b/cardano-node/src/Cardano/Node/Run.hs @@ -169,7 +169,7 @@ import Paths_cardano_node (version) import Paths_cardano_node (version) -import LeiosDemoDb (demoNewLeiosDbConnectionIO) +import LeiosDemoDb (newLeiosDBSQLiteFromEnv) {- HLINT ignore "Fuse concatMap/map" -} {- HLINT ignore "Redundant <$>" -} @@ -472,6 +472,8 @@ handleSimpleNode blockType runP p2pMode tracers nc onKernel = do $ Proxy @blk )) + leiosDB <- newLeiosDBSQLiteFromEnv + withShutdownHandling (ncShutdownConfig nc) (shutdownTracer tracers) $ case p2pMode of EnabledP2PMode -> do @@ -522,7 +524,7 @@ handleSimpleNode blockType runP p2pMode tracers nc onKernel = do , rnEnableP2P = p2pMode , rnPeerSharing = ncPeerSharing nc , rnGetUseBootstrapPeers = readTVar useBootstrapVar - , rnNewLeiosDbConnection = demoNewLeiosDbConnectionIO + , rnLeiosDB = leiosDB } #ifdef UNIX -- initial `SIGHUP` handler, which only rereads the topology file but @@ -621,7 +623,7 @@ handleSimpleNode blockType runP p2pMode tracers nc onKernel = do , rnEnableP2P = p2pMode , rnPeerSharing = ncPeerSharing nc , rnGetUseBootstrapPeers = pure DontUseBootstrapPeers - , rnNewLeiosDbConnection = demoNewLeiosDbConnectionIO + , rnLeiosDB = leiosDB } #ifdef UNIX -- initial `SIGHUP` handler; it only warns that neither updating of From 8409d7b5f3b3279732ab5370bdbf07aebfc0c525 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Wed, 11 Feb 2026 14:40:26 +0100 Subject: [PATCH 43/69] Bump o-c to latest prototype PR --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index aa88c2de71c..81b5782b53e 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 0238db8facc3bc2217e3ad35bd50a6de82c9301c - --sha256: sha256-wSRsnPyHbNNX+R7APkqUen8uE6L6DKVw2pHl2tdwkQI= + tag: e8fb792fccd7f8230f828a12a1d1e001e2120031 + --sha256: sha256-IYEzFF1WVgqq62CYDtw2WsbHdZFEhOdDwHP0mcnV5U0= subdir: ouroboros-consensus ouroboros-consensus-cardano From 84bd07acbcd9c4545b8a249492d5470680599134 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Wed, 18 Feb 2026 13:18:56 +0100 Subject: [PATCH 44/69] Error severity for LeiosDbExceptions --- .../src/Cardano/Node/Tracing/Tracers/Consensus.hs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 97a427e6943..76d3a74c101 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -85,8 +85,8 @@ import Data.Time (NominalDiffTime) import Data.Word (Word32, Word64) import Network.TypedProtocol.Core -import LeiosDemoTypes (TraceLeiosKernel (..), TraceLeiosPeer, leiosEbTxs, - traceLeiosKernelToObject, traceLeiosPeerToObject) +import LeiosDemoTypes (TraceLeiosKernel (..), TraceLeiosPeer (TraceLeiosPeerDbException), + leiosEbTxs, traceLeiosKernelToObject, traceLeiosPeerToObject) instance (LogFormatting adr, Show adr) => LogFormatting (ConnectionId adr) where forMachine _dtal (ConnectionId local' remote) = @@ -2303,7 +2303,10 @@ instance LogFormatting TraceLeiosKernel where instance MetaTrace TraceLeiosKernel where namespaceFor _ = Namespace [] [] + + severityFor _ (Just TraceLeiosDbException{}) = Just Error severityFor _ _ = Just Debug + documentFor _ = Nothing allNamespaces = [ Namespace [] [] ] @@ -2313,6 +2316,9 @@ instance LogFormatting TraceLeiosPeer where instance MetaTrace TraceLeiosPeer where namespaceFor _ = Namespace [] [] + + severityFor _ (Just TraceLeiosPeerDbException{}) = Just Error severityFor _ _ = Just Debug + documentFor _ = Nothing allNamespaces = [ Namespace [] [] ] From 1b045863a4df8c2b30e78b7e96c690d93c1072f5 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Thu, 19 Feb 2026 10:11:27 +0100 Subject: [PATCH 45/69] Bump o-c srp to latest leios-prototype --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 81b5782b53e..3bbdacddf68 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: e8fb792fccd7f8230f828a12a1d1e001e2120031 - --sha256: sha256-IYEzFF1WVgqq62CYDtw2WsbHdZFEhOdDwHP0mcnV5U0= + tag: 628b07449a0fe3a5aa52e370468425385deca926 + --sha256: sha256-bPJOByDmBZ07WVUjT1oaQsBc/lfUZcxLrOTJ7levlp4= subdir: ouroboros-consensus ouroboros-consensus-cardano From 56a7cea81e68078cf29ecce6120c0e06171c2f1f Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Thu, 19 Feb 2026 16:26:39 +0100 Subject: [PATCH 46/69] Use latest o-c with points/bitmaps on LeiosBlockTxs responses --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 3bbdacddf68..9526369b98e 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 628b07449a0fe3a5aa52e370468425385deca926 - --sha256: sha256-bPJOByDmBZ07WVUjT1oaQsBc/lfUZcxLrOTJ7levlp4= + tag: fbc62983908ce5316ef95fab46753f0bdd040f82 + --sha256: sha256-eowXyESRt46YJ6UXaYpnOvUlkGlbSkmqEPdQO65CVDw= subdir: ouroboros-consensus ouroboros-consensus-cardano From 667132f2c638bfdebea808ef60aae6c456fb0bd2 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 23 Feb 2026 10:22:59 +0100 Subject: [PATCH 47/69] Increase severity of mux and connection handler errors Especially during development these contain application errors and should be more visible --- cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs | 2 +- cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs index 311e53a6070..3c09495c2c3 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs @@ -1502,7 +1502,7 @@ instance MetaTrace (ConnectionManager.Trace addr TrHandshakeClientError {} -> Notice TrHandshakeServerError {} -> Info TrConnectionHandlerError _ _ ShutdownNode -> Critical - TrConnectionHandlerError _ _ ShutdownPeer -> Info + TrConnectionHandlerError _ _ ShutdownPeer -> Error severityFor (Namespace _ ["ConnectionHandler"]) _ = Just Info severityFor (Namespace _ ["Shutdown"]) _ = Just Info severityFor (Namespace _ ["ConnectionExists"]) _ = Just Info diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index 35b4dda95e3..c1f757c9b14 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -552,7 +552,7 @@ instance HasSeverityAnnotation (ConnMgr.Trace addr (ConnectionHandlerTrace versi TrHandshakeClientError {} -> Notice TrHandshakeServerError {} -> Info TrConnectionHandlerError _ _ ShutdownNode -> Critical - TrConnectionHandlerError _ _ ShutdownPeer -> Info + TrConnectionHandlerError _ _ ShutdownPeer -> Error TrShutdown -> Info TrConnectionExists {} -> Info @@ -600,7 +600,7 @@ instance HasSeverityAnnotation (InboundGovernor.Trace addr) where InboundGovernor.TrDemotedToWarmRemote {} -> Info InboundGovernor.TrWaitIdleRemote {} -> Debug InboundGovernor.TrMuxCleanExit {} -> Debug - InboundGovernor.TrMuxErrored {} -> Info + InboundGovernor.TrMuxErrored {} -> Error InboundGovernor.TrInboundGovernorCounters {} -> Info InboundGovernor.TrRemoteState {} -> Debug InboundGovernor.TrUnexpectedlyFalseAssertion {} From 1ce288a676ca019df3ea2e10f32e55b5e41b448b Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 23 Feb 2026 11:12:51 +0100 Subject: [PATCH 48/69] Bump o-c: use fixed leios encoders --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 9526369b98e..f90f05cf3dc 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: fbc62983908ce5316ef95fab46753f0bdd040f82 - --sha256: sha256-eowXyESRt46YJ6UXaYpnOvUlkGlbSkmqEPdQO65CVDw= + tag: aaacf6ddd27e7e17c756a53d60446a0612ad3d3d + --sha256: sha256-mnQ3hl2ECvb2sF+oYB8k56wUoD7+udTVlK7zS00lZuw= subdir: ouroboros-consensus ouroboros-consensus-cardano From 75881ef42e9f699039a6cea03222c8a1690bc40f Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Thu, 5 Mar 2026 13:02:18 +0100 Subject: [PATCH 49/69] Bump o-c/leios-prototype for improved fetch logic --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index f90f05cf3dc..b9fbb6c5d4a 100644 --- a/cabal.project +++ b/cabal.project @@ -101,8 +101,8 @@ constraints: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: aaacf6ddd27e7e17c756a53d60446a0612ad3d3d - --sha256: sha256-mnQ3hl2ECvb2sF+oYB8k56wUoD7+udTVlK7zS00lZuw= + tag: f93c731d665326481cbd846b91c19e7f3b7a8fde + --sha256: sha256-nCYHfLPAGFNop6OuPpte05yAjGnezWN20fCbDdE5Vmk= subdir: ouroboros-consensus ouroboros-consensus-cardano From 01decec8a52b788289eee4eb8c7d34764f6a601a Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Sun, 22 Mar 2026 21:38:06 +0100 Subject: [PATCH 50/69] Bump leios-prototype packages --- cabal.project | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/cabal.project b/cabal.project index b9fbb6c5d4a..486b4a8d61e 100644 --- a/cabal.project +++ b/cabal.project @@ -31,6 +31,17 @@ packages: trace-dispatcher trace-resources trace-forward + -- ../cardano-api/cardano-api + -- ../ouroboros-consensus/ouroboros-consensus + -- ../ouroboros-consensus/ouroboros-consensus-cardano + -- ../ouroboros-consensus/ouroboros-consensus-protocol + -- ../ouroboros-consensus/ouroboros-consensus-diffusion + -- ../ouroboros-consensus/ouroboros-consensus-observe + -- ../cardano-ledger/eras/alonzo/impl + -- ../cardano-ledger/eras/conway/impl + -- ../cardano-ledger/eras/shelley/impl + -- ../cardano-ledger/eras/shelley/test-suite + -- ../cardano-ledger/libs/cardano-ledger-core extra-packages: Cabal @@ -97,20 +108,40 @@ if impl (ghc >= 9.12) constraints: hedgehog-extras == 0.7.0.0 +-- Points to cardano-api/leios-prototype +source-repository-package + type: git + location: https://github.com/IntersectMBO/cardano-api + tag: 419affa98ec7e5c8c28e73ebb432e9e294bd66ea + --sha256: sha256-uizkUBNrCWXQuSupgo3JyPAaoRZjvujqcOZ1H2VYf9s== + subdir: + cardano-api + -- Points to ouroboros-consensus/leios-prototype source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: f93c731d665326481cbd846b91c19e7f3b7a8fde - --sha256: sha256-nCYHfLPAGFNop6OuPpte05yAjGnezWN20fCbDdE5Vmk= + tag: dd34cafacc9715bade8b1aa006a95437ff549153 + --sha256: sha256-w7Xyq7JEGIBaf1mEfZIl6LJprqCGV9nWVosnjuBoIoc= subdir: ouroboros-consensus ouroboros-consensus-cardano ouroboros-consensus-protocol ouroboros-consensus-diffusion ouroboros-consensus-observe - sop-extras - strict-sop-core + +-- Points to cardano-ledger/leios-prototype +source-repository-package + type: git + location: https://github.com/IntersectMBO/cardano-ledger.git + tag: 1327573bfb86f7e596151f77d03fc38982be8749 + --sha256: sha256-CzA6eucrpsc8WMAtG9aNP0DcGtCxghHe0HSX+Yxvcd8= + subdir: + eras/alonzo/impl + eras/conway/impl + eras/shelley/impl + eras/shelley/test-suite + libs/cardano-ledger-core -- Points to ouroboros-network/leios-prototype source-repository-package From c53f7c0d9509675d0a5eddb5a45cd53dd09b1bff Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 23 Mar 2026 14:03:16 +0100 Subject: [PATCH 51/69] Use mutexed leiosdemodb --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 486b4a8d61e..9df8d448a67 100644 --- a/cabal.project +++ b/cabal.project @@ -121,8 +121,8 @@ source-repository-package source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: dd34cafacc9715bade8b1aa006a95437ff549153 - --sha256: sha256-w7Xyq7JEGIBaf1mEfZIl6LJprqCGV9nWVosnjuBoIoc= + tag: 5ef140601cd2d3a96846f630456f82ab7c68ec45 + --sha256: sha256-+lDspbkHZSWWcrQ3PaBKxQsM8cKy/rCPWdD2WPcbWGY= subdir: ouroboros-consensus ouroboros-consensus-cardano From 99f9641ee7202006cddb771a3c1199c9bdcb6359 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Tue, 21 Apr 2026 13:47:11 +0200 Subject: [PATCH 52/69] Bump o-c leios-prototype --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 9df8d448a67..e0dce1f8632 100644 --- a/cabal.project +++ b/cabal.project @@ -121,8 +121,8 @@ source-repository-package source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 5ef140601cd2d3a96846f630456f82ab7c68ec45 - --sha256: sha256-+lDspbkHZSWWcrQ3PaBKxQsM8cKy/rCPWdD2WPcbWGY= + tag: 960f76137ffa84c0602d5556eb6556bd60ce86fd + --sha256: sha256-kzzBAa26iGaQyo5BF//ybRX3x5gWM9V10+N3t9XV0Yw= subdir: ouroboros-consensus ouroboros-consensus-cardano From d7c0514804e3c97eb6a5fef4187e152fe68c6412 Mon Sep 17 00:00:00 2001 From: Damian Nadales Date: Wed, 15 Apr 2026 14:53:00 -0300 Subject: [PATCH 53/69] Expose cumulative tx bytes as a Prometheus metric Add ledgerCumulativeTxBytes to LedgerQueries and wire it through LedgerMetrics so that the periodic ledger metrics trace emits an IntM "cumulativeTxBytes" gauge. This creates a Prometheus metric cardano_node_metrics_cumulativeTxBytes_int that can be used with rate() to compute confirmed tx throughput (txkB/s). The field is read from shelleyCumulativeTxBytes on the ShelleyLedgerState (added in ouroboros-consensus on the cumulative-tx-size branch). Byron returns 0. Picks up shelleyCumulativeTxBytes, the new top-level field on ShelleyLedgerState that tracks cumulative transaction bytes on the selected chain. --- cabal.project | 2 +- cardano-node/src/Cardano/Node/Queries.hs | 34 +++++++++++++------ .../Node/Tracing/Tracers/LedgerMetrics.hs | 34 ++++++++++++------- 3 files changed, 45 insertions(+), 25 deletions(-) diff --git a/cabal.project b/cabal.project index e0dce1f8632..62543b4a34a 100644 --- a/cabal.project +++ b/cabal.project @@ -117,7 +117,7 @@ source-repository-package subdir: cardano-api --- Points to ouroboros-consensus/leios-prototype +-- Points to ouroboros-consensus/dnadales/cumulative-tx-size source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus diff --git a/cardano-node/src/Cardano/Node/Queries.hs b/cardano-node/src/Cardano/Node/Queries.hs index 6575bf34ec0..86b7d2df9d1 100644 --- a/cardano-node/src/Cardano/Node/Queries.hs +++ b/cardano-node/src/Cardano/Node/Queries.hs @@ -230,16 +230,18 @@ instance All GetKESInfo xs => GetKESInfo (HardForkBlock xs) where -- * General ledger -- class LedgerQueries blk where - ledgerUtxoSize :: LedgerState blk EmptyMK -> Int - ledgerDelegMapSize :: LedgerState blk EmptyMK -> Int - ledgerDRepCount :: LedgerState blk EmptyMK -> Int - ledgerDRepMapSize :: LedgerState blk EmptyMK -> Int + ledgerUtxoSize :: LedgerState blk EmptyMK -> Int + ledgerDelegMapSize :: LedgerState blk EmptyMK -> Int + ledgerDRepCount :: LedgerState blk EmptyMK -> Int + ledgerDRepMapSize :: LedgerState blk EmptyMK -> Int + ledgerCumulativeTxBytes :: LedgerState blk EmptyMK -> Word64 instance LedgerQueries Byron.ByronBlock where ledgerUtxoSize = Map.size . Byron.unUTxO . Byron.cvsUtxo . Byron.byronLedgerState - ledgerDelegMapSize _ = 0 - ledgerDRepCount _ = 0 - ledgerDRepMapSize _ = 0 + ledgerDelegMapSize _ = 0 + ledgerDRepCount _ = 0 + ledgerDRepMapSize _ = 0 + ledgerCumulativeTxBytes _ = 0 instance Shelley.EraCertState era => LedgerQueries (Shelley.ShelleyBlock protocol era) where ledgerUtxoSize = @@ -275,13 +277,15 @@ instance Shelley.EraCertState era => LedgerQueries (Shelley.ShelleyBlock protoco . Shelley.esLState . Shelley.nesEs . Shelley.shelleyLedgerState + ledgerCumulativeTxBytes = Shelley.shelleyCumulativeTxBytes instance (LedgerQueries x, NoHardForks x) => LedgerQueries (HardForkBlock '[x]) where - ledgerUtxoSize = ledgerUtxoSize . unFlip . project . Flip - ledgerDelegMapSize = ledgerDelegMapSize . unFlip . project . Flip - ledgerDRepCount = ledgerDRepCount . unFlip . project . Flip - ledgerDRepMapSize = ledgerDRepMapSize . unFlip . project . Flip + ledgerUtxoSize = ledgerUtxoSize . unFlip . project . Flip + ledgerDelegMapSize = ledgerDelegMapSize . unFlip . project . Flip + ledgerDRepCount = ledgerDRepCount . unFlip . project . Flip + ledgerDRepMapSize = ledgerDRepMapSize . unFlip . project . Flip + ledgerCumulativeTxBytes = ledgerCumulativeTxBytes . unFlip . project . Flip instance LedgerQueries (Cardano.CardanoBlock c) where ledgerUtxoSize = \case @@ -316,6 +320,14 @@ instance LedgerQueries (Cardano.CardanoBlock c) where Cardano.LedgerStateAlonzo ledgerAlonzo -> ledgerDRepMapSize ledgerAlonzo Cardano.LedgerStateBabbage ledgerBabbage -> ledgerDRepMapSize ledgerBabbage Cardano.LedgerStateConway ledgerConway -> ledgerDRepMapSize ledgerConway + ledgerCumulativeTxBytes = \case + Cardano.LedgerStateByron ledgerByron -> ledgerCumulativeTxBytes ledgerByron + Cardano.LedgerStateShelley ledgerShelley -> ledgerCumulativeTxBytes ledgerShelley + Cardano.LedgerStateAllegra ledgerAllegra -> ledgerCumulativeTxBytes ledgerAllegra + Cardano.LedgerStateMary ledgerMary -> ledgerCumulativeTxBytes ledgerMary + Cardano.LedgerStateAlonzo ledgerAlonzo -> ledgerCumulativeTxBytes ledgerAlonzo + Cardano.LedgerStateBabbage ledgerBabbage -> ledgerCumulativeTxBytes ledgerBabbage + Cardano.LedgerStateConway ledgerConway -> ledgerCumulativeTxBytes ledgerConway -- -- * Node kernel diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs index dc97441f6fc..26d55612ecf 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs @@ -35,6 +35,7 @@ import Control.Monad.STM (atomically, retry) import "contra-tracer" Control.Tracer (Tracer, traceWith) import Data.Aeson (Value (Number, String), toJSON, (.=)) import Data.Text as Text +import Data.Word (Word64) import GHC.Conc (labelThread, myThreadId) @@ -82,10 +83,11 @@ startLedgerMetricsTracer tr everyNThSlot nodeKernelData = data LedgerMetrics = LedgerMetrics { - tsSlotNo :: SlotNo - , tsUtxoSize :: Int - , tsDelegMapSize :: Int - , tsChainDensity :: Double + tsSlotNo :: SlotNo + , tsUtxoSize :: Int + , tsDelegMapSize :: Int + , tsChainDensity :: Double + , tsCumulativeTxBytes :: Word64 {- see Note [GovMetrics] , tsDRepCount :: Int , tsDRepMapSize :: Int @@ -104,10 +106,11 @@ traceLedgerMetrics :: traceLedgerMetrics nodeKern slotNo tracer = do query <- mapNodeKernelDataIO (\nk -> - (,,) -- (,,,,) + (,,,) -- (,,,,,,) <$> fmap (maybe 0 LedgerDB.ledgerTableSize) (ChainDB.getStatistics $ getChainDB nk) <*> nkQueryLedger (ledgerDelegMapSize . ledgerState) nk <*> nkQueryChain fragmentChainDensity nk + <*> nkQueryLedger (ledgerCumulativeTxBytes . ledgerState) nk {- see Note [GovMetrics] <*> nkQueryLedger (ledgerDRepCount . ledgerState) nk <*> nkQueryLedger (ledgerDRepMapSize . ledgerState) nk @@ -116,7 +119,7 @@ traceLedgerMetrics nodeKern slotNo tracer = do nodeKern case query of SNothing -> pure () - SJust (utxoSize, delegMapSize, {- drepCount, drepMapSize, -} chainDensity) -> + SJust (utxoSize, delegMapSize, {- drepCount, drepMapSize, -} chainDensity, cumulativeTxBytes) -> let msg = LedgerMetrics slotNo utxoSize @@ -126,6 +129,7 @@ traceLedgerMetrics nodeKern slotNo tracer = do drepMapSize -} (fromRational chainDensity) + cumulativeTxBytes in traceWith tracer msg -------------------------------------------------------------------------------- @@ -139,6 +143,7 @@ instance LogFormatting LedgerMetrics where , "utxoSize" .= Number (fromIntegral tsUtxoSize) , "delegMapSize" .= Number (fromIntegral tsDelegMapSize) , "chainDensity" .= Number (fromRational (toRational tsChainDensity)) + , "cumulativeTxBytes" .= Number (fromIntegral tsCumulativeTxBytes) {- see Note [GovMetrics] , "drepCount" .= Number (fromIntegral tsDRepCount) , "drepMapSize" .= Number (fromIntegral tsDRepMapSize) @@ -146,16 +151,18 @@ instance LogFormatting LedgerMetrics where ] forHuman LedgerMetrics {..} = "Ledger metrics " - <> " utxoSize " <> showT tsUtxoSize - <> " delegMapSize " <> showT tsDelegMapSize - <> " chainDensity " <> showT tsChainDensity + <> " utxoSize " <> showT tsUtxoSize + <> " delegMapSize " <> showT tsDelegMapSize + <> " chainDensity " <> showT tsChainDensity + <> " cumulativeTxBytes " <> showT tsCumulativeTxBytes {- see Note [GovMetrics] <> " drepCount" <> showT tsDRepCount <> " drepMapSize" <> showT tsDRepMapSize -} asMetrics LedgerMetrics {..} = - [ IntM "utxoSize" (fromIntegral tsUtxoSize) - , IntM "delegMapSize" (fromIntegral tsDelegMapSize) + [ IntM "utxoSize" (fromIntegral tsUtxoSize) + , IntM "delegMapSize" (fromIntegral tsDelegMapSize) + , IntM "cumulativeTxBytes" (fromIntegral tsCumulativeTxBytes) {- see Note [GovMetrics] , IntM "drepCount" (fromIntegral tsDRepCount) , IntM "drepMapSize" (fromIntegral tsDRepMapSize) @@ -168,8 +175,9 @@ instance MetaTrace LedgerMetrics where severityFor _ _ = Nothing metricsDocFor (Namespace _ ["LedgerMetrics"]) = - [ ("utxoSize", "UTxO set size") - , ("delegMapSize", "Delegation map size") + [ ("utxoSize", "UTxO set size") + , ("delegMapSize", "Delegation map size") + , ("cumulativeTxBytes", "Cumulative transaction bytes on the selected chain") {- see Note [GovMetrics] , ("drepCount", "Number of DReps") , ("drepMapSize", "Number of DRep delegations") From a9ae633427655d04407e1611466ee25a0fe621c7 Mon Sep 17 00:00:00 2001 From: Damian Nadales Date: Tue, 21 Apr 2026 20:31:17 -0300 Subject: [PATCH 54/69] Update the leios-prototype SRP ouroboros-consensus#1988 has merged, so point the SRP at the tip of leios-prototype --- cabal.project | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cabal.project b/cabal.project index 62543b4a34a..8a3bd25c073 100644 --- a/cabal.project +++ b/cabal.project @@ -117,12 +117,12 @@ source-repository-package subdir: cardano-api --- Points to ouroboros-consensus/dnadales/cumulative-tx-size +-- Points to ouroboros-consensus/leios-prototype source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 960f76137ffa84c0602d5556eb6556bd60ce86fd - --sha256: sha256-kzzBAa26iGaQyo5BF//ybRX3x5gWM9V10+N3t9XV0Yw= + tag: 8eeb4c4e50477c9470dce221ba1396bab6fbf472 + --sha256: sha256-Lt/S/thAvAvkdJ5Gn1ErxRnMLPUY5UvxX2IFHQM+1sA= subdir: ouroboros-consensus ouroboros-consensus-cardano From 6ad83247f86b53f901840c58b269bae0286cce3a Mon Sep 17 00:00:00 2001 From: John Lotoski Date: Tue, 21 Apr 2026 16:16:05 -0500 Subject: [PATCH 55/69] nodeCabal: add cardano-protocol-tpraos from ledger srp --- cabal.project | 1 + 1 file changed, 1 insertion(+) diff --git a/cabal.project b/cabal.project index 8a3bd25c073..e0be13bd995 100644 --- a/cabal.project +++ b/cabal.project @@ -142,6 +142,7 @@ source-repository-package eras/shelley/impl eras/shelley/test-suite libs/cardano-ledger-core + libs/cardano-protocol-tpraos -- Points to ouroboros-network/leios-prototype source-repository-package From 5d74aac2f3f2fdce989c42d1195a804f88677250 Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Thu, 16 Apr 2026 14:46:50 +0200 Subject: [PATCH 56/69] leios: Bump ouroboros-consensus and cardano-ledger --- cabal.project | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/cabal.project b/cabal.project index e0be13bd995..0a70bdcf9e4 100644 --- a/cabal.project +++ b/cabal.project @@ -31,17 +31,6 @@ packages: trace-dispatcher trace-resources trace-forward - -- ../cardano-api/cardano-api - -- ../ouroboros-consensus/ouroboros-consensus - -- ../ouroboros-consensus/ouroboros-consensus-cardano - -- ../ouroboros-consensus/ouroboros-consensus-protocol - -- ../ouroboros-consensus/ouroboros-consensus-diffusion - -- ../ouroboros-consensus/ouroboros-consensus-observe - -- ../cardano-ledger/eras/alonzo/impl - -- ../cardano-ledger/eras/conway/impl - -- ../cardano-ledger/eras/shelley/impl - -- ../cardano-ledger/eras/shelley/test-suite - -- ../cardano-ledger/libs/cardano-ledger-core extra-packages: Cabal @@ -134,13 +123,21 @@ source-repository-package source-repository-package type: git location: https://github.com/IntersectMBO/cardano-ledger.git - tag: 1327573bfb86f7e596151f77d03fc38982be8749 - --sha256: sha256-CzA6eucrpsc8WMAtG9aNP0DcGtCxghHe0HSX+Yxvcd8= + tag: 22d32274ca2657f2966873b225aa9604852c4c77 + --sha256: sha256-TnHTS2FDeUQoa3dIPSZwZ16svGw990arktNVx7z7aWY= subdir: + eras/allegra/impl eras/alonzo/impl + eras/alonzo/test-suite + eras/babbage/impl + eras/babbage/test-suite eras/conway/impl + eras/conway/test-suite + eras/mary/impl eras/shelley/impl eras/shelley/test-suite + eras/shelley-ma/test-suite + libs/cardano-ledger-api libs/cardano-ledger-core libs/cardano-protocol-tpraos From f8ec77c3807aa5e0ddb9ae95e958d93bf6d21cd4 Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Tue, 21 Apr 2026 16:13:01 +0200 Subject: [PATCH 57/69] leios: Restricts only to required cardano-ledger libs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise we can't compile due to error: builder for '/nix/store/jvg1kv1bjbl1m88qm02hdyq460pxg8gc-cardano-ledger-binary-lib-testlib-1.6.0.0.drv' failed with exit code 1; last 10 log lines: > ‘withGenTerm cddlData (Cuddle.Name ruleName)’ > In the expression: > withGenTerm cddlData (Cuddle.Name ruleName) > $ roundTripAnnExample lbl version version trip > | > 130 | withGenTerm cddlData (Cuddle.Name ruleName) $ > | ^^^^^^^^^^^^^^^^^^^^ --- cabal.project | 8 -------- 1 file changed, 8 deletions(-) diff --git a/cabal.project b/cabal.project index 0a70bdcf9e4..a0f4154bc5f 100644 --- a/cabal.project +++ b/cabal.project @@ -126,18 +126,10 @@ source-repository-package tag: 22d32274ca2657f2966873b225aa9604852c4c77 --sha256: sha256-TnHTS2FDeUQoa3dIPSZwZ16svGw990arktNVx7z7aWY= subdir: - eras/allegra/impl eras/alonzo/impl - eras/alonzo/test-suite - eras/babbage/impl - eras/babbage/test-suite eras/conway/impl - eras/conway/test-suite - eras/mary/impl eras/shelley/impl eras/shelley/test-suite - eras/shelley-ma/test-suite - libs/cardano-ledger-api libs/cardano-ledger-core libs/cardano-protocol-tpraos From dd476fd762c966d149dbe9d4413db28bdc9919a5 Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Wed, 22 Apr 2026 13:22:15 +0200 Subject: [PATCH 58/69] leios: Fixes missing "endorser block" metrics and tracing errors --- .../Cardano/Node/Tracing/Tracers/Consensus.hs | 59 +++++++++++-------- cardano-node/src/Cardano/Tracing/Config.hs | 3 +- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 76d3a74c101..720b49dda6d 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -2285,40 +2285,47 @@ instance ( StandardHash blk forHuman = showT ------ - instance LogFormatting TraceLeiosKernel where - forHuman = showT - forMachine _dtal = traceLeiosKernelToObject - - asMetrics (TraceLeiosBlockForged{eb, ebMeasure}) = - [ CounterM "Forge.endorser-block.total-count" Nothing - , CounterM "Forge.endorser-block.total-tx-count" (Just . fromIntegral . length $ leiosEbTxs eb) - , CounterM "Forge.endorser-block.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes $ ebMeasure) - , CounterM "Forge.endorser-block.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory $ ebMeasure) - , CounterM "Forge.endorser-block.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps $ ebMeasure) - , CounterM "Forge.endorser-block.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes $ ebMeasure) - ] - asMetrics _ = [] + forHuman = showT + forMachine _dtal = traceLeiosKernelToObject + + asMetrics (TraceLeiosBlockForged{eb, ebMeasure}) = + [ CounterM "Forge.endorser-block.total-count" Nothing + , CounterM "Forge.endorser-block.total-tx-count" (Just . fromIntegral . length $ leiosEbTxs eb) + , CounterM "Forge.endorser-block.total-tx-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricTxSizeBytes $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-xu-memory" (Just . fromInteger . toInteger . txMeasureMetricExUnitsMemory $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-xu-time" (Just . fromInteger . toInteger . txMeasureMetricExUnitsSteps $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-ref-script-size-bytes" (Just . fromInteger . toInteger . unByteSize32 . txMeasureMetricRefScriptsSizeBytes $ ebMeasure) + ] + asMetrics _ = [] instance MetaTrace TraceLeiosKernel where - namespaceFor _ = Namespace [] [] + namespaceFor _ = Namespace [ ] [ "TraceLeiosKernel" ] - severityFor _ (Just TraceLeiosDbException{}) = Just Error - severityFor _ _ = Just Debug + severityFor _ (Just TraceLeiosDbException{}) = Just Error + severityFor _ _ = Just Debug - documentFor _ = Nothing - allNamespaces = [ Namespace [] [] ] + documentFor _ = Nothing + allNamespaces = [Namespace [] [ "TraceLeiosKernel" ]] + + metricsDocFor _ = + [ ("Forge.endorser-block.total-count", "Counter of forged endorser blocks") + , ("Forge.endorser-block.total-tx-count", "Total number of transactions in the forged endorser block") + , ("Forge.endorser-block.total-tx-bytes", "Total transaction bytes in the forged endorser block") + , ("Forge.endorser-block.total-tx-xu-memory", "Total execution units (memory) in the forged endorser block") + , ("Forge.endorser-block.total-tx-xu-time", "Total execution units (time) in the forged endorser block") + , ("Forge.endorser-block.total-tx-ref-script-size-bytes", "Total reference script size bytes in the forged endorser block") + ] instance LogFormatting TraceLeiosPeer where - forHuman = showT - forMachine _dtal = traceLeiosPeerToObject + forHuman = showT + forMachine _dtal = traceLeiosPeerToObject instance MetaTrace TraceLeiosPeer where - namespaceFor _ = Namespace [] [] + namespaceFor _ = Namespace [] [ "TraceLeiosPeer" ] - severityFor _ (Just TraceLeiosPeerDbException{}) = Just Error - severityFor _ _ = Just Debug + severityFor _ (Just TraceLeiosPeerDbException{}) = Just Error + severityFor _ _ = Just Debug - documentFor _ = Nothing - allNamespaces = [ Namespace [] [] ] + documentFor _ = Nothing + allNamespaces = [Namespace [] [ "TraceLeiosPeer" ]] diff --git a/cardano-node/src/Cardano/Tracing/Config.hs b/cardano-node/src/Cardano/Tracing/Config.hs index 158c0a498d6..48a42106f10 100644 --- a/cardano-node/src/Cardano/Tracing/Config.hs +++ b/cardano-node/src/Cardano/Tracing/Config.hs @@ -351,8 +351,7 @@ instance Semigroup PartialTraceSelection where instance FromJSON PartialTraceSelection where parseJSON = withObject "PartialTraceSelection" $ \v -> do - PartialTraceSelection - <$> Last <$> v .:? "TracingVerbosity" + (PartialTraceSelection . Last <$> (v .:? "TracingVerbosity")) <*> parseTracer (Proxy @TraceAcceptPolicy) v <*> parseTracer (Proxy @TraceBlockchainTime) v <*> parseTracer (Proxy @TraceBlockFetchClient) v From df3c0ca56b6a55edf76e1ce87e00289508040fa9 Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Wed, 22 Apr 2026 14:15:40 +0200 Subject: [PATCH 59/69] leios: Bump ouroboros-consensus --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index a0f4154bc5f..abdeedf6b00 100644 --- a/cabal.project +++ b/cabal.project @@ -110,8 +110,8 @@ source-repository-package source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 8eeb4c4e50477c9470dce221ba1396bab6fbf472 - --sha256: sha256-Lt/S/thAvAvkdJ5Gn1ErxRnMLPUY5UvxX2IFHQM+1sA= + tag: 1e7c387d40d1bd4c95b6d042ffd801aefb127c93 + --sha256: sha256-jz/rM/mzWaoXD9FQFqaLn+iYWsfCpdmXLQHVDy4+aUU= subdir: ouroboros-consensus ouroboros-consensus-cardano From 09acf4e898a723748a8e6f29fd603c4ce91ddd9d Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Fri, 24 Apr 2026 21:24:07 +0200 Subject: [PATCH 60/69] leios: Bump ouroboros-consensus and cardano-ledger with compat fixes --- cabal.project | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cabal.project b/cabal.project index abdeedf6b00..6d7a68407d3 100644 --- a/cabal.project +++ b/cabal.project @@ -110,8 +110,8 @@ source-repository-package source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 1e7c387d40d1bd4c95b6d042ffd801aefb127c93 - --sha256: sha256-jz/rM/mzWaoXD9FQFqaLn+iYWsfCpdmXLQHVDy4+aUU= + tag: 0dac44526e8ee9fa49cddaa164bd3beea4cdc0d1 + --sha256: sha256-pshHHLhM4EdsZhBK16N1FDQ3clsCMjGT08yWJYsAuH8= subdir: ouroboros-consensus ouroboros-consensus-cardano @@ -123,8 +123,8 @@ source-repository-package source-repository-package type: git location: https://github.com/IntersectMBO/cardano-ledger.git - tag: 22d32274ca2657f2966873b225aa9604852c4c77 - --sha256: sha256-TnHTS2FDeUQoa3dIPSZwZ16svGw990arktNVx7z7aWY= + tag: 6b831537f4dd3863da18c9a2a82b81d946a12052 + --sha256: sha256-YI5tb+kcY4uDOCiK42AD+j1JvfVWc8IgO6Acr7HBEnc= subdir: eras/alonzo/impl eras/conway/impl From c0afb527f0e3ff1e629afa399e5cacbeafd86d48 Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Mon, 27 Apr 2026 13:57:55 +0200 Subject: [PATCH 61/69] leios: Bump to latest ouroboros-consensus/leios-prototype --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 6d7a68407d3..e52da80e514 100644 --- a/cabal.project +++ b/cabal.project @@ -110,8 +110,8 @@ source-repository-package source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 0dac44526e8ee9fa49cddaa164bd3beea4cdc0d1 - --sha256: sha256-pshHHLhM4EdsZhBK16N1FDQ3clsCMjGT08yWJYsAuH8= + tag: 83999b476f3fff112453e71739e9a522b9f91057 + --sha256: sha256-pM9QaNvt3VEFt706uyhDFav8Cu1M0qRe3pV7m4ipJuw= subdir: ouroboros-consensus ouroboros-consensus-cardano From 6ad885d8661de97fc6647216d823c22df7b2adf3 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Tue, 28 Apr 2026 12:39:05 +0200 Subject: [PATCH 62/69] Update tracers with new message --- .../src/Cardano/Node/Tracing/Tracers/NodeToNode.hs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs index ccddf7ad479..93f985b59fe 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs @@ -500,6 +500,11 @@ instance LogFormatting (AnyMessage (LN.LeiosNotify LeiosPoint ())) where , "ebHash" .= ebHash ] + LN.MsgLeiosVotes votes -> + mconcat [ "kind" .= String "MsgLeiosVotes" + , "votes" .= votes + ] + LN.MsgDone -> mconcat [ "kind" .= String "MsgDone" ] @@ -516,6 +521,7 @@ instance MetaTrace (AnyMessage (LN.LeiosNotify LeiosPoint ())) where LN.MsgLeiosBlockAnnouncement {} -> Namespace [] ["BlockAnnouncement"] LN.MsgLeiosBlockOffer {} -> Namespace [] ["BlockOffer"] LN.MsgLeiosBlockTxsOffer {} -> Namespace [] ["BlockTxsOffer"] + LN.MsgLeiosVotes {} -> Namespace [] ["Votes"] LN.MsgDone -> Namespace [] ["Done"] severityFor _ _ = Just Debug @@ -527,6 +533,7 @@ instance MetaTrace (AnyMessage (LN.LeiosNotify LeiosPoint ())) where , Namespace [] ["BlockAnnouncement"] , Namespace [] ["BlockOffer"] , Namespace [] ["BlockTxsOffer"] + , Namespace [] ["Votes"] , Namespace [] ["Done"] ] From 86819610b2285945278404981959e2a21217e59d Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 11 May 2026 10:45:28 +0200 Subject: [PATCH 63/69] Use o-c with LeiosNotify toObject encoder --- cabal.project | 4 +- .../src/Cardano/Node/Tracing/Consistency.hs | 5 ++- .../Node/Tracing/Tracers/NodeToNode.hs | 39 +++--------------- .../Tracing/OrphanInstances/Network.hs | 41 ++++--------------- 4 files changed, 19 insertions(+), 70 deletions(-) diff --git a/cabal.project b/cabal.project index e52da80e514..4ae4f9756d9 100644 --- a/cabal.project +++ b/cabal.project @@ -110,8 +110,8 @@ source-repository-package source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-consensus - tag: 83999b476f3fff112453e71739e9a522b9f91057 - --sha256: sha256-pM9QaNvt3VEFt706uyhDFav8Cu1M0qRe3pV7m4ipJuw= + tag: 936d5a0ee3dd4d7349683aac981c743ae0b28c0a + --sha256: sha256-h7tbGN7XmU5XsenwF6GltuaU1jM3QEYE3y1TzIRk09A= subdir: ouroboros-consensus ouroboros-consensus-cardano diff --git a/cardano-node/src/Cardano/Node/Tracing/Consistency.hs b/cardano-node/src/Cardano/Node/Tracing/Consistency.hs index b955d6605ce..894373f05a3 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Consistency.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Consistency.hs @@ -101,9 +101,10 @@ import qualified Data.Text as T import qualified Network.Mux as Mux import qualified Network.Socket as Socket -import LeiosDemoTypes (LeiosPoint, LeiosEb, LeiosTx, TraceLeiosKernel, TraceLeiosPeer) import LeiosDemoOnlyTestFetch (LeiosFetch) import LeiosDemoOnlyTestNotify (LeiosNotify) +import LeiosDemoTypes (LeiosEb, LeiosPoint, LeiosTx, LeiosVote, TraceLeiosKernel, + TraceLeiosPeer) -- | Check the configuration in the given file. -- If there is no configuration in the file check the standard configuration @@ -273,7 +274,7 @@ getAllNamespaces = (allNamespaces :: [Namespace (BlockFetch.TraceLabelPeer peer (TraceSendRecv - (LeiosNotify LeiosPoint ())))]) + (LeiosNotify LeiosPoint () LeiosVote)))]) leiosFetchNS = map (nsGetTuple . nsReplacePrefix ["LeiosFetch", "Remote"]) (allNamespaces :: [Namespace diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs index 93f985b59fe..e1fff3702fb 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs @@ -37,8 +37,8 @@ import Network.TypedProtocol.Codec (AnyMessage (AnyMessageAndAgency)) import qualified LeiosDemoOnlyTestFetch as LF import qualified LeiosDemoOnlyTestNotify as LN -import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, - messageLeiosFetchToObject, prettyEbHash) +import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, LeiosVote, + messageLeiosFetchToObject, messageLeiosNotifyToObject, prettyEbHash) -------------------------------------------------------------------------------- -- BlockFetch Tracer @@ -476,38 +476,11 @@ instance MetaTrace (TraceKeepAliveClient remotePeer) where instance ToJSON EbHash where toJSON = toJSON . prettyEbHash -instance LogFormatting (AnyMessage (LN.LeiosNotify LeiosPoint ())) where +instance LogFormatting (AnyMessage (LN.LeiosNotify LeiosPoint () LeiosVote)) where forHuman = showT - forMachine _dtal (AnyMessageAndAgency _stok msg) = case msg of - - LN.MsgLeiosNotificationRequestNext -> - mconcat [ "kind" .= String "MsgLeiosNotificationRequestNext" - ] - - LN.MsgLeiosBlockAnnouncement () -> - mconcat [ "kind" .= String "MsgLeiosBlockAnnouncement" - ] - LN.MsgLeiosBlockOffer (MkLeiosPoint ebSlot ebHash) ebBytesSize -> - mconcat [ "kind" .= String "MsgLeiosBlockOffer" - , "ebSlot" .= ebSlot - , "ebHash" .= ebHash - , "ebBytesSize" .= ebBytesSize - ] - LN.MsgLeiosBlockTxsOffer (MkLeiosPoint ebSlot ebHash) -> - mconcat [ "kind" .= String "MsgLeiosBlockTxsOffer" - , "ebSlot" .= ebSlot - , "ebHash" .= ebHash - ] - - LN.MsgLeiosVotes votes -> - mconcat [ "kind" .= String "MsgLeiosVotes" - , "votes" .= votes - ] - - LN.MsgDone -> - mconcat [ "kind" .= String "MsgDone" - ] + forMachine _dtal (AnyMessageAndAgency _stok msg) = + messageLeiosNotifyToObject msg instance LogFormatting (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where forHuman = showT @@ -515,7 +488,7 @@ instance LogFormatting (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) w forMachine _dtal (AnyMessageAndAgency _stok msg) = messageLeiosFetchToObject msg -instance MetaTrace (AnyMessage (LN.LeiosNotify LeiosPoint ())) where +instance MetaTrace (AnyMessage (LN.LeiosNotify LeiosPoint () LeiosVote)) where namespaceFor (AnyMessageAndAgency _stok msg) = case msg of LN.MsgLeiosNotificationRequestNext {} -> Namespace [] ["RequestNext"] LN.MsgLeiosBlockAnnouncement {} -> Namespace [] ["BlockAnnouncement"] diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index c1f757c9b14..4b75654e4a7 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -141,9 +141,10 @@ import qualified Network.TypedProtocol.Stateful.Codec as Stateful import qualified LeiosDemoOnlyTestFetch as LF import qualified LeiosDemoOnlyTestNotify as LN -import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, TraceLeiosKernel, - TraceLeiosPeer, messageLeiosFetchToObject, prettyEbHash, - traceLeiosKernelToObject, traceLeiosPeerToObject) +import LeiosDemoTypes (EbHash (..), LeiosEb, LeiosPoint (..), LeiosTx, LeiosVote, + TraceLeiosKernel, TraceLeiosPeer, messageLeiosFetchToObject, + messageLeiosNotifyToObject, prettyEbHash, traceLeiosKernelToObject, + traceLeiosPeerToObject) -- -- * instances of @HasPrivacyAnnotation@ and @HasSeverityAnnotation@ @@ -2882,38 +2883,12 @@ instance ToJSON PeerTrustable where instance ToJSON EbHash where toJSON = toJSON . prettyEbHash instance ToObject peer - => Transformable Text IO (TraceLabelPeer peer (NtN.TraceSendRecv (LN.LeiosNotify LeiosPoint ()))) where + => Transformable Text IO (TraceLabelPeer peer (NtN.TraceSendRecv (LN.LeiosNotify LeiosPoint () LeiosVote))) where trTransformer = trStructured -instance ToObject (AnyMessage (LN.LeiosNotify LeiosPoint ())) where - toObject _verb (AnyMessageAndAgency _stok msg) = case msg of - - LN.MsgLeiosNotificationRequestNext -> - mconcat [ "kind" .= String "MsgLeiosNotificationRequestNext" - ] - - LN.MsgLeiosBlockAnnouncement () -> - mconcat [ "kind" .= String "MsgLeiosBlockAnnouncement" - ] - LN.MsgLeiosBlockOffer (MkLeiosPoint ebSlot ebHash) ebBytesSize -> - mconcat [ "kind" .= String "MsgLeiosBlockOffer" - , "ebSlot" .= ebSlot - , "ebHash" .= ebHash - , "ebBytesSize" .= ebBytesSize - ] - LN.MsgLeiosBlockTxsOffer (MkLeiosPoint ebSlot ebHash) -> - mconcat [ "kind" .= String "MsgLeiosBlockTxsOffer" - , "ebSlot" .= ebSlot - , "ebHash" .= ebHash - ] - - LN.MsgDone -> - mconcat [ "kind" .= String "MsgDone" - ] - --- where --- agency :: Aeson.Object --- agency = "agency" .= show stok +instance ToObject (AnyMessage (LN.LeiosNotify LeiosPoint () LeiosVote)) where + toObject _verb (AnyMessageAndAgency _stok msg) = + messageLeiosNotifyToObject msg instance ToObject peer => Transformable Text IO (TraceLabelPeer peer (NtN.TraceSendRecv (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx))) where From 55a1067318d22a08dc1e3c7103a6f245eed966f3 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 18 May 2026 18:12:29 +0200 Subject: [PATCH 64/69] Pin SRPs at the Leios prototype remake forks (consensus / ledger / network) Updates cabal.project to point at the three rebased Leios forks that ship with this cardano-node 11.0.1 build: - ouroboros-consensus @ IntersectMBO/ouroboros-consensus branch leios-prototype-remake-3.0.1.0 Single squashed Leios commit on top of release-3.0.1.0 (mempool + diffusion + chain inclusion + voting + demo). - ouroboros-network @ IntersectMBO/ouroboros-network branch leios-prototype-remake-1.1.0.0 Three Leios commits on top of ouroboros-network-1.1.0.0 (BearerBytes, Reception arrival-time, drop unused imports) + a trace-dispatcher version bump for compat with cardano-node 11.0.1. - cardano-ledger @ IntersectMBO/cardano-ledger branch leios-prototype-remake Adds 'Maybe LeiosCert' on the Dijkstra block body (Dijkstra-only, mirrors 'Maybe PerasCert'). Also drops the 'dmq-node' extra-package (its latest CHaP release requires ouroboros-network:framework-tracing, a sublib name that the remade network fork doesn't carry). Vendors a one-line 'ekg-forward' source patch (left untouched here) to match the network's pre-bump 'ConnectToArgs' shape. Co-Authored-By: Claude Opus 4.7 --- bench/tx-generator/tx-generator.cabal | 2 +- cabal.project | 42 ++++++++++++++++++++++++++- cardano-node/cardano-node.cabal | 4 +-- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/bench/tx-generator/tx-generator.cabal b/bench/tx-generator/tx-generator.cabal index ef230e3e003..f7ced513cb4 100644 --- a/bench/tx-generator/tx-generator.cabal +++ b/bench/tx-generator/tx-generator.cabal @@ -142,7 +142,7 @@ library , network-mux , optparse-applicative , ouroboros-consensus:{ouroboros-consensus, cardano, diffusion} >= 3.0.1 - , ouroboros-network:{api, framework, framework-tracing, ouroboros-network, protocols} >= 1.1 + , ouroboros-network:{api, framework, tracing, ouroboros-network, protocols} >= 1.1 , plutus-ledger-api , plutus-tx , random diff --git a/cabal.project b/cabal.project index 3d18d880d86..00acfb61c23 100644 --- a/cabal.project +++ b/cabal.project @@ -51,7 +51,11 @@ packages: trace-forward -- Needed when cross compiling -extra-packages: alex, dmq-node >= 0.4.2.0 +extra-packages: alex +-- dmq-node dropped: the latest CHaP version (0.4.2.0) requires +-- ouroboros-network:framework-tracing, a sublib that doesn't exist +-- in the leios-prototype-remake network fork. Re-add once a newer +-- dmq-node release tracks the post-split network layout. program-options ghc-options: -Werror @@ -89,6 +93,42 @@ allow-newer: -- Do NOT add more source-repository-package stanzas here unless they are strictly -- temporary! Please read the section in CONTRIBUTING about updating dependencies. +-- Pin ouroboros-consensus at the Leios prototype remake branch — five chunks +-- on top of upstream main: mempool access + forging, diffusion (LeiosNotify + +-- LeiosFetch + Reception migration), resolving + chain inclusion, voting, +-- and the ImmDBServer schedule-driven demo. +-- See IntersectMBO/ouroboros-consensus#2041. +source-repository-package + type: git + location: https://github.com/IntersectMBO/ouroboros-consensus + tag: 663412f5546a5913ed8197024f82b11b61d3d3dd + --sha256: sha256-UG7hzcE8OoDZNJ/i6XZ5XCiwdTIlAOfUSEtmASQCPO4= + +-- Pin cardano-ledger at the Leios prototype remake branch — adds +-- 'Maybe LeiosCert' on the Dijkstra block body (Dijkstra-only). +-- See IntersectMBO/cardano-ledger#5839. +source-repository-package + type: git + location: https://github.com/IntersectMBO/cardano-ledger + tag: c47305fcf47bd77437b837d0dfb9cb4181bfbc77 + --sha256: 1db2xc2gs44g5035srqzgqkbv3a2yacmvnwchd1jnjrfkibnxnak + subdir: + libs/cardano-ledger-core + eras/dijkstra/impl + +-- Pin ouroboros-network at the Leios prototype remake branch — adds the +-- 'BearerBytes' class and arrival-time 'Reception' on recv. +-- See IntersectMBO/ouroboros-network#5370. +source-repository-package + type: git + location: https://github.com/IntersectMBO/ouroboros-network + tag: 98229666bf4e2fcd365f4cf583c0efeb76e2e1b7 + --sha256: 1ix6hlrvyrxwy54lq410prjvby31fz8y1hxrkc1np86zc8kan3m4 + subdir: + ouroboros-network + cardano-diffusion + network-mux + if impl(ghc >= 9.12) -- GHC 9.12 support - master branch source-repository-package diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index da3d9cc7b07..81c5aad8b70 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -186,8 +186,8 @@ library , network-mux >= 0.8 , nothunks , optparse-applicative - , ouroboros-consensus:{ouroboros-consensus, lmdb, lsm, cardano, diffusion, protocol} ^>= 3.0.1 - , ouroboros-network:{api, ouroboros-network, orphan-instances, framework, protocols, framework-tracing, tracing} ^>= 1.1 + , ouroboros-consensus:{ouroboros-consensus, lsm, cardano, diffusion, protocol} ^>= 3.0.1 + , ouroboros-network:{api, ouroboros-network, orphan-instances, framework, protocols, tracing} ^>= 1.1 , cardano-diffusion:{api, cardano-diffusion, orphan-instances, tracing} ^>=1.0 , prettyprinter , prettyprinter-ansi-terminal From bbb3d1c34f8b7c61db0b1c5eca8cd0a74212a9c6 Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Tue, 25 Nov 2025 15:22:23 -0800 Subject: [PATCH 65/69] leiosdemo202511: fixup build for ouroboros-network:runDriver* and TraceSendRecv changes --- .../Node/Tracing/Tracers/NodeToClient.hs | 135 +++++++++++++++++- .../Tracing/OrphanInstances/Network.hs | 16 +-- .../Trace/Forward/Run/DataPoint/Acceptor.hs | 1 + .../Trace/Forward/Run/DataPoint/Forwarder.hs | 1 + .../Trace/Forward/Run/TraceObject/Acceptor.hs | 1 + .../Forward/Run/TraceObject/Forwarder.hs | 1 + 6 files changed, 146 insertions(+), 9 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs index ff105fbc036..b84f9f7299e 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs @@ -18,13 +18,146 @@ import qualified Ouroboros.Network.Protocol.LocalTxMonitor.Type as LTM import qualified Ouroboros.Network.Protocol.LocalTxSubmission.Type as LTS import Ouroboros.Network.Tracing () -import Data.Aeson (Value (String), (.=)) +import Data.Aeson (Value (String), (.=), (.?=)) import Data.Text (Text, pack) import qualified Network.TypedProtocol.Codec as Simple import qualified Network.TypedProtocol.Stateful.Codec as Stateful {-# ANN module ("HLint: ignore Redundant bracket" :: Text) #-} +instance LogFormatting (Simple.AnyMessage ps) + => LogFormatting (Simple.TraceSendRecv ps) where + forMachine dtal (Simple.TraceSendMsg tm m) = mconcat + [ "kind" .= String "Send" , "msg" .= forMachine dtal m, "tm" .= String (pack $ show tm) ] + forMachine dtal (Simple.TraceRecvMsg mbTm m) = mconcat + [ "kind" .= String "Recv" , "msg" .= forMachine dtal m, "tm" .?= fmap (String . pack . show) mbTm ] + + forHuman (Simple.TraceSendMsg _tm m) = "Send: " <> forHumanOrMachine m + forHuman (Simple.TraceRecvMsg _mbTm m) = "Receive: " <> forHumanOrMachine m + + asMetrics (Simple.TraceSendMsg _tm m) = asMetrics m + asMetrics (Simple.TraceRecvMsg _mbTm m) = asMetrics m + +instance LogFormatting (Stateful.AnyMessage ps f) + => LogFormatting (Stateful.TraceSendRecv ps f) where + forMachine dtal (Stateful.TraceSendMsg tm m) = mconcat + [ "kind" .= String "Send" , "msg" .= forMachine dtal m, "tm" .= String (pack $ show tm) ] + forMachine dtal (Stateful.TraceRecvMsg mbTm m) = mconcat + [ "kind" .= String "Recv" , "msg" .= forMachine dtal m, "tm" .?= fmap (String . pack . show) mbTm ] + + forHuman (Stateful.TraceSendMsg _tm m) = "Send: " <> forHumanOrMachine m + forHuman (Stateful.TraceRecvMsg _mbTm m) = "Receive: " <> forHumanOrMachine m + + asMetrics (Stateful.TraceSendMsg _tm m) = asMetrics m + asMetrics (Stateful.TraceRecvMsg _mbTm m) = asMetrics m + +instance MetaTrace (Simple.AnyMessage ps) => + MetaTrace (Simple.TraceSendRecv ps) where + namespaceFor (Simple.TraceSendMsg _tm msg) = + nsPrependInner "Send" (namespaceFor msg) + namespaceFor (Simple.TraceRecvMsg _mbTm msg) = + nsPrependInner "Receive" (namespaceFor msg) + + severityFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = + severityFor (Namespace out tl) (Just msg) + severityFor (Namespace out ("Send" : tl)) Nothing = + severityFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing + severityFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = + severityFor (Namespace out tl) (Just msg) + severityFor (Namespace out ("Receive" : tl)) Nothing = + severityFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing + severityFor _ _ = Nothing + + privacyFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = + privacyFor (Namespace out tl) (Just msg) + privacyFor (Namespace out ("Send" : tl)) Nothing = + privacyFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing + privacyFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = + privacyFor (Namespace out tl) (Just msg) + privacyFor (Namespace out ("Receive" : tl)) Nothing = + privacyFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing + privacyFor _ _ = Nothing + + detailsFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = + detailsFor (Namespace out tl) (Just msg) + detailsFor (Namespace out ("Send" : tl)) Nothing = + detailsFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing + detailsFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = + detailsFor (Namespace out tl) (Just msg) + detailsFor (Namespace out ("Receive" : tl)) Nothing = + detailsFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing + detailsFor _ _ = Nothing + + metricsDocFor (Namespace out ("Send" : tl)) = + metricsDocFor (nsCast (Namespace out tl) :: Namespace (Simple.AnyMessage ps)) + metricsDocFor (Namespace out ("Receive" : tl)) = + metricsDocFor (nsCast (Namespace out tl) :: Namespace (Simple.AnyMessage ps)) + metricsDocFor _ = [] + + documentFor (Namespace out ("Send" : tl)) = + documentFor (nsCast (Namespace out tl) :: Namespace (Simple.AnyMessage ps)) + documentFor (Namespace out ("Receive" : tl)) = + documentFor (nsCast (Namespace out tl) :: Namespace (Simple.AnyMessage ps)) + documentFor _ = Nothing + + allNamespaces = + let cn = allNamespaces :: [Namespace (Simple.AnyMessage ps)] + in fmap (nsPrependInner "Send") cn ++ fmap (nsPrependInner "Receive") cn + +instance MetaTrace (Stateful.AnyMessage ps f) => + MetaTrace (Stateful.TraceSendRecv ps f) where + namespaceFor (Stateful.TraceSendMsg _tm msg) = + nsPrependInner "Send" (namespaceFor msg) + namespaceFor (Stateful.TraceRecvMsg _mbTm msg) = + nsPrependInner "Receive" (namespaceFor msg) + + severityFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = + severityFor (Namespace out tl) (Just msg) + severityFor (Namespace out ("Send" : tl)) Nothing = + severityFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing + severityFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = + severityFor (Namespace out tl) (Just msg) + severityFor (Namespace out ("Receive" : tl)) Nothing = + severityFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing + severityFor _ _ = Nothing + + privacyFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = + privacyFor (Namespace out tl) (Just msg) + privacyFor (Namespace out ("Send" : tl)) Nothing = + privacyFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing + privacyFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = + privacyFor (Namespace out tl) (Just msg) + privacyFor (Namespace out ("Receive" : tl)) Nothing = + privacyFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing + privacyFor _ _ = Nothing + + detailsFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = + detailsFor (Namespace out tl) (Just msg) + detailsFor (Namespace out ("Send" : tl)) Nothing = + detailsFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing + detailsFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = + detailsFor (Namespace out tl) (Just msg) + detailsFor (Namespace out ("Receive" : tl)) Nothing = + detailsFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing + detailsFor _ _ = Nothing + + metricsDocFor (Namespace out ("Send" : tl)) = + metricsDocFor (nsCast (Namespace out tl) :: Namespace (Stateful.AnyMessage ps f)) + metricsDocFor (Namespace out ("Receive" : tl)) = + metricsDocFor (nsCast (Namespace out tl) :: Namespace (Stateful.AnyMessage ps f)) + metricsDocFor _ = [] + + documentFor (Namespace out ("Send" : tl)) = + documentFor (nsCast (Namespace out tl) :: Namespace (Stateful.AnyMessage ps f)) + documentFor (Namespace out ("Receive" : tl)) = + documentFor (nsCast (Namespace out tl) :: Namespace (Stateful.AnyMessage ps f)) + documentFor _ = Nothing + + allNamespaces = + let cn = allNamespaces :: [Namespace (Stateful.AnyMessage ps f)] + in fmap (nsPrependInner "Send") cn ++ fmap (nsPrependInner "Receive") cn + + -- -------------------------------------------------------------------------------- -- -- TChainSync Tracer -- -------------------------------------------------------------------------------- diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index 718d09931c3..7ce3a51bf51 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -1222,18 +1222,18 @@ instance (ToJSON peer, ConvertRawHash header, ToJSON (HeaderHash header)) instance ToObject (AnyMessage ps) => ToObject (TraceSendRecv ps) where - toObject verb (TraceSendMsg m) = mconcat - [ "kind" .= String "Send" , "msg" .= toObject verb m ] - toObject verb (TraceRecvMsg m) = mconcat - [ "kind" .= String "Recv" , "msg" .= toObject verb m ] + toObject verb (TraceSendMsg tm m) = mconcat + [ "kind" .= String "Send" , "msg" .= toObject verb m, "tm" .= String (pack $ show tm) ] + toObject verb (TraceRecvMsg mbTm m) = mconcat + [ "kind" .= String "Recv" , "msg" .= toObject verb m, "tm" Aeson..?= fmap (String . pack . show) mbTm ] instance ToObject (Stateful.AnyMessage ps f) => ToObject (Stateful.TraceSendRecv ps f) where - toObject verb (Stateful.TraceSendMsg m) = mconcat - [ "kind" .= String "Send" , "msg" .= toObject verb m ] - toObject verb (Stateful.TraceRecvMsg m) = mconcat - [ "kind" .= String "Recv" , "msg" .= toObject verb m ] + toObject verb (Stateful.TraceSendMsg tm m) = mconcat + [ "kind" .= String "Send" , "msg" .= toObject verb m, "tm" .= String (pack $ show tm) ] + toObject verb (Stateful.TraceRecvMsg mbTm m) = mconcat + [ "kind" .= String "Recv" , "msg" .= toObject verb m, "tm" Aeson..?= fmap (String . pack . show) mbTm ] instance (ToJSON txid, ToObject (TxDecision txid tx)) => ToObject (TraceTxSubmissionInbound txid tx) where diff --git a/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs b/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs index 5131d36efed..e535dc3d305 100644 --- a/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs +++ b/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs @@ -54,6 +54,7 @@ runPeerWithRequestor config mkDPRequestor peerErrorHandler = (acceptorTracer config) (Acceptor.codecDataPointForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) + (fromIntegral . LBS.length) channel (Acceptor.dataPointAcceptorPeer $ acceptorActions config dpRequestor []) `finally` peerErrorHandler ctx diff --git a/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs b/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs index 3a8537540f3..554aac56943 100644 --- a/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs +++ b/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs @@ -42,5 +42,6 @@ runPeerWithDPStore config dpStore = (forwarderTracer config) (Forwarder.codecDataPointForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) + (fromIntegral . LBS.length) channel (Forwarder.dataPointForwarderPeer $ readFromStore dpStore) diff --git a/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs b/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs index 511fb50e7f8..175506dd981 100644 --- a/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs +++ b/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs @@ -68,6 +68,7 @@ runPeerWithHandler config@AcceptorConfiguration{acceptorTracer, shouldWeStop} lo acceptorTracer (Acceptor.codecTraceObjectForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) + (fromIntegral . LBS.length) channel (Acceptor.traceObjectAcceptorPeer $ acceptorActions config (loHandler ctx)) `finally` peerErrorHandler ctx diff --git a/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs b/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs index b2dcb08b429..7727e14ed94 100644 --- a/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs +++ b/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs @@ -52,5 +52,6 @@ runPeerWithSink config sink = (forwarderTracer config) (Forwarder.codecTraceObjectForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) + (fromIntegral . LBS.length) channel (Forwarder.traceObjectForwarderPeer $ readFromSink sink) From c051f22c43809b1d2ebb98f84271bd3c22baf400 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 18 May 2026 23:14:16 +0200 Subject: [PATCH 66/69] N2: wire Leios tracers into cardano-node Tracers / OrphanInstances MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The consensus Leios chunks added four fields to the consensus tracer records that cardano-node assembles in 'Cardano.Tracing.Tracers' (old style) and 'Cardano.Node.Tracing.Tracers' (new style): - Consensus.Tracers' gained 'leiosKernelTracer' and 'leiosPeerTracer' - NodeToNode.Tracers' gained 'tLeiosNotifyTracer' and 'tLeiosFetchTracer' This commit populates those fields in both 'mkTracers' code paths so the record-construction sites are total. All four are wired to 'nullTracer' for now; the corresponding 'Transformable' / 'MetaTrace' instances and EKG metrics are left as TODO. The new-style tracing system will accordingly emit a 'TracerConsistencyWarnings' for the four Leios namespaces declared in the config.yaml — that surfaces the gap explicitly rather than silently dropping the configuration. Adds the corresponding selectors to 'TraceSelection' / 'PartialTraceSelection' and their JSON parsing: - traceLeiosKernel / Consensus.LeiosKernel - traceLeiosPeer / Consensus.LeiosPeer - traceLeiosNotifyProtocol / LeiosNotify.Remote - traceLeiosFetchProtocol / LeiosFetch.Remote Also drops the duplicate 'LogFormatting (Simple/Stateful.TraceSendRecv)' and 'MetaTrace (Simple/Stateful.TraceSendRecv)' instances that the upstream leios-prototype branch carried in 'Cardano/Node/Tracing/Tracers/NodeToClient.hs' — they are now provided by 'ouroboros-network:framework-tracing' and would collide if redefined here. Co-Authored-By: Claude Opus 4.7 --- .envrc | 1 + bench-7950 | 511 +++ bench-9950 | 3933 +++++++++++++++++ .../plutus-scripts-bench.cabal | 2 +- bench/tx-generator/tx-generator.cabal | 4 +- .../cardano-node-chairman.cabal | 2 +- cardano-node/cardano-node.cabal | 6 +- cardano-node/src/Cardano/Node/Orphans.hs | 22 + .../src/Cardano/Node/Protocol/Types.hs | 2 + cardano-node/src/Cardano/Node/Run.hs | 2 + .../src/Cardano/Node/Tracing/Consistency.hs | 22 + .../src/Cardano/Node/Tracing/Tracers.hs | 28 + .../Cardano/Node/Tracing/Tracers/Consensus.hs | 72 +- .../Node/Tracing/Tracers/NodeToClient.hs | 136 +- .../Node/Tracing/Tracers/NodeToNode.hs | 67 + cardano-node/src/Cardano/Tracing/Config.hs | 36 + cardano-node/src/Cardano/Tracing/Tracers.hs | 11 + cardano-submit-api/cardano-submit-api.cabal | 4 +- cardano-testnet/cardano-testnet.cabal | 4 +- ekg-forward/CHANGELOG.md | 53 + ekg-forward/LICENSE | 201 + ekg-forward/README.md | 32 + ekg-forward/demo/acceptor.hs | 41 + ekg-forward/demo/forwarder.hs | 52 + ekg-forward/ekg-forward.cabal | 129 + ekg-forward/src/System/Metrics/Acceptor.hs | 34 + .../src/System/Metrics/Configuration.hs | 60 + ekg-forward/src/System/Metrics/Forwarder.hs | 33 + .../src/System/Metrics/Network/Acceptor.hs | 209 + .../src/System/Metrics/Network/Forwarder.hs | 189 + .../src/System/Metrics/Protocol/Acceptor.hs | 56 + .../src/System/Metrics/Protocol/Codec.hs | 81 + .../src/System/Metrics/Protocol/Forwarder.hs | 53 + .../src/System/Metrics/Protocol/Type.hs | 122 + ekg-forward/src/System/Metrics/ReqResp.hs | 50 + .../src/System/Metrics/Store/Acceptor.hs | 104 + .../src/System/Metrics/Store/Deltify.hs | 40 + .../src/System/Metrics/Store/Forwarder.hs | 73 + ekg-forward/test/Spec.hs | 22 + ekg-forward/test/Test/GetAllMetrics.hs | 55 + ekg-forward/test/Test/GetMetrics.hs | 63 + ekg-forward/test/Test/GetUpdatedMetrics.hs | 61 + ekg-forward/test/Test/MkConfig.hs | 39 + .../Trace/Forward/Run/DataPoint/Acceptor.hs | 1 - .../Trace/Forward/Run/DataPoint/Forwarder.hs | 1 - .../Trace/Forward/Run/TraceObject/Acceptor.hs | 1 - .../Forward/Run/TraceObject/Forwarder.hs | 1 - 47 files changed, 6572 insertions(+), 149 deletions(-) create mode 100644 .envrc create mode 100644 bench-7950 create mode 100644 bench-9950 create mode 100644 ekg-forward/CHANGELOG.md create mode 100644 ekg-forward/LICENSE create mode 100644 ekg-forward/README.md create mode 100644 ekg-forward/demo/acceptor.hs create mode 100644 ekg-forward/demo/forwarder.hs create mode 100644 ekg-forward/ekg-forward.cabal create mode 100644 ekg-forward/src/System/Metrics/Acceptor.hs create mode 100644 ekg-forward/src/System/Metrics/Configuration.hs create mode 100644 ekg-forward/src/System/Metrics/Forwarder.hs create mode 100644 ekg-forward/src/System/Metrics/Network/Acceptor.hs create mode 100644 ekg-forward/src/System/Metrics/Network/Forwarder.hs create mode 100644 ekg-forward/src/System/Metrics/Protocol/Acceptor.hs create mode 100644 ekg-forward/src/System/Metrics/Protocol/Codec.hs create mode 100644 ekg-forward/src/System/Metrics/Protocol/Forwarder.hs create mode 100644 ekg-forward/src/System/Metrics/Protocol/Type.hs create mode 100644 ekg-forward/src/System/Metrics/ReqResp.hs create mode 100644 ekg-forward/src/System/Metrics/Store/Acceptor.hs create mode 100644 ekg-forward/src/System/Metrics/Store/Deltify.hs create mode 100644 ekg-forward/src/System/Metrics/Store/Forwarder.hs create mode 100644 ekg-forward/test/Spec.hs create mode 100644 ekg-forward/test/Test/GetAllMetrics.hs create mode 100644 ekg-forward/test/Test/GetMetrics.hs create mode 100644 ekg-forward/test/Test/GetUpdatedMetrics.hs create mode 100644 ekg-forward/test/Test/MkConfig.hs diff --git a/.envrc b/.envrc new file mode 100644 index 00000000000..3550a30f2de --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/bench-7950 b/bench-7950 new file mode 100644 index 00000000000..941f8376c84 --- /dev/null +++ b/bench-7950 @@ -0,0 +1,511 @@ +Config file path source is default config file. +Config file not found: /home/ch1bo/.config/cabal/config +Writing default configuration to /home/ch1bo/.config/cabal/config +Cloning into '/home/ch1bo/code/iog/cardano-node/dist-newstyle/src/ouroboros_-bc2ac5ad23a0916f'... +HEAD is now at ed637941f Trace more information about EBs +Cloning into '/home/ch1bo/code/iog/cardano-node/dist-newstyle/src/ouroboros_-88b17958106bd768'... +HEAD is now at 479f0d0d8 leiosdemo202511: introduce BearerBytes class +Warning: Caught exception during _mirrors lookup:DnsHostNotFound +Warning: No mirrors found for https://chap.intersectmbo.org/ +Warning: The package list for 'hackage.haskell.org' does not exist. Run 'cabal +update' to download it. +Warning: Requested index-state 2025-06-03T08:07:10Z is newer than +'hackage.haskell.org'! Falling back to older state (). +Warning: The package list for 'cardano-haskell-packages' does not exist. Run +'cabal update' to download it. +Warning: Requested index-state 2025-07-17T12:00:21Z is newer than +'cardano-haskell-packages'! Falling back to older state (). +Resolving dependencies... +Error: cabal: Could not resolve dependencies: +[__0] unknown package: Cabal (user goal) +[__0] fail (backjumping, conflict set: Cabal) +After searching the rest of the dependency tree exhaustively, these were the +goals I've had most trouble fulfilling: Cabal + +Command exited with non-zero status 1 +7.01user 2.35system 0:07.98elapsed 117%CPU (0avgtext+0avgdata 95456maxresident)k +592inputs+378023outputs (8124major+193516minor)pagefaults 0swaps +Resolving dependencies... +Build profile: -w ghc-9.6.5 -O1 +In order, the following will be built (use -v for more details): + - cardano-binary-1.7.1.0 (lib) (requires download & build) + - monoidal-synchronisation-0.1.0.6 (lib) (requires build) + - plutus-core-1.45.0.0 (lib:index-envs) (requires download & build) + - plutus-core-1.45.0.0 (lib:satint) (requires download & build) + - vector-map-1.1.0.0 (lib) (requires download & build) + - cardano-strict-containers-0.1.4.0 (lib) (requires download & build) + - cardano-slotting-0.2.0.0 (lib) (requires download & build) + - network-mux-0.8.0.2 (lib) (requires build) + - vector-map-1.1.0.0 (lib:testlib) (requires download & build) + - small-steps-1.1.1.0 (lib) (requires download & build) + - fingertree-rm-1.0.0.4 (lib) (requires download & build) + - cardano-crypto-class-2.2.2.0 (lib) (requires download & build) + - cardano-slotting-0.2.0.0 (lib:testlib) (requires download & build) + - ouroboros-network-testing-0.8.1.0 (lib) (requires build) + - ouroboros-network-api-0.14.1.0 (lib) (requires build) + - plutus-core-1.45.0.0 (lib) (requires download & build) + - cardano-crypto-praos-2.2.1.0 (lib) (requires download & build) + - ouroboros-network-protocols-0.14.0.2 (lib) (requires build) + - ouroboros-network-mock-0.1.1.2 (lib) (requires build) + - ouroboros-network-framework-0.18.0.2 (lib) (requires build) + - plutus-core-1.45.0.0 (lib:plutus-ir) (requires download & build) + - cardano-crypto-tests-2.2.1.0 (lib) (requires download & build) + - trace-forward-2.2.11 (lib) (first run) + - ouroboros-network-0.21.3.0 (lib) (requires build) + - ekg-forward-0.9 (lib) (requires download & build) + - plutus-tx-1.45.0.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib:plutus-core-testlib) (requires download & build) + - trace-dispatcher-2.9.2 (lib) (first run) + - plutus-ledger-api-1.45.0.0 (lib) (requires download & build) + - trace-resources-0.2.3 (lib) (first run) + - plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) (requires download & build) + - cardano-ledger-binary-1.6.0.0 (lib) (requires download & build) + - cardano-ledger-binary-1.6.0.0 (lib:testlib) (requires download & build) + - cardano-data-1.2.4.0 (lib) (requires download & build) + - cardano-crypto-wrapper-1.6.0.0 (lib) (requires download & build) + - small-steps-1.1.1.0 (lib:testlib) (requires download & build) + - set-algebra-1.1.0.3 (lib) (requires download & build) + - cardano-ledger-byron-1.1.0.0 (lib) (requires download & build) + - cardano-crypto-test-1.6.0.0 (lib) (requires download & build) + - byron-spec-ledger-1.1.0.0 (lib) (requires download & build) + - cardano-ledger-core-1.17.0.0 (lib) (requires download & build) + - byron-spec-chain-1.0.1.0 (lib) (requires download & build) + - ouroboros-consensus-0.27.0.0 (lib) (requires build) + - cardano-ledger-shelley-1.16.0.0 (lib) (requires download & build) + - cardano-ledger-byron-test-1.5.2.1 (lib) (requires download & build) + - ouroboros-consensus-diffusion-0.23.0.0 (lib) (requires build) + - cardano-ledger-allegra-1.7.0.0 (lib) (requires download & build) + - cardano-ledger-core-1.17.0.0 (lib:testlib) (requires download & build) + - cardano-ledger-mary-1.8.0.0 (lib) (requires download & build) + - cardano-ledger-alonzo-1.13.0.0 (lib) (requires download & build) + - cardano-ledger-babbage-1.11.0.0 (lib) (requires download & build) + - cardano-ledger-conway-1.19.0.0 (lib) (requires download & build) + - cardano-protocol-tpraos-1.4.0.0 (lib) (requires download & build) + - cardano-ledger-api-1.11.0.0 (lib) (requires download & build) + - ouroboros-consensus-protocol-0.12.0.0 (lib) (requires download & build) + - ouroboros-consensus-cardano-0.25.1.0 (lib) (requires build) + - cardano-api-10.16.3.0 (lib) (requires download & build) + - cardano-node-10.5.1 (lib) (first run) + - cardano-node-10.5.1 (exe:cardano-node) (first run) +Downloading cardano-binary-1.7.1.0 +Starting monoidal-synchronisation-0.1.0.6 (lib) +Downloaded cardano-binary-1.7.1.0 +Downloading plutus-core-1.45.0.0 +Starting cardano-binary-1.7.1.0 (lib) +Downloaded plutus-core-1.45.0.0 +Downloading cardano-slotting-0.2.0.0 +Starting plutus-core-1.45.0.0 (lib:index-envs) +Starting plutus-core-1.45.0.0 (lib:satint) +Downloaded cardano-slotting-0.2.0.0 +Downloading cardano-strict-containers-0.1.4.0 +Downloaded cardano-strict-containers-0.1.4.0 +Downloading fingertree-rm-1.0.0.4 +Building monoidal-synchronisation-0.1.0.6 (lib) +Downloaded fingertree-rm-1.0.0.4 +Downloading small-steps-1.1.1.0 +Building cardano-binary-1.7.1.0 (lib) +Downloaded small-steps-1.1.1.0 +Downloading vector-map-1.1.0.0 +Downloaded vector-map-1.1.0.0 +Downloading ekg-forward-0.9 +Starting vector-map-1.1.0.0 (lib) +Building plutus-core-1.45.0.0 (lib:index-envs) +Building plutus-core-1.45.0.0 (lib:satint) +Installing monoidal-synchronisation-0.1.0.6 (lib) +Downloaded ekg-forward-0.9 +Downloading cardano-crypto-class-2.2.2.0 +Downloaded cardano-crypto-class-2.2.2.0 +Downloading cardano-crypto-praos-2.2.1.0 +Downloaded cardano-crypto-praos-2.2.1.0 +Downloading plutus-tx-1.45.0.0 +Completed monoidal-synchronisation-0.1.0.6 (lib) +Starting network-mux-0.8.0.2 (lib) +Downloaded plutus-tx-1.45.0.0 +Downloading plutus-ledger-api-1.45.0.0 +Building vector-map-1.1.0.0 (lib) +Downloaded plutus-ledger-api-1.45.0.0 +Downloading cardano-crypto-tests-2.2.1.0 +Installing plutus-core-1.45.0.0 (lib:satint) +Downloaded cardano-crypto-tests-2.2.1.0 +Downloading cardano-ledger-binary-1.6.0.0 +Downloaded cardano-ledger-binary-1.6.0.0 +Downloading cardano-crypto-wrapper-1.6.0.0 +Installing plutus-core-1.45.0.0 (lib:index-envs) +Completed plutus-core-1.45.0.0 (lib:satint) +Downloaded cardano-crypto-wrapper-1.6.0.0 +Downloading cardano-data-1.2.4.0 +Building network-mux-0.8.0.2 (lib) +Downloaded cardano-data-1.2.4.0 +Downloading set-algebra-1.1.0.3 +Completed plutus-core-1.45.0.0 (lib:index-envs) +Downloaded set-algebra-1.1.0.3 +Downloading cardano-crypto-test-1.6.0.0 +Downloaded cardano-crypto-test-1.6.0.0 +Downloading byron-spec-ledger-1.1.0.0 +Downloaded byron-spec-ledger-1.1.0.0 +Downloading byron-spec-chain-1.0.1.0 +Downloaded byron-spec-chain-1.0.1.0 +Downloading cardano-ledger-byron-1.1.0.0 +Downloaded cardano-ledger-byron-1.1.0.0 +Downloading cardano-ledger-byron-test-1.5.2.1 +Downloaded cardano-ledger-byron-test-1.5.2.1 +Downloading cardano-ledger-core-1.17.0.0 +Installing cardano-binary-1.7.1.0 (lib) +Downloaded cardano-ledger-core-1.17.0.0 +Downloading cardano-ledger-shelley-1.16.0.0 +Downloaded cardano-ledger-shelley-1.16.0.0 +Downloading cardano-ledger-allegra-1.7.0.0 +Completed cardano-binary-1.7.1.0 (lib) +Starting cardano-strict-containers-0.1.4.0 (lib) +Starting cardano-slotting-0.2.0.0 (lib) +Downloaded cardano-ledger-allegra-1.7.0.0 +Downloading cardano-ledger-mary-1.8.0.0 +Downloaded cardano-ledger-mary-1.8.0.0 +Downloading cardano-ledger-alonzo-1.13.0.0 +Downloaded cardano-ledger-alonzo-1.13.0.0 +Downloading cardano-ledger-babbage-1.11.0.0 +Downloaded cardano-ledger-babbage-1.11.0.0 +Downloading cardano-ledger-conway-1.19.0.0 +Building cardano-strict-containers-0.1.4.0 (lib) +Building cardano-slotting-0.2.0.0 (lib) +Downloaded cardano-ledger-conway-1.19.0.0 +Downloading cardano-ledger-api-1.11.0.0 +Downloaded cardano-ledger-api-1.11.0.0 +Downloading cardano-protocol-tpraos-1.4.0.0 +Downloaded cardano-protocol-tpraos-1.4.0.0 +Downloading ouroboros-consensus-protocol-0.12.0.0 +Downloaded ouroboros-consensus-protocol-0.12.0.0 +Downloading cardano-api-10.16.3.0 +Installing network-mux-0.8.0.2 (lib) +Downloaded cardano-api-10.16.3.0 +Completed network-mux-0.8.0.2 (lib) +Starting ouroboros-network-testing-0.8.1.0 (lib) +Installing cardano-strict-containers-0.1.4.0 (lib) +Installing cardano-slotting-0.2.0.0 (lib) +Completed cardano-strict-containers-0.1.4.0 (lib) +Starting fingertree-rm-1.0.0.4 (lib) +Starting small-steps-1.1.1.0 (lib) +Starting cardano-crypto-class-2.2.2.0 (lib) +Completed cardano-slotting-0.2.0.0 (lib) +Starting cardano-slotting-0.2.0.0 (lib:testlib) +Starting ouroboros-network-api-0.14.1.0 (lib) +Building ouroboros-network-testing-0.8.1.0 (lib) +Building small-steps-1.1.1.0 (lib) +Building fingertree-rm-1.0.0.4 (lib) +Building cardano-crypto-class-2.2.2.0 (lib) +Building cardano-slotting-0.2.0.0 (lib:testlib) +Building ouroboros-network-api-0.14.1.0 (lib) +Installing cardano-slotting-0.2.0.0 (lib:testlib) +Installing fingertree-rm-1.0.0.4 (lib) +Completed cardano-slotting-0.2.0.0 (lib:testlib) +Completed fingertree-rm-1.0.0.4 (lib) +Installing small-steps-1.1.1.0 (lib) +Completed small-steps-1.1.1.0 (lib) +Installing vector-map-1.1.0.0 (lib) +Installing ouroboros-network-testing-0.8.1.0 (lib) +Completed vector-map-1.1.0.0 (lib) +Starting vector-map-1.1.0.0 (lib:testlib) +Completed ouroboros-network-testing-0.8.1.0 (lib) +Building vector-map-1.1.0.0 (lib:testlib) +Installing vector-map-1.1.0.0 (lib:testlib) +Completed vector-map-1.1.0.0 (lib:testlib) +Installing ouroboros-network-api-0.14.1.0 (lib) +Completed ouroboros-network-api-0.14.1.0 (lib) +Starting ouroboros-network-mock-0.1.1.2 (lib) +Starting ouroboros-network-protocols-0.14.0.2 (lib) +Starting ouroboros-network-framework-0.18.0.2 (lib) +Building ouroboros-network-mock-0.1.1.2 (lib) +Building ouroboros-network-protocols-0.14.0.2 (lib) +Building ouroboros-network-framework-0.18.0.2 (lib) +Installing ouroboros-network-mock-0.1.1.2 (lib) +Completed ouroboros-network-mock-0.1.1.2 (lib) +Installing ouroboros-network-protocols-0.14.0.2 (lib) +Installing cardano-crypto-class-2.2.2.0 (lib) +Completed ouroboros-network-protocols-0.14.0.2 (lib) +Completed cardano-crypto-class-2.2.2.0 (lib) +Starting cardano-crypto-praos-2.2.1.0 (lib) +Starting plutus-core-1.45.0.0 (lib) +Building cardano-crypto-praos-2.2.1.0 (lib) +Building plutus-core-1.45.0.0 (lib) +Installing cardano-crypto-praos-2.2.1.0 (lib) +Completed cardano-crypto-praos-2.2.1.0 (lib) +Starting cardano-crypto-tests-2.2.1.0 (lib) +Building cardano-crypto-tests-2.2.1.0 (lib) +Installing ouroboros-network-framework-0.18.0.2 (lib) +Completed ouroboros-network-framework-0.18.0.2 (lib) +Configuring library for trace-forward-2.2.11.. +Starting ekg-forward-0.9 (lib) +Starting ouroboros-network-0.21.3.0 (lib) +Building ekg-forward-0.9 (lib) +Building ouroboros-network-0.21.3.0 (lib) +Preprocessing library for trace-forward-2.2.11.. +Building library for trace-forward-2.2.11.. +[ 1 of 16] Compiling Trace.Forward.Protocol.DataPoint.Type ( src/Trace/Forward/Protocol/DataPoint/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.dyn_o ) +[ 2 of 16] Compiling Trace.Forward.Protocol.DataPoint.Forwarder ( src/Trace/Forward/Protocol/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.dyn_o ) +[ 3 of 16] Compiling Trace.Forward.Protocol.DataPoint.Codec ( src/Trace/Forward/Protocol/DataPoint/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.dyn_o ) +[ 4 of 16] Compiling Trace.Forward.Protocol.DataPoint.Acceptor ( src/Trace/Forward/Protocol/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.dyn_o ) +[ 5 of 16] Compiling Trace.Forward.Configuration.DataPoint ( src/Trace/Forward/Configuration/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.dyn_o ) +[ 6 of 16] Compiling Trace.Forward.Protocol.TraceObject.Type ( src/Trace/Forward/Protocol/TraceObject/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.dyn_o ) +[ 7 of 16] Compiling Trace.Forward.Protocol.TraceObject.Forwarder ( src/Trace/Forward/Protocol/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.dyn_o ) +[ 8 of 16] Compiling Trace.Forward.Protocol.TraceObject.Codec ( src/Trace/Forward/Protocol/TraceObject/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.dyn_o ) +[ 9 of 16] Compiling Trace.Forward.Protocol.TraceObject.Acceptor ( src/Trace/Forward/Protocol/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.dyn_o ) +[10 of 16] Compiling Trace.Forward.Configuration.TraceObject ( src/Trace/Forward/Configuration/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.dyn_o ) +[11 of 16] Compiling Trace.Forward.Utils.DataPoint ( src/Trace/Forward/Utils/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.dyn_o ) +[12 of 16] Compiling Trace.Forward.Run.DataPoint.Forwarder ( src/Trace/Forward/Run/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.dyn_o ) +[13 of 16] Compiling Trace.Forward.Run.DataPoint.Acceptor ( src/Trace/Forward/Run/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.dyn_o ) +[14 of 16] Compiling Trace.Forward.Utils.TraceObject ( src/Trace/Forward/Utils/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.dyn_o ) +[15 of 16] Compiling Trace.Forward.Run.TraceObject.Forwarder ( src/Trace/Forward/Run/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.dyn_o ) +[16 of 16] Compiling Trace.Forward.Run.TraceObject.Acceptor ( src/Trace/Forward/Run/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.dyn_o ) +Installing ekg-forward-0.9 (lib) +Completed ekg-forward-0.9 (lib) +Installing cardano-crypto-tests-2.2.1.0 (lib) +Completed cardano-crypto-tests-2.2.1.0 (lib) +Installing ouroboros-network-0.21.3.0 (lib) +Completed ouroboros-network-0.21.3.0 (lib) +Configuring library for trace-dispatcher-2.9.2.. +Preprocessing library for trace-dispatcher-2.9.2.. +Building library for trace-dispatcher-2.9.2.. +[ 1 of 26] Compiling Cardano.Logging.Prometheus.Exposition ( src/Cardano/Logging/Prometheus/Exposition.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.dyn_o ) +[ 2 of 26] Compiling Cardano.Logging.Types.NodeInfo ( src/Cardano/Logging/Types/NodeInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.dyn_o ) +[ 3 of 26] Compiling Cardano.Logging.Types.NodePeers ( src/Cardano/Logging/Types/NodePeers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.dyn_o ) +[ 4 of 26] Compiling Cardano.Logging.Types.NodeStartupInfo ( src/Cardano/Logging/Types/NodeStartupInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.dyn_o ) +[ 5 of 26] Compiling Cardano.Logging.Version ( src/Cardano/Logging/Version.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.dyn_o ) +[ 6 of 26] Compiling Control.Tracer.Arrow ( src/Control/Tracer/Arrow.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.dyn_o ) +[ 7 of 26] Compiling Control.Tracer ( src/Control/Tracer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer.dyn_o ) +[ 8 of 26] Compiling Cardano.Logging.Utils ( src/Cardano/Logging/Utils.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.dyn_o ) +[ 9 of 26] Compiling Cardano.Logging.Prometheus.NetworkRun ( src/Cardano/Logging/Prometheus/NetworkRun.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.dyn_o ) +[10 of 26] Compiling Cardano.Logging.Prometheus.TCPServer ( src/Cardano/Logging/Prometheus/TCPServer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.dyn_o ) +[11 of 26] Compiling Cardano.Logging.Types ( src/Cardano/Logging/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.dyn_o ) +[12 of 26] Compiling Cardano.Logging.Forwarding ( src/Cardano/Logging/Forwarding.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Forwarding.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Forwarding.dyn_o ) +[13 of 26] Compiling Cardano.Logging.ConfigurationParser ( src/Cardano/Logging/ConfigurationParser.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/ConfigurationParser.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/ConfigurationParser.dyn_o ) +[14 of 26] Compiling Cardano.Logging.TraceDispatcherMessage ( src/Cardano/Logging/TraceDispatcherMessage.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/TraceDispatcherMessage.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/TraceDispatcherMessage.dyn_o ) +[15 of 26] Compiling Cardano.Logging.Consistency ( src/Cardano/Logging/Consistency.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Consistency.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Consistency.dyn_o ) +[16 of 26] Compiling Cardano.Logging.Trace ( src/Cardano/Logging/Trace.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Trace.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Trace.dyn_o ) +[17 of 26] Compiling Cardano.Logging.FrequencyLimiter ( src/Cardano/Logging/FrequencyLimiter.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/FrequencyLimiter.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/FrequencyLimiter.dyn_o ) +[18 of 26] Compiling Cardano.Logging.Formatter ( src/Cardano/Logging/Formatter.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Formatter.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Formatter.dyn_o ) +[19 of 26] Compiling Cardano.Logging.DocuGenerator ( src/Cardano/Logging/DocuGenerator.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/DocuGenerator.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/DocuGenerator.dyn_o ) +[20 of 26] Compiling Cardano.Logging.Tracer.Standard ( src/Cardano/Logging/Tracer/Standard.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Standard.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Standard.dyn_o ) +[21 of 26] Compiling Cardano.Logging.Tracer.Forward ( src/Cardano/Logging/Tracer/Forward.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Forward.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Forward.dyn_o ) +[22 of 26] Compiling Cardano.Logging.Tracer.EKG ( src/Cardano/Logging/Tracer/EKG.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/EKG.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/EKG.dyn_o ) +[23 of 26] Compiling Cardano.Logging.Tracer.DataPoint ( src/Cardano/Logging/Tracer/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/DataPoint.dyn_o ) +[24 of 26] Compiling Cardano.Logging.Configuration ( src/Cardano/Logging/Configuration.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Configuration.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Configuration.dyn_o ) +[25 of 26] Compiling Cardano.Logging.Tracer.Composed ( src/Cardano/Logging/Tracer/Composed.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Composed.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Composed.dyn_o ) +[26 of 26] Compiling Cardano.Logging ( src/Cardano/Logging.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging.dyn_o ) +Configuring library for trace-resources-0.2.3.. +Preprocessing library for trace-resources-0.2.3.. +Building library for trace-resources-0.2.3.. +[1 of 4] Compiling Cardano.Logging.Resources.Types ( src/Cardano/Logging/Resources/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Types.dyn_o ) +[2 of 4] Compiling Cardano.Logging.Resources.Linux ( src/Cardano/Logging/Resources/Linux.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Linux.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Linux.dyn_o ) +[3 of 4] Compiling Cardano.Logging.Resources.Dummy ( src/Cardano/Logging/Resources/Dummy.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Dummy.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Dummy.dyn_o ) +[4 of 4] Compiling Cardano.Logging.Resources ( src/Cardano/Logging/Resources.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources.dyn_o ) +Installing plutus-core-1.45.0.0 (lib) +Completed plutus-core-1.45.0.0 (lib) +Starting plutus-core-1.45.0.0 (lib:plutus-ir) +Building plutus-core-1.45.0.0 (lib:plutus-ir) +Installing plutus-core-1.45.0.0 (lib:plutus-ir) +Completed plutus-core-1.45.0.0 (lib:plutus-ir) +Starting plutus-tx-1.45.0.0 (lib) +Starting plutus-core-1.45.0.0 (lib:plutus-core-testlib) +Building plutus-tx-1.45.0.0 (lib) +Building plutus-core-1.45.0.0 (lib:plutus-core-testlib) +Installing plutus-core-1.45.0.0 (lib:plutus-core-testlib) +Completed plutus-core-1.45.0.0 (lib:plutus-core-testlib) +Installing plutus-tx-1.45.0.0 (lib) +Completed plutus-tx-1.45.0.0 (lib) +Starting plutus-ledger-api-1.45.0.0 (lib) +Building plutus-ledger-api-1.45.0.0 (lib) +Installing plutus-ledger-api-1.45.0.0 (lib) +Completed plutus-ledger-api-1.45.0.0 (lib) +Starting cardano-ledger-binary-1.6.0.0 (lib) +Starting plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) +Building cardano-ledger-binary-1.6.0.0 (lib) +Building plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) +Installing plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) +Completed plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) +Installing cardano-ledger-binary-1.6.0.0 (lib) +Completed cardano-ledger-binary-1.6.0.0 (lib) +Starting cardano-data-1.2.4.0 (lib) +Starting cardano-ledger-binary-1.6.0.0 (lib:testlib) +Starting cardano-crypto-wrapper-1.6.0.0 (lib) +Building cardano-data-1.2.4.0 (lib) +Building cardano-crypto-wrapper-1.6.0.0 (lib) +Building cardano-ledger-binary-1.6.0.0 (lib:testlib) +Installing cardano-data-1.2.4.0 (lib) +Completed cardano-data-1.2.4.0 (lib) +Starting set-algebra-1.1.0.3 (lib) +Installing cardano-ledger-binary-1.6.0.0 (lib:testlib) +Installing cardano-crypto-wrapper-1.6.0.0 (lib) +Completed cardano-ledger-binary-1.6.0.0 (lib:testlib) +Starting small-steps-1.1.1.0 (lib:testlib) +Building set-algebra-1.1.0.3 (lib) +Completed cardano-crypto-wrapper-1.6.0.0 (lib) +Starting cardano-crypto-test-1.6.0.0 (lib) +Starting cardano-ledger-byron-1.1.0.0 (lib) +Building small-steps-1.1.1.0 (lib:testlib) +Building cardano-crypto-test-1.6.0.0 (lib) +Building cardano-ledger-byron-1.1.0.0 (lib) +Installing set-algebra-1.1.0.3 (lib) +Completed set-algebra-1.1.0.3 (lib) +Installing cardano-crypto-test-1.6.0.0 (lib) +Installing small-steps-1.1.1.0 (lib:testlib) +Completed cardano-crypto-test-1.6.0.0 (lib) +Completed small-steps-1.1.1.0 (lib:testlib) +Starting byron-spec-ledger-1.1.0.0 (lib) +Building byron-spec-ledger-1.1.0.0 (lib) +Installing byron-spec-ledger-1.1.0.0 (lib) +Completed byron-spec-ledger-1.1.0.0 (lib) +Starting byron-spec-chain-1.0.1.0 (lib) +Building byron-spec-chain-1.0.1.0 (lib) +Installing cardano-ledger-byron-1.1.0.0 (lib) +Completed cardano-ledger-byron-1.1.0.0 (lib) +Starting cardano-ledger-core-1.17.0.0 (lib) +Installing byron-spec-chain-1.0.1.0 (lib) +Building cardano-ledger-core-1.17.0.0 (lib) +Completed byron-spec-chain-1.0.1.0 (lib) +Starting cardano-ledger-byron-test-1.5.2.1 (lib) +Building cardano-ledger-byron-test-1.5.2.1 (lib) +Installing cardano-ledger-byron-test-1.5.2.1 (lib) +Completed cardano-ledger-byron-test-1.5.2.1 (lib) +Installing cardano-ledger-core-1.17.0.0 (lib) +Completed cardano-ledger-core-1.17.0.0 (lib) +Starting cardano-ledger-shelley-1.16.0.0 (lib) +Starting cardano-ledger-core-1.17.0.0 (lib:testlib) +Starting ouroboros-consensus-0.27.0.0 (lib) +Building cardano-ledger-shelley-1.16.0.0 (lib) +Building cardano-ledger-core-1.17.0.0 (lib:testlib) +Building ouroboros-consensus-0.27.0.0 (lib) +Installing cardano-ledger-core-1.17.0.0 (lib:testlib) +Completed cardano-ledger-core-1.17.0.0 (lib:testlib) +Installing cardano-ledger-shelley-1.16.0.0 (lib) +Completed cardano-ledger-shelley-1.16.0.0 (lib) +Starting cardano-ledger-allegra-1.7.0.0 (lib) +Building cardano-ledger-allegra-1.7.0.0 (lib) +Installing cardano-ledger-allegra-1.7.0.0 (lib) +Completed cardano-ledger-allegra-1.7.0.0 (lib) +Starting cardano-ledger-mary-1.8.0.0 (lib) +Building cardano-ledger-mary-1.8.0.0 (lib) +Installing ouroboros-consensus-0.27.0.0 (lib) +Completed ouroboros-consensus-0.27.0.0 (lib) +Starting ouroboros-consensus-diffusion-0.23.0.0 (lib) +Installing cardano-ledger-mary-1.8.0.0 (lib) +Building ouroboros-consensus-diffusion-0.23.0.0 (lib) +Completed cardano-ledger-mary-1.8.0.0 (lib) +Starting cardano-ledger-alonzo-1.13.0.0 (lib) +Building cardano-ledger-alonzo-1.13.0.0 (lib) +Installing ouroboros-consensus-diffusion-0.23.0.0 (lib) +Completed ouroboros-consensus-diffusion-0.23.0.0 (lib) +Installing cardano-ledger-alonzo-1.13.0.0 (lib) +Completed cardano-ledger-alonzo-1.13.0.0 (lib) +Starting cardano-ledger-babbage-1.11.0.0 (lib) +Building cardano-ledger-babbage-1.11.0.0 (lib) +Installing cardano-ledger-babbage-1.11.0.0 (lib) +Completed cardano-ledger-babbage-1.11.0.0 (lib) +Starting cardano-ledger-conway-1.19.0.0 (lib) +Building cardano-ledger-conway-1.19.0.0 (lib) +Installing cardano-ledger-conway-1.19.0.0 (lib) +Completed cardano-ledger-conway-1.19.0.0 (lib) +Starting cardano-protocol-tpraos-1.4.0.0 (lib) +Starting cardano-ledger-api-1.11.0.0 (lib) +Building cardano-protocol-tpraos-1.4.0.0 (lib) +Building cardano-ledger-api-1.11.0.0 (lib) +Installing cardano-ledger-api-1.11.0.0 (lib) +Installing cardano-protocol-tpraos-1.4.0.0 (lib) +Completed cardano-ledger-api-1.11.0.0 (lib) +Completed cardano-protocol-tpraos-1.4.0.0 (lib) +Starting ouroboros-consensus-protocol-0.12.0.0 (lib) +Building ouroboros-consensus-protocol-0.12.0.0 (lib) +Installing ouroboros-consensus-protocol-0.12.0.0 (lib) +Completed ouroboros-consensus-protocol-0.12.0.0 (lib) +Starting ouroboros-consensus-cardano-0.25.1.0 (lib) +Building ouroboros-consensus-cardano-0.25.1.0 (lib) +Installing ouroboros-consensus-cardano-0.25.1.0 (lib) +Completed ouroboros-consensus-cardano-0.25.1.0 (lib) +Starting cardano-api-10.16.3.0 (lib) +Building cardano-api-10.16.3.0 (lib) +Installing cardano-api-10.16.3.0 (lib) +Completed cardano-api-10.16.3.0 (lib) +Configuring library for cardano-node-10.5.1.. +Preprocessing library for cardano-node-10.5.1.. +Building library for cardano-node-10.5.1.. +[ 1 of 74] Compiling Cardano.Node.Configuration.LedgerDB ( src/Cardano/Node/Configuration/LedgerDB.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/LedgerDB.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/LedgerDB.dyn_o ) +[ 2 of 74] Compiling Cardano.Node.Configuration.NodeAddress ( src/Cardano/Node/Configuration/NodeAddress.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/NodeAddress.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/NodeAddress.dyn_o ) +[ 3 of 74] Compiling Cardano.Node.Configuration.Socket ( src/Cardano/Node/Configuration/Socket.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Socket.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Socket.dyn_o ) +[ 4 of 74] Compiling Cardano.Node.Handlers.Shutdown ( src/Cardano/Node/Handlers/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/Shutdown.dyn_o ) +[ 5 of 74] Compiling Cardano.Node.Handlers.TopLevel ( src/Cardano/Node/Handlers/TopLevel.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/TopLevel.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/TopLevel.dyn_o ) +[ 6 of 74] Compiling Cardano.Node.Orphans ( src/Cardano/Node/Orphans.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Orphans.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Orphans.dyn_o ) +[ 7 of 74] Compiling Cardano.Node.Pretty ( src/Cardano/Node/Pretty.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Pretty.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Pretty.dyn_o ) +[ 8 of 74] Compiling Cardano.Node.Queries ( src/Cardano/Node/Queries.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Queries.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Queries.dyn_o ) +[ 9 of 74] Compiling Cardano.Node.STM ( src/Cardano/Node/STM.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/STM.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/STM.dyn_o ) +[10 of 74] Compiling Cardano.Node.Tracing.Compat ( src/Cardano/Node/Tracing/Compat.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Compat.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Compat.dyn_o ) +[11 of 74] Compiling Cardano.Node.Tracing.DefaultTraceConfig ( src/Cardano/Node/Tracing/DefaultTraceConfig.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/DefaultTraceConfig.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/DefaultTraceConfig.dyn_o ) +[12 of 74] Compiling Cardano.Node.Tracing.NodeInfo ( src/Cardano/Node/Tracing/NodeInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeInfo.dyn_o ) +[13 of 74] Compiling Cardano.Node.Tracing.NodeStartupInfo ( src/Cardano/Node/Tracing/NodeStartupInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeStartupInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeStartupInfo.dyn_o ) +[14 of 74] Compiling Cardano.Node.Tracing.Render ( src/Cardano/Node/Tracing/Render.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Render.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Render.dyn_o ) +[15 of 74] Compiling Cardano.Node.Tracing.Formatting ( src/Cardano/Node/Tracing/Formatting.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Formatting.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Formatting.dyn_o ) +[16 of 74] Compiling Cardano.Node.Tracing.Tracers.BlockReplayProgress ( src/Cardano/Node/Tracing/Tracers/BlockReplayProgress.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/BlockReplayProgress.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/BlockReplayProgress.dyn_o ) +[17 of 74] Compiling Cardano.Node.Tracing.Tracers.ConsensusStartupException ( src/Cardano/Node/Tracing/Tracers/ConsensusStartupException.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ConsensusStartupException.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ConsensusStartupException.dyn_o ) +[18 of 74] Compiling Cardano.Node.Tracing.Tracers.ForgingStats ( src/Cardano/Node/Tracing/Tracers/ForgingStats.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ForgingStats.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ForgingStats.dyn_o ) +[19 of 74] Compiling Cardano.Node.Tracing.Tracers.KESInfo ( src/Cardano/Node/Tracing/Tracers/KESInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/KESInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/KESInfo.dyn_o ) +[20 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeToClient ( src/Cardano/Node/Tracing/Tracers/NodeToClient.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToClient.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToClient.dyn_o ) +[21 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeToNode ( src/Cardano/Node/Tracing/Tracers/NodeToNode.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToNode.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToNode.dyn_o ) +[22 of 74] Compiling Cardano.Node.Tracing.Tracers.NonP2P ( src/Cardano/Node/Tracing/Tracers/NonP2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NonP2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NonP2P.dyn_o ) +[23 of 74] Compiling Cardano.Node.Tracing.Tracers.Peer ( src/Cardano/Node/Tracing/Tracers/Peer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Peer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Peer.dyn_o ) +[24 of 74] Compiling Cardano.Node.Tracing.Peers ( src/Cardano/Node/Tracing/Peers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Peers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Peers.dyn_o ) +[25 of 74] Compiling Cardano.Node.Tracing.Tracers.Resources ( src/Cardano/Node/Tracing/Tracers/Resources.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Resources.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Resources.dyn_o ) +[26 of 74] Compiling Cardano.Node.Tracing.Tracers.Shutdown ( src/Cardano/Node/Tracing/Tracers/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Shutdown.dyn_o ) +[27 of 74] Compiling Cardano.Node.Types ( src/Cardano/Node/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Types.dyn_o ) +[28 of 74] Compiling Cardano.Node.Protocol.Checkpoints ( src/Cardano/Node/Protocol/Checkpoints.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Checkpoints.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Checkpoints.dyn_o ) +[29 of 74] Compiling Cardano.Tracing.Config ( src/Cardano/Tracing/Config.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Config.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Config.dyn_o ) +[30 of 74] Compiling Cardano.Tracing.HasIssuer ( src/Cardano/Tracing/HasIssuer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/HasIssuer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/HasIssuer.dyn_o ) +[31 of 74] Compiling Cardano.Node.TraceConstraints ( src/Cardano/Node/TraceConstraints.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/TraceConstraints.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/TraceConstraints.dyn_o ) +[32 of 74] Compiling Cardano.Node.Protocol.Types ( src/Cardano/Node/Protocol/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Types.dyn_o ) +[33 of 74] Compiling Cardano.Tracing.Metrics ( src/Cardano/Tracing/Metrics.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Metrics.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Metrics.dyn_o ) +[34 of 74] Compiling Cardano.Tracing.OrphanInstances.Common ( src/Cardano/Tracing/OrphanInstances/Common.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Common.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Common.dyn_o ) +[35 of 74] Compiling Cardano.Tracing.Peer ( src/Cardano/Tracing/Peer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Peer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Peer.dyn_o ) +[36 of 74] Compiling Cardano.Tracing.Render ( src/Cardano/Tracing/Render.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Render.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Render.dyn_o ) +[37 of 74] Compiling Cardano.Tracing.OrphanInstances.Network ( src/Cardano/Tracing/OrphanInstances/Network.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Network.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Network.dyn_o ) +[38 of 74] Compiling Cardano.Node.Configuration.POM ( src/Cardano/Node/Configuration/POM.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/POM.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/POM.dyn_o ) +[39 of 74] Compiling Cardano.Node.Parsers ( src/Cardano/Node/Parsers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Parsers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Parsers.dyn_o ) +[40 of 74] Compiling Cardano.Node.Configuration.Topology ( src/Cardano/Node/Configuration/Topology.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Topology.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Topology.dyn_o ) +[41 of 74] Compiling Cardano.Tracing.OrphanInstances.Consensus ( src/Cardano/Tracing/OrphanInstances/Consensus.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Consensus.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Consensus.dyn_o ) +[42 of 74] Compiling Cardano.Tracing.OrphanInstances.Shelley ( src/Cardano/Tracing/OrphanInstances/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Shelley.dyn_o ) +[43 of 74] Compiling Cardano.Node.Tracing.Era.Shelley ( src/Cardano/Node/Tracing/Era/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Shelley.dyn_o ) +[44 of 74] Compiling Cardano.Tracing.OrphanInstances.HardFork ( src/Cardano/Tracing/OrphanInstances/HardFork.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/HardFork.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/HardFork.dyn_o ) +[45 of 74] Compiling Cardano.Node.Tracing.Era.HardFork ( src/Cardano/Node/Tracing/Era/HardFork.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/HardFork.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/HardFork.dyn_o ) +[46 of 74] Compiling Cardano.Tracing.OrphanInstances.Byron ( src/Cardano/Tracing/OrphanInstances/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Byron.dyn_o ) +[47 of 74] Compiling Cardano.Node.Tracing.Era.Byron ( src/Cardano/Node/Tracing/Era/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Byron.dyn_o ) +[48 of 74] Compiling Cardano.Node.Tracing.Tracers.Consensus ( src/Cardano/Node/Tracing/Tracers/Consensus.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Consensus.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Consensus.dyn_o ) +[49 of 74] Compiling Cardano.Node.Tracing.Tracers.ChainDB ( src/Cardano/Node/Tracing/Tracers/ChainDB.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ChainDB.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ChainDB.dyn_o ) +[50 of 74] Compiling Cardano.Node.Tracing.Tracers.LedgerMetrics ( src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/LedgerMetrics.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/LedgerMetrics.dyn_o ) +[51 of 74] Compiling Cardano.Node.Protocol.Shelley ( src/Cardano/Node/Protocol/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Shelley.dyn_o ) +[52 of 74] Compiling Cardano.Node.Protocol.Conway ( src/Cardano/Node/Protocol/Conway.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Conway.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Conway.dyn_o ) +[53 of 74] Compiling Cardano.Node.Protocol.Alonzo ( src/Cardano/Node/Protocol/Alonzo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Alonzo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Alonzo.dyn_o ) +[54 of 74] Compiling Cardano.Node.Protocol.Byron ( src/Cardano/Node/Protocol/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Byron.dyn_o ) +[55 of 74] Compiling Cardano.Node.Protocol.Cardano ( src/Cardano/Node/Protocol/Cardano.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Cardano.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Cardano.dyn_o ) +[56 of 74] Compiling Cardano.Node.Protocol ( src/Cardano/Node/Protocol.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol.dyn_o ) +[57 of 74] Compiling Cardano.Tracing.Shutdown ( src/Cardano/Tracing/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Shutdown.dyn_o ) +[58 of 74] Compiling Paths_cardano_node ( /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/autogen/Paths_cardano_node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Paths_cardano_node.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Paths_cardano_node.dyn_o ) +[59 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeVersion ( src/Cardano/Node/Tracing/Tracers/NodeVersion.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeVersion.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeVersion.dyn_o ) +[60 of 74] Compiling Cardano.Node.Startup ( src/Cardano/Node/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Startup.dyn_o ) +[61 of 74] Compiling Cardano.Node.Tracing.Tracers.Startup ( src/Cardano/Node/Tracing/Tracers/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Startup.dyn_o ) +[62 of 74] Compiling Cardano.Tracing.Startup ( src/Cardano/Tracing/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Startup.dyn_o ) +[63 of 74] Compiling Cardano.Node.Tracing.StateRep ( src/Cardano/Node/Tracing/StateRep.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/StateRep.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/StateRep.dyn_o ) +[64 of 74] Compiling Cardano.Node.Tracing ( src/Cardano/Node/Tracing.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing.dyn_o ) +[65 of 74] Compiling Cardano.Node.Configuration.TopologyP2P ( src/Cardano/Node/Configuration/TopologyP2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/TopologyP2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/TopologyP2P.dyn_o ) +[66 of 74] Compiling Cardano.Node.Tracing.Tracers.P2P ( src/Cardano/Node/Tracing/Tracers/P2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/P2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/P2P.dyn_o ) +[67 of 74] Compiling Cardano.Node.Tracing.Tracers.Diffusion ( src/Cardano/Node/Tracing/Tracers/Diffusion.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Diffusion.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Diffusion.dyn_o ) +[68 of 74] Compiling Cardano.Node.Tracing.Documentation ( src/Cardano/Node/Tracing/Documentation.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Documentation.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Documentation.dyn_o ) +[69 of 74] Compiling Cardano.Node.Tracing.Consistency ( src/Cardano/Node/Tracing/Consistency.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Consistency.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Consistency.dyn_o ) +[70 of 74] Compiling Cardano.Node.Tracing.Tracers ( src/Cardano/Node/Tracing/Tracers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers.dyn_o ) +[71 of 74] Compiling Cardano.Node.Tracing.API ( src/Cardano/Node/Tracing/API.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/API.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/API.dyn_o ) +[72 of 74] Compiling Cardano.Node.Configuration.Logging ( src/Cardano/Node/Configuration/Logging.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Logging.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Logging.dyn_o ) +[73 of 74] Compiling Cardano.Tracing.Tracers ( src/Cardano/Tracing/Tracers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Tracers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Tracers.dyn_o ) +[74 of 74] Compiling Cardano.Node.Run ( src/Cardano/Node/Run.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Run.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Run.dyn_o ) +Configuring executable 'cardano-node' for cardano-node-10.5.1.. +Preprocessing executable 'cardano-node' for cardano-node-10.5.1.. +Building executable 'cardano-node' for cardano-node-10.5.1.. +[1 of 2] Compiling Paths_cardano_node ( /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/autogen/Paths_cardano_node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Paths_cardano_node.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Paths_cardano_node.dyn_o ) +[2 of 2] Compiling Main ( app/cardano-node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Main.o ) +[3 of 3] Linking /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node +806.71user 73.77system 9:59.67elapsed 146%CPU (0avgtext+0avgdata 2026024maxresident)k +462126inputs+8559774outputs (333525major+29595657minor)pagefaults 0swaps diff --git a/bench-9950 b/bench-9950 new file mode 100644 index 00000000000..44e5def5531 --- /dev/null +++ b/bench-9950 @@ -0,0 +1,3933 @@ +HEAD is now at ed637941f Trace more information about EBs +HEAD is now at 479f0d0d8 leiosdemo202511: introduce BearerBytes class +Resolving dependencies... +Build profile: -w ghc-9.6.5 -O1 +In order, the following will be built (use -v for more details): + - trace-forward-2.2.11 (lib) (first run) + - trace-dispatcher-2.9.2 (lib) (first run) + - trace-resources-0.2.3 (lib) (first run) + - cardano-node-10.5.1 (lib) (first run) + - cardano-node-10.5.1 (exe:cardano-node) (first run) +Configuring library for trace-forward-2.2.11.. +Preprocessing library for trace-forward-2.2.11.. +Building library for trace-forward-2.2.11.. +[ 1 of 16] Compiling Trace.Forward.Protocol.DataPoint.Type ( src/Trace/Forward/Protocol/DataPoint/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.dyn_o ) +[ 2 of 16] Compiling Trace.Forward.Protocol.DataPoint.Forwarder ( src/Trace/Forward/Protocol/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.dyn_o ) +[ 3 of 16] Compiling Trace.Forward.Protocol.DataPoint.Codec ( src/Trace/Forward/Protocol/DataPoint/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.dyn_o ) +[ 4 of 16] Compiling Trace.Forward.Protocol.DataPoint.Acceptor ( src/Trace/Forward/Protocol/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.dyn_o ) +[ 5 of 16] Compiling Trace.Forward.Configuration.DataPoint ( src/Trace/Forward/Configuration/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.dyn_o ) +[ 6 of 16] Compiling Trace.Forward.Protocol.TraceObject.Type ( src/Trace/Forward/Protocol/TraceObject/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.dyn_o ) +[ 7 of 16] Compiling Trace.Forward.Protocol.TraceObject.Forwarder ( src/Trace/Forward/Protocol/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.dyn_o ) +[ 8 of 16] Compiling Trace.Forward.Protocol.TraceObject.Codec ( src/Trace/Forward/Protocol/TraceObject/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.dyn_o ) +[ 9 of 16] Compiling Trace.Forward.Protocol.TraceObject.Acceptor ( src/Trace/Forward/Protocol/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.dyn_o ) +[10 of 16] Compiling Trace.Forward.Configuration.TraceObject ( src/Trace/Forward/Configuration/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.dyn_o ) +[11 of 16] Compiling Trace.Forward.Utils.DataPoint ( src/Trace/Forward/Utils/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.dyn_o ) +[12 of 16] Compiling Trace.Forward.Run.DataPoint.Forwarder ( src/Trace/Forward/Run/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.dyn_o ) +[13 of 16] Compiling Trace.Forward.Run.DataPoint.Acceptor ( src/Trace/Forward/Run/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.dyn_o ) +[14 of 16] Compiling Trace.Forward.Utils.TraceObject ( src/Trace/Forward/Utils/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.dyn_o ) +[15 of 16] Compiling Trace.Forward.Run.TraceObject.Forwarder ( src/Trace/Forward/Run/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.dyn_o ) +[16 of 16] Compiling Trace.Forward.Run.TraceObject.Acceptor ( src/Trace/Forward/Run/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.dyn_o ) +Configuring library for trace-dispatcher-2.9.2.. +Preprocessing library for trace-dispatcher-2.9.2.. +Building library for trace-dispatcher-2.9.2.. +[ 1 of 26] Compiling Cardano.Logging.Prometheus.Exposition ( src/Cardano/Logging/Prometheus/Exposition.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.dyn_o ) +[ 2 of 26] Compiling Cardano.Logging.Types.NodeInfo ( src/Cardano/Logging/Types/NodeInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.dyn_o ) +[ 3 of 26] Compiling Cardano.Logging.Types.NodePeers ( src/Cardano/Logging/Types/NodePeers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.dyn_o ) +[ 4 of 26] Compiling Cardano.Logging.Types.NodeStartupInfo ( src/Cardano/Logging/Types/NodeStartupInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.dyn_o ) +[ 5 of 26] Compiling Cardano.Logging.Version ( src/Cardano/Logging/Version.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.dyn_o ) +[ 6 of 26] Compiling Control.Tracer.Arrow ( src/Control/Tracer/Arrow.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.dyn_o ) +[ 7 of 26] Compiling Control.Tracer ( src/Control/Tracer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer.dyn_o ) +[ 8 of 26] Compiling Cardano.Logging.Utils ( src/Cardano/Logging/Utils.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.dyn_o ) +[ 9 of 26] Compiling Cardano.Logging.Prometheus.NetworkRun ( src/Cardano/Logging/Prometheus/NetworkRun.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.dyn_o ) +[10 of 26] Compiling Cardano.Logging.Prometheus.TCPServer ( src/Cardano/Logging/Prometheus/TCPServer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.dyn_o ) +[11 of 26] Compiling Cardano.Logging.Types ( src/Cardano/Logging/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.dyn_o ) +Cloning into '/home/ch1bo/code/iog/cardano-node/dist-newstyle/src/ouroboros_-bc2ac5ad23a0916f'... +HEAD is now at ed637941f Trace more information about EBs +Cloning into '/home/ch1bo/code/iog/cardano-node/dist-newstyle/src/ouroboros_-88b17958106bd768'... +HEAD is now at 479f0d0d8 leiosdemo202511: introduce BearerBytes class +Warning: Caught exception during _mirrors lookup:DnsHostNotFound +Warning: No mirrors found for https://chap.intersectmbo.org/ +Warning: The package list for 'hackage.haskell.org' does not exist. Run 'cabal +update' to download it. +Warning: Requested index-state 2025-06-03T08:07:10Z is newer than +'hackage.haskell.org'! Falling back to older state (). +Warning: The package list for 'cardano-haskell-packages' does not exist. Run +'cabal update' to download it. +Warning: Requested index-state 2025-07-17T12:00:21Z is newer than +'cardano-haskell-packages'! Falling back to older state (). +Resolving dependencies... +Error: cabal: Could not resolve dependencies: +[__0] unknown package: Cabal (user goal) +[__0] fail (backjumping, conflict set: Cabal) +After searching the rest of the dependency tree exhaustively, these were the +goals I've had most trouble fulfilling: Cabal + +Command exited with non-zero status 1 +5.38user 1.59system 0:08.31elapsed 83%CPU (0avgtext+0avgdata 78680maxresident)k +1520inputs+378354outputs (8126major+188479minor)pagefaults 0swaps +Resolving dependencies... +Build profile: -w ghc-9.6.5 -O1 +In order, the following will be built (use -v for more details): + - trace-forward-2.2.11 (lib) (first run) + - trace-dispatcher-2.9.2 (lib) (first run) + - trace-resources-0.2.3 (lib) (first run) + - cardano-node-10.5.1 (lib) (first run) + - cardano-node-10.5.1 (exe:cardano-node) (first run) +Configuring library for trace-forward-2.2.11.. +Preprocessing library for trace-forward-2.2.11.. +Building library for trace-forward-2.2.11.. +[ 1 of 16] Compiling Trace.Forward.Protocol.DataPoint.Type ( src/Trace/Forward/Protocol/DataPoint/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.dyn_o ) +[ 2 of 16] Compiling Trace.Forward.Protocol.DataPoint.Forwarder ( src/Trace/Forward/Protocol/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.dyn_o ) +[ 3 of 16] Compiling Trace.Forward.Protocol.DataPoint.Codec ( src/Trace/Forward/Protocol/DataPoint/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.dyn_o ) +[ 4 of 16] Compiling Trace.Forward.Protocol.DataPoint.Acceptor ( src/Trace/Forward/Protocol/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.dyn_o ) +[ 5 of 16] Compiling Trace.Forward.Configuration.DataPoint ( src/Trace/Forward/Configuration/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.dyn_o ) +[ 6 of 16] Compiling Trace.Forward.Protocol.TraceObject.Type ( src/Trace/Forward/Protocol/TraceObject/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.dyn_o ) +[ 7 of 16] Compiling Trace.Forward.Protocol.TraceObject.Forwarder ( src/Trace/Forward/Protocol/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.dyn_o ) +[ 8 of 16] Compiling Trace.Forward.Protocol.TraceObject.Codec ( src/Trace/Forward/Protocol/TraceObject/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.dyn_o ) +[ 9 of 16] Compiling Trace.Forward.Protocol.TraceObject.Acceptor ( src/Trace/Forward/Protocol/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.dyn_o ) +[10 of 16] Compiling Trace.Forward.Configuration.TraceObject ( src/Trace/Forward/Configuration/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.dyn_o ) +[11 of 16] Compiling Trace.Forward.Utils.DataPoint ( src/Trace/Forward/Utils/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.dyn_o ) +[12 of 16] Compiling Trace.Forward.Run.DataPoint.Forwarder ( src/Trace/Forward/Run/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.dyn_o ) +[13 of 16] Compiling Trace.Forward.Run.DataPoint.Acceptor ( src/Trace/Forward/Run/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.dyn_o ) +[14 of 16] Compiling Trace.Forward.Utils.TraceObject ( src/Trace/Forward/Utils/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.dyn_o ) +[15 of 16] Compiling Trace.Forward.Run.TraceObject.Forwarder ( src/Trace/Forward/Run/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.dyn_o ) +[16 of 16] Compiling Trace.Forward.Run.TraceObject.Acceptor ( src/Trace/Forward/Run/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.dyn_o ) +Configuring library for trace-dispatcher-2.9.2.. +Preprocessing library for trace-dispatcher-2.9.2.. +Building library for trace-dispatcher-2.9.2.. +[ 1 of 26] Compiling Cardano.Logging.Prometheus.Exposition ( src/Cardano/Logging/Prometheus/Exposition.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.dyn_o ) +[ 2 of 26] Compiling Cardano.Logging.Types.NodeInfo ( src/Cardano/Logging/Types/NodeInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.dyn_o ) +[ 3 of 26] Compiling Cardano.Logging.Types.NodePeers ( src/Cardano/Logging/Types/NodePeers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.dyn_o ) +[ 4 of 26] Compiling Cardano.Logging.Types.NodeStartupInfo ( src/Cardano/Logging/Types/NodeStartupInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.dyn_o ) +[ 5 of 26] Compiling Cardano.Logging.Version ( src/Cardano/Logging/Version.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.dyn_o ) +[ 6 of 26] Compiling Control.Tracer.Arrow ( src/Control/Tracer/Arrow.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.dyn_o ) +[ 7 of 26] Compiling Control.Tracer ( src/Control/Tracer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer.dyn_o ) +[ 8 of 26] Compiling Cardano.Logging.Utils ( src/Cardano/Logging/Utils.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.dyn_o ) +[ 9 of 26] Compiling Cardano.Logging.Prometheus.NetworkRun ( src/Cardano/Logging/Prometheus/NetworkRun.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.dyn_o ) +[10 of 26] Compiling Cardano.Logging.Prometheus.TCPServer ( src/Cardano/Logging/Prometheus/TCPServer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.dyn_o ) +[11 of 26] Compiling Cardano.Logging.Types ( src/Cardano/Logging/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.dyn_o ) +[12 of 26] Compiling Cardano.Logging.Forwarding ( src/Cardano/Logging/Forwarding.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Forwarding.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Forwarding.dyn_o ) +[13 of 26] Compiling Cardano.Logging.ConfigurationParser ( src/Cardano/Logging/ConfigurationParser.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/ConfigurationParser.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/ConfigurationParser.dyn_o ) +[14 of 26] Compiling Cardano.Logging.TraceDispatcherMessage ( src/Cardano/Logging/TraceDispatcherMessage.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/TraceDispatcherMessage.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/TraceDispatcherMessage.dyn_o ) +[15 of 26] Compiling Cardano.Logging.Consistency ( src/Cardano/Logging/Consistency.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Consistency.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Consistency.dyn_o ) +[16 of 26] Compiling Cardano.Logging.Trace ( src/Cardano/Logging/Trace.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Trace.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Trace.dyn_o ) +[17 of 26] Compiling Cardano.Logging.FrequencyLimiter ( src/Cardano/Logging/FrequencyLimiter.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/FrequencyLimiter.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/FrequencyLimiter.dyn_o ) +[18 of 26] Compiling Cardano.Logging.Formatter ( src/Cardano/Logging/Formatter.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Formatter.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Formatter.dyn_o ) +[19 of 26] Compiling Cardano.Logging.DocuGenerator ( src/Cardano/Logging/DocuGenerator.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/DocuGenerator.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/DocuGenerator.dyn_o ) +[20 of 26] Compiling Cardano.Logging.Tracer.Standard ( src/Cardano/Logging/Tracer/Standard.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Standard.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Standard.dyn_o ) +[21 of 26] Compiling Cardano.Logging.Tracer.Forward ( src/Cardano/Logging/Tracer/Forward.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Forward.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Forward.dyn_o ) +[22 of 26] Compiling Cardano.Logging.Tracer.EKG ( src/Cardano/Logging/Tracer/EKG.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/EKG.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/EKG.dyn_o ) +[23 of 26] Compiling Cardano.Logging.Tracer.DataPoint ( src/Cardano/Logging/Tracer/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/DataPoint.dyn_o ) +[24 of 26] Compiling Cardano.Logging.Configuration ( src/Cardano/Logging/Configuration.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Configuration.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Configuration.dyn_o ) +[25 of 26] Compiling Cardano.Logging.Tracer.Composed ( src/Cardano/Logging/Tracer/Composed.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Composed.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Composed.dyn_o ) +[26 of 26] Compiling Cardano.Logging ( src/Cardano/Logging.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging.dyn_o ) +Configuring library for trace-resources-0.2.3.. +Preprocessing library for trace-resources-0.2.3.. +Building library for trace-resources-0.2.3.. +[1 of 4] Compiling Cardano.Logging.Resources.Types ( src/Cardano/Logging/Resources/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Types.dyn_o ) +[2 of 4] Compiling Cardano.Logging.Resources.Linux ( src/Cardano/Logging/Resources/Linux.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Linux.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Linux.dyn_o ) +[3 of 4] Compiling Cardano.Logging.Resources.Dummy ( src/Cardano/Logging/Resources/Dummy.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Dummy.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Dummy.dyn_o ) +[4 of 4] Compiling Cardano.Logging.Resources ( src/Cardano/Logging/Resources.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources.dyn_o ) +Configuring library for cardano-node-10.5.1.. +Preprocessing library for cardano-node-10.5.1.. +Building library for cardano-node-10.5.1.. +[ 1 of 74] Compiling Cardano.Node.Configuration.LedgerDB ( src/Cardano/Node/Configuration/LedgerDB.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/LedgerDB.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/LedgerDB.dyn_o ) +[ 2 of 74] Compiling Cardano.Node.Configuration.NodeAddress ( src/Cardano/Node/Configuration/NodeAddress.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/NodeAddress.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/NodeAddress.dyn_o ) +[ 3 of 74] Compiling Cardano.Node.Configuration.Socket ( src/Cardano/Node/Configuration/Socket.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Socket.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Socket.dyn_o ) +[ 4 of 74] Compiling Cardano.Node.Handlers.Shutdown ( src/Cardano/Node/Handlers/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/Shutdown.dyn_o ) +[ 5 of 74] Compiling Cardano.Node.Handlers.TopLevel ( src/Cardano/Node/Handlers/TopLevel.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/TopLevel.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/TopLevel.dyn_o ) +[ 6 of 74] Compiling Cardano.Node.Orphans ( src/Cardano/Node/Orphans.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Orphans.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Orphans.dyn_o ) +[ 7 of 74] Compiling Cardano.Node.Pretty ( src/Cardano/Node/Pretty.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Pretty.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Pretty.dyn_o ) +[ 8 of 74] Compiling Cardano.Node.Queries ( src/Cardano/Node/Queries.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Queries.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Queries.dyn_o ) +[ 9 of 74] Compiling Cardano.Node.STM ( src/Cardano/Node/STM.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/STM.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/STM.dyn_o ) +[10 of 74] Compiling Cardano.Node.Tracing.Compat ( src/Cardano/Node/Tracing/Compat.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Compat.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Compat.dyn_o ) +[11 of 74] Compiling Cardano.Node.Tracing.DefaultTraceConfig ( src/Cardano/Node/Tracing/DefaultTraceConfig.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/DefaultTraceConfig.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/DefaultTraceConfig.dyn_o ) +[12 of 74] Compiling Cardano.Node.Tracing.NodeInfo ( src/Cardano/Node/Tracing/NodeInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeInfo.dyn_o ) +[13 of 74] Compiling Cardano.Node.Tracing.NodeStartupInfo ( src/Cardano/Node/Tracing/NodeStartupInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeStartupInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeStartupInfo.dyn_o ) +[14 of 74] Compiling Cardano.Node.Tracing.Render ( src/Cardano/Node/Tracing/Render.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Render.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Render.dyn_o ) +[15 of 74] Compiling Cardano.Node.Tracing.Formatting ( src/Cardano/Node/Tracing/Formatting.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Formatting.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Formatting.dyn_o ) +[16 of 74] Compiling Cardano.Node.Tracing.Tracers.BlockReplayProgress ( src/Cardano/Node/Tracing/Tracers/BlockReplayProgress.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/BlockReplayProgress.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/BlockReplayProgress.dyn_o ) +[17 of 74] Compiling Cardano.Node.Tracing.Tracers.ConsensusStartupException ( src/Cardano/Node/Tracing/Tracers/ConsensusStartupException.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ConsensusStartupException.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ConsensusStartupException.dyn_o ) +[18 of 74] Compiling Cardano.Node.Tracing.Tracers.ForgingStats ( src/Cardano/Node/Tracing/Tracers/ForgingStats.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ForgingStats.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ForgingStats.dyn_o ) +[19 of 74] Compiling Cardano.Node.Tracing.Tracers.KESInfo ( src/Cardano/Node/Tracing/Tracers/KESInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/KESInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/KESInfo.dyn_o ) +[20 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeToClient ( src/Cardano/Node/Tracing/Tracers/NodeToClient.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToClient.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToClient.dyn_o ) +[21 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeToNode ( src/Cardano/Node/Tracing/Tracers/NodeToNode.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToNode.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToNode.dyn_o ) +[22 of 74] Compiling Cardano.Node.Tracing.Tracers.NonP2P ( src/Cardano/Node/Tracing/Tracers/NonP2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NonP2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NonP2P.dyn_o ) +[23 of 74] Compiling Cardano.Node.Tracing.Tracers.Peer ( src/Cardano/Node/Tracing/Tracers/Peer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Peer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Peer.dyn_o ) +[24 of 74] Compiling Cardano.Node.Tracing.Peers ( src/Cardano/Node/Tracing/Peers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Peers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Peers.dyn_o ) +[25 of 74] Compiling Cardano.Node.Tracing.Tracers.Resources ( src/Cardano/Node/Tracing/Tracers/Resources.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Resources.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Resources.dyn_o ) +[26 of 74] Compiling Cardano.Node.Tracing.Tracers.Shutdown ( src/Cardano/Node/Tracing/Tracers/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Shutdown.dyn_o ) +[27 of 74] Compiling Cardano.Node.Types ( src/Cardano/Node/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Types.dyn_o ) +[28 of 74] Compiling Cardano.Node.Protocol.Checkpoints ( src/Cardano/Node/Protocol/Checkpoints.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Checkpoints.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Checkpoints.dyn_o ) +[29 of 74] Compiling Cardano.Tracing.Config ( src/Cardano/Tracing/Config.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Config.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Config.dyn_o ) +[30 of 74] Compiling Cardano.Tracing.HasIssuer ( src/Cardano/Tracing/HasIssuer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/HasIssuer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/HasIssuer.dyn_o ) +[31 of 74] Compiling Cardano.Node.TraceConstraints ( src/Cardano/Node/TraceConstraints.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/TraceConstraints.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/TraceConstraints.dyn_o ) +[32 of 74] Compiling Cardano.Node.Protocol.Types ( src/Cardano/Node/Protocol/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Types.dyn_o ) +[33 of 74] Compiling Cardano.Tracing.Metrics ( src/Cardano/Tracing/Metrics.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Metrics.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Metrics.dyn_o ) +[34 of 74] Compiling Cardano.Tracing.OrphanInstances.Common ( src/Cardano/Tracing/OrphanInstances/Common.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Common.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Common.dyn_o ) +[35 of 74] Compiling Cardano.Tracing.Peer ( src/Cardano/Tracing/Peer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Peer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Peer.dyn_o ) +[36 of 74] Compiling Cardano.Tracing.Render ( src/Cardano/Tracing/Render.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Render.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Render.dyn_o ) +[37 of 74] Compiling Cardano.Tracing.OrphanInstances.Network ( src/Cardano/Tracing/OrphanInstances/Network.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Network.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Network.dyn_o ) +[38 of 74] Compiling Cardano.Node.Configuration.POM ( src/Cardano/Node/Configuration/POM.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/POM.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/POM.dyn_o ) +[39 of 74] Compiling Cardano.Node.Parsers ( src/Cardano/Node/Parsers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Parsers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Parsers.dyn_o ) +[40 of 74] Compiling Cardano.Node.Configuration.Topology ( src/Cardano/Node/Configuration/Topology.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Topology.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Topology.dyn_o ) +[41 of 74] Compiling Cardano.Tracing.OrphanInstances.Consensus ( src/Cardano/Tracing/OrphanInstances/Consensus.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Consensus.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Consensus.dyn_o ) +[42 of 74] Compiling Cardano.Tracing.OrphanInstances.Shelley ( src/Cardano/Tracing/OrphanInstances/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Shelley.dyn_o ) +[43 of 74] Compiling Cardano.Node.Tracing.Era.Shelley ( src/Cardano/Node/Tracing/Era/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Shelley.dyn_o ) +[44 of 74] Compiling Cardano.Tracing.OrphanInstances.HardFork ( src/Cardano/Tracing/OrphanInstances/HardFork.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/HardFork.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/HardFork.dyn_o ) +[45 of 74] Compiling Cardano.Node.Tracing.Era.HardFork ( src/Cardano/Node/Tracing/Era/HardFork.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/HardFork.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/HardFork.dyn_o ) +[46 of 74] Compiling Cardano.Tracing.OrphanInstances.Byron ( src/Cardano/Tracing/OrphanInstances/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Byron.dyn_o ) +[47 of 74] Compiling Cardano.Node.Tracing.Era.Byron ( src/Cardano/Node/Tracing/Era/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Byron.dyn_o ) +[48 of 74] Compiling Cardano.Node.Tracing.Tracers.Consensus ( src/Cardano/Node/Tracing/Tracers/Consensus.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Consensus.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Consensus.dyn_o ) +[49 of 74] Compiling Cardano.Node.Tracing.Tracers.ChainDB ( src/Cardano/Node/Tracing/Tracers/ChainDB.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ChainDB.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ChainDB.dyn_o ) +[50 of 74] Compiling Cardano.Node.Tracing.Tracers.LedgerMetrics ( src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/LedgerMetrics.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/LedgerMetrics.dyn_o ) +[51 of 74] Compiling Cardano.Node.Protocol.Shelley ( src/Cardano/Node/Protocol/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Shelley.dyn_o ) +[52 of 74] Compiling Cardano.Node.Protocol.Conway ( src/Cardano/Node/Protocol/Conway.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Conway.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Conway.dyn_o ) +[53 of 74] Compiling Cardano.Node.Protocol.Alonzo ( src/Cardano/Node/Protocol/Alonzo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Alonzo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Alonzo.dyn_o ) +[54 of 74] Compiling Cardano.Node.Protocol.Byron ( src/Cardano/Node/Protocol/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Byron.dyn_o ) +[55 of 74] Compiling Cardano.Node.Protocol.Cardano ( src/Cardano/Node/Protocol/Cardano.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Cardano.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Cardano.dyn_o ) +[56 of 74] Compiling Cardano.Node.Protocol ( src/Cardano/Node/Protocol.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol.dyn_o ) +[57 of 74] Compiling Cardano.Tracing.Shutdown ( src/Cardano/Tracing/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Shutdown.dyn_o ) +[58 of 74] Compiling Paths_cardano_node ( /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/autogen/Paths_cardano_node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Paths_cardano_node.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Paths_cardano_node.dyn_o ) +[59 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeVersion ( src/Cardano/Node/Tracing/Tracers/NodeVersion.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeVersion.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeVersion.dyn_o ) +[60 of 74] Compiling Cardano.Node.Startup ( src/Cardano/Node/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Startup.dyn_o ) +[61 of 74] Compiling Cardano.Node.Tracing.Tracers.Startup ( src/Cardano/Node/Tracing/Tracers/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Startup.dyn_o ) +[62 of 74] Compiling Cardano.Tracing.Startup ( src/Cardano/Tracing/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Startup.dyn_o ) +[63 of 74] Compiling Cardano.Node.Tracing.StateRep ( src/Cardano/Node/Tracing/StateRep.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/StateRep.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/StateRep.dyn_o ) +[64 of 74] Compiling Cardano.Node.Tracing ( src/Cardano/Node/Tracing.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing.dyn_o ) +[65 of 74] Compiling Cardano.Node.Configuration.TopologyP2P ( src/Cardano/Node/Configuration/TopologyP2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/TopologyP2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/TopologyP2P.dyn_o ) +[66 of 74] Compiling Cardano.Node.Tracing.Tracers.P2P ( src/Cardano/Node/Tracing/Tracers/P2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/P2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/P2P.dyn_o ) +[67 of 74] Compiling Cardano.Node.Tracing.Tracers.Diffusion ( src/Cardano/Node/Tracing/Tracers/Diffusion.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Diffusion.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Diffusion.dyn_o ) +[68 of 74] Compiling Cardano.Node.Tracing.Documentation ( src/Cardano/Node/Tracing/Documentation.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Documentation.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Documentation.dyn_o ) +[69 of 74] Compiling Cardano.Node.Tracing.Consistency ( src/Cardano/Node/Tracing/Consistency.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Consistency.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Consistency.dyn_o ) +[70 of 74] Compiling Cardano.Node.Tracing.Tracers ( src/Cardano/Node/Tracing/Tracers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers.dyn_o ) +[71 of 74] Compiling Cardano.Node.Tracing.API ( src/Cardano/Node/Tracing/API.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/API.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/API.dyn_o ) +[72 of 74] Compiling Cardano.Node.Configuration.Logging ( src/Cardano/Node/Configuration/Logging.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Logging.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Logging.dyn_o ) +[73 of 74] Compiling Cardano.Tracing.Tracers ( src/Cardano/Tracing/Tracers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Tracers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Tracers.dyn_o ) +[74 of 74] Compiling Cardano.Node.Run ( src/Cardano/Node/Run.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Run.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Run.dyn_o ) +Configuring executable 'cardano-node' for cardano-node-10.5.1.. +Preprocessing executable 'cardano-node' for cardano-node-10.5.1.. +Building executable 'cardano-node' for cardano-node-10.5.1.. +[1 of 2] Compiling Paths_cardano_node ( /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/autogen/Paths_cardano_node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Paths_cardano_node.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Paths_cardano_node.dyn_o ) +[2 of 2] Compiling Main ( app/cardano-node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Main.o ) +[3 of 3] Linking /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node +Cloning into '/home/ch1bo/code/iog/cardano-node/dist-newstyle/src/ouroboros_-bc2ac5ad23a0916f'... +HEAD is now at ed637941f Trace more information about EBs +Cloning into '/home/ch1bo/code/iog/cardano-node/dist-newstyle/src/ouroboros_-88b17958106bd768'... +HEAD is now at 479f0d0d8 leiosdemo202511: introduce BearerBytes class +Resolving dependencies... +Build profile: -w ghc-9.6.5 -O1 +In order, the following will be built (use -v for more details): + - trace-forward-2.2.11 (lib) (first run) + - trace-dispatcher-2.9.2 (lib) (first run) + - trace-resources-0.2.3 (lib) (first run) + - cardano-node-10.5.1 (lib) (first run) + - cardano-node-10.5.1 (exe:cardano-node) (first run) +Configuring library for trace-forward-2.2.11.. +Preprocessing library for trace-forward-2.2.11.. +Building library for trace-forward-2.2.11.. +[ 1 of 16] Compiling Trace.Forward.Protocol.DataPoint.Type ( src/Trace/Forward/Protocol/DataPoint/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.dyn_o ) +[ 2 of 16] Compiling Trace.Forward.Protocol.DataPoint.Forwarder ( src/Trace/Forward/Protocol/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.dyn_o ) +[ 3 of 16] Compiling Trace.Forward.Protocol.DataPoint.Codec ( src/Trace/Forward/Protocol/DataPoint/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.dyn_o ) +[ 4 of 16] Compiling Trace.Forward.Protocol.DataPoint.Acceptor ( src/Trace/Forward/Protocol/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.dyn_o ) +[ 5 of 16] Compiling Trace.Forward.Configuration.DataPoint ( src/Trace/Forward/Configuration/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.dyn_o ) +[ 6 of 16] Compiling Trace.Forward.Protocol.TraceObject.Type ( src/Trace/Forward/Protocol/TraceObject/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.dyn_o ) +[ 7 of 16] Compiling Trace.Forward.Protocol.TraceObject.Forwarder ( src/Trace/Forward/Protocol/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.dyn_o ) +[ 8 of 16] Compiling Trace.Forward.Protocol.TraceObject.Codec ( src/Trace/Forward/Protocol/TraceObject/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.dyn_o ) +[ 9 of 16] Compiling Trace.Forward.Protocol.TraceObject.Acceptor ( src/Trace/Forward/Protocol/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.dyn_o ) +[10 of 16] Compiling Trace.Forward.Configuration.TraceObject ( src/Trace/Forward/Configuration/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.dyn_o ) +[11 of 16] Compiling Trace.Forward.Utils.DataPoint ( src/Trace/Forward/Utils/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.dyn_o ) +[12 of 16] Compiling Trace.Forward.Run.DataPoint.Forwarder ( src/Trace/Forward/Run/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.dyn_o ) +[13 of 16] Compiling Trace.Forward.Run.DataPoint.Acceptor ( src/Trace/Forward/Run/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.dyn_o ) +[14 of 16] Compiling Trace.Forward.Utils.TraceObject ( src/Trace/Forward/Utils/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.dyn_o ) +[15 of 16] Compiling Trace.Forward.Run.TraceObject.Forwarder ( src/Trace/Forward/Run/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.dyn_o ) +[16 of 16] Compiling Trace.Forward.Run.TraceObject.Acceptor ( src/Trace/Forward/Run/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.dyn_o ) +Configuring library for trace-dispatcher-2.9.2.. +Preprocessing library for trace-dispatcher-2.9.2.. +Building library for trace-dispatcher-2.9.2.. +[ 1 of 26] Compiling Cardano.Logging.Prometheus.Exposition ( src/Cardano/Logging/Prometheus/Exposition.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.dyn_o ) +[ 2 of 26] Compiling Cardano.Logging.Types.NodeInfo ( src/Cardano/Logging/Types/NodeInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.dyn_o ) +[ 3 of 26] Compiling Cardano.Logging.Types.NodePeers ( src/Cardano/Logging/Types/NodePeers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.dyn_o ) +[ 4 of 26] Compiling Cardano.Logging.Types.NodeStartupInfo ( src/Cardano/Logging/Types/NodeStartupInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.dyn_o ) +[ 5 of 26] Compiling Cardano.Logging.Version ( src/Cardano/Logging/Version.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.dyn_o ) +[ 6 of 26] Compiling Control.Tracer.Arrow ( src/Control/Tracer/Arrow.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.dyn_o ) +[ 7 of 26] Compiling Control.Tracer ( src/Control/Tracer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer.dyn_o ) +[ 8 of 26] Compiling Cardano.Logging.Utils ( src/Cardano/Logging/Utils.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.dyn_o ) +[ 9 of 26] Compiling Cardano.Logging.Prometheus.NetworkRun ( src/Cardano/Logging/Prometheus/NetworkRun.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.dyn_o ) +[10 of 26] Compiling Cardano.Logging.Prometheus.TCPServer ( src/Cardano/Logging/Prometheus/TCPServer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.dyn_o ) +[11 of 26] Compiling Cardano.Logging.Types ( src/Cardano/Logging/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.dyn_o ) +[12 of 26] Compiling Cardano.Logging.Forwarding ( src/Cardano/Logging/Forwarding.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Forwarding.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Forwarding.dyn_o ) +[13 of 26] Compiling Cardano.Logging.ConfigurationParser ( src/Cardano/Logging/ConfigurationParser.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/ConfigurationParser.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/ConfigurationParser.dyn_o ) +[14 of 26] Compiling Cardano.Logging.TraceDispatcherMessage ( src/Cardano/Logging/TraceDispatcherMessage.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/TraceDispatcherMessage.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/TraceDispatcherMessage.dyn_o ) +[15 of 26] Compiling Cardano.Logging.Consistency ( src/Cardano/Logging/Consistency.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Consistency.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Consistency.dyn_o ) +[16 of 26] Compiling Cardano.Logging.Trace ( src/Cardano/Logging/Trace.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Trace.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Trace.dyn_o ) +[17 of 26] Compiling Cardano.Logging.FrequencyLimiter ( src/Cardano/Logging/FrequencyLimiter.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/FrequencyLimiter.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/FrequencyLimiter.dyn_o ) +[18 of 26] Compiling Cardano.Logging.Formatter ( src/Cardano/Logging/Formatter.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Formatter.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Formatter.dyn_o ) +[19 of 26] Compiling Cardano.Logging.DocuGenerator ( src/Cardano/Logging/DocuGenerator.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/DocuGenerator.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/DocuGenerator.dyn_o ) +[20 of 26] Compiling Cardano.Logging.Tracer.Standard ( src/Cardano/Logging/Tracer/Standard.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Standard.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Standard.dyn_o ) +[21 of 26] Compiling Cardano.Logging.Tracer.Forward ( src/Cardano/Logging/Tracer/Forward.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Forward.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Forward.dyn_o ) +[22 of 26] Compiling Cardano.Logging.Tracer.EKG ( src/Cardano/Logging/Tracer/EKG.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/EKG.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/EKG.dyn_o ) +[23 of 26] Compiling Cardano.Logging.Tracer.DataPoint ( src/Cardano/Logging/Tracer/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/DataPoint.dyn_o ) +[24 of 26] Compiling Cardano.Logging.Configuration ( src/Cardano/Logging/Configuration.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Configuration.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Configuration.dyn_o ) +[25 of 26] Compiling Cardano.Logging.Tracer.Composed ( src/Cardano/Logging/Tracer/Composed.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Composed.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Composed.dyn_o ) +[26 of 26] Compiling Cardano.Logging ( src/Cardano/Logging.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging.dyn_o ) +Configuring library for trace-resources-0.2.3.. +Preprocessing library for trace-resources-0.2.3.. +Building library for trace-resources-0.2.3.. +[1 of 4] Compiling Cardano.Logging.Resources.Types ( src/Cardano/Logging/Resources/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Types.dyn_o ) +[2 of 4] Compiling Cardano.Logging.Resources.Linux ( src/Cardano/Logging/Resources/Linux.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Linux.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Linux.dyn_o ) +[3 of 4] Compiling Cardano.Logging.Resources.Dummy ( src/Cardano/Logging/Resources/Dummy.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Dummy.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Dummy.dyn_o ) +[4 of 4] Compiling Cardano.Logging.Resources ( src/Cardano/Logging/Resources.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources.dyn_o ) +Configuring library for cardano-node-10.5.1.. +Preprocessing library for cardano-node-10.5.1.. +Building library for cardano-node-10.5.1.. +[ 1 of 74] Compiling Cardano.Node.Configuration.LedgerDB ( src/Cardano/Node/Configuration/LedgerDB.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/LedgerDB.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/LedgerDB.dyn_o ) +[ 2 of 74] Compiling Cardano.Node.Configuration.NodeAddress ( src/Cardano/Node/Configuration/NodeAddress.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/NodeAddress.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/NodeAddress.dyn_o ) +[ 3 of 74] Compiling Cardano.Node.Configuration.Socket ( src/Cardano/Node/Configuration/Socket.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Socket.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Socket.dyn_o ) +[ 4 of 74] Compiling Cardano.Node.Handlers.Shutdown ( src/Cardano/Node/Handlers/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/Shutdown.dyn_o ) +[ 5 of 74] Compiling Cardano.Node.Handlers.TopLevel ( src/Cardano/Node/Handlers/TopLevel.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/TopLevel.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/TopLevel.dyn_o ) +[ 6 of 74] Compiling Cardano.Node.Orphans ( src/Cardano/Node/Orphans.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Orphans.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Orphans.dyn_o ) +[ 7 of 74] Compiling Cardano.Node.Pretty ( src/Cardano/Node/Pretty.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Pretty.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Pretty.dyn_o ) +[ 8 of 74] Compiling Cardano.Node.Queries ( src/Cardano/Node/Queries.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Queries.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Queries.dyn_o ) +[ 9 of 74] Compiling Cardano.Node.STM ( src/Cardano/Node/STM.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/STM.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/STM.dyn_o ) +[10 of 74] Compiling Cardano.Node.Tracing.Compat ( src/Cardano/Node/Tracing/Compat.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Compat.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Compat.dyn_o ) +[11 of 74] Compiling Cardano.Node.Tracing.DefaultTraceConfig ( src/Cardano/Node/Tracing/DefaultTraceConfig.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/DefaultTraceConfig.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/DefaultTraceConfig.dyn_o ) +[12 of 74] Compiling Cardano.Node.Tracing.NodeInfo ( src/Cardano/Node/Tracing/NodeInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeInfo.dyn_o ) +[13 of 74] Compiling Cardano.Node.Tracing.NodeStartupInfo ( src/Cardano/Node/Tracing/NodeStartupInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeStartupInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeStartupInfo.dyn_o ) +[14 of 74] Compiling Cardano.Node.Tracing.Render ( src/Cardano/Node/Tracing/Render.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Render.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Render.dyn_o ) +[15 of 74] Compiling Cardano.Node.Tracing.Formatting ( src/Cardano/Node/Tracing/Formatting.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Formatting.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Formatting.dyn_o ) +[16 of 74] Compiling Cardano.Node.Tracing.Tracers.BlockReplayProgress ( src/Cardano/Node/Tracing/Tracers/BlockReplayProgress.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/BlockReplayProgress.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/BlockReplayProgress.dyn_o ) +[17 of 74] Compiling Cardano.Node.Tracing.Tracers.ConsensusStartupException ( src/Cardano/Node/Tracing/Tracers/ConsensusStartupException.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ConsensusStartupException.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ConsensusStartupException.dyn_o ) +[18 of 74] Compiling Cardano.Node.Tracing.Tracers.ForgingStats ( src/Cardano/Node/Tracing/Tracers/ForgingStats.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ForgingStats.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ForgingStats.dyn_o ) +[19 of 74] Compiling Cardano.Node.Tracing.Tracers.KESInfo ( src/Cardano/Node/Tracing/Tracers/KESInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/KESInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/KESInfo.dyn_o ) +[20 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeToClient ( src/Cardano/Node/Tracing/Tracers/NodeToClient.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToClient.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToClient.dyn_o ) +[21 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeToNode ( src/Cardano/Node/Tracing/Tracers/NodeToNode.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToNode.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToNode.dyn_o ) +[22 of 74] Compiling Cardano.Node.Tracing.Tracers.NonP2P ( src/Cardano/Node/Tracing/Tracers/NonP2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NonP2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NonP2P.dyn_o ) +[23 of 74] Compiling Cardano.Node.Tracing.Tracers.Peer ( src/Cardano/Node/Tracing/Tracers/Peer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Peer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Peer.dyn_o ) +[24 of 74] Compiling Cardano.Node.Tracing.Peers ( src/Cardano/Node/Tracing/Peers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Peers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Peers.dyn_o ) +[25 of 74] Compiling Cardano.Node.Tracing.Tracers.Resources ( src/Cardano/Node/Tracing/Tracers/Resources.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Resources.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Resources.dyn_o ) +[26 of 74] Compiling Cardano.Node.Tracing.Tracers.Shutdown ( src/Cardano/Node/Tracing/Tracers/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Shutdown.dyn_o ) +[27 of 74] Compiling Cardano.Node.Types ( src/Cardano/Node/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Types.dyn_o ) +[28 of 74] Compiling Cardano.Node.Protocol.Checkpoints ( src/Cardano/Node/Protocol/Checkpoints.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Checkpoints.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Checkpoints.dyn_o ) +[29 of 74] Compiling Cardano.Tracing.Config ( src/Cardano/Tracing/Config.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Config.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Config.dyn_o ) +[30 of 74] Compiling Cardano.Tracing.HasIssuer ( src/Cardano/Tracing/HasIssuer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/HasIssuer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/HasIssuer.dyn_o ) +[31 of 74] Compiling Cardano.Node.TraceConstraints ( src/Cardano/Node/TraceConstraints.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/TraceConstraints.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/TraceConstraints.dyn_o ) +[32 of 74] Compiling Cardano.Node.Protocol.Types ( src/Cardano/Node/Protocol/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Types.dyn_o ) +[33 of 74] Compiling Cardano.Tracing.Metrics ( src/Cardano/Tracing/Metrics.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Metrics.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Metrics.dyn_o ) +[34 of 74] Compiling Cardano.Tracing.OrphanInstances.Common ( src/Cardano/Tracing/OrphanInstances/Common.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Common.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Common.dyn_o ) +[35 of 74] Compiling Cardano.Tracing.Peer ( src/Cardano/Tracing/Peer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Peer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Peer.dyn_o ) +[36 of 74] Compiling Cardano.Tracing.Render ( src/Cardano/Tracing/Render.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Render.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Render.dyn_o ) +[37 of 74] Compiling Cardano.Tracing.OrphanInstances.Network ( src/Cardano/Tracing/OrphanInstances/Network.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Network.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Network.dyn_o ) +[38 of 74] Compiling Cardano.Node.Configuration.POM ( src/Cardano/Node/Configuration/POM.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/POM.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/POM.dyn_o ) +[39 of 74] Compiling Cardano.Node.Parsers ( src/Cardano/Node/Parsers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Parsers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Parsers.dyn_o ) +[40 of 74] Compiling Cardano.Node.Configuration.Topology ( src/Cardano/Node/Configuration/Topology.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Topology.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Topology.dyn_o ) +[41 of 74] Compiling Cardano.Tracing.OrphanInstances.Consensus ( src/Cardano/Tracing/OrphanInstances/Consensus.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Consensus.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Consensus.dyn_o ) +[42 of 74] Compiling Cardano.Tracing.OrphanInstances.Shelley ( src/Cardano/Tracing/OrphanInstances/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Shelley.dyn_o ) +[43 of 74] Compiling Cardano.Node.Tracing.Era.Shelley ( src/Cardano/Node/Tracing/Era/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Shelley.dyn_o ) +[44 of 74] Compiling Cardano.Tracing.OrphanInstances.HardFork ( src/Cardano/Tracing/OrphanInstances/HardFork.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/HardFork.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/HardFork.dyn_o ) +[45 of 74] Compiling Cardano.Node.Tracing.Era.HardFork ( src/Cardano/Node/Tracing/Era/HardFork.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/HardFork.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/HardFork.dyn_o ) +[46 of 74] Compiling Cardano.Tracing.OrphanInstances.Byron ( src/Cardano/Tracing/OrphanInstances/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Byron.dyn_o ) +[47 of 74] Compiling Cardano.Node.Tracing.Era.Byron ( src/Cardano/Node/Tracing/Era/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Byron.dyn_o ) +[48 of 74] Compiling Cardano.Node.Tracing.Tracers.Consensus ( src/Cardano/Node/Tracing/Tracers/Consensus.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Consensus.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Consensus.dyn_o ) +[49 of 74] Compiling Cardano.Node.Tracing.Tracers.ChainDB ( src/Cardano/Node/Tracing/Tracers/ChainDB.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ChainDB.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ChainDB.dyn_o ) +[50 of 74] Compiling Cardano.Node.Tracing.Tracers.LedgerMetrics ( src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/LedgerMetrics.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/LedgerMetrics.dyn_o ) +[51 of 74] Compiling Cardano.Node.Protocol.Shelley ( src/Cardano/Node/Protocol/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Shelley.dyn_o ) +[52 of 74] Compiling Cardano.Node.Protocol.Conway ( src/Cardano/Node/Protocol/Conway.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Conway.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Conway.dyn_o ) +[53 of 74] Compiling Cardano.Node.Protocol.Alonzo ( src/Cardano/Node/Protocol/Alonzo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Alonzo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Alonzo.dyn_o ) +[54 of 74] Compiling Cardano.Node.Protocol.Byron ( src/Cardano/Node/Protocol/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Byron.dyn_o ) +[55 of 74] Compiling Cardano.Node.Protocol.Cardano ( src/Cardano/Node/Protocol/Cardano.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Cardano.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Cardano.dyn_o ) +[56 of 74] Compiling Cardano.Node.Protocol ( src/Cardano/Node/Protocol.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol.dyn_o ) +[57 of 74] Compiling Cardano.Tracing.Shutdown ( src/Cardano/Tracing/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Shutdown.dyn_o ) +[58 of 74] Compiling Paths_cardano_node ( /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/autogen/Paths_cardano_node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Paths_cardano_node.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Paths_cardano_node.dyn_o ) +[59 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeVersion ( src/Cardano/Node/Tracing/Tracers/NodeVersion.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeVersion.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeVersion.dyn_o ) +[60 of 74] Compiling Cardano.Node.Startup ( src/Cardano/Node/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Startup.dyn_o ) +[61 of 74] Compiling Cardano.Node.Tracing.Tracers.Startup ( src/Cardano/Node/Tracing/Tracers/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Startup.dyn_o ) +[62 of 74] Compiling Cardano.Tracing.Startup ( src/Cardano/Tracing/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Startup.dyn_o ) +[63 of 74] Compiling Cardano.Node.Tracing.StateRep ( src/Cardano/Node/Tracing/StateRep.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/StateRep.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/StateRep.dyn_o ) +[64 of 74] Compiling Cardano.Node.Tracing ( src/Cardano/Node/Tracing.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing.dyn_o ) +[65 of 74] Compiling Cardano.Node.Configuration.TopologyP2P ( src/Cardano/Node/Configuration/TopologyP2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/TopologyP2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/TopologyP2P.dyn_o ) +[66 of 74] Compiling Cardano.Node.Tracing.Tracers.P2P ( src/Cardano/Node/Tracing/Tracers/P2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/P2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/P2P.dyn_o ) +[67 of 74] Compiling Cardano.Node.Tracing.Tracers.Diffusion ( src/Cardano/Node/Tracing/Tracers/Diffusion.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Diffusion.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Diffusion.dyn_o ) +[68 of 74] Compiling Cardano.Node.Tracing.Documentation ( src/Cardano/Node/Tracing/Documentation.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Documentation.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Documentation.dyn_o ) +[69 of 74] Compiling Cardano.Node.Tracing.Consistency ( src/Cardano/Node/Tracing/Consistency.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Consistency.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Consistency.dyn_o ) +[70 of 74] Compiling Cardano.Node.Tracing.Tracers ( src/Cardano/Node/Tracing/Tracers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers.dyn_o ) +[71 of 74] Compiling Cardano.Node.Tracing.API ( src/Cardano/Node/Tracing/API.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/API.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/API.dyn_o ) +[72 of 74] Compiling Cardano.Node.Configuration.Logging ( src/Cardano/Node/Configuration/Logging.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Logging.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Logging.dyn_o ) +[73 of 74] Compiling Cardano.Tracing.Tracers ( src/Cardano/Tracing/Tracers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Tracers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Tracers.dyn_o ) +[74 of 74] Compiling Cardano.Node.Run ( src/Cardano/Node/Run.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Run.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Run.dyn_o ) +Configuring executable 'cardano-node' for cardano-node-10.5.1.. +Preprocessing executable 'cardano-node' for cardano-node-10.5.1.. +Building executable 'cardano-node' for cardano-node-10.5.1.. +[1 of 2] Compiling Paths_cardano_node ( /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/autogen/Paths_cardano_node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Paths_cardano_node.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Paths_cardano_node.dyn_o ) +[2 of 2] Compiling Main ( app/cardano-node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Main.o ) +[3 of 3] Linking /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node +76.37user 5.00system 1:22.57elapsed 98%CPU (0avgtext+0avgdata 2027380maxresident)k +34136inputs+1355467outputs (111145major+3141527minor)pagefaults 0swaps +Cloning into '/home/ch1bo/code/iog/cardano-node/dist-newstyle/src/ouroboros_-bc2ac5ad23a0916f'... +HEAD is now at ed637941f Trace more information about EBs +Cloning into '/home/ch1bo/code/iog/cardano-node/dist-newstyle/src/ouroboros_-88b17958106bd768'... +HEAD is now at 479f0d0d8 leiosdemo202511: introduce BearerBytes class +Resolving dependencies... +Build profile: -w ghc-9.6.5 -O1 +In order, the following will be built (use -v for more details): + - trace-forward-2.2.11 (lib) (first run) + - trace-dispatcher-2.9.2 (lib) (first run) + - trace-resources-0.2.3 (lib) (first run) + - cardano-node-10.5.1 (lib) (first run) + - cardano-node-10.5.1 (exe:cardano-node) (first run) +Configuring library for trace-forward-2.2.11.. +Preprocessing library for trace-forward-2.2.11.. +Building library for trace-forward-2.2.11.. +[ 1 of 16] Compiling Trace.Forward.Protocol.DataPoint.Type ( src/Trace/Forward/Protocol/DataPoint/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.dyn_o ) +[ 2 of 16] Compiling Trace.Forward.Protocol.DataPoint.Forwarder ( src/Trace/Forward/Protocol/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.dyn_o ) +[ 3 of 16] Compiling Trace.Forward.Protocol.DataPoint.Codec ( src/Trace/Forward/Protocol/DataPoint/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.dyn_o ) +[ 4 of 16] Compiling Trace.Forward.Protocol.DataPoint.Acceptor ( src/Trace/Forward/Protocol/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.dyn_o ) +[ 5 of 16] Compiling Trace.Forward.Configuration.DataPoint ( src/Trace/Forward/Configuration/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.dyn_o ) +[ 6 of 16] Compiling Trace.Forward.Protocol.TraceObject.Type ( src/Trace/Forward/Protocol/TraceObject/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.dyn_o ) +[ 7 of 16] Compiling Trace.Forward.Protocol.TraceObject.Forwarder ( src/Trace/Forward/Protocol/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.dyn_o ) +[ 8 of 16] Compiling Trace.Forward.Protocol.TraceObject.Codec ( src/Trace/Forward/Protocol/TraceObject/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.dyn_o ) +[ 9 of 16] Compiling Trace.Forward.Protocol.TraceObject.Acceptor ( src/Trace/Forward/Protocol/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.dyn_o ) +[10 of 16] Compiling Trace.Forward.Configuration.TraceObject ( src/Trace/Forward/Configuration/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.dyn_o ) +[11 of 16] Compiling Trace.Forward.Utils.DataPoint ( src/Trace/Forward/Utils/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.dyn_o ) +[12 of 16] Compiling Trace.Forward.Run.DataPoint.Forwarder ( src/Trace/Forward/Run/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.dyn_o ) +[13 of 16] Compiling Trace.Forward.Run.DataPoint.Acceptor ( src/Trace/Forward/Run/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.dyn_o ) +[14 of 16] Compiling Trace.Forward.Utils.TraceObject ( src/Trace/Forward/Utils/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.dyn_o ) +[15 of 16] Compiling Trace.Forward.Run.TraceObject.Forwarder ( src/Trace/Forward/Run/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.dyn_o ) +[16 of 16] Compiling Trace.Forward.Run.TraceObject.Acceptor ( src/Trace/Forward/Run/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.dyn_o ) +Configuring library for trace-dispatcher-2.9.2.. +Preprocessing library for trace-dispatcher-2.9.2.. +Building library for trace-dispatcher-2.9.2.. +[ 1 of 26] Compiling Cardano.Logging.Prometheus.Exposition ( src/Cardano/Logging/Prometheus/Exposition.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.dyn_o ) +[ 2 of 26] Compiling Cardano.Logging.Types.NodeInfo ( src/Cardano/Logging/Types/NodeInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.dyn_o ) +[ 3 of 26] Compiling Cardano.Logging.Types.NodePeers ( src/Cardano/Logging/Types/NodePeers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.dyn_o ) +[ 4 of 26] Compiling Cardano.Logging.Types.NodeStartupInfo ( src/Cardano/Logging/Types/NodeStartupInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.dyn_o ) +[ 5 of 26] Compiling Cardano.Logging.Version ( src/Cardano/Logging/Version.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.dyn_o ) +[ 6 of 26] Compiling Control.Tracer.Arrow ( src/Control/Tracer/Arrow.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.dyn_o ) +[ 7 of 26] Compiling Control.Tracer ( src/Control/Tracer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Control/Tracer.dyn_o ) +[ 8 of 26] Compiling Cardano.Logging.Utils ( src/Cardano/Logging/Utils.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.dyn_o ) +[ 9 of 26] Compiling Cardano.Logging.Prometheus.NetworkRun ( src/Cardano/Logging/Prometheus/NetworkRun.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.dyn_o ) +[10 of 26] Compiling Cardano.Logging.Prometheus.TCPServer ( src/Cardano/Logging/Prometheus/TCPServer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.dyn_o ) +[11 of 26] Compiling Cardano.Logging.Types ( src/Cardano/Logging/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.dyn_o ) +[12 of 26] Compiling Cardano.Logging.Forwarding ( src/Cardano/Logging/Forwarding.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Forwarding.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Forwarding.dyn_o ) +[13 of 26] Compiling Cardano.Logging.ConfigurationParser ( src/Cardano/Logging/ConfigurationParser.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/ConfigurationParser.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/ConfigurationParser.dyn_o ) +[14 of 26] Compiling Cardano.Logging.TraceDispatcherMessage ( src/Cardano/Logging/TraceDispatcherMessage.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/TraceDispatcherMessage.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/TraceDispatcherMessage.dyn_o ) +[15 of 26] Compiling Cardano.Logging.Consistency ( src/Cardano/Logging/Consistency.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Consistency.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Consistency.dyn_o ) +[16 of 26] Compiling Cardano.Logging.Trace ( src/Cardano/Logging/Trace.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Trace.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Trace.dyn_o ) +[17 of 26] Compiling Cardano.Logging.FrequencyLimiter ( src/Cardano/Logging/FrequencyLimiter.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/FrequencyLimiter.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/FrequencyLimiter.dyn_o ) +[18 of 26] Compiling Cardano.Logging.Formatter ( src/Cardano/Logging/Formatter.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Formatter.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Formatter.dyn_o ) +[19 of 26] Compiling Cardano.Logging.DocuGenerator ( src/Cardano/Logging/DocuGenerator.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/DocuGenerator.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/DocuGenerator.dyn_o ) +[20 of 26] Compiling Cardano.Logging.Tracer.Standard ( src/Cardano/Logging/Tracer/Standard.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Standard.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Standard.dyn_o ) +[21 of 26] Compiling Cardano.Logging.Tracer.Forward ( src/Cardano/Logging/Tracer/Forward.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Forward.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Forward.dyn_o ) +[22 of 26] Compiling Cardano.Logging.Tracer.EKG ( src/Cardano/Logging/Tracer/EKG.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/EKG.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/EKG.dyn_o ) +[23 of 26] Compiling Cardano.Logging.Tracer.DataPoint ( src/Cardano/Logging/Tracer/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/DataPoint.dyn_o ) +[24 of 26] Compiling Cardano.Logging.Configuration ( src/Cardano/Logging/Configuration.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Configuration.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Configuration.dyn_o ) +[25 of 26] Compiling Cardano.Logging.Tracer.Composed ( src/Cardano/Logging/Tracer/Composed.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Composed.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Composed.dyn_o ) +[26 of 26] Compiling Cardano.Logging ( src/Cardano/Logging.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-dispatcher-2.9.2/build/Cardano/Logging.dyn_o ) +Configuring library for trace-resources-0.2.3.. +Preprocessing library for trace-resources-0.2.3.. +Building library for trace-resources-0.2.3.. +[1 of 4] Compiling Cardano.Logging.Resources.Types ( src/Cardano/Logging/Resources/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Types.dyn_o ) +[2 of 4] Compiling Cardano.Logging.Resources.Linux ( src/Cardano/Logging/Resources/Linux.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Linux.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Linux.dyn_o ) +[3 of 4] Compiling Cardano.Logging.Resources.Dummy ( src/Cardano/Logging/Resources/Dummy.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Dummy.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources/Dummy.dyn_o ) +[4 of 4] Compiling Cardano.Logging.Resources ( src/Cardano/Logging/Resources.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/trace-resources-0.2.3/build/Cardano/Logging/Resources.dyn_o ) +Configuring library for cardano-node-10.5.1.. +Preprocessing library for cardano-node-10.5.1.. +Building library for cardano-node-10.5.1.. +[ 1 of 74] Compiling Cardano.Node.Configuration.LedgerDB ( src/Cardano/Node/Configuration/LedgerDB.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/LedgerDB.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/LedgerDB.dyn_o ) +[ 2 of 74] Compiling Cardano.Node.Configuration.NodeAddress ( src/Cardano/Node/Configuration/NodeAddress.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/NodeAddress.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/NodeAddress.dyn_o ) +[ 3 of 74] Compiling Cardano.Node.Configuration.Socket ( src/Cardano/Node/Configuration/Socket.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Socket.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Socket.dyn_o ) +[ 4 of 74] Compiling Cardano.Node.Handlers.Shutdown ( src/Cardano/Node/Handlers/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/Shutdown.dyn_o ) +[ 5 of 74] Compiling Cardano.Node.Handlers.TopLevel ( src/Cardano/Node/Handlers/TopLevel.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/TopLevel.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Handlers/TopLevel.dyn_o ) +[ 6 of 74] Compiling Cardano.Node.Orphans ( src/Cardano/Node/Orphans.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Orphans.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Orphans.dyn_o ) +[ 7 of 74] Compiling Cardano.Node.Pretty ( src/Cardano/Node/Pretty.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Pretty.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Pretty.dyn_o ) +[ 8 of 74] Compiling Cardano.Node.Queries ( src/Cardano/Node/Queries.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Queries.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Queries.dyn_o ) +[ 9 of 74] Compiling Cardano.Node.STM ( src/Cardano/Node/STM.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/STM.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/STM.dyn_o ) +[10 of 74] Compiling Cardano.Node.Tracing.Compat ( src/Cardano/Node/Tracing/Compat.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Compat.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Compat.dyn_o ) +[11 of 74] Compiling Cardano.Node.Tracing.DefaultTraceConfig ( src/Cardano/Node/Tracing/DefaultTraceConfig.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/DefaultTraceConfig.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/DefaultTraceConfig.dyn_o ) +[12 of 74] Compiling Cardano.Node.Tracing.NodeInfo ( src/Cardano/Node/Tracing/NodeInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeInfo.dyn_o ) +[13 of 74] Compiling Cardano.Node.Tracing.NodeStartupInfo ( src/Cardano/Node/Tracing/NodeStartupInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeStartupInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/NodeStartupInfo.dyn_o ) +[14 of 74] Compiling Cardano.Node.Tracing.Render ( src/Cardano/Node/Tracing/Render.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Render.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Render.dyn_o ) +[15 of 74] Compiling Cardano.Node.Tracing.Formatting ( src/Cardano/Node/Tracing/Formatting.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Formatting.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Formatting.dyn_o ) +[16 of 74] Compiling Cardano.Node.Tracing.Tracers.BlockReplayProgress ( src/Cardano/Node/Tracing/Tracers/BlockReplayProgress.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/BlockReplayProgress.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/BlockReplayProgress.dyn_o ) +[17 of 74] Compiling Cardano.Node.Tracing.Tracers.ConsensusStartupException ( src/Cardano/Node/Tracing/Tracers/ConsensusStartupException.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ConsensusStartupException.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ConsensusStartupException.dyn_o ) +[18 of 74] Compiling Cardano.Node.Tracing.Tracers.ForgingStats ( src/Cardano/Node/Tracing/Tracers/ForgingStats.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ForgingStats.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ForgingStats.dyn_o ) +[19 of 74] Compiling Cardano.Node.Tracing.Tracers.KESInfo ( src/Cardano/Node/Tracing/Tracers/KESInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/KESInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/KESInfo.dyn_o ) +[20 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeToClient ( src/Cardano/Node/Tracing/Tracers/NodeToClient.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToClient.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToClient.dyn_o ) +[21 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeToNode ( src/Cardano/Node/Tracing/Tracers/NodeToNode.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToNode.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeToNode.dyn_o ) +[22 of 74] Compiling Cardano.Node.Tracing.Tracers.NonP2P ( src/Cardano/Node/Tracing/Tracers/NonP2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NonP2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NonP2P.dyn_o ) +[23 of 74] Compiling Cardano.Node.Tracing.Tracers.Peer ( src/Cardano/Node/Tracing/Tracers/Peer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Peer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Peer.dyn_o ) +[24 of 74] Compiling Cardano.Node.Tracing.Peers ( src/Cardano/Node/Tracing/Peers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Peers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Peers.dyn_o ) +[25 of 74] Compiling Cardano.Node.Tracing.Tracers.Resources ( src/Cardano/Node/Tracing/Tracers/Resources.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Resources.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Resources.dyn_o ) +[26 of 74] Compiling Cardano.Node.Tracing.Tracers.Shutdown ( src/Cardano/Node/Tracing/Tracers/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Shutdown.dyn_o ) +[27 of 74] Compiling Cardano.Node.Types ( src/Cardano/Node/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Types.dyn_o ) +[28 of 74] Compiling Cardano.Node.Protocol.Checkpoints ( src/Cardano/Node/Protocol/Checkpoints.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Checkpoints.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Checkpoints.dyn_o ) +[29 of 74] Compiling Cardano.Tracing.Config ( src/Cardano/Tracing/Config.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Config.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Config.dyn_o ) +[30 of 74] Compiling Cardano.Tracing.HasIssuer ( src/Cardano/Tracing/HasIssuer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/HasIssuer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/HasIssuer.dyn_o ) +[31 of 74] Compiling Cardano.Node.TraceConstraints ( src/Cardano/Node/TraceConstraints.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/TraceConstraints.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/TraceConstraints.dyn_o ) +[32 of 74] Compiling Cardano.Node.Protocol.Types ( src/Cardano/Node/Protocol/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Types.dyn_o ) +[33 of 74] Compiling Cardano.Tracing.Metrics ( src/Cardano/Tracing/Metrics.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Metrics.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Metrics.dyn_o ) +[34 of 74] Compiling Cardano.Tracing.OrphanInstances.Common ( src/Cardano/Tracing/OrphanInstances/Common.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Common.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Common.dyn_o ) +[35 of 74] Compiling Cardano.Tracing.Peer ( src/Cardano/Tracing/Peer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Peer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Peer.dyn_o ) +[36 of 74] Compiling Cardano.Tracing.Render ( src/Cardano/Tracing/Render.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Render.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Render.dyn_o ) +[37 of 74] Compiling Cardano.Tracing.OrphanInstances.Network ( src/Cardano/Tracing/OrphanInstances/Network.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Network.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Network.dyn_o ) +[38 of 74] Compiling Cardano.Node.Configuration.POM ( src/Cardano/Node/Configuration/POM.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/POM.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/POM.dyn_o ) +[39 of 74] Compiling Cardano.Node.Parsers ( src/Cardano/Node/Parsers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Parsers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Parsers.dyn_o ) +[40 of 74] Compiling Cardano.Node.Configuration.Topology ( src/Cardano/Node/Configuration/Topology.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Topology.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Topology.dyn_o ) +[41 of 74] Compiling Cardano.Tracing.OrphanInstances.Consensus ( src/Cardano/Tracing/OrphanInstances/Consensus.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Consensus.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Consensus.dyn_o ) +[42 of 74] Compiling Cardano.Tracing.OrphanInstances.Shelley ( src/Cardano/Tracing/OrphanInstances/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Shelley.dyn_o ) +[43 of 74] Compiling Cardano.Node.Tracing.Era.Shelley ( src/Cardano/Node/Tracing/Era/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Shelley.dyn_o ) +[44 of 74] Compiling Cardano.Tracing.OrphanInstances.HardFork ( src/Cardano/Tracing/OrphanInstances/HardFork.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/HardFork.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/HardFork.dyn_o ) +[45 of 74] Compiling Cardano.Node.Tracing.Era.HardFork ( src/Cardano/Node/Tracing/Era/HardFork.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/HardFork.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/HardFork.dyn_o ) +[46 of 74] Compiling Cardano.Tracing.OrphanInstances.Byron ( src/Cardano/Tracing/OrphanInstances/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/OrphanInstances/Byron.dyn_o ) +[47 of 74] Compiling Cardano.Node.Tracing.Era.Byron ( src/Cardano/Node/Tracing/Era/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Era/Byron.dyn_o ) +[48 of 74] Compiling Cardano.Node.Tracing.Tracers.Consensus ( src/Cardano/Node/Tracing/Tracers/Consensus.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Consensus.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Consensus.dyn_o ) +[49 of 74] Compiling Cardano.Node.Tracing.Tracers.ChainDB ( src/Cardano/Node/Tracing/Tracers/ChainDB.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ChainDB.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/ChainDB.dyn_o ) +[50 of 74] Compiling Cardano.Node.Tracing.Tracers.LedgerMetrics ( src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/LedgerMetrics.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/LedgerMetrics.dyn_o ) +[51 of 74] Compiling Cardano.Node.Protocol.Shelley ( src/Cardano/Node/Protocol/Shelley.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Shelley.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Shelley.dyn_o ) +[52 of 74] Compiling Cardano.Node.Protocol.Conway ( src/Cardano/Node/Protocol/Conway.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Conway.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Conway.dyn_o ) +[53 of 74] Compiling Cardano.Node.Protocol.Alonzo ( src/Cardano/Node/Protocol/Alonzo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Alonzo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Alonzo.dyn_o ) +[54 of 74] Compiling Cardano.Node.Protocol.Byron ( src/Cardano/Node/Protocol/Byron.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Byron.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Byron.dyn_o ) +[55 of 74] Compiling Cardano.Node.Protocol.Cardano ( src/Cardano/Node/Protocol/Cardano.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Cardano.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol/Cardano.dyn_o ) +[56 of 74] Compiling Cardano.Node.Protocol ( src/Cardano/Node/Protocol.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Protocol.dyn_o ) +[57 of 74] Compiling Cardano.Tracing.Shutdown ( src/Cardano/Tracing/Shutdown.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Shutdown.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Shutdown.dyn_o ) +[58 of 74] Compiling Paths_cardano_node ( /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/autogen/Paths_cardano_node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Paths_cardano_node.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Paths_cardano_node.dyn_o ) +[59 of 74] Compiling Cardano.Node.Tracing.Tracers.NodeVersion ( src/Cardano/Node/Tracing/Tracers/NodeVersion.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeVersion.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/NodeVersion.dyn_o ) +[60 of 74] Compiling Cardano.Node.Startup ( src/Cardano/Node/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Startup.dyn_o ) +[61 of 74] Compiling Cardano.Node.Tracing.Tracers.Startup ( src/Cardano/Node/Tracing/Tracers/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Startup.dyn_o ) +[62 of 74] Compiling Cardano.Tracing.Startup ( src/Cardano/Tracing/Startup.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Startup.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Startup.dyn_o ) +[63 of 74] Compiling Cardano.Node.Tracing.StateRep ( src/Cardano/Node/Tracing/StateRep.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/StateRep.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/StateRep.dyn_o ) +[64 of 74] Compiling Cardano.Node.Tracing ( src/Cardano/Node/Tracing.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing.dyn_o ) +[65 of 74] Compiling Cardano.Node.Configuration.TopologyP2P ( src/Cardano/Node/Configuration/TopologyP2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/TopologyP2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/TopologyP2P.dyn_o ) +[66 of 74] Compiling Cardano.Node.Tracing.Tracers.P2P ( src/Cardano/Node/Tracing/Tracers/P2P.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/P2P.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/P2P.dyn_o ) +[67 of 74] Compiling Cardano.Node.Tracing.Tracers.Diffusion ( src/Cardano/Node/Tracing/Tracers/Diffusion.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Diffusion.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers/Diffusion.dyn_o ) +[68 of 74] Compiling Cardano.Node.Tracing.Documentation ( src/Cardano/Node/Tracing/Documentation.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Documentation.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Documentation.dyn_o ) +[69 of 74] Compiling Cardano.Node.Tracing.Consistency ( src/Cardano/Node/Tracing/Consistency.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Consistency.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Consistency.dyn_o ) +[70 of 74] Compiling Cardano.Node.Tracing.Tracers ( src/Cardano/Node/Tracing/Tracers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/Tracers.dyn_o ) +[71 of 74] Compiling Cardano.Node.Tracing.API ( src/Cardano/Node/Tracing/API.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/API.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Tracing/API.dyn_o ) +[72 of 74] Compiling Cardano.Node.Configuration.Logging ( src/Cardano/Node/Configuration/Logging.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Logging.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Configuration/Logging.dyn_o ) +[73 of 74] Compiling Cardano.Tracing.Tracers ( src/Cardano/Tracing/Tracers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Tracers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Tracing/Tracers.dyn_o ) +[74 of 74] Compiling Cardano.Node.Run ( src/Cardano/Node/Run.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Run.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/build/Cardano/Node/Run.dyn_o ) +Configuring executable 'cardano-node' for cardano-node-10.5.1.. +Preprocessing executable 'cardano-node' for cardano-node-10.5.1.. +Building executable 'cardano-node' for cardano-node-10.5.1.. +[1 of 2] Compiling Paths_cardano_node ( /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/autogen/Paths_cardano_node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Paths_cardano_node.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Paths_cardano_node.dyn_o ) +[2 of 2] Compiling Main ( app/cardano-node.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node-tmp/Main.o ) +[3 of 3] Linking /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-10.5.1/x/cardano-node/build/cardano-node/cardano-node +76.20user 5.52system 1:24.73elapsed 96%CPU (0avgtext+0avgdata 2003564maxresident)k +2050870inputs+1355462outputs (283170major+3118247minor)pagefaults 0swaps +Config file path source is default config file. +Config file not found: /home/ch1bo/.cabal-devx/config +Writing default configuration to /home/ch1bo/.cabal-devx/config +Cloning into '/home/ch1bo/code/iog/cardano-node/dist-newstyle/src/ouroboros_-f3e9e56f5d8a1d29c0695f56552a3d3bbe06c6a301669a49a0dcff2af61b9f4c'... +Cloning into '/home/ch1bo/code/iog/cardano-node/dist-newstyle/src/ouroboros_-23b1eb8c6668a6d5ec88077f8a38f08967d01a5119a5c270ff2cca080d221d11'... +From https://github.com/IntersectMBO/ouroboros-network + * branch 479f0d0d82413162c8444b912394dd74c052831f -> FETCH_HEAD +HEAD is now at 479f0d0d8 leiosdemo202511: introduce BearerBytes class +From https://github.com/IntersectMBO/ouroboros-consensus + * branch ed637941fc1a252ecdf2a1b1600ef95d17b52101 -> FETCH_HEAD +HEAD is now at ed637941f Trace more information about EBs +Configuration is affected by the following files: +- cabal.project +- cabal.project.local +Warning: Caught exception during _mirrors lookup:DnsHostNotFound +Warning: No mirrors found for https://chap.intersectmbo.org/ +Warning: The package list for 'hackage.haskell.org' does not exist. Run 'cabal +update' to download it. +Warning: There is no index-state for 'hackage.haskell.org' exactly at the +requested timestamp (2025-06-03T08:07:10Z). Also, there are no index-states +before the one requested, so the repository 'hackage.haskell.org' will be +empty. +Warning: The package list for 'cardano-haskell-packages' does not exist. Run +'cabal update' to download it. +Warning: There is no index-state for 'cardano-haskell-packages' exactly at the +requested timestamp (2025-07-17T12:00:21Z). Also, there are no index-states +before the one requested, so the repository 'cardano-haskell-packages' will be +empty. +Resolving dependencies... +Error: [Cabal-7107] +Could not resolve dependencies: +[__0] trying: cardano-client-0.5.1.1 (user goal) +[__1] unknown package: si-timers (dependency of cardano-client) +[__1] fail (backjumping, conflict set: cardano-client, si-timers) +After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: cardano-client, si-timers + +Command exited with non-zero status 1 +4.07user 1.25system 0:05.59elapsed 95%CPU (0avgtext+0avgdata 72220maxresident)k +77669inputs+324508outputs (20155major+111266minor)pagefaults 0swaps +Configuration is affected by the following files: +- cabal.project +- cabal.project.local +Resolving dependencies... +Build profile: -w ghc-9.8.4 -O1 +In order, the following will be built (use -v for more details): + - FailT-0.1.2.0 (lib) (requires download & build) + - OneTuple-0.4.2 (lib) (requires download & build) + - Only-0.1 (lib) (requires download & build) + - StateVar-1.2.2 (lib) (requires download & build) + - Win32-network-0.2.0.1 (lib) (requires download & build) + - alex-3.5.3.0 (exe:alex) (requires download & build) + - algebraic-graphs-0.7 (lib) (requires download & build) + - ap-normalize-0.1.0.1 (lib) (requires download & build) + - appar-0.1.8 (lib:appar) (requires download & build) + - assoc-1.1.1 (lib) (requires download & build) + - attoparsec-0.14.4 (lib:attoparsec-internal) (requires download & build) + - auto-update-0.2.6 (lib) (requires download & build) + - base-compat-0.13.1 (lib) (requires download & build) + - base-deriving-via-0.1.0.2 (lib) (requires download & build) + - base-orphans-0.9.3 (lib) (requires download & build) + - base16-bytestring-1.0.2.0 (lib) (requires download & build) + - base58-bytestring-0.1.0 (lib) (requires download & build) + - base64-bytestring-1.2.1.0 (lib) (requires download & build) + - basement-0.0.16 (lib) (requires download & build) + - bimap-0.5.0 (lib) (requires download & build) + - binary-orphans-1.0.5 (lib) (requires download & build) + - blaze-builder-0.4.3 (lib) (requires download & build) + - bsb-http-chunked-0.0.0.4 (lib) (requires download & build) + - byteorder-1.0.4 (lib:byteorder) (requires download & build) + - bytestring-strict-builder-0.4.5.8 (lib) (requires download & build) + - bytestring-trie-0.2.7.6 (lib) (requires download & build) + - call-stack-0.4.0 (lib) (requires download & build) + - canonical-json-0.6.0.1 (lib) (requires download & build) + - cardano-git-rev-0.2.2.0 (lib) (requires download & build) + - cereal-0.5.8.3 (lib) (requires download & build) + - character-ps-0.1 (lib) (requires download & build) + - clock-0.8.4 (lib) (requires download & build) + - colour-2.3.6 (lib) (requires download & build) + - commutative-semigroups-0.2.0.2 (lib) (requires download & build) + - composition-prelude-3.0.1.0 (lib) (requires download & build) + - contra-tracer-0.1.0.1 (lib) (requires download & build) + - cryptohash-md5-0.11.101.0 (lib) (requires download & build) + - cryptohash-sha1-0.11.101.0 (lib) (requires download & build) + - data-default-0.8.0.1 (lib) (requires download & build) + - dictionary-sharing-0.1.0.0 (lib) (requires download & build) + - digest-0.0.2.1 (lib) (requires download & build) + - dlist-1.0 (lib) (requires download & build) + - dom-lt-0.2.3 (lib) (requires download & build) + - double-conversion-2.0.5.0 (lib) (requires download & build) + - easy-file-0.2.5 (lib) (requires download & build) + - erf-2.0.0.0 (lib:erf) (requires download & build) + - file-embed-0.0.16.0 (lib) (requires download & build) + - fingertree-0.1.5.0 (lib) (requires download & build) + - generically-0.1.1 (lib) (requires download & build) + - groups-0.5.3 (lib) (requires download & build) + - half-0.3.2 (lib) (requires download & build) + - happy-lib-2.1.5 (lib:grammar) (requires download & build) + - haskell-lexer-1.2.1 (lib) (requires download & build) + - heredoc-0.2.0.0 (lib) (requires download & build) + - hostname-1.0 (lib:hostname) (requires download & build) + - hourglass-0.2.12 (lib) (requires download & build) + - hsc2hs-0.68.10 (exe:hsc2hs) (requires download & build) + - hspec-discover-2.11.12 (lib) (requires download & build) + - indexed-profunctors-0.1.1.1 (lib) (requires download & build) + - indexed-traversable-0.1.4 (lib) (requires download & build) + - integer-logarithms-1.0.4 (lib) (requires download & build) + - js-chart-2.9.4.1 (lib) (requires download & build) + - lazysmallcheck-0.6 (lib:lazysmallcheck) (requires download & build) + - libyaml-clib-0.2.5 (lib) (requires download & build) + - logict-0.8.2.0 (lib) (requires download & build) + - microlens-0.4.13.1 (lib) (requires download & build) + - mime-types-0.1.2.0 (lib) (requires download & build) + - monoidal-synchronisation-0.1.0.6 (lib) (requires build) + - multiset-0.3.4.3 (lib) (requires download & build) + - network-byte-order-0.1.7 (lib) (requires download & build) + - network-info-0.2.1 (lib) (requires download & build) + - newtype-0.2.2.0 (lib) (requires download & build) + - non-integral-1.0.0.0 (lib) (requires download & build) + - old-locale-1.0.0.7 (lib) (requires download & build) + - os-string-2.0.7 (lib) (requires download & build) + - parallel-3.2.2.0 (lib) (requires download & build) + - parser-combinators-1.3.0 (lib) (requires download & build) + - partial-order-0.2.0.0 (lib) (requires download & build) + - prettyprinter-1.7.1 (lib) (requires download & build) + - primes-0.2.1.0 (lib:primes) (requires download & build) + - primitive-0.9.1.0 (lib) (requires download & build) + - quiet-0.2 (lib) (requires download & build) + - reflection-2.1.9 (lib) (requires download & build) + - safe-0.3.21 (lib) (requires download & build) + - safe-exceptions-0.1.7.4 (lib) (requires download & build) + - selective-0.7.0.1 (lib) (requires download & build) + - semigroups-0.20 (lib) (requires download & build) + - show-combinators-0.2.0.0 (lib) (requires download & build) + - singletons-3.0.4 (lib) (requires download & build) + - some-1.0.6 (lib) (requires download & build) + - sop-core-0.5.0.2 (lib) (requires download & build) + - split-0.2.5 (lib) (requires download & build) + - splitmix-0.1.1 (lib) (requires download & build) + - string-conv-0.2.0 (lib) (requires download & build) + - syb-0.7.2.4 (lib) (requires download & build) + - tagged-0.8.9 (lib) (requires download & build) + - testing-type-modifiers-0.1.0.1 (lib) (requires download & build) + - th-abstraction-0.7.1.0 (lib) (requires download & build) + - th-compat-0.1.6 (lib) (requires download & build) + - time-locale-compat-0.1.1.5 (lib) (requires download & build) + - time-units-1.0.0 (lib:time-units) (requires download & build) + - transformers-compat-0.7.2 (lib) (requires download & build) + - transformers-except-0.1.4 (lib) (requires download & build) + - unbounded-delays-0.1.1.1 (lib) (requires download & build) + - unix-bytestring-0.4.0.3 (lib) (requires download & build) + - unix-compat-0.7.4 (lib) (requires download & build) + - unliftio-core-0.2.1.0 (lib) (requires download & build) + - utf8-string-1.0.2 (lib) (requires download & build) + - validity-0.12.1.0 (lib) (requires download & build) + - vector-stream-0.1.0.1 (lib) (requires download & build) + - void-0.7.3 (lib) (requires download & build) + - wherefrom-compat-0.1.1.1 (lib) (requires download & build) + - wl-pprint-annotated-0.1.0.1 (lib) (requires download & build) + - word8-0.1.3 (lib) (requires download & build) + - mempack-0.1.2.0 (lib) (requires download & build) + - contravariant-1.5.5 (lib) (requires download & build) + - Cabal-syntax-3.14.2.0 (lib) (requires download & build) + - time-manager-0.2.3 (lib) (requires download & build) + - base-compat-batteries-0.13.1 (lib) (requires download & build) + - measures-0.1.0.2 (lib) (requires download & build) + - memory-0.18.0 (lib) (requires download & build) + - foundation-0.0.30 (lib) (requires download & build) + - blaze-markup-0.8.3.0 (lib) (requires download & build) + - HUnit-1.6.2.0 (lib) (requires download & build) + - extra-1.8 (lib) (requires download & build) + - ansi-terminal-types-1.1 (lib) (requires download & build) + - data-default-class-0.2.0.0 (lib) (requires download & build) + - happy-lib-2.1.5 (lib:tabular) (requires download & build) + - happy-lib-2.1.5 (lib:frontend) (requires download & build) + - zlib-0.7.1.0 (lib) (requires download & build) + - terminal-size-0.3.4 (lib) (requires download & build) + - network-3.2.7.0 (lib:network) (requires download & build) + - hsyslog-5.0.2 (lib) (requires download & build) + - filelock-0.1.1.7 (lib) (requires download & build) + - direct-sqlite-2.3.29 (lib) (requires download & build) + - code-page-0.2.1 (lib) (requires download & build) + - cardano-lmdb-0.4.0.3 (lib:ffi) (requires download & build) + - generic-lens-core-2.2.1.0 (lib) (requires download & build) + - optics-core-0.4.1.1 (lib) (requires download & build) + - old-time-1.1.0.4 (lib:old-time) (requires download & build) + - hashable-1.4.7.0 (lib) (requires download & build) + - prettyprinter-configurable-1.36.0.0 (lib) (requires download & build) + - pvar-1.0.0.0 (lib) (requires download & build) + - integer-conversion-0.1.1 (lib) (requires download & build) + - cborg-0.2.10.0 (lib) (requires download & build) + - atomic-primops-0.8.8 (lib) (requires download & build) + - tracer-transformers-0.1.0.4 (lib) (requires download & build) + - validation-selective-0.2.0.0 (lib) (requires download & build) + - generic-data-1.1.0.2 (lib) (requires download & build) + - random-1.2.1.3 (lib) (requires download & build) + - universe-base-1.1.4 (lib) (requires download & build) + - distributive-0.6.2.1 (lib) (requires download & build) + - boring-0.2.2 (lib) (requires download & build) + - size-based-0.1.3.3 (lib) (requires download & build) + - th-lift-0.8.6 (lib) (requires download & build) + - th-expand-syns-0.4.12.0 (lib) (requires download & build) + - safe-wild-cards-1.0.0.2 (lib) (requires download & build) + - microlens-th-0.4.3.17 (lib) (requires download & build) + - network-uri-2.6.4.2 (lib) (requires download & build) + - transformers-base-0.4.6 (lib) (requires download & build) + - mmorph-1.2.0 (lib) (requires download & build) + - errors-2.3.0 (lib) (requires download & build) + - deriving-compat-0.6.7 (lib) (requires download & build) + - Glob-0.10.2 (lib) (requires download & build) + - resourcet-1.3.0 (lib) (requires download & build) + - vector-0.13.2.0 (lib) (requires download & build) + - Cabal-3.14.2.0 (lib) (requires download & build) + - pem-0.2.4 (lib) (requires download & build) + - crypton-1.0.4 (lib) (requires download & build) + - asn1-types-0.3.4 (lib:asn1-types) (requires download & build) + - blaze-html-0.9.2.0 (lib) (requires download & build) + - hspec-expectations-0.8.4 (lib) (requires download & build) + - bech32-1.1.8 (lib) (requires download & build) + - ansi-terminal-1.1.2 (lib) (requires download & build) + - cookie-0.5.1 (lib) (requires download & build) + - happy-lib-2.1.5 (lib:backend-lalr) (requires download & build) + - happy-lib-2.1.5 (lib:backend-glr) (requires download & build) + - systemd-2.4.0 (lib) (requires download & build) + - simple-sendfile-0.2.32 (lib) (requires download & build) + - recv-0.1.1 (lib) (requires download & build) + - iproute-1.7.15 (lib) (requires download & build) + - cardano-lmdb-0.4.0.3 (lib) (requires download & build) + - generic-optics-2.2.1.0 (lib) (requires download & build) + - unix-time-0.4.16 (lib:unix-time) (requires download & build) + - unordered-containers-0.2.20 (lib) (requires download & build) + - time-compat-1.9.8 (lib) (requires download & build) + - these-1.2.1 (lib) (requires download & build) + - text-short-0.1.6 (lib) (requires download & build) + - scientific-0.3.8.0 (lib) (requires download & build) + - psqueues-0.2.8.1 (lib) (requires download & build) + - ordered-containers-0.2.4 (lib) (requires download & build) + - data-fix-0.3.4 (lib) (requires download & build) + - case-insensitive-1.2.1.0 (lib) (requires download & build) + - async-2.2.5 (lib) (requires download & build) + - memory-pool-0.1.0.0 (lib) (requires download & build) + - unagi-chan-0.4.1.4 (lib) (requires download & build) + - uuid-types-1.0.6 (lib) (requires download & build) + - tf-random-0.5 (lib) (requires download & build) + - temporary-1.3 (lib) (requires download & build) + - QuickCheck-2.15.0.1 (lib) (requires download & build) + - MonadRandom-0.6.2 (lib) (requires download & build) + - comonad-5.0.9 (lib) (requires download & build) + - barbies-2.1.1.0 (lib) (requires download & build) + - dec-0.0.6 (lib) (requires download & build) + - constraints-0.14.2 (lib) (requires download & build) + - lazy-search-0.1.3.0 (lib) (requires download & build) + - th-reify-many-0.1.10 (lib) (requires download & build) + - monad-control-1.0.3.1 (lib) (requires download & build) + - streaming-0.2.4.0 (lib) (requires download & build) + - pipes-4.3.16 (lib) (requires download & build) + - vector-th-unbox-0.2.2 (lib) (requires download & build) + - vector-binary-instances-0.2.5.2 (lib) (requires download & build) + - th-lift-instances-0.1.20 (lib) (requires download & build) + - nothunks-0.2.1.1 (lib) (requires download & build) + - nonempty-vector-0.2.4 (lib) (requires download & build) + - monoid-subclasses-1.2.6 (lib) (requires download & build) + - math-functions-0.3.4.4 (lib) (requires download & build) + - heapwords-0.1.0.2 (lib) (requires download & build) + - bitvec-1.1.5.0 (lib) (requires download & build) + - entropy-0.4.1.11 (lib:entropy) (requires download & build) + - cardano-crypto-1.3.0 (lib) (requires download & build) + - asn1-encoding-0.9.6 (lib) (requires download & build) + - hspec-expectations-lifted-0.10.0 (lib) (requires download & build) + - bech32-th-1.1.8 (lib) (requires download & build) + - prettyprinter-ansi-terminal-1.1.3 (lib) (requires download & build) + - happy-lib-2.1.5 (lib) (requires download & build) + - fast-logger-3.2.5 (lib) (requires download & build) + - vault-0.3.1.5 (lib) (requires download & build) + - uniplate-1.6.13 (lib) (requires download & build) + - indexed-traversable-instances-0.1.2 (lib) (requires download & build) + - ekg-core-0.1.1.8 (lib) (requires download & build) + - charset-0.3.12 (lib) (requires download & build) + - Unique-0.4.7.9 (lib) (requires download & build) + - text-iso8601-0.1.1 (lib) (requires download & build) + - strict-0.5.1 (lib) (requires download & build) + - formatting-7.2.0 (lib) (requires download & build) + - attoparsec-0.14.4 (lib) (requires download & build) + - network-control-0.1.7 (lib) (requires download & build) + - megaparsec-9.7.0 (lib) (requires download & build) + - http-types-0.12.4 (lib) (requires download & build) + - unliftio-0.2.25.1 (lib) (requires download & build) + - typed-process-0.2.13.0 (lib) (requires download & build) + - streaming-commons-0.2.3.0 (lib) (requires download & build) + - io-classes-1.5.0.0 (lib) (requires download & build) + - concurrent-output-1.10.21 (lib) (requires download & build) + - quickcheck-transformer-0.3.1.2 (lib) (requires download & build) + - quickcheck-io-0.2.0 (lib) (requires download & build) + - genvalidity-1.1.1.0 (lib) (requires download & build) + - generic-random-1.5.0.1 (lib) (requires download & build) + - Stream-0.4.7.2 (lib:Stream) (requires download & build) + - random-shuffle-0.0.4 (lib:random-shuffle) (requires download & build) + - bifunctors-5.6.2 (lib) (requires download & build) + - fin-0.3.2 (lib) (requires download & build) + - constraints-extras-0.4.0.2 (lib) (requires download & build) + - th-orphans-0.13.16 (lib) (requires download & build) + - lifted-base-0.2.3.12 (lib) (requires download & build) + - streaming-bytestring-0.3.4 (lib) (requires download & build) + - pipes-safe-2.3.5 (lib) (requires download & build) + - strict-sop-core-0.1.3.0 (lib) (requires download & build) + - mwc-random-0.15.2.0 (lib) (requires download & build) + - vector-algorithms-0.9.1.0 (lib) (requires download & build) + - uuid-1.3.16 (lib) (requires download & build) + - asn1-parse-0.9.5 (lib:asn1-parse) (requires download & build) + - prettyprinter-compat-ansi-wl-pprint-1.0.2 (lib) (requires download & build) + - pretty-simple-4.1.3.0 (lib) (requires download & build) + - optparse-applicative-fork-0.18.1.0 (lib) (requires download & build) + - optparse-applicative-0.18.1.0 (lib) (requires download & build) + - happy-2.1.5 (exe:happy) (requires download & build) + - witherable-0.5 (lib) (requires download & build) + - serialise-0.2.6.1 (lib) (requires download & build) + - quickcheck-instances-0.3.32 (lib) (requires download & build) + - fmt-0.6.3.0 (lib) (requires download & build) + - parsers-0.12.12 (lib) (requires download & build) + - http-date-0.0.11 (lib) (requires download & build) + - dns-4.2.0 (lib:dns-internal) (requires download & build) + - cassava-0.5.3.2 (lib) (requires download & build) + - wai-3.2.4 (lib) (requires download & build) + - http-semantics-0.3.0 (lib) (requires download & build) + - http-api-data-0.6.2 (lib) (requires download & build) + - typed-protocols-0.3.0.0 (lib) (requires download & build) + - strict-stm-1.5.0.0 (lib) (requires download & build) + - strict-mvar-1.5.0.0 (lib) (requires download & build) + - si-timers-1.5.0.0 (lib) (requires download & build) + - fs-api-0.3.0.0 (lib) (requires download & build) + - hspec-core-2.11.12 (lib) (requires download & build) + - semigroupoids-6.0.1 (lib) (requires download & build) + - profunctors-5.6.2 (lib) (requires download & build) + - bin-0.1.4 (lib) (requires download & build) + - dependent-sum-0.7.2.0 (lib) (requires download & build) + - th-utilities-0.2.5.2 (lib) (requires download & build) + - lifted-async-0.10.2.7 (lib) (requires download & build) + - streaming-binary-0.3.0.1 (lib) (requires download & build) + - sop-extras-0.4.0.0 (lib) (requires download & build) + - mono-traversable-1.0.21.0 (lib) (requires download & build) + - dense-linear-algebra-0.1.0.0 (lib) (requires download & build) + - libsystemd-journal-1.4.6.0 (lib) (requires download & build) + - crypton-x509-1.7.7 (lib) (requires download & build) + - ansi-wl-pprint-1.0.2 (lib) (requires download & build) + - tasty-1.5.3 (lib) (requires download & build) + - pretty-show-1.10 (lib) (requires download & build) + - cardano-lmdb-simple-0.8.0.1 (lib) (requires download & build) + - dns-4.2.0 (lib) (requires download & build) + - wai-logger-2.5.0 (lib) (requires download & build) + - http2-5.3.9 (lib) (requires download & build) + - typed-protocols-stateful-0.3.0.0 (lib) (requires download & build) + - typed-protocols-cborg-0.3.0.0 (lib) (requires download & build) + - resource-registry-0.1.0.0 (lib) (requires download & build) + - strict-checked-vars-0.2.0.0 (lib) (requires download & build) + - rawlock-0.1.1.0 (lib) (requires download & build) + - io-sim-1.5.1.0 (lib) (requires download & build) + - io-classes-mtl-0.1.2.0 (lib) (requires download & build) + - hspec-2.11.12 (lib) (requires download & build) + - strict-list-0.1.7.6 (lib) (requires download & build) + - semialign-1.3.1 (lib) (requires download & build) + - invariant-0.6.4 (lib) (requires download & build) + - generic-lens-2.2.2.0 (lib) (requires download & build) + - free-5.2 (lib) (requires download & build) + - foldl-1.4.18 (lib) (requires download & build) + - either-5.0.2 (lib) (requires download & build) + - dependent-map-0.4.0.0 (lib:dependent-map) (requires download & build) + - async-timer-0.1.4.1 (lib) (requires download & build) + - mutable-containers-0.3.4.1 (lib) (requires download & build) + - conduit-1.3.6.1 (lib) (requires download & build) + - tasty-quickcheck-0.11.1 (lib) (requires download & build) + - tasty-hunit-0.10.2 (lib) (requires download & build) + - tasty-golden-2.3.5 (lib) (requires download & build) + - tasty-expected-failure-0.12.3 (lib) (requires download & build) + - hedgehog-1.5 (lib) (requires download & build) + - warp-3.4.8 (lib) (requires download & build) + - typed-protocols-stateful-cborg-0.3.0.0 (lib) (requires download & build) + - ImpSpec-0.1.0.0 (lib) (requires download & build) + - deque-0.4.4.2 (lib) (requires download & build) + - aeson-2.2.3.0 (lib) (requires download & build) + - recursion-schemes-5.2.3 (lib) (requires download & build) + - adjunctions-4.4.3 (lib) (requires download & build) + - list-t-1.0.5.7 (lib) (requires download & build) + - libyaml-0.1.4 (lib) (requires download & build) + - tasty-hedgehog-1.4.0.2 (lib) (requires download & build) + - hedgehog-quickcheck-0.1.1 (lib) (requires download & build) + - wai-extra-3.1.17 (lib) (requires download & build) + - vector-map-1.1.0.0 (lib) (requires download & build) + - tree-diff-0.3.4 (lib) (requires download & build) + - statistics-0.16.3.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib:satint) (requires download & build) + - nonempty-containers-0.3.5.0 (lib) (requires download & build) + - microstache-1.0.3 (lib) (requires download & build) + - microlens-aeson-2.5.2 (lib) (requires download & build) + - katip-0.8.8.2 (lib) (requires download & build) + - ekg-json-0.1.1.1 (lib) (requires download & build) + - deriving-aeson-0.2.10 (lib) (requires download & build) + - criterion-measurement-0.2.3.0 (lib) (requires download & build) + - cardano-prelude-0.2.1.0 (lib) (requires download & build) + - base64-bytestring-type-1.0.1 (lib) (requires download & build) + - aeson-pretty-0.8.10 (lib) (requires download & build) + - cardano-binary-1.7.1.0 (lib) (requires download & build) + - ral-0.2.2 (lib) (requires download & build) + - kan-extensions-5.2.6 (lib) (requires download & build) + - flat-0.6 (lib) (requires download & build) + - yaml-0.11.11.2 (lib) (requires download & build) + - wai-app-static-3.1.9 (lib) (requires download & build) + - vector-map-1.1.0.0 (lib:testlib) (requires download & build) + - statistics-linreg-0.3 (lib:statistics-linreg) (requires download & build) + - diff-containers-1.3.0.0 (lib) (requires download & build) + - criterion-1.6.4.0 (lib) (requires download & build) + - cardano-prelude-test-0.1.0.5 (lib) (requires download & build) + - cardano-addresses-4.0.0 (lib) (requires download & build) + - cardano-strict-containers-0.1.4.0 (lib) (requires download & build) + - cardano-slotting-0.2.0.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib:index-envs) (requires download & build) + - lens-5.3.4 (lib) (requires download & build) + - ekg-wai-0.1.2.0 (lib) (requires download & build) + - network-mux-0.8.0.2 (lib) (requires build) + - small-steps-1.1.1.0 (lib) (requires download & build) + - fingertree-rm-1.0.0.4 (lib) (requires download & build) + - cardano-crypto-class-2.2.2.0 (lib) (requires download & build) + - cardano-slotting-0.2.0.0 (lib:testlib) (requires download & build) + - validation-1.1.3 (lib) (requires download & build) + - monoidal-containers-0.6.6.0 (lib) (requires download & build) + - capability-0.5.0.1 (lib) (requires download & build) + - iohk-monitoring-0.2.1.2 (lib) (requires download & build) + - ouroboros-network-testing-0.8.1.0 (lib) (requires build) + - ouroboros-network-api-0.14.1.0 (lib) (requires build) + - cardano-crypto-praos-2.2.1.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib) (requires download & build) + - cuddle-0.3.2.1 (lib) (requires download & build) + - lobemo-scribe-systemd-0.1.0.0 (lib) (requires download & build) + - lobemo-backend-trace-forwarder-0.1.0.0 (lib) (requires download & build) + - lobemo-backend-monitoring-0.1.0.3 (lib) (requires download & build) + - lobemo-backend-ekg-0.2.0.1 (lib) (requires download & build) + - lobemo-backend-aggregation-0.1.0.3 (lib) (requires download & build) + - ouroboros-network-protocols-0.14.0.2 (lib) (requires build) + - ouroboros-network-mock-0.1.1.2 (lib) (requires build) + - ouroboros-network-framework-0.18.0.2 (lib) (requires build) + - cardano-crypto-tests-2.2.1.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib:plutus-ir) (requires download & build) + - trace-forward-2.2.11 (lib) (first run) + - ouroboros-network-0.21.3.0 (lib) (requires build) + - ekg-forward-0.9 (lib) (requires download & build) + - plutus-tx-1.45.0.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib:plutus-core-testlib) (requires download & build) + - trace-dispatcher-2.9.2 (lib) (first run) + - plutus-ledger-api-1.45.0.0 (lib) (requires download & build) + - trace-resources-0.2.3 (lib) (first run) + - plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) (requires download & build) + - cardano-ledger-binary-1.6.0.0 (lib) (requires download & build) + - cardano-ledger-binary-1.6.0.0 (lib:testlib) (requires download & build) + - cardano-data-1.2.4.0 (lib) (requires download & build) + - cardano-crypto-wrapper-1.6.0.0 (lib) (requires download & build) + - small-steps-1.1.1.0 (lib:testlib) (requires download & build) + - set-algebra-1.1.0.3 (lib) (requires download & build) + - cardano-ledger-byron-1.1.0.0 (lib) (requires download & build) + - cardano-crypto-test-1.6.0.0 (lib) (requires download & build) + - byron-spec-ledger-1.1.0.0 (lib) (requires download & build) + - cardano-ledger-core-1.17.0.0 (lib) (requires download & build) + - byron-spec-chain-1.0.1.0 (lib) (requires download & build) + - ouroboros-consensus-0.27.0.0 (lib) (requires build) + - cardano-ledger-shelley-1.16.0.0 (lib) (requires download & build) + - cardano-ledger-byron-test-1.5.2.1 (lib) (requires download & build) + - ouroboros-consensus-diffusion-0.23.0.0 (lib) (requires build) + - cardano-ledger-allegra-1.7.0.0 (lib) (requires download & build) + - cardano-ledger-core-1.17.0.0 (lib:testlib) (requires download & build) + - cardano-ledger-mary-1.8.0.0 (lib) (requires download & build) + - cardano-ledger-alonzo-1.13.0.0 (lib) (requires download & build) + - cardano-ledger-babbage-1.11.0.0 (lib) (requires download & build) + - cardano-ledger-conway-1.19.0.0 (lib) (requires download & build) + - cardano-protocol-tpraos-1.4.0.0 (lib) (requires download & build) + - cardano-ledger-api-1.11.0.0 (lib) (requires download & build) + - ouroboros-consensus-protocol-0.12.0.0 (lib) (requires download & build) + - ouroboros-consensus-cardano-0.25.1.0 (lib) (requires build) + - cardano-api-10.16.3.0 (lib) (requires download & build) + - cardano-node-10.5.1 (lib) (first run) + - cardano-node-10.5.1 (exe:cardano-node) (first run) +Downloading libyaml-clib-0.2.5 +Downloaded libyaml-clib-0.2.5 +Downloading base-deriving-via-0.1.0.2 +Downloaded base-deriving-via-0.1.0.2 +Downloading base-orphans-0.9.3 +Starting base-deriving-via-0.1.0.2 (lib) +Building base-deriving-via-0.1.0.2 (lib) +Downloaded base-orphans-0.9.3 +Downloading basement-0.0.16 +Starting base-orphans-0.9.3 (lib) +Installing base-deriving-via-0.1.0.2 (lib) +Building base-orphans-0.9.3 (lib) +Downloaded basement-0.0.16 +Downloading byteorder-1.0.4 +Completed base-deriving-via-0.1.0.2 (lib) +Starting basement-0.0.16 (lib) +Building basement-0.0.16 (lib) +Downloaded byteorder-1.0.4 +Downloading call-stack-0.4.0 +Starting byteorder-1.0.4 (all, legacy fallback: cabal-version is less than 1.8) +Installing base-orphans-0.9.3 (lib) +Building byteorder-1.0.4 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded call-stack-0.4.0 +Downloading character-ps-0.1 +Starting call-stack-0.4.0 (lib) +Completed base-orphans-0.9.3 (lib) +Installing byteorder-1.0.4 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded character-ps-0.1 +Downloading clock-0.8.4 +Starting character-ps-0.1 (lib) +Building call-stack-0.4.0 (lib) +Completed byteorder-1.0.4 (all, legacy fallback: cabal-version is less than 1.8) +Installing call-stack-0.4.0 (lib) +Building character-ps-0.1 (lib) +Downloaded clock-0.8.4 +Downloading colour-2.3.6 +Starting clock-0.8.4 (lib) +Completed call-stack-0.4.0 (lib) +Building clock-0.8.4 (lib) +Downloaded colour-2.3.6 +Downloading composition-prelude-3.0.1.0 +Starting colour-2.3.6 (lib) +Installing character-ps-0.1 (lib) +Building colour-2.3.6 (lib) +Completed character-ps-0.1 (lib) +Downloaded composition-prelude-3.0.1.0 +Downloading contra-tracer-0.1.0.1 +Starting composition-prelude-3.0.1.0 (lib) +Downloaded contra-tracer-0.1.0.1 +Downloading dlist-1.0 +Building composition-prelude-3.0.1.0 (lib) +Downloaded dlist-1.0 +Downloading erf-2.0.0.0 +Installing composition-prelude-3.0.1.0 (lib) +Installing clock-0.8.4 (lib) +Completed composition-prelude-3.0.1.0 (lib) +Starting contra-tracer-0.1.0.1 (lib) +Completed clock-0.8.4 (lib) +Downloaded erf-2.0.0.0 +Downloading fingertree-0.1.5.0 +Building contra-tracer-0.1.0.1 (lib) +Installing contra-tracer-0.1.0.1 (lib) +Completed contra-tracer-0.1.0.1 (lib) +Downloaded fingertree-0.1.5.0 +Downloading foundation-0.0.30 +Installing colour-2.3.6 (lib) +Downloaded foundation-0.0.30 +Downloading generically-0.1.1 +Completed colour-2.3.6 (lib) +Downloaded generically-0.1.1 +Downloading groups-0.5.3 +Downloaded groups-0.5.3 +Downloading haskell-lexer-1.2.1 +Downloaded haskell-lexer-1.2.1 +Downloading hostname-1.0 +Downloaded hostname-1.0 +Downloading hourglass-0.2.12 +Downloaded hourglass-0.2.12 +Downloading indexed-profunctors-0.1.1.1 +Downloaded indexed-profunctors-0.1.1.1 +Downloading js-chart-2.9.4.1 +Downloaded js-chart-2.9.4.1 +Downloading lazysmallcheck-0.6 +Downloaded lazysmallcheck-0.6 +Downloading measures-0.1.0.2 +Downloaded measures-0.1.0.2 +Downloading microlens-0.4.13.1 +Downloaded microlens-0.4.13.1 +Downloading network-info-0.2.1 +Downloaded network-info-0.2.1 +Downloading newtype-0.2.2.0 +Downloaded newtype-0.2.2.0 +Downloading non-integral-1.0.0.0 +Downloaded non-integral-1.0.0.0 +Downloading old-locale-1.0.0.7 +Downloaded old-locale-1.0.0.7 +Downloading parser-combinators-1.3.0 +Downloaded parser-combinators-1.3.0 +Downloading primes-0.2.1.0 +Downloaded primes-0.2.1.0 +Downloading quiet-0.2 +Downloaded quiet-0.2 +Downloading safe-0.3.21 +Installing basement-0.0.16 (lib) +Downloaded safe-0.3.21 +Downloading semigroups-0.20 +Completed basement-0.0.16 (lib) +Downloaded semigroups-0.20 +Downloading show-combinators-0.2.0.0 +Downloaded show-combinators-0.2.0.0 +Downloading singletons-3.0.4 +Downloaded singletons-3.0.4 +Downloading some-1.0.6 +Downloaded some-1.0.6 +Downloading sop-core-0.5.0.2 +Downloaded sop-core-0.5.0.2 +Downloading split-0.2.5 +Downloaded split-0.2.5 +Downloading splitmix-0.1.1 +Downloaded splitmix-0.1.1 +Downloading syb-0.7.2.4 +Downloaded syb-0.7.2.4 +Downloading base16-bytestring-1.0.2.0 +Downloaded base16-bytestring-1.0.2.0 +Downloading base58-bytestring-0.1.0 +Starting base16-bytestring-1.0.2.0 (lib) +Building base16-bytestring-1.0.2.0 (lib) +Installing base16-bytestring-1.0.2.0 (lib) +Completed base16-bytestring-1.0.2.0 (lib) +Downloaded base58-bytestring-0.1.0 +Downloading base64-bytestring-1.2.1.0 +Starting base58-bytestring-0.1.0 (lib) +Building base58-bytestring-0.1.0 (lib) +Installing base58-bytestring-0.1.0 (lib) +Completed base58-bytestring-0.1.0 (lib) +Starting dlist-1.0 (lib) +Downloaded base64-bytestring-1.2.1.0 +Downloading bsb-http-chunked-0.0.0.4 +Starting base64-bytestring-1.2.1.0 (lib) +Building dlist-1.0 (lib) +Building base64-bytestring-1.2.1.0 (lib) +Downloaded bsb-http-chunked-0.0.0.4 +Downloading bytestring-strict-builder-0.4.5.8 +Starting bsb-http-chunked-0.0.0.4 (lib) +Building bsb-http-chunked-0.0.0.4 (lib) +Installing dlist-1.0 (lib) +Installing base64-bytestring-1.2.1.0 (lib) +Completed dlist-1.0 (lib) +Completed base64-bytestring-1.2.1.0 (lib) +Installing bsb-http-chunked-0.0.0.4 (lib) +Configuration is affected by the following files: +- cabal.project +- cabal.project.local +Resolving dependencies... +Build profile: -w ghc-9.8.4 -O1 +In order, the following will be built (use -v for more details): + - FailT-0.1.2.0 (lib) (requires download & build) + - HUnit-1.6.2.0 (lib) (requires download & build) + - OneTuple-0.4.2 (lib) (requires download & build) + - Only-0.1 (lib) (requires download & build) + - StateVar-1.2.2 (lib) (requires download & build) + - Win32-network-0.2.0.1 (lib) (requires download & build) + - alex-3.5.3.0 (exe:alex) (requires download & build) + - algebraic-graphs-0.7 (lib) (requires download & build) + - ansi-terminal-types-1.1 (lib) (requires download & build) + - ap-normalize-0.1.0.1 (lib) (requires download & build) + - appar-0.1.8 (lib:appar) (requires download & build) + - assoc-1.1.1 (lib) (requires download & build) + - attoparsec-0.14.4 (lib:attoparsec-internal) (requires download & build) + - auto-update-0.2.6 (lib) (requires download & build) + - base-compat-0.13.1 (lib) (requires download & build) + - bimap-0.5.0 (lib) (requires download & build) + - binary-orphans-1.0.5 (lib) (requires download & build) + - blaze-builder-0.4.3 (lib) (requires download & build) + - bsb-http-chunked-0.0.0.4 (lib) (requires build) + - bytestring-strict-builder-0.4.5.8 (lib) (requires download & build) + - bytestring-trie-0.2.7.6 (lib) (requires download & build) + - canonical-json-0.6.0.1 (lib) (requires download & build) + - cardano-git-rev-0.2.2.0 (lib) (requires download & build) + - cereal-0.5.8.3 (lib) (requires download & build) + - commutative-semigroups-0.2.0.2 (lib) (requires download & build) + - cryptohash-md5-0.11.101.0 (lib) (requires download & build) + - cryptohash-sha1-0.11.101.0 (lib) (requires download & build) + - data-default-0.8.0.1 (lib) (requires download & build) + - dictionary-sharing-0.1.0.0 (lib) (requires download & build) + - digest-0.0.2.1 (lib) (requires download & build) + - dom-lt-0.2.3 (lib) (requires download & build) + - double-conversion-2.0.5.0 (lib) (requires download & build) + - easy-file-0.2.5 (lib) (requires download & build) + - erf-2.0.0.0 (lib:erf) (requires build) + - extra-1.8 (lib) (requires download & build) + - file-embed-0.0.16.0 (lib) (requires download & build) + - fingertree-0.1.5.0 (lib) (requires build) + - foundation-0.0.30 (lib) (requires build) + - generically-0.1.1 (lib) (requires build) + - groups-0.5.3 (lib) (requires build) + - half-0.3.2 (lib) (requires download & build) + - happy-lib-2.1.5 (lib:grammar) (requires download & build) + - haskell-lexer-1.2.1 (lib) (requires build) + - heredoc-0.2.0.0 (lib) (requires download & build) + - hostname-1.0 (lib:hostname) (requires build) + - hourglass-0.2.12 (lib) (requires build) + - hsc2hs-0.68.10 (exe:hsc2hs) (requires download & build) + - hspec-discover-2.11.12 (lib) (requires download & build) + - indexed-profunctors-0.1.1.1 (lib) (requires build) + - indexed-traversable-0.1.4 (lib) (requires download & build) + - integer-logarithms-1.0.4 (lib) (requires download & build) + - js-chart-2.9.4.1 (lib) (requires build) + - lazysmallcheck-0.6 (lib:lazysmallcheck) (requires build) + - libyaml-clib-0.2.5 (lib) (requires build) + - logict-0.8.2.0 (lib) (requires download & build) + - measures-0.1.0.2 (lib) (requires build) + - memory-0.18.0 (lib) (requires download & build) + - microlens-0.4.13.1 (lib) (requires build) + - mime-types-0.1.2.0 (lib) (requires download & build) + - monoidal-synchronisation-0.1.0.6 (lib) (requires build) + - multiset-0.3.4.3 (lib) (requires download & build) + - network-byte-order-0.1.7 (lib) (requires download & build) + - network-info-0.2.1 (lib) (requires build) + - newtype-0.2.2.0 (lib) (requires build) + - non-integral-1.0.0.0 (lib) (requires build) + - old-locale-1.0.0.7 (lib) (requires build) + - os-string-2.0.7 (lib) (requires download & build) + - parallel-3.2.2.0 (lib) (requires download & build) + - parser-combinators-1.3.0 (lib) (requires build) + - partial-order-0.2.0.0 (lib) (requires download & build) + - prettyprinter-1.7.1 (lib) (requires download & build) + - primes-0.2.1.0 (lib:primes) (requires build) + - primitive-0.9.1.0 (lib) (requires download & build) + - quiet-0.2 (lib) (requires build) + - reflection-2.1.9 (lib) (requires download & build) + - safe-0.3.21 (lib) (requires build) + - safe-exceptions-0.1.7.4 (lib) (requires download & build) + - selective-0.7.0.1 (lib) (requires download & build) + - semigroups-0.20 (lib) (requires build) + - show-combinators-0.2.0.0 (lib) (requires build) + - singletons-3.0.4 (lib) (requires build) + - some-1.0.6 (lib) (requires build) + - sop-core-0.5.0.2 (lib) (requires build) + - split-0.2.5 (lib) (requires build) + - splitmix-0.1.1 (lib) (requires build) + - string-conv-0.2.0 (lib) (requires download & build) + - syb-0.7.2.4 (lib) (requires build) + - tagged-0.8.9 (lib) (requires download & build) + - testing-type-modifiers-0.1.0.1 (lib) (requires download & build) + - th-abstraction-0.7.1.0 (lib) (requires download & build) + - th-compat-0.1.6 (lib) (requires download & build) + - time-locale-compat-0.1.1.5 (lib) (requires download & build) + - time-units-1.0.0 (lib:time-units) (requires download & build) + - transformers-compat-0.7.2 (lib) (requires download & build) + - transformers-except-0.1.4 (lib) (requires download & build) + - unbounded-delays-0.1.1.1 (lib) (requires download & build) + - unix-bytestring-0.4.0.3 (lib) (requires download & build) + - unix-compat-0.7.4 (lib) (requires download & build) + - unliftio-core-0.2.1.0 (lib) (requires download & build) + - utf8-string-1.0.2 (lib) (requires download & build) + - validity-0.12.1.0 (lib) (requires download & build) + - vector-stream-0.1.0.1 (lib) (requires download & build) + - void-0.7.3 (lib) (requires download & build) + - wherefrom-compat-0.1.1.1 (lib) (requires download & build) + - wl-pprint-annotated-0.1.0.1 (lib) (requires download & build) + - word8-0.1.3 (lib) (requires download & build) + - mempack-0.1.2.0 (lib) (requires download & build) + - hspec-expectations-0.8.4 (lib) (requires download & build) + - contravariant-1.5.5 (lib) (requires download & build) + - Cabal-syntax-3.14.2.0 (lib) (requires download & build) + - ansi-terminal-1.1.2 (lib) (requires download & build) + - time-manager-0.2.3 (lib) (requires download & build) + - base-compat-batteries-0.13.1 (lib) (requires download & build) + - blaze-markup-0.8.3.0 (lib) (requires download & build) + - data-default-class-0.2.0.0 (lib) (requires download & build) + - bech32-1.1.8 (lib) (requires download & build) + - happy-lib-2.1.5 (lib:tabular) (requires download & build) + - happy-lib-2.1.5 (lib:frontend) (requires download & build) + - zlib-0.7.1.0 (lib) (requires download & build) + - terminal-size-0.3.4 (lib) (requires download & build) + - network-3.2.7.0 (lib:network) (requires download & build) + - hsyslog-5.0.2 (lib) (requires download & build) + - filelock-0.1.1.7 (lib) (requires download & build) + - direct-sqlite-2.3.29 (lib) (requires download & build) + - code-page-0.2.1 (lib) (requires download & build) + - cardano-lmdb-0.4.0.3 (lib:ffi) (requires download & build) + - generic-lens-core-2.2.1.0 (lib) (requires download & build) + - optics-core-0.4.1.1 (lib) (requires download & build) + - pem-0.2.4 (lib) (requires download & build) + - crypton-1.0.4 (lib) (requires download & build) + - asn1-types-0.3.4 (lib:asn1-types) (requires download & build) + - old-time-1.1.0.4 (lib:old-time) (requires download & build) + - hashable-1.4.7.0 (lib) (requires download & build) + - prettyprinter-configurable-1.36.0.0 (lib) (requires download & build) + - pvar-1.0.0.0 (lib) (requires download & build) + - integer-conversion-0.1.1 (lib) (requires download & build) + - cborg-0.2.10.0 (lib) (requires download & build) + - atomic-primops-0.8.8 (lib) (requires download & build) + - tracer-transformers-0.1.0.4 (lib) (requires download & build) + - validation-selective-0.2.0.0 (lib) (requires download & build) + - generic-data-1.1.0.2 (lib) (requires download & build) + - random-1.2.1.3 (lib) (requires download & build) + - universe-base-1.1.4 (lib) (requires download & build) + - distributive-0.6.2.1 (lib) (requires download & build) + - boring-0.2.2 (lib) (requires download & build) + - size-based-0.1.3.3 (lib) (requires download & build) + - th-lift-0.8.6 (lib) (requires download & build) + - th-expand-syns-0.4.12.0 (lib) (requires download & build) + - safe-wild-cards-1.0.0.2 (lib) (requires download & build) + - microlens-th-0.4.3.17 (lib) (requires download & build) + - network-uri-2.6.4.2 (lib) (requires download & build) + - transformers-base-0.4.6 (lib) (requires download & build) + - mmorph-1.2.0 (lib) (requires download & build) + - errors-2.3.0 (lib) (requires download & build) + - deriving-compat-0.6.7 (lib) (requires download & build) + - Glob-0.10.2 (lib) (requires download & build) + - resourcet-1.3.0 (lib) (requires download & build) + - vector-0.13.2.0 (lib) (requires download & build) + - hspec-expectations-lifted-0.10.0 (lib) (requires download & build) + - Cabal-3.14.2.0 (lib) (requires download & build) + - prettyprinter-ansi-terminal-1.1.3 (lib) (requires download & build) + - blaze-html-0.9.2.0 (lib) (requires download & build) + - cookie-0.5.1 (lib) (requires download & build) + - bech32-th-1.1.8 (lib) (requires download & build) + - happy-lib-2.1.5 (lib:backend-lalr) (requires download & build) + - happy-lib-2.1.5 (lib:backend-glr) (requires download & build) + - systemd-2.4.0 (lib) (requires download & build) + - simple-sendfile-0.2.32 (lib) (requires download & build) + - recv-0.1.1 (lib) (requires download & build) + - iproute-1.7.15 (lib) (requires download & build) + - cardano-lmdb-0.4.0.3 (lib) (requires download & build) + - generic-optics-2.2.1.0 (lib) (requires download & build) + - asn1-encoding-0.9.6 (lib) (requires download & build) + - unix-time-0.4.16 (lib:unix-time) (requires download & build) + - unordered-containers-0.2.20 (lib) (requires download & build) + - time-compat-1.9.8 (lib) (requires download & build) + - these-1.2.1 (lib) (requires download & build) + - text-short-0.1.6 (lib) (requires download & build) + - scientific-0.3.8.0 (lib) (requires download & build) + - psqueues-0.2.8.1 (lib) (requires download & build) + - ordered-containers-0.2.4 (lib) (requires download & build) + - data-fix-0.3.4 (lib) (requires download & build) + - case-insensitive-1.2.1.0 (lib) (requires download & build) + - cardano-crypto-1.3.0 (lib) (requires download & build) + - async-2.2.5 (lib) (requires download & build) + - memory-pool-0.1.0.0 (lib) (requires download & build) + - unagi-chan-0.4.1.4 (lib) (requires download & build) + - uuid-types-1.0.6 (lib) (requires download & build) + - tf-random-0.5 (lib) (requires download & build) + - temporary-1.3 (lib) (requires download & build) + - QuickCheck-2.15.0.1 (lib) (requires download & build) + - MonadRandom-0.6.2 (lib) (requires download & build) + - comonad-5.0.9 (lib) (requires download & build) + - barbies-2.1.1.0 (lib) (requires download & build) + - dec-0.0.6 (lib) (requires download & build) + - constraints-0.14.2 (lib) (requires download & build) + - lazy-search-0.1.3.0 (lib) (requires download & build) + - th-reify-many-0.1.10 (lib) (requires download & build) + - monad-control-1.0.3.1 (lib) (requires download & build) + - streaming-0.2.4.0 (lib) (requires download & build) + - pipes-4.3.16 (lib) (requires download & build) + - vector-th-unbox-0.2.2 (lib) (requires download & build) + - vector-binary-instances-0.2.5.2 (lib) (requires download & build) + - th-lift-instances-0.1.20 (lib) (requires download & build) + - nothunks-0.2.1.1 (lib) (requires download & build) + - nonempty-vector-0.2.4 (lib) (requires download & build) + - monoid-subclasses-1.2.6 (lib) (requires download & build) + - math-functions-0.3.4.4 (lib) (requires download & build) + - heapwords-0.1.0.2 (lib) (requires download & build) + - bitvec-1.1.5.0 (lib) (requires download & build) + - entropy-0.4.1.11 (lib:entropy) (requires download & build) + - prettyprinter-compat-ansi-wl-pprint-1.0.2 (lib) (requires download & build) + - pretty-simple-4.1.3.0 (lib) (requires download & build) + - optparse-applicative-fork-0.18.1.0 (lib) (requires download & build) + - optparse-applicative-0.18.1.0 (lib) (requires download & build) + - happy-lib-2.1.5 (lib) (requires download & build) + - asn1-parse-0.9.5 (lib:asn1-parse) (requires download & build) + - fast-logger-3.2.5 (lib) (requires download & build) + - vault-0.3.1.5 (lib) (requires download & build) + - uniplate-1.6.13 (lib) (requires download & build) + - indexed-traversable-instances-0.1.2 (lib) (requires download & build) + - ekg-core-0.1.1.8 (lib) (requires download & build) + - charset-0.3.12 (lib) (requires download & build) + - Unique-0.4.7.9 (lib) (requires download & build) + - text-iso8601-0.1.1 (lib) (requires download & build) + - strict-0.5.1 (lib) (requires download & build) + - formatting-7.2.0 (lib) (requires download & build) + - attoparsec-0.14.4 (lib) (requires download & build) + - network-control-0.1.7 (lib) (requires download & build) + - megaparsec-9.7.0 (lib) (requires download & build) + - http-types-0.12.4 (lib) (requires download & build) + - unliftio-0.2.25.1 (lib) (requires download & build) + - typed-process-0.2.13.0 (lib) (requires download & build) + - streaming-commons-0.2.3.0 (lib) (requires download & build) + - io-classes-1.5.0.0 (lib) (requires download & build) + - concurrent-output-1.10.21 (lib) (requires download & build) + - quickcheck-transformer-0.3.1.2 (lib) (requires download & build) + - quickcheck-io-0.2.0 (lib) (requires download & build) + - genvalidity-1.1.1.0 (lib) (requires download & build) + - generic-random-1.5.0.1 (lib) (requires download & build) + - Stream-0.4.7.2 (lib:Stream) (requires download & build) + - random-shuffle-0.0.4 (lib:random-shuffle) (requires download & build) + - bifunctors-5.6.2 (lib) (requires download & build) + - fin-0.3.2 (lib) (requires download & build) + - constraints-extras-0.4.0.2 (lib) (requires download & build) + - th-orphans-0.13.16 (lib) (requires download & build) + - lifted-base-0.2.3.12 (lib) (requires download & build) + - streaming-bytestring-0.3.4 (lib) (requires download & build) + - pipes-safe-2.3.5 (lib) (requires download & build) + - strict-sop-core-0.1.3.0 (lib) (requires download & build) + - mwc-random-0.15.2.0 (lib) (requires download & build) + - vector-algorithms-0.9.1.0 (lib) (requires download & build) + - uuid-1.3.16 (lib) (requires download & build) + - ansi-wl-pprint-1.0.2 (lib) (requires download & build) + - tasty-1.5.3 (lib) (requires download & build) + - happy-2.1.5 (exe:happy) (requires download & build) + - crypton-x509-1.7.7 (lib) (requires download & build) + - witherable-0.5 (lib) (requires download & build) + - serialise-0.2.6.1 (lib) (requires download & build) + - quickcheck-instances-0.3.32 (lib) (requires download & build) + - fmt-0.6.3.0 (lib) (requires download & build) + - parsers-0.12.12 (lib) (requires download & build) + - http-date-0.0.11 (lib) (requires download & build) + - dns-4.2.0 (lib:dns-internal) (requires download & build) + - cassava-0.5.3.2 (lib) (requires download & build) + - wai-3.2.4 (lib) (requires download & build) + - http-semantics-0.3.0 (lib) (requires download & build) + - http-api-data-0.6.2 (lib) (requires download & build) + - typed-protocols-0.3.0.0 (lib) (requires download & build) + - strict-stm-1.5.0.0 (lib) (requires download & build) + - strict-mvar-1.5.0.0 (lib) (requires download & build) + - si-timers-1.5.0.0 (lib) (requires download & build) + - fs-api-0.3.0.0 (lib) (requires download & build) + - hspec-core-2.11.12 (lib) (requires download & build) + - semigroupoids-6.0.1 (lib) (requires download & build) + - profunctors-5.6.2 (lib) (requires download & build) + - bin-0.1.4 (lib) (requires download & build) + - dependent-sum-0.7.2.0 (lib) (requires download & build) + - th-utilities-0.2.5.2 (lib) (requires download & build) + - lifted-async-0.10.2.7 (lib) (requires download & build) + - streaming-binary-0.3.0.1 (lib) (requires download & build) + - sop-extras-0.4.0.0 (lib) (requires download & build) + - mono-traversable-1.0.21.0 (lib) (requires download & build) + - dense-linear-algebra-0.1.0.0 (lib) (requires download & build) + - libsystemd-journal-1.4.6.0 (lib) (requires download & build) + - tasty-quickcheck-0.11.1 (lib) (requires download & build) + - tasty-hunit-0.10.2 (lib) (requires download & build) + - tasty-golden-2.3.5 (lib) (requires download & build) + - tasty-expected-failure-0.12.3 (lib) (requires download & build) + - pretty-show-1.10 (lib) (requires download & build) + - cardano-lmdb-simple-0.8.0.1 (lib) (requires download & build) + - dns-4.2.0 (lib) (requires download & build) + - wai-logger-2.5.0 (lib) (requires download & build) + - http2-5.3.9 (lib) (requires download & build) + - typed-protocols-stateful-0.3.0.0 (lib) (requires download & build) + - typed-protocols-cborg-0.3.0.0 (lib) (requires download & build) + - resource-registry-0.1.0.0 (lib) (requires download & build) + - strict-checked-vars-0.2.0.0 (lib) (requires download & build) + - rawlock-0.1.1.0 (lib) (requires download & build) + - io-sim-1.5.1.0 (lib) (requires download & build) + - io-classes-mtl-0.1.2.0 (lib) (requires download & build) + - hspec-2.11.12 (lib) (requires download & build) + - strict-list-0.1.7.6 (lib) (requires download & build) + - semialign-1.3.1 (lib) (requires download & build) + - invariant-0.6.4 (lib) (requires download & build) + - generic-lens-2.2.2.0 (lib) (requires download & build) + - free-5.2 (lib) (requires download & build) + - foldl-1.4.18 (lib) (requires download & build) + - either-5.0.2 (lib) (requires download & build) + - dependent-map-0.4.0.0 (lib:dependent-map) (requires download & build) + - async-timer-0.1.4.1 (lib) (requires download & build) + - mutable-containers-0.3.4.1 (lib) (requires download & build) + - conduit-1.3.6.1 (lib) (requires download & build) + - hedgehog-1.5 (lib) (requires download & build) + - warp-3.4.8 (lib) (requires download & build) + - typed-protocols-stateful-cborg-0.3.0.0 (lib) (requires download & build) + - ImpSpec-0.1.0.0 (lib) (requires download & build) + - deque-0.4.4.2 (lib) (requires download & build) + - aeson-2.2.3.0 (lib) (requires download & build) + - recursion-schemes-5.2.3 (lib) (requires download & build) + - adjunctions-4.4.3 (lib) (requires download & build) + - list-t-1.0.5.7 (lib) (requires download & build) + - libyaml-0.1.4 (lib) (requires download & build) + - tasty-hedgehog-1.4.0.2 (lib) (requires download & build) + - hedgehog-quickcheck-0.1.1 (lib) (requires download & build) + - wai-extra-3.1.17 (lib) (requires download & build) + - vector-map-1.1.0.0 (lib) (requires download & build) + - tree-diff-0.3.4 (lib) (requires download & build) + - statistics-0.16.3.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib:satint) (requires download & build) + - nonempty-containers-0.3.5.0 (lib) (requires download & build) + - microstache-1.0.3 (lib) (requires download & build) + - microlens-aeson-2.5.2 (lib) (requires download & build) + - katip-0.8.8.2 (lib) (requires download & build) + - ekg-json-0.1.1.1 (lib) (requires download & build) + - deriving-aeson-0.2.10 (lib) (requires download & build) + - criterion-measurement-0.2.3.0 (lib) (requires download & build) + - cardano-prelude-0.2.1.0 (lib) (requires download & build) + - base64-bytestring-type-1.0.1 (lib) (requires download & build) + - aeson-pretty-0.8.10 (lib) (requires download & build) + - cardano-binary-1.7.1.0 (lib) (requires download & build) + - ral-0.2.2 (lib) (requires download & build) + - kan-extensions-5.2.6 (lib) (requires download & build) + - flat-0.6 (lib) (requires download & build) + - yaml-0.11.11.2 (lib) (requires download & build) + - wai-app-static-3.1.9 (lib) (requires download & build) + - vector-map-1.1.0.0 (lib:testlib) (requires download & build) + - statistics-linreg-0.3 (lib:statistics-linreg) (requires download & build) + - diff-containers-1.3.0.0 (lib) (requires download & build) + - criterion-1.6.4.0 (lib) (requires download & build) + - cardano-prelude-test-0.1.0.5 (lib) (requires download & build) + - cardano-addresses-4.0.0 (lib) (requires download & build) + - cardano-strict-containers-0.1.4.0 (lib) (requires download & build) + - cardano-slotting-0.2.0.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib:index-envs) (requires download & build) + - lens-5.3.4 (lib) (requires download & build) + - ekg-wai-0.1.2.0 (lib) (requires download & build) + - network-mux-0.8.0.2 (lib) (requires build) + - small-steps-1.1.1.0 (lib) (requires download & build) + - fingertree-rm-1.0.0.4 (lib) (requires download & build) + - cardano-crypto-class-2.2.2.0 (lib) (requires download & build) + - cardano-slotting-0.2.0.0 (lib:testlib) (requires download & build) + - validation-1.1.3 (lib) (requires download & build) + - monoidal-containers-0.6.6.0 (lib) (requires download & build) + - capability-0.5.0.1 (lib) (requires download & build) + - iohk-monitoring-0.2.1.2 (lib) (requires download & build) + - ouroboros-network-testing-0.8.1.0 (lib) (requires build) + - ouroboros-network-api-0.14.1.0 (lib) (requires build) + - cardano-crypto-praos-2.2.1.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib) (requires download & build) + - cuddle-0.3.2.1 (lib) (requires download & build) + - lobemo-scribe-systemd-0.1.0.0 (lib) (requires download & build) + - lobemo-backend-trace-forwarder-0.1.0.0 (lib) (requires download & build) + - lobemo-backend-monitoring-0.1.0.3 (lib) (requires download & build) + - lobemo-backend-ekg-0.2.0.1 (lib) (requires download & build) + - lobemo-backend-aggregation-0.1.0.3 (lib) (requires download & build) + - ouroboros-network-protocols-0.14.0.2 (lib) (requires build) + - ouroboros-network-mock-0.1.1.2 (lib) (requires build) + - ouroboros-network-framework-0.18.0.2 (lib) (requires build) + - cardano-crypto-tests-2.2.1.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib:plutus-ir) (requires download & build) + - trace-forward-2.2.11 (lib) (first run) + - ouroboros-network-0.21.3.0 (lib) (requires build) + - ekg-forward-0.9 (lib) (requires download & build) + - plutus-tx-1.45.0.0 (lib) (requires download & build) + - plutus-core-1.45.0.0 (lib:plutus-core-testlib) (requires download & build) + - trace-dispatcher-2.9.2 (lib) (first run) + - plutus-ledger-api-1.45.0.0 (lib) (requires download & build) + - trace-resources-0.2.3 (lib) (first run) + - plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) (requires download & build) + - cardano-ledger-binary-1.6.0.0 (lib) (requires download & build) + - cardano-ledger-binary-1.6.0.0 (lib:testlib) (requires download & build) + - cardano-data-1.2.4.0 (lib) (requires download & build) + - cardano-crypto-wrapper-1.6.0.0 (lib) (requires download & build) + - small-steps-1.1.1.0 (lib:testlib) (requires download & build) + - set-algebra-1.1.0.3 (lib) (requires download & build) + - cardano-ledger-byron-1.1.0.0 (lib) (requires download & build) + - cardano-crypto-test-1.6.0.0 (lib) (requires download & build) + - byron-spec-ledger-1.1.0.0 (lib) (requires download & build) + - cardano-ledger-core-1.17.0.0 (lib) (requires download & build) + - byron-spec-chain-1.0.1.0 (lib) (requires download & build) + - ouroboros-consensus-0.27.0.0 (lib) (requires build) + - cardano-ledger-shelley-1.16.0.0 (lib) (requires download & build) + - cardano-ledger-byron-test-1.5.2.1 (lib) (requires download & build) + - ouroboros-consensus-diffusion-0.23.0.0 (lib) (requires build) + - cardano-ledger-allegra-1.7.0.0 (lib) (requires download & build) + - cardano-ledger-core-1.17.0.0 (lib:testlib) (requires download & build) + - cardano-ledger-mary-1.8.0.0 (lib) (requires download & build) + - cardano-ledger-alonzo-1.13.0.0 (lib) (requires download & build) + - cardano-ledger-babbage-1.11.0.0 (lib) (requires download & build) + - cardano-ledger-conway-1.19.0.0 (lib) (requires download & build) + - cardano-protocol-tpraos-1.4.0.0 (lib) (requires download & build) + - cardano-ledger-api-1.11.0.0 (lib) (requires download & build) + - ouroboros-consensus-protocol-0.12.0.0 (lib) (requires download & build) + - ouroboros-consensus-cardano-0.25.1.0 (lib) (requires build) + - cardano-api-10.16.3.0 (lib) (requires download & build) + - cardano-node-10.5.1 (lib) (first run) + - cardano-node-10.5.1 (exe:cardano-node) (first run) +Downloading bytestring-strict-builder-0.4.5.8 +Starting bsb-http-chunked-0.0.0.4 (lib) +Building bsb-http-chunked-0.0.0.4 (lib) +Installing bsb-http-chunked-0.0.0.4 (lib) +Downloaded bytestring-strict-builder-0.4.5.8 +Downloading cryptohash-md5-0.11.101.0 +Starting bytestring-strict-builder-0.4.5.8 (lib) +Completed bsb-http-chunked-0.0.0.4 (lib) +Building bytestring-strict-builder-0.4.5.8 (lib) +Downloaded cryptohash-md5-0.11.101.0 +Downloading cryptohash-sha1-0.11.101.0 +Starting cryptohash-md5-0.11.101.0 (lib) +Building cryptohash-md5-0.11.101.0 (lib) +Downloaded cryptohash-sha1-0.11.101.0 +Downloading digest-0.0.2.1 +Starting cryptohash-sha1-0.11.101.0 (lib) +Installing bytestring-strict-builder-0.4.5.8 (lib) +Completed bytestring-strict-builder-0.4.5.8 (lib) +Starting erf-2.0.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded digest-0.0.2.1 +Downloading memory-0.18.0 +Starting digest-0.0.2.1 (lib) +Building cryptohash-sha1-0.11.101.0 (lib) +Building erf-2.0.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded memory-0.18.0 +Downloading crypton-1.0.4 +Building digest-0.0.2.1 (lib) +Installing cryptohash-md5-0.11.101.0 (lib) +Installing erf-2.0.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Completed cryptohash-md5-0.11.101.0 (lib) +Completed erf-2.0.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded crypton-1.0.4 +Downloading network-byte-order-0.1.7 +Installing cryptohash-sha1-0.11.101.0 (lib) +Completed cryptohash-sha1-0.11.101.0 (lib) +Starting fingertree-0.1.5.0 (lib) +Downloaded network-byte-order-0.1.7 +Downloading pem-0.2.4 +Installing digest-0.0.2.1 (lib) +Completed digest-0.0.2.1 (lib) +Starting foundation-0.0.30 (lib) +Building fingertree-0.1.5.0 (lib) +Downloaded pem-0.2.4 +Downloading heredoc-0.2.0.0 +Building foundation-0.0.30 (lib) +Downloaded heredoc-0.2.0.0 +Downloading reflection-2.1.9 +Downloaded reflection-2.1.9 +Downloading testing-type-modifiers-0.1.0.1 +Downloaded testing-type-modifiers-0.1.0.1 +Downloading th-compat-0.1.6 +Downloaded th-compat-0.1.6 +Downloading time-locale-compat-0.1.1.5 +Downloaded time-locale-compat-0.1.1.5 +Downloading time-units-1.0.0 +Installing fingertree-0.1.5.0 (lib) +Completed fingertree-0.1.5.0 (lib) +Starting generically-0.1.1 (lib) +Downloaded time-units-1.0.0 +Downloading random-1.2.1.3 +Building generically-0.1.1 (lib) +Installing generically-0.1.1 (lib) +Completed generically-0.1.1 (lib) +Starting groups-0.5.3 (lib) +Downloaded random-1.2.1.3 +Downloading primitive-0.9.1.0 +Building groups-0.5.3 (lib) +Downloaded primitive-0.9.1.0 +Downloading pvar-1.0.0.0 +Installing groups-0.5.3 (lib) +Completed groups-0.5.3 (lib) +Downloaded pvar-1.0.0.0 +Downloading memory-pool-0.1.0.0 +Downloaded memory-pool-0.1.0.0 +Downloading tf-random-0.5 +Downloaded tf-random-0.5 +Downloading selective-0.7.0.1 +Downloaded selective-0.7.0.1 +Downloading tagged-0.8.9 +Downloaded tagged-0.8.9 +Downloading boring-0.2.2 +Downloaded boring-0.2.2 +Downloading dec-0.0.6 +Downloaded dec-0.0.6 +Downloading distributive-0.6.2.1 +Downloaded distributive-0.6.2.1 +Downloading transformers-compat-0.7.2 +Downloaded transformers-compat-0.7.2 +Downloading mmorph-1.2.0 +Downloaded mmorph-1.2.0 +Downloading unbounded-delays-0.1.1.1 +Downloaded unbounded-delays-0.1.1.1 +Downloading unix-bytestring-0.4.0.3 +Downloaded unix-bytestring-0.4.0.3 +Downloading unliftio-core-0.2.1.0 +Downloaded unliftio-core-0.2.1.0 +Downloading utf8-string-1.0.2 +Downloaded utf8-string-1.0.2 +Downloading validation-selective-0.2.0.0 +Downloaded validation-selective-0.2.0.0 +Downloading validity-0.12.1.0 +Downloaded validity-0.12.1.0 +Downloading vector-stream-0.1.0.1 +Downloaded vector-stream-0.1.0.1 +Downloading vector-0.13.2.0 +Downloaded vector-0.13.2.0 +Downloading bitvec-1.1.5.0 +Downloaded bitvec-1.1.5.0 +Downloading nonempty-vector-0.2.4 +Installing foundation-0.0.30 (lib) +Completed foundation-0.0.30 (lib) +Downloaded nonempty-vector-0.2.4 +Downloading vector-algorithms-0.9.1.0 +Downloaded vector-algorithms-0.9.1.0 +Downloading vector-th-unbox-0.2.2 +Downloaded vector-th-unbox-0.2.2 +Downloading void-0.7.3 +Downloaded void-0.7.3 +Downloading wherefrom-compat-0.1.1.1 +Downloaded wherefrom-compat-0.1.1.1 +Downloading word8-0.1.3 +Downloaded word8-0.1.3 +Downloading barbies-2.1.1.0 +Downloaded barbies-2.1.1.0 +Downloading atomic-primops-0.8.8 +Downloaded atomic-primops-0.8.8 +Downloading unagi-chan-0.4.1.4 +Downloaded unagi-chan-0.4.1.4 +Downloading assoc-1.1.1 +Downloaded assoc-1.1.1 +Downloading asn1-types-0.3.4 +Starting assoc-1.1.1 (lib) +Building assoc-1.1.1 (lib) +Downloaded asn1-types-0.3.4 +Downloading asn1-encoding-0.9.6 +Installing assoc-1.1.1 (lib) +Downloaded asn1-encoding-0.9.6 +Downloading asn1-parse-0.9.5 +Completed assoc-1.1.1 (lib) +Starting haskell-lexer-1.2.1 (lib) +Building haskell-lexer-1.2.1 (lib) +Downloaded asn1-parse-0.9.5 +Downloading binary-orphans-1.0.5 +Downloaded binary-orphans-1.0.5 +Downloading bytestring-trie-0.2.7.6 +Starting binary-orphans-1.0.5 (lib) +Building binary-orphans-1.0.5 (lib) +Downloaded bytestring-trie-0.2.7.6 +Downloading half-0.3.2 +Starting bytestring-trie-0.2.7.6 (lib) +Installing binary-orphans-1.0.5 (lib) +Completed binary-orphans-1.0.5 (lib) +Starting heredoc-0.2.0.0 (lib) +Building bytestring-trie-0.2.7.6 (lib) +Downloaded half-0.3.2 +Downloading vector-binary-instances-0.2.5.2 +Starting half-0.3.2 (lib) +Building heredoc-0.2.0.0 (lib) +Building half-0.3.2 (lib) +Installing heredoc-0.2.0.0 (lib) +Completed heredoc-0.2.0.0 (lib) +Starting hostname-1.0 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded vector-binary-instances-0.2.5.2 +Downloading cereal-0.5.8.3 +Building hostname-1.0 (all, legacy fallback: cabal-version is less than 1.8) +Installing hostname-1.0 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded cereal-0.5.8.3 +Downloading commutative-semigroups-0.2.0.2 +Starting cereal-0.5.8.3 (lib) +Completed hostname-1.0 (all, legacy fallback: cabal-version is less than 1.8) +Starting hourglass-0.2.12 (lib) +Installing half-0.3.2 (lib) +Completed half-0.3.2 (lib) +Building cereal-0.5.8.3 (lib) +Downloaded commutative-semigroups-0.2.0.2 +Downloading crypton-x509-1.7.7 +Starting commutative-semigroups-0.2.0.2 (lib) +Building hourglass-0.2.12 (lib) +Building commutative-semigroups-0.2.0.2 (lib) +Downloaded crypton-x509-1.7.7 +Downloading data-default-0.8.0.1 +Installing commutative-semigroups-0.2.0.2 (lib) +Installing bytestring-trie-0.2.7.6 (lib) +Completed commutative-semigroups-0.2.0.2 (lib) +Downloaded data-default-0.8.0.1 +Downloading data-default-class-0.2.0.0 +Starting data-default-0.8.0.1 (lib) +Completed bytestring-trie-0.2.7.6 (lib) +Starting indexed-profunctors-0.1.1.1 (lib) +Downloaded data-default-class-0.2.0.0 +Downloading math-functions-0.3.4.4 +Building indexed-profunctors-0.1.1.1 (lib) +Building data-default-0.8.0.1 (lib) +Downloaded math-functions-0.3.4.4 +Downloading dense-linear-algebra-0.1.0.0 +Installing data-default-0.8.0.1 (lib) +Completed data-default-0.8.0.1 (lib) +Downloaded dense-linear-algebra-0.1.0.0 +Downloading mwc-random-0.15.2.0 +Installing indexed-profunctors-0.1.1.1 (lib) +Completed indexed-profunctors-0.1.1.1 (lib) +Downloaded mwc-random-0.15.2.0 +Downloading dictionary-sharing-0.1.0.0 +Downloaded dictionary-sharing-0.1.0.0 +Downloading size-based-0.1.3.3 +Starting dictionary-sharing-0.1.0.0 (lib) +Building dictionary-sharing-0.1.0.0 (lib) +Downloaded size-based-0.1.3.3 +Downloading lazy-search-0.1.3.0 +Installing dictionary-sharing-0.1.0.0 (lib) +Completed dictionary-sharing-0.1.0.0 (lib) +Starting js-chart-2.9.4.1 (lib) +Installing hourglass-0.2.12 (lib) +Downloaded lazy-search-0.1.3.0 +Downloading multiset-0.3.4.3 +Completed hourglass-0.2.12 (lib) +Starting lazysmallcheck-0.6 (all, legacy fallback: cabal-version is less than 1.8) +Building js-chart-2.9.4.1 (lib) +Building lazysmallcheck-0.6 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded multiset-0.3.4.3 +Downloading partial-order-0.2.0.0 +Installing js-chart-2.9.4.1 (lib) +Completed js-chart-2.9.4.1 (lib) +Starting libyaml-clib-0.2.5 (lib) +Installing haskell-lexer-1.2.1 (lib) +Downloaded partial-order-0.2.0.0 +Downloading th-abstraction-0.7.1.0 +Completed haskell-lexer-1.2.1 (lib) +Installing lazysmallcheck-0.6 (all, legacy fallback: cabal-version is less than 1.8) +Building libyaml-clib-0.2.5 (lib) +Completed lazysmallcheck-0.6 (all, legacy fallback: cabal-version is less than 1.8) +Starting measures-0.1.0.2 (lib) +Downloaded th-abstraction-0.7.1.0 +Downloading deriving-compat-0.6.7 +Building measures-0.1.0.2 (lib) +Installing cereal-0.5.8.3 (lib) +Downloaded deriving-compat-0.6.7 +Downloading microlens-th-0.4.3.17 +Completed cereal-0.5.8.3 (lib) +Starting memory-0.18.0 (lib) +Installing measures-0.1.0.2 (lib) +Downloaded microlens-th-0.4.3.17 +Downloading safe-wild-cards-1.0.0.2 +Building memory-0.18.0 (lib) +Completed measures-0.1.0.2 (lib) +Starting microlens-0.4.13.1 (lib) +Building microlens-0.4.13.1 (lib) +Downloaded safe-wild-cards-1.0.0.2 +Downloading th-lift-0.8.6 +Downloaded th-lift-0.8.6 +Downloading th-expand-syns-0.4.12.0 +Downloaded th-expand-syns-0.4.12.0 +Downloading th-reify-many-0.1.10 +Installing microlens-0.4.13.1 (lib) +Completed microlens-0.4.13.1 (lib) +Installing libyaml-clib-0.2.5 (lib) +Installing memory-0.18.0 (lib) +Completed libyaml-clib-0.2.5 (lib) +Starting monoidal-synchronisation-0.1.0.6 (lib) +Completed memory-0.18.0 (lib) +Starting multiset-0.3.4.3 (lib) +Building monoidal-synchronisation-0.1.0.6 (lib) +Building multiset-0.3.4.3 (lib) +Downloaded th-reify-many-0.1.10 +Downloading th-orphans-0.13.16 +Installing monoidal-synchronisation-0.1.0.6 (lib) +Downloaded th-orphans-0.13.16 +Downloading universe-base-1.1.4 +Completed monoidal-synchronisation-0.1.0.6 (lib) +Starting network-byte-order-0.1.7 (lib) +Downloaded universe-base-1.1.4 +Downloading dom-lt-0.2.3 +Building network-byte-order-0.1.7 (lib) +Installing multiset-0.3.4.3 (lib) +Completed multiset-0.3.4.3 (lib) +Starting network-info-0.2.1 (lib) +Building network-info-0.2.1 (lib) +Installing network-byte-order-0.1.7 (lib) +Downloaded dom-lt-0.2.3 +Downloading happy-lib-2.1.5 +Starting dom-lt-0.2.3 (lib) +Completed network-byte-order-0.1.7 (lib) +Starting newtype-0.2.2.0 (lib) +Building dom-lt-0.2.3 (lib) +Building newtype-0.2.2.0 (lib) +Downloaded happy-lib-2.1.5 +Downloading happy-2.1.5 +Starting happy-lib-2.1.5 (lib:grammar) +Installing network-info-0.2.1 (lib) +Completed network-info-0.2.1 (lib) +Starting non-integral-1.0.0.0 (lib) +Installing newtype-0.2.2.0 (lib) +Completed newtype-0.2.2.0 (lib) +Starting old-locale-1.0.0.7 (lib) +Building happy-lib-2.1.5 (lib:grammar) +Downloaded happy-2.1.5 +Downloading indexed-traversable-0.1.4 +Building non-integral-1.0.0.0 (lib) +Building old-locale-1.0.0.7 (lib) +Installing happy-lib-2.1.5 (lib:grammar) +Downloaded indexed-traversable-0.1.4 +Downloading comonad-5.0.9 +Starting indexed-traversable-0.1.4 (lib) +Installing non-integral-1.0.0.0 (lib) +Installing dom-lt-0.2.3 (lib) +Completed happy-lib-2.1.5 (lib:grammar) +Installing old-locale-1.0.0.7 (lib) +Completed non-integral-1.0.0.0 (lib) +Completed dom-lt-0.2.3 (lib) +Starting parser-combinators-1.3.0 (lib) +Completed old-locale-1.0.0.7 (lib) +Starting partial-order-0.2.0.0 (lib) +Downloaded comonad-5.0.9 +Downloading bifunctors-5.6.2 +Building indexed-traversable-0.1.4 (lib) +Building parser-combinators-1.3.0 (lib) +Building partial-order-0.2.0.0 (lib) +Downloaded bifunctors-5.6.2 +Downloading integer-logarithms-1.0.4 +Installing partial-order-0.2.0.0 (lib) +Downloaded integer-logarithms-1.0.4 +Downloading optics-core-0.4.1.1 +Starting integer-logarithms-1.0.4 (lib) +Completed partial-order-0.2.0.0 (lib) +Installing parser-combinators-1.3.0 (lib) +Building integer-logarithms-1.0.4 (lib) +Completed parser-combinators-1.3.0 (lib) +Starting primes-0.2.1.0 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded optics-core-0.4.1.1 +Downloading parallel-3.2.2.0 +Building primes-0.2.1.0 (all, legacy fallback: cabal-version is less than 1.8) +Installing integer-logarithms-1.0.4 (lib) +Downloaded parallel-3.2.2.0 +Downloading auto-update-0.2.6 +Starting parallel-3.2.2.0 (lib) +Completed integer-logarithms-1.0.4 (lib) +Starting primitive-0.9.1.0 (lib) +Installing indexed-traversable-0.1.4 (lib) +Installing primes-0.2.1.0 (all, legacy fallback: cabal-version is less than 1.8) +Completed indexed-traversable-0.1.4 (lib) +Starting quiet-0.2 (lib) +Building parallel-3.2.2.0 (lib) +Completed primes-0.2.1.0 (all, legacy fallback: cabal-version is less than 1.8) +Starting reflection-2.1.9 (lib) +Building primitive-0.9.1.0 (lib) +Building quiet-0.2 (lib) +Building reflection-2.1.9 (lib) +Downloaded auto-update-0.2.6 +Downloading bimap-0.5.0 +Starting auto-update-0.2.6 (lib) +Installing parallel-3.2.2.0 (lib) +Installing quiet-0.2 (lib) +Building auto-update-0.2.6 (lib) +Completed parallel-3.2.2.0 (lib) +Starting safe-0.3.21 (lib) +Downloaded bimap-0.5.0 +Downloading base-compat-0.13.1 +Starting bimap-0.5.0 (lib) +Completed quiet-0.2 (lib) +Building safe-0.3.21 (lib) +Building bimap-0.5.0 (lib) +Downloaded base-compat-0.13.1 +Downloading base-compat-batteries-0.13.1 +Installing auto-update-0.2.6 (lib) +Starting base-compat-0.13.1 (lib) +Completed auto-update-0.2.6 (lib) +Starting selective-0.7.0.1 (lib) +Building base-compat-0.13.1 (lib) +Downloaded base-compat-batteries-0.13.1 +Downloading file-embed-0.0.16.0 +Building selective-0.7.0.1 (lib) +Installing bimap-0.5.0 (lib) +Installing safe-0.3.21 (lib) +Installing reflection-2.1.9 (lib) +Completed bimap-0.5.0 (lib) +Starting semigroups-0.20 (lib) +Completed safe-0.3.21 (lib) +Starting show-combinators-0.2.0.0 (lib) +Downloaded file-embed-0.0.16.0 +Downloading hspec-discover-2.11.12 +Starting file-embed-0.0.16.0 (lib) +Completed reflection-2.1.9 (lib) +Starting singletons-3.0.4 (lib) +Building semigroups-0.20 (lib) +Building show-combinators-0.2.0.0 (lib) +Building singletons-3.0.4 (lib) +Building file-embed-0.0.16.0 (lib) +Downloaded hspec-discover-2.11.12 +Downloading easy-file-0.2.5 +Starting hspec-discover-2.11.12 (lib) +Installing semigroups-0.20 (lib) +Installing show-combinators-0.2.0.0 (lib) +Completed semigroups-0.20 (lib) +Starting some-1.0.6 (lib) +Completed show-combinators-0.2.0.0 (lib) +Starting sop-core-0.5.0.2 (lib) +Downloaded easy-file-0.2.5 +Downloading extra-1.8 +Starting easy-file-0.2.5 (lib) +Building hspec-discover-2.11.12 (lib) +Building some-1.0.6 (lib) +Installing file-embed-0.0.16.0 (lib) +Installing singletons-3.0.4 (lib) +Building sop-core-0.5.0.2 (lib) +Building easy-file-0.2.5 (lib) +Installing selective-0.7.0.1 (lib) +Completed file-embed-0.0.16.0 (lib) +Starting split-0.2.5 (lib) +Completed singletons-3.0.4 (lib) +Downloaded extra-1.8 +Downloading hsc2hs-0.68.10 +Starting splitmix-0.1.1 (lib) +Starting extra-1.8 (lib) +Completed selective-0.7.0.1 (lib) +Building split-0.2.5 (lib) +Downloaded hsc2hs-0.68.10 +Downloading cardano-lmdb-0.4.0.3 +Starting hsc2hs-0.68.10 (exe:hsc2hs) +Installing hspec-discover-2.11.12 (lib) +Building splitmix-0.1.1 (lib) +Building extra-1.8 (lib) +Completed hspec-discover-2.11.12 (lib) +Starting syb-0.7.2.4 (lib) +Downloaded cardano-lmdb-0.4.0.3 +Downloading code-page-0.2.1 +Installing easy-file-0.2.5 (lib) +Completed easy-file-0.2.5 (lib) +Starting tagged-0.8.9 (lib) +Building hsc2hs-0.68.10 (exe:hsc2hs) +Installing split-0.2.5 (lib) +Building syb-0.7.2.4 (lib) +Downloaded code-page-0.2.1 +Downloading filelock-0.1.1.7 +Completed split-0.2.5 (lib) +Starting testing-type-modifiers-0.1.0.1 (lib) +Installing some-1.0.6 (lib) +Building tagged-0.8.9 (lib) +Completed some-1.0.6 (lib) +Starting th-abstraction-0.7.1.0 (lib) +Installing splitmix-0.1.1 (lib) +Installing base-compat-0.13.1 (lib) +Completed splitmix-0.1.1 (lib) +Starting th-compat-0.1.6 (lib) +Building testing-type-modifiers-0.1.0.1 (lib) +Completed base-compat-0.13.1 (lib) +Downloaded filelock-0.1.1.7 +Downloading hsyslog-5.0.2 +Starting time-locale-compat-0.1.1.5 (lib) +Building th-abstraction-0.7.1.0 (lib) +Installing primitive-0.9.1.0 (lib) +Installing testing-type-modifiers-0.1.0.1 (lib) +Building th-compat-0.1.6 (lib) +Completed primitive-0.9.1.0 (lib) +Starting time-units-1.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Building time-locale-compat-0.1.1.5 (lib) +Completed testing-type-modifiers-0.1.0.1 (lib) +Starting transformers-compat-0.7.2 (lib) +Downloaded hsyslog-5.0.2 +Downloading old-time-1.1.0.4 +Installing time-locale-compat-0.1.1.5 (lib) +Installing th-compat-0.1.6 (lib) +Installing syb-0.7.2.4 (lib) +Building time-units-1.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Installing tagged-0.8.9 (lib) +Completed time-locale-compat-0.1.1.5 (lib) +Completed th-compat-0.1.6 (lib) +Building transformers-compat-0.7.2 (lib) +Starting unbounded-delays-0.1.1.1 (lib) +Installing sop-core-0.5.0.2 (lib) +Completed syb-0.7.2.4 (lib) +Starting unix-bytestring-0.4.0.3 (lib) +Downloaded old-time-1.1.0.4 +Downloading terminal-size-0.3.4 +Completed tagged-0.8.9 (lib) +Completed sop-core-0.5.0.2 (lib) +Starting unliftio-core-0.2.1.0 (lib) +Installing extra-1.8 (lib) +Completed extra-1.8 (lib) +Starting utf8-string-1.0.2 (lib) +Building unbounded-delays-0.1.1.1 (lib) +Downloaded terminal-size-0.3.4 +Downloading unix-time-0.4.16 +Building unix-bytestring-0.4.0.3 (lib) +Building unliftio-core-0.2.1.0 (lib) +Building utf8-string-1.0.2 (lib) +Installing unbounded-delays-0.1.1.1 (lib) +Installing unliftio-core-0.2.1.0 (lib) +Downloaded unix-time-0.4.16 +Downloading zlib-0.7.1.0 +Completed unbounded-delays-0.1.1.1 (lib) +Starting validity-0.12.1.0 (lib) +Completed unliftio-core-0.2.1.0 (lib) +Starting vector-stream-0.1.0.1 (lib) +Installing time-units-1.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded zlib-0.7.1.0 +Downloading unix-compat-0.7.4 +Installing unix-bytestring-0.4.0.3 (lib) +Building validity-0.12.1.0 (lib) +Completed time-units-1.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Starting void-0.7.3 (lib) +Building vector-stream-0.1.0.1 (lib) +Completed unix-bytestring-0.4.0.3 (lib) +Starting wherefrom-compat-0.1.1.1 (lib) +Installing transformers-compat-0.7.2 (lib) +Completed transformers-compat-0.7.2 (lib) +Building void-0.7.3 (lib) +Downloaded unix-compat-0.7.4 +Downloading logict-0.8.2.0 +Building wherefrom-compat-0.1.1.1 (lib) +Starting unix-compat-0.7.4 (lib) +Installing void-0.7.3 (lib) +Installing hsc2hs-0.68.10 (exe:hsc2hs) +Installing validity-0.12.1.0 (lib) +Completed hsc2hs-0.68.10 (exe:hsc2hs) +Starting word8-0.1.3 (lib) +Completed void-0.7.3 (lib) +Starting data-default-class-0.2.0.0 (lib) +Installing wherefrom-compat-0.1.1.1 (lib) +Completed validity-0.12.1.0 (lib) +Completed wherefrom-compat-0.1.1.1 (lib) +Starting pem-0.2.4 (lib) +Building unix-compat-0.7.4 (lib) +Downloaded logict-0.8.2.0 +Downloading os-string-2.0.7 +Starting logict-0.8.2.0 (lib) +Building word8-0.1.3 (lib) +Building data-default-class-0.2.0.0 (lib) +Installing th-abstraction-0.7.1.0 (lib) +Building pem-0.2.4 (lib) +Completed th-abstraction-0.7.1.0 (lib) +Starting crypton-1.0.4 (lib) +Installing data-default-class-0.2.0.0 (lib) +Installing word8-0.1.3 (lib) +Completed data-default-class-0.2.0.0 (lib) +Starting asn1-types-0.3.4 (all, legacy fallback: cabal-version is less than 1.8) +Building logict-0.8.2.0 (lib) +Downloaded os-string-2.0.7 +Downloading pipes-4.3.16 +Starting os-string-2.0.7 (lib) +Installing utf8-string-1.0.2 (lib) +Installing unix-compat-0.7.4 (lib) +Completed word8-0.1.3 (lib) +Starting happy-lib-2.1.5 (lib:tabular) +Completed utf8-string-1.0.2 (lib) +Starting happy-lib-2.1.5 (lib:frontend) +Building crypton-1.0.4 (lib) +Installing pem-0.2.4 (lib) +Completed unix-compat-0.7.4 (lib) +Starting optics-core-0.4.1.1 (lib) +Building asn1-types-0.3.4 (all, legacy fallback: cabal-version is less than 1.8) +Completed pem-0.2.4 (lib) +Building os-string-2.0.7 (lib) +Building happy-lib-2.1.5 (lib:tabular) +Downloaded pipes-4.3.16 +Downloading resourcet-1.3.0 +Building happy-lib-2.1.5 (lib:frontend) +Building optics-core-0.4.1.1 (lib) +Downloaded resourcet-1.3.0 +Downloading safe-exceptions-0.1.7.4 +Installing vector-stream-0.1.0.1 (lib) +Completed vector-stream-0.1.0.1 (lib) +Starting validation-selective-0.2.0.0 (lib) +Downloaded safe-exceptions-0.1.7.4 +Downloading tracer-transformers-0.1.0.4 +Starting safe-exceptions-0.1.7.4 (lib) +Downloaded tracer-transformers-0.1.0.4 +Downloading temporary-1.3 +Building validation-selective-0.2.0.0 (lib) +Installing logict-0.8.2.0 (lib) +Installing asn1-types-0.3.4 (all, legacy fallback: cabal-version is less than 1.8) +Building safe-exceptions-0.1.7.4 (lib) +Completed logict-0.8.2.0 (lib) +Starting random-1.2.1.3 (lib) +Downloaded temporary-1.3 +Downloading network-3.2.7.0 +Completed asn1-types-0.3.4 (all, legacy fallback: cabal-version is less than 1.8) +Starting base-compat-batteries-0.13.1 (lib) +Building random-1.2.1.3 (lib) +Building base-compat-batteries-0.13.1 (lib) +Installing safe-exceptions-0.1.7.4 (lib) +Installing validation-selective-0.2.0.0 (lib) +Installing happy-lib-2.1.5 (lib:tabular) +Completed safe-exceptions-0.1.7.4 (lib) +Starting pvar-1.0.0.0 (lib) +Downloaded network-3.2.7.0 +Downloading recv-0.1.1 +Completed validation-selective-0.2.0.0 (lib) +Completed happy-lib-2.1.5 (lib:tabular) +Building pvar-1.0.0.0 (lib) +Downloaded recv-0.1.1 +Downloading simple-sendfile-0.2.32 +Installing os-string-2.0.7 (lib) +Completed os-string-2.0.7 (lib) +Starting atomic-primops-0.8.8 (lib) +Downloaded simple-sendfile-0.2.32 +Downloading systemd-2.4.0 +Building atomic-primops-0.8.8 (lib) +Installing pvar-1.0.0.0 (lib) +Downloaded systemd-2.4.0 +Downloading time-manager-0.2.3 +Completed pvar-1.0.0.0 (lib) +Starting size-based-0.1.3.3 (lib) +Installing atomic-primops-0.8.8 (lib) +Installing happy-lib-2.1.5 (lib:frontend) +Completed atomic-primops-0.8.8 (lib) +Completed happy-lib-2.1.5 (lib:frontend) +Starting universe-base-1.1.4 (lib) +Downloaded time-manager-0.2.3 +Downloading transformers-base-0.4.6 +Starting time-manager-0.2.3 (lib) +Building size-based-0.1.3.3 (lib) +Downloaded transformers-base-0.4.6 +Downloading monad-control-1.0.3.1 +Building universe-base-1.1.4 (lib) +Building time-manager-0.2.3 (lib) +Downloaded monad-control-1.0.3.1 +Downloading lifted-base-0.2.3.12 +Installing base-compat-batteries-0.13.1 (lib) +Installing time-manager-0.2.3 (lib) +Downloaded lifted-base-0.2.3.12 +Downloading pipes-safe-2.3.5 +Completed base-compat-batteries-0.13.1 (lib) +Starting distributive-0.6.2.1 (lib) +Completed time-manager-0.2.3 (lib) +Starting boring-0.2.2 (lib) +Installing size-based-0.1.3.3 (lib) +Installing universe-base-1.1.4 (lib) +Completed size-based-0.1.3.3 (lib) +Downloaded pipes-safe-2.3.5 +Downloading streaming-0.2.4.0 +Completed universe-base-1.1.4 (lib) +Starting resourcet-1.3.0 (lib) +Building distributive-0.6.2.1 (lib) +Building boring-0.2.2 (lib) +Installing boring-0.2.2 (lib) +Building resourcet-1.3.0 (lib) +Downloaded streaming-0.2.4.0 +Downloading streaming-bytestring-0.3.4 +Completed boring-0.2.2 (lib) +Starting transformers-base-0.4.6 (lib) +Installing distributive-0.6.2.1 (lib) +Completed distributive-0.6.2.1 (lib) +Starting mmorph-1.2.0 (lib) +Building transformers-base-0.4.6 (lib) +Downloaded streaming-bytestring-0.3.4 +Downloading streaming-binary-0.3.0.1 +Building mmorph-1.2.0 (lib) +Installing transformers-base-0.4.6 (lib) +Downloaded streaming-binary-0.3.0.1 +Downloading attoparsec-0.14.4 +Installing resourcet-1.3.0 (lib) +Completed transformers-base-0.4.6 (lib) +Completed resourcet-1.3.0 (lib) +Installing mmorph-1.2.0 (lib) +Downloaded attoparsec-0.14.4 +Downloading bech32-1.1.8 +Starting attoparsec-0.14.4 (lib:attoparsec-internal) +Completed mmorph-1.2.0 (lib) +Starting zlib-0.7.1.0 (lib) +Installing optics-core-0.4.1.1 (lib) +Building attoparsec-0.14.4 (lib:attoparsec-internal) +Downloaded bech32-1.1.8 +Downloading bech32-th-1.1.8 +Starting bech32-1.1.8 (lib) +Building zlib-0.7.1.0 (lib) +Completed optics-core-0.4.1.1 (lib) +Starting terminal-size-0.3.4 (lib) +Building bech32-1.1.8 (lib) +Building terminal-size-0.3.4 (lib) +Downloaded bech32-th-1.1.8 +Downloading blaze-builder-0.4.3 +Installing attoparsec-0.14.4 (lib:attoparsec-internal) +Completed attoparsec-0.14.4 (lib:attoparsec-internal) +Starting old-time-1.1.0.4 (all, legacy fallback: build-type is Configure) +Downloaded blaze-builder-0.4.3 +Downloading blaze-markup-0.8.3.0 +Starting blaze-builder-0.4.3 (lib) +Installing random-1.2.1.3 (lib) +Installing terminal-size-0.3.4 (lib) +Downloaded blaze-markup-0.8.3.0 +Downloading blaze-html-0.9.2.0 +Completed random-1.2.1.3 (lib) +Starting network-3.2.7.0 (all, legacy fallback: build-type is Configure) +Building blaze-builder-0.4.3 (lib) +Completed terminal-size-0.3.4 (lib) +Starting hsyslog-5.0.2 (lib) +Downloaded blaze-html-0.9.2.0 +Downloading cardano-git-rev-0.2.2.0 +Building hsyslog-5.0.2 (lib) +Building old-time-1.1.0.4 (all, legacy fallback: build-type is Configure) +Downloaded cardano-git-rev-0.2.2.0 +Downloading cborg-0.2.10.0 +Starting cardano-git-rev-0.2.2.0 (lib) +Downloaded cborg-0.2.10.0 +Downloading cookie-0.5.1 +Starting cborg-0.2.10.0 (lib) +Building cardano-git-rev-0.2.2.0 (lib) +Installing bech32-1.1.8 (lib) +Completed bech32-1.1.8 (lib) +Starting filelock-0.1.1.7 (lib) +Building cborg-0.2.10.0 (lib) +Downloaded cookie-0.5.1 +Downloading direct-sqlite-2.3.29 +Installing blaze-builder-0.4.3 (lib) +Installing cardano-git-rev-0.2.2.0 (lib) +Installing zlib-0.7.1.0 (lib) +Completed blaze-builder-0.4.3 (lib) +Installing hsyslog-5.0.2 (lib) +Building network-3.2.7.0 (all, legacy fallback: build-type is Configure) +Completed cardano-git-rev-0.2.2.0 (lib) +Starting code-page-0.2.1 (lib) +Building filelock-0.1.1.7 (lib) +Completed zlib-0.7.1.0 (lib) +Starting cardano-lmdb-0.4.0.3 (lib:ffi) +Completed hsyslog-5.0.2 (lib) +Starting th-lift-0.8.6 (lib) +Building code-page-0.2.1 (lib) +Building cardano-lmdb-0.4.0.3 (lib:ffi) +Installing old-time-1.1.0.4 (all, legacy fallback: build-type is Configure) +Building th-lift-0.8.6 (lib) +Installing filelock-0.1.1.7 (lib) +Completed old-time-1.1.0.4 (all, legacy fallback: build-type is Configure) +Starting th-expand-syns-0.4.12.0 (lib) +Completed filelock-0.1.1.7 (lib) +Starting safe-wild-cards-1.0.0.2 (lib) +Installing code-page-0.2.1 (lib) +Completed code-page-0.2.1 (lib) +Starting microlens-th-0.4.3.17 (lib) +Building th-expand-syns-0.4.12.0 (lib) +Building safe-wild-cards-1.0.0.2 (lib) +Installing th-lift-0.8.6 (lib) +Completed th-lift-0.8.6 (lib) +Starting deriving-compat-0.6.7 (lib) +Building microlens-th-0.4.3.17 (lib) +Installing safe-wild-cards-1.0.0.2 (lib) +Installing cardano-lmdb-0.4.0.3 (lib:ffi) +Completed safe-wild-cards-1.0.0.2 (lib) +Starting cookie-0.5.1 (lib) +Completed cardano-lmdb-0.4.0.3 (lib:ffi) +Starting vector-0.13.2.0 (lib) +Installing th-expand-syns-0.4.12.0 (lib) +Building deriving-compat-0.6.7 (lib) +Completed th-expand-syns-0.4.12.0 (lib) +Starting asn1-encoding-0.9.6 (lib) +Downloaded direct-sqlite-2.3.29 +Downloading double-conversion-2.0.5.0 +Starting direct-sqlite-2.3.29 (lib) +Building cookie-0.5.1 (lib) +Building vector-0.13.2.0 (lib) +Building asn1-encoding-0.9.6 (lib) +Building direct-sqlite-2.3.29 (lib) +Downloaded double-conversion-2.0.5.0 +Downloading errors-2.3.0 +Starting double-conversion-2.0.5.0 (lib) +Installing cookie-0.5.1 (lib) +Completed cookie-0.5.1 (lib) +Starting tracer-transformers-0.1.0.4 (lib) +Downloaded errors-2.3.0 +Downloading fast-logger-3.2.5 +Starting errors-2.3.0 (lib) +Building double-conversion-2.0.5.0 (lib) +Building tracer-transformers-0.1.0.4 (lib) +Installing microlens-th-0.4.3.17 (lib) +Downloaded fast-logger-3.2.5 +Downloading generic-lens-core-2.2.1.0 +Building errors-2.3.0 (lib) +Completed microlens-th-0.4.3.17 (lib) +Starting happy-lib-2.1.5 (lib:backend-lalr) +Installing asn1-encoding-0.9.6 (lib) +Downloaded generic-lens-core-2.2.1.0 +Downloading generic-optics-2.2.1.0 +Installing tracer-transformers-0.1.0.4 (lib) +Starting generic-lens-core-2.2.1.0 (lib) +Completed asn1-encoding-0.9.6 (lib) +Starting happy-lib-2.1.5 (lib:backend-glr) +Completed tracer-transformers-0.1.0.4 (lib) +Building happy-lib-2.1.5 (lib:backend-lalr) +Downloaded generic-optics-2.2.1.0 +Downloading hashable-1.4.7.0 +Building generic-lens-core-2.2.1.0 (lib) +Installing errors-2.3.0 (lib) +Building happy-lib-2.1.5 (lib:backend-glr) +Completed errors-2.3.0 (lib) +Starting memory-pool-0.1.0.0 (lib) +Downloaded hashable-1.4.7.0 +Downloading async-2.2.5 +Starting hashable-1.4.7.0 (lib) +Downloaded async-2.2.5 +Downloading io-classes-1.5.0.0 +Building memory-pool-0.1.0.0 (lib) +Building hashable-1.4.7.0 (lib) +Installing memory-pool-0.1.0.0 (lib) +Downloaded io-classes-1.5.0.0 +Downloading fs-api-0.3.0.0 +Completed memory-pool-0.1.0.0 (lib) +Starting unagi-chan-0.4.1.4 (lib) +Installing network-3.2.7.0 (all, legacy fallback: build-type is Configure) +Downloaded fs-api-0.3.0.0 +Downloading strict-mvar-1.5.0.0 +Completed network-3.2.7.0 (all, legacy fallback: build-type is Configure) +Starting lazy-search-0.1.3.0 (lib) +Installing happy-lib-2.1.5 (lib:backend-glr) +Building unagi-chan-0.4.1.4 (lib) +Completed happy-lib-2.1.5 (lib:backend-glr) +Starting dec-0.0.6 (lib) +Installing generic-lens-core-2.2.1.0 (lib) +Downloaded strict-mvar-1.5.0.0 +Downloading strict-stm-1.5.0.0 +Building lazy-search-0.1.3.0 (lib) +Building dec-0.0.6 (lib) +Completed generic-lens-core-2.2.1.0 (lib) +Starting comonad-5.0.9 (lib) +Installing dec-0.0.6 (lib) +Installing deriving-compat-0.6.7 (lib) +Installing happy-lib-2.1.5 (lib:backend-lalr) +Building comonad-5.0.9 (lib) +Completed dec-0.0.6 (lib) +Starting barbies-2.1.1.0 (lib) +Completed deriving-compat-0.6.7 (lib) +Starting monad-control-1.0.3.1 (lib) +Downloaded strict-stm-1.5.0.0 +Downloading strict-checked-vars-0.2.0.0 +Completed happy-lib-2.1.5 (lib:backend-lalr) +Starting streaming-0.2.4.0 (lib) +Downloaded strict-checked-vars-0.2.0.0 +Downloading typed-protocols-0.3.0.0 +Installing hashable-1.4.7.0 (lib) +Installing lazy-search-0.1.3.0 (lib) +Installing double-conversion-2.0.5.0 (lib) +Building barbies-2.1.1.0 (lib) +Downloaded typed-protocols-0.3.0.0 +Downloading typed-protocols-cborg-0.3.0.0 +Completed hashable-1.4.7.0 (lib) +Starting pipes-4.3.16 (lib) +Building monad-control-1.0.3.1 (lib) +Completed lazy-search-0.1.3.0 (lib) +Building streaming-0.2.4.0 (lib) +Starting tf-random-0.5 (lib) +Downloaded typed-protocols-cborg-0.3.0.0 +Downloading typed-protocols-stateful-0.3.0.0 +Completed double-conversion-2.0.5.0 (lib) +Starting temporary-1.3 (lib) +Downloaded typed-protocols-stateful-0.3.0.0 +Downloading typed-protocols-stateful-cborg-0.3.0.0 +Building pipes-4.3.16 (lib) +Installing monad-control-1.0.3.1 (lib) +Building tf-random-0.5 (lib) +Downloaded typed-protocols-stateful-cborg-0.3.0.0 +Downloading unliftio-0.2.25.1 +Building temporary-1.3 (lib) +Completed monad-control-1.0.3.1 (lib) +Installing comonad-5.0.9 (lib) +Downloaded unliftio-0.2.25.1 +Downloading cardano-crypto-1.3.0 +Completed comonad-5.0.9 (lib) +Installing temporary-1.3 (lib) +Installing unagi-chan-0.4.1.4 (lib) +Completed temporary-1.3 (lib) +Starting bech32-th-1.1.8 (lib) +Completed unagi-chan-0.4.1.4 (lib) +Starting blaze-markup-0.8.3.0 (lib) +Downloaded cardano-crypto-1.3.0 +Downloading case-insensitive-1.2.1.0 +Building bech32-th-1.1.8 (lib) +Building blaze-markup-0.8.3.0 (lib) +Installing tf-random-0.5 (lib) +Installing bech32-th-1.1.8 (lib) +Completed tf-random-0.5 (lib) +Starting unix-time-0.4.16 (all, legacy fallback: build-type is Configure) +Completed bech32-th-1.1.8 (lib) +Starting cardano-lmdb-0.4.0.3 (lib) +Downloaded case-insensitive-1.2.1.0 +Downloading constraints-0.14.2 +Building cardano-lmdb-0.4.0.3 (lib) +Downloaded constraints-0.14.2 +Downloading constraints-extras-0.4.0.2 +Installing barbies-2.1.1.0 (lib) +Installing streaming-0.2.4.0 (lib) +Completed barbies-2.1.1.0 (lib) +Starting th-reify-many-0.1.10 (lib) +Completed streaming-0.2.4.0 (lib) +Starting asn1-parse-0.9.5 (all, legacy fallback: cabal-version is less than 1.8) +Installing pipes-4.3.16 (lib) +Downloaded constraints-extras-0.4.0.2 +Downloading dependent-sum-0.7.2.0 +Completed pipes-4.3.16 (lib) +Starting systemd-2.4.0 (lib) +Building unix-time-0.4.16 (all, legacy fallback: build-type is Configure) +Building th-reify-many-0.1.10 (lib) +Building asn1-parse-0.9.5 (all, legacy fallback: cabal-version is less than 1.8) +Building systemd-2.4.0 (lib) +Downloaded dependent-sum-0.7.2.0 +Downloading dependent-map-0.4.0.0 +Installing th-reify-many-0.1.10 (lib) +Installing asn1-parse-0.9.5 (all, legacy fallback: cabal-version is less than 1.8) +Completed th-reify-many-0.1.10 (lib) +Starting simple-sendfile-0.2.32 (lib) +Downloaded dependent-map-0.4.0.0 +Downloading lifted-async-0.10.2.7 +Completed asn1-parse-0.9.5 (all, legacy fallback: cabal-version is less than 1.8) +Starting recv-0.1.1 (lib) +Installing systemd-2.4.0 (lib) +Installing cardano-lmdb-0.4.0.3 (lib) +Completed systemd-2.4.0 (lib) +Starting generic-optics-2.2.1.0 (lib) +Installing unix-time-0.4.16 (all, legacy fallback: build-type is Configure) +Building simple-sendfile-0.2.32 (lib) +Completed cardano-lmdb-0.4.0.3 (lib) +Starting happy-lib-2.1.5 (lib) +Downloaded lifted-async-0.10.2.7 +Downloading async-timer-0.1.4.1 +Building recv-0.1.1 (lib) +Completed unix-time-0.4.16 (all, legacy fallback: build-type is Configure) +Building generic-optics-2.2.1.0 (lib) +Installing recv-0.1.1 (lib) +Building happy-lib-2.1.5 (lib) +Installing happy-lib-2.1.5 (lib) +Downloaded async-timer-0.1.4.1 +Downloading data-fix-0.3.4 +Installing simple-sendfile-0.2.32 (lib) +Completed recv-0.1.1 (lib) +Completed happy-lib-2.1.5 (lib) +Completed simple-sendfile-0.2.32 (lib) +Downloaded data-fix-0.3.4 +Downloading ordered-containers-0.2.4 +Downloaded ordered-containers-0.2.4 +Downloading psqueues-0.2.8.1 +Installing generic-optics-2.2.1.0 (lib) +Installing blaze-markup-0.8.3.0 (lib) +Completed generic-optics-2.2.1.0 (lib) +Completed blaze-markup-0.8.3.0 (lib) +Downloaded psqueues-0.2.8.1 +Downloading network-control-0.1.7 +Downloaded network-control-0.1.7 +Downloading these-1.2.1 +Downloaded these-1.2.1 +Downloading time-compat-1.9.8 +Starting these-1.2.1 (lib) +Downloaded time-compat-1.9.8 +Downloading unordered-containers-0.2.20 +Starting time-compat-1.9.8 (lib) +Building these-1.2.1 (lib) +Building time-compat-1.9.8 (lib) +Downloaded unordered-containers-0.2.20 +Downloading charset-0.3.12 +Starting unordered-containers-0.2.20 (lib) +Installing cborg-0.2.10.0 (lib) +Completed cborg-0.2.10.0 (lib) +Starting psqueues-0.2.8.1 (lib) +Building unordered-containers-0.2.20 (lib) +Downloaded charset-0.3.12 +Downloading ekg-core-0.1.1.8 +Building psqueues-0.2.8.1 (lib) +Downloaded ekg-core-0.1.1.8 +Downloading uniplate-1.6.13 +Installing these-1.2.1 (lib) +Downloaded uniplate-1.6.13 +Downloading vault-0.3.1.5 +Installing time-compat-1.9.8 (lib) +Completed these-1.2.1 (lib) +Starting ordered-containers-0.2.4 (lib) +Completed time-compat-1.9.8 (lib) +Starting data-fix-0.3.4 (lib) +Downloaded vault-0.3.1.5 +Downloading heapwords-0.1.0.2 +Building ordered-containers-0.2.4 (lib) +Building data-fix-0.3.4 (lib) +Downloaded heapwords-0.1.0.2 +Downloading http-types-0.12.4 +Downloaded http-types-0.12.4 +Downloading http-semantics-0.3.0 +Installing data-fix-0.3.4 (lib) +Downloaded http-semantics-0.3.0 +Downloading integer-conversion-0.1.1 +Completed data-fix-0.3.4 (lib) +Starting constraints-0.14.2 (lib) +Downloaded integer-conversion-0.1.1 +Downloading mime-types-0.1.2.0 +Starting integer-conversion-0.1.1 (lib) +Building constraints-0.14.2 (lib) +Downloaded mime-types-0.1.2.0 +Downloading mono-traversable-1.0.21.0 +Starting mime-types-0.1.2.0 (lib) +Building integer-conversion-0.1.1 (lib) +Downloaded mono-traversable-1.0.21.0 +Downloading conduit-1.3.6.1 +Installing ordered-containers-0.2.4 (lib) +Building mime-types-0.1.2.0 (lib) +Installing integer-conversion-0.1.1 (lib) +Completed ordered-containers-0.2.4 (lib) +Starting case-insensitive-1.2.1.0 (lib) +Completed integer-conversion-0.1.1 (lib) +Starting async-2.2.5 (lib) +Downloaded conduit-1.3.6.1 +Downloading libyaml-0.1.4 +Downloaded libyaml-0.1.4 +Downloading mutable-containers-0.3.4.1 +Building case-insensitive-1.2.1.0 (lib) +Building async-2.2.5 (lib) +Downloaded mutable-containers-0.3.4.1 +Downloading monoid-subclasses-1.2.6 +Installing psqueues-0.2.8.1 (lib) +Installing constraints-0.14.2 (lib) +Completed psqueues-0.2.8.1 (lib) +Starting lifted-base-0.2.3.12 (lib) +Downloaded monoid-subclasses-1.2.6 +Downloading nothunks-0.2.1.1 +Completed constraints-0.14.2 (lib) +Starting bifunctors-5.6.2 (lib) +Installing case-insensitive-1.2.1.0 (lib) +Completed case-insensitive-1.2.1.0 (lib) +Starting streaming-bytestring-0.3.4 (lib) +Building lifted-base-0.2.3.12 (lib) +Downloaded nothunks-0.2.1.1 +Downloading rawlock-0.1.1.0 +Building bifunctors-5.6.2 (lib) +Installing async-2.2.5 (lib) +Completed async-2.2.5 (lib) +Starting pipes-safe-2.3.5 (lib) +Building streaming-bytestring-0.3.4 (lib) +Downloaded rawlock-0.1.1.0 +Downloading resource-registry-0.1.0.0 +Building pipes-safe-2.3.5 (lib) +Installing lifted-base-0.2.3.12 (lib) +Completed lifted-base-0.2.3.12 (lib) +Starting th-orphans-0.13.16 (lib) +Downloaded resource-registry-0.1.0.0 +Downloading si-timers-1.5.0.0 +Installing mime-types-0.1.2.0 (lib) +Building th-orphans-0.13.16 (lib) +Completed mime-types-0.1.2.0 (lib) +Starting fast-logger-3.2.5 (lib) +Downloaded si-timers-1.5.0.0 +Downloading io-classes-mtl-0.1.2.0 +Installing pipes-safe-2.3.5 (lib) +Completed pipes-safe-2.3.5 (lib) +Starting happy-2.1.5 (exe:happy) +Building fast-logger-3.2.5 (lib) +Downloaded io-classes-mtl-0.1.2.0 +Downloading strict-sop-core-0.1.3.0 +Downloaded strict-sop-core-0.1.3.0 +Downloading sop-extras-0.4.0.0 +Downloaded sop-extras-0.4.0.0 +Downloading canonical-json-0.6.0.1 +Building happy-2.1.5 (exe:happy) +Installing crypton-1.0.4 (lib) +Downloaded canonical-json-0.6.0.1 +Downloading network-uri-2.6.4.2 +Starting canonical-json-0.6.0.1 (lib) +Completed crypton-1.0.4 (lib) +Starting blaze-html-0.9.2.0 (lib) +Downloaded network-uri-2.6.4.2 +Downloading pretty-show-1.10 +Starting network-uri-2.6.4.2 (lib) +Building canonical-json-0.6.0.1 (lib) +Installing happy-2.1.5 (exe:happy) +Completed happy-2.1.5 (exe:happy) +Building blaze-html-0.9.2.0 (lib) +Installing th-orphans-0.13.16 (lib) +Building network-uri-2.6.4.2 (lib) +Downloaded pretty-show-1.10 +Downloading prettyprinter-1.7.1 +Installing fast-logger-3.2.5 (lib) +Completed th-orphans-0.13.16 (lib) +Completed fast-logger-3.2.5 (lib) +Starting network-control-0.1.7 (lib) +Downloaded prettyprinter-1.7.1 +Downloading prettyprinter-configurable-1.36.0.0 +Starting prettyprinter-1.7.1 (lib) +Downloaded prettyprinter-configurable-1.36.0.0 +Downloading scientific-0.3.8.0 +Installing streaming-bytestring-0.3.4 (lib) +Building network-control-0.1.7 (lib) +Installing unordered-containers-0.2.20 (lib) +Building prettyprinter-1.7.1 (lib) +Installing canonical-json-0.6.0.1 (lib) +Completed streaming-bytestring-0.3.4 (lib) +Starting constraints-extras-0.4.0.2 (lib) +Completed unordered-containers-0.2.20 (lib) +Starting http-types-0.12.4 (lib) +Completed canonical-json-0.6.0.1 (lib) +Starting unliftio-0.2.25.1 (lib) +Downloaded scientific-0.3.8.0 +Downloading http-date-0.0.11 +Starting scientific-0.3.8.0 (lib) +Installing network-control-0.1.7 (lib) +Building constraints-extras-0.4.0.2 (lib) +Building http-types-0.12.4 (lib) +Completed network-control-0.1.7 (lib) +Downloaded http-date-0.0.11 +Downloading formatting-7.2.0 +Building unliftio-0.2.25.1 (lib) +Building scientific-0.3.8.0 (lib) +Downloaded formatting-7.2.0 +Downloading fmt-0.6.3.0 +Installing constraints-extras-0.4.0.2 (lib) +Completed constraints-extras-0.4.0.2 (lib) +Installing bifunctors-5.6.2 (lib) +Downloaded fmt-0.6.3.0 +Downloading megaparsec-9.7.0 +Completed bifunctors-5.6.2 (lib) +Starting io-classes-1.5.0.0 (lib) +Downloaded megaparsec-9.7.0 +Downloading parsers-0.12.12 +Building io-classes-1.5.0.0 (lib) +Downloaded parsers-0.12.12 +Downloading streaming-commons-0.2.3.0 +Installing http-types-0.12.4 (lib) +Completed http-types-0.12.4 (lib) +Starting lifted-async-0.10.2.7 (lib) +Downloaded streaming-commons-0.2.3.0 +Downloading strict-0.5.1 +Starting streaming-commons-0.2.3.0 (lib) +Building lifted-async-0.10.2.7 (lib) +Downloaded strict-0.5.1 +Downloading serialise-0.2.6.1 +Starting strict-0.5.1 (lib) +Building streaming-commons-0.2.3.0 (lib) +Downloaded serialise-0.2.6.1 +Downloading cardano-lmdb-simple-0.8.0.1 +Installing scientific-0.3.8.0 (lib) +Building strict-0.5.1 (lib) +Downloaded cardano-lmdb-simple-0.8.0.1 +Downloading string-conv-0.2.0 +Completed scientific-0.3.8.0 (lib) +Starting crypton-x509-1.7.7 (lib) +Installing unliftio-0.2.25.1 (lib) +Installing lifted-async-0.10.2.7 (lib) +Completed unliftio-0.2.25.1 (lib) +Starting cardano-crypto-1.3.0 (lib) +Downloaded string-conv-0.2.0 +Downloading text-iso8601-0.1.1 +Starting string-conv-0.2.0 (lib) +Completed lifted-async-0.10.2.7 (lib) +Starting pretty-show-1.10 (lib) +Building crypton-x509-1.7.7 (lib) +Installing network-uri-2.6.4.2 (lib) +Completed network-uri-2.6.4.2 (lib) +Downloaded text-iso8601-0.1.1 +Downloading text-short-0.1.6 +Starting text-iso8601-0.1.1 (lib) +Building cardano-crypto-1.3.0 (lib) +Building string-conv-0.2.0 (lib) +Building pretty-show-1.10 (lib) +Downloaded text-short-0.1.6 +Downloading th-lift-instances-0.1.20 +Starting text-short-0.1.6 (lib) +Building text-iso8601-0.1.1 (lib) +Installing io-classes-1.5.0.0 (lib) +Downloaded th-lift-instances-0.1.20 +Downloading th-utilities-0.2.5.2 +Installing string-conv-0.2.0 (lib) +Building text-short-0.1.6 (lib) +Completed io-classes-1.5.0.0 (lib) +Starting streaming-binary-0.3.0.1 (lib) +Downloaded th-utilities-0.2.5.2 +Downloading transformers-except-0.1.4 +Starting th-utilities-0.2.5.2 (lib) +Completed string-conv-0.2.0 (lib) +Starting vault-0.3.1.5 (lib) +Building streaming-binary-0.3.0.1 (lib) +Downloaded transformers-except-0.1.4 +Downloading typed-process-0.2.13.0 +Starting transformers-except-0.1.4 (lib) +Building th-utilities-0.2.5.2 (lib) +Building vault-0.3.1.5 (lib) +Downloaded typed-process-0.2.13.0 +Downloading uuid-types-1.0.6 +Starting typed-process-0.2.13.0 (lib) +Installing streaming-binary-0.3.0.1 (lib) +Building transformers-except-0.1.4 (lib) +Installing strict-0.5.1 (lib) +Downloaded uuid-types-1.0.6 +Downloading http-api-data-0.6.2 +Starting uuid-types-1.0.6 (lib) +Completed streaming-binary-0.3.0.1 (lib) +Starting uniplate-1.6.13 (lib) +Completed strict-0.5.1 (lib) +Starting ekg-core-0.1.1.8 (lib) +Downloaded http-api-data-0.6.2 +Downloading wai-3.2.4 +Building typed-process-0.2.13.0 (lib) +Installing pretty-show-1.10 (lib) +Installing streaming-commons-0.2.3.0 (lib) +Installing transformers-except-0.1.4 (lib) +Downloaded wai-3.2.4 +Downloading wai-logger-2.5.0 +Building uniplate-1.6.13 (lib) +Building uuid-types-1.0.6 (lib) +Completed pretty-show-1.10 (lib) +Starting charset-0.3.12 (lib) +Building ekg-core-0.1.1.8 (lib) +Completed streaming-commons-0.2.3.0 (lib) +Installing text-short-0.1.6 (lib) +Installing vault-0.3.1.5 (lib) +Downloaded wai-logger-2.5.0 +Downloading wl-pprint-annotated-0.1.0.1 +Completed transformers-except-0.1.4 (lib) +Starting dependent-sum-0.7.2.0 (lib) +Completed text-short-0.1.6 (lib) +Starting http-semantics-0.3.0 (lib) +Completed vault-0.3.1.5 (lib) +Starting megaparsec-9.7.0 (lib) +Building charset-0.3.12 (lib) +Downloaded wl-pprint-annotated-0.1.0.1 +Downloading appar-0.1.8 +Starting wl-pprint-annotated-0.1.0.1 (lib) +Installing crypton-x509-1.7.7 (lib) +Building dependent-sum-0.7.2.0 (lib) +Completed crypton-x509-1.7.7 (lib) +Installing prettyprinter-1.7.1 (lib) +Starting formatting-7.2.0 (lib) +Installing typed-process-0.2.13.0 (lib) +Downloaded appar-0.1.8 +Downloading iproute-1.7.15 +Starting appar-0.1.8 (all, legacy fallback: cabal-version is less than 1.8) +Building http-semantics-0.3.0 (lib) +Building megaparsec-9.7.0 (lib) +Completed prettyprinter-1.7.1 (lib) +Starting attoparsec-0.14.4 (lib) +Completed typed-process-0.2.13.0 (lib) +Starting async-timer-0.1.4.1 (lib) +Downloaded iproute-1.7.15 +Downloading dns-4.2.0 +Building wl-pprint-annotated-0.1.0.1 (lib) +Installing dependent-sum-0.7.2.0 (lib) +Building appar-0.1.8 (all, legacy fallback: cabal-version is less than 1.8) +Completed dependent-sum-0.7.2.0 (lib) +Starting typed-protocols-0.3.0.0 (lib) +Building formatting-7.2.0 (lib) +Installing uuid-types-1.0.6 (lib) +Downloaded dns-4.2.0 +Downloading http2-5.3.9 +Installing th-utilities-0.2.5.2 (lib) +Building attoparsec-0.14.4 (lib) +Installing ekg-core-0.1.1.8 (lib) +Building async-timer-0.1.4.1 (lib) +Completed uuid-types-1.0.6 (lib) +Starting strict-stm-1.5.0.0 (lib) +Installing text-iso8601-0.1.1 (lib) +Completed th-utilities-0.2.5.2 (lib) +Starting strict-mvar-1.5.0.0 (lib) +Installing appar-0.1.8 (all, legacy fallback: cabal-version is less than 1.8) +Completed ekg-core-0.1.1.8 (lib) +Starting fs-api-0.3.0.0 (lib) +Building typed-protocols-0.3.0.0 (lib) +Completed text-iso8601-0.1.1 (lib) +Starting wai-3.2.4 (lib) +Completed appar-0.1.8 (all, legacy fallback: cabal-version is less than 1.8) +Starting prettyprinter-configurable-1.36.0.0 (lib) +Installing async-timer-0.1.4.1 (lib) +Downloaded http2-5.3.9 +Downloading warp-3.4.8 +Building strict-stm-1.5.0.0 (lib) +Building strict-mvar-1.5.0.0 (lib) +Completed async-timer-0.1.4.1 (lib) +Starting dependent-map-0.4.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Building fs-api-0.3.0.0 (lib) +Building wai-3.2.4 (lib) +Downloaded warp-3.4.8 +Downloading ap-normalize-0.1.0.1 +Building prettyprinter-configurable-1.36.0.0 (lib) +Installing strict-mvar-1.5.0.0 (lib) +Installing wl-pprint-annotated-0.1.0.1 (lib) +Downloaded ap-normalize-0.1.0.1 +Downloading generic-data-1.1.0.2 +Starting ap-normalize-0.1.0.1 (lib) +Installing http-semantics-0.3.0 (lib) +Completed strict-mvar-1.5.0.0 (lib) +Starting http-api-data-0.6.2 (lib) +Installing strict-stm-1.5.0.0 (lib) +Building dependent-map-0.4.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Completed wl-pprint-annotated-0.1.0.1 (lib) +Starting iproute-1.7.15 (lib) +Completed http-semantics-0.3.0 (lib) +Completed strict-stm-1.5.0.0 (lib) +Installing typed-protocols-0.3.0.0 (lib) +Starting strict-checked-vars-0.2.0.0 (lib) +Downloaded generic-data-1.1.0.2 +Downloading ansi-terminal-types-1.1 +Installing wai-3.2.4 (lib) +Building ap-normalize-0.1.0.1 (lib) +Completed typed-protocols-0.3.0.0 (lib) +Starting typed-protocols-stateful-0.3.0.0 (lib) +Starting typed-protocols-cborg-0.3.0.0 (lib) +Building http-api-data-0.6.2 (lib) +Downloaded ansi-terminal-types-1.1 +Downloading ansi-terminal-1.1.2 +Starting ansi-terminal-types-1.1 (lib) +Completed wai-3.2.4 (lib) +Starting wai-logger-2.5.0 (lib) +Building iproute-1.7.15 (lib) +Installing prettyprinter-configurable-1.36.0.0 (lib) +Installing charset-0.3.12 (lib) +Installing ap-normalize-0.1.0.1 (lib) +Downloaded ansi-terminal-1.1.2 +Downloading concurrent-output-1.10.21 +Building strict-checked-vars-0.2.0.0 (lib) +Completed prettyprinter-configurable-1.36.0.0 (lib) +Building typed-protocols-cborg-0.3.0.0 (lib) +Building ansi-terminal-types-1.1 (lib) +Building typed-protocols-stateful-0.3.0.0 (lib) +Completed charset-0.3.12 (lib) +Building wai-logger-2.5.0 (lib) +Downloaded concurrent-output-1.10.21 +Downloading hedgehog-1.5 +Completed ap-normalize-0.1.0.1 (lib) +Starting generic-data-1.1.0.2 (lib) +Installing uniplate-1.6.13 (lib) +Installing strict-checked-vars-0.2.0.0 (lib) +Installing typed-protocols-cborg-0.3.0.0 (lib) +Completed uniplate-1.6.13 (lib) +Installing typed-protocols-stateful-0.3.0.0 (lib) +Installing fs-api-0.3.0.0 (lib) +Completed strict-checked-vars-0.2.0.0 (lib) +Building generic-data-1.1.0.2 (lib) +Installing dependent-map-0.4.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded hedgehog-1.5 +Downloading prettyprinter-ansi-terminal-1.1.3 +Completed typed-protocols-cborg-0.3.0.0 (lib) +Completed typed-protocols-stateful-0.3.0.0 (lib) +Starting typed-protocols-stateful-cborg-0.3.0.0 (lib) +Completed fs-api-0.3.0.0 (lib) +Installing wai-logger-2.5.0 (lib) +Downloaded prettyprinter-ansi-terminal-1.1.3 +Downloading optparse-applicative-0.18.1.0 +Completed dependent-map-0.4.0.0 (all, legacy fallback: cabal-version is less than 1.8) +Installing ansi-terminal-types-1.1 (lib) +Completed wai-logger-2.5.0 (lib) +Downloaded optparse-applicative-0.18.1.0 +Downloading optparse-applicative-fork-0.18.1.0 +Completed ansi-terminal-types-1.1 (lib) +Starting ansi-terminal-1.1.2 (lib) +Building typed-protocols-stateful-cborg-0.3.0.0 (lib) +Downloaded optparse-applicative-fork-0.18.1.0 +Downloading pretty-simple-4.1.3.0 +Installing cardano-crypto-1.3.0 (lib) +Installing typed-protocols-stateful-cborg-0.3.0.0 (lib) +Building ansi-terminal-1.1.2 (lib) +Completed cardano-crypto-1.3.0 (lib) +Completed typed-protocols-stateful-cborg-0.3.0.0 (lib) +Downloaded pretty-simple-4.1.3.0 +Downloading prettyprinter-compat-ansi-wl-pprint-1.0.2 +Installing ansi-terminal-1.1.2 (lib) +Installing generic-data-1.1.0.2 (lib) +Downloaded prettyprinter-compat-ansi-wl-pprint-1.0.2 +Downloading ansi-wl-pprint-1.0.2 +Completed ansi-terminal-1.1.2 (lib) +Starting prettyprinter-ansi-terminal-1.1.3 (lib) +Starting concurrent-output-1.10.21 (lib) +Installing iproute-1.7.15 (lib) +Completed generic-data-1.1.0.2 (lib) +Downloaded ansi-wl-pprint-1.0.2 +Downloading tasty-1.5.3 +Completed iproute-1.7.15 (lib) +Starting http2-5.3.9 (lib) +Building prettyprinter-ansi-terminal-1.1.3 (lib) +Building concurrent-output-1.10.21 (lib) +Downloaded tasty-1.5.3 +Downloading tasty-expected-failure-0.12.3 +Building http2-5.3.9 (lib) +Downloaded tasty-expected-failure-0.12.3 +Downloading tasty-golden-2.3.5 +Downloaded tasty-golden-2.3.5 +Downloading tasty-hedgehog-1.4.0.2 +Installing prettyprinter-ansi-terminal-1.1.3 (lib) +Completed prettyprinter-ansi-terminal-1.1.3 (lib) +Starting prettyprinter-compat-ansi-wl-pprint-1.0.2 (lib) +Starting pretty-simple-4.1.3.0 (lib) +Starting optparse-applicative-fork-0.18.1.0 (lib) +Starting optparse-applicative-0.18.1.0 (lib) +Downloaded tasty-hedgehog-1.4.0.2 +Downloading tasty-hunit-0.10.2 +Building pretty-simple-4.1.3.0 (lib) +Building prettyprinter-compat-ansi-wl-pprint-1.0.2 (lib) +Building optparse-applicative-fork-0.18.1.0 (lib) +Building optparse-applicative-0.18.1.0 (lib) +Installing megaparsec-9.7.0 (lib) +Completed megaparsec-9.7.0 (lib) +Downloaded tasty-hunit-0.10.2 +Downloading algebraic-graphs-0.7 +Installing prettyprinter-compat-ansi-wl-pprint-1.0.2 (lib) +Installing http-api-data-0.6.2 (lib) +Completed prettyprinter-compat-ansi-wl-pprint-1.0.2 (lib) +Starting ansi-wl-pprint-1.0.2 (lib) +Installing concurrent-output-1.10.21 (lib) +Downloaded algebraic-graphs-0.7 +Downloading alex-3.5.3.0 +Starting algebraic-graphs-0.7 (lib) +Completed http-api-data-0.6.2 (lib) +Completed concurrent-output-1.10.21 (lib) +Starting hedgehog-1.5 (lib) +Building ansi-wl-pprint-1.0.2 (lib) +Downloaded alex-3.5.3.0 +Downloading Win32-network-0.2.0.1 +Starting alex-3.5.3.0 (exe:alex) +Building algebraic-graphs-0.7 (lib) +Installing formatting-7.2.0 (lib) +Downloaded Win32-network-0.2.0.1 +Downloading Unique-0.4.7.9 +Starting Win32-network-0.2.0.1 (lib) +Installing ansi-wl-pprint-1.0.2 (lib) +Building hedgehog-1.5 (lib) +Completed formatting-7.2.0 (lib) +Starting fmt-0.6.3.0 (lib) +Completed ansi-wl-pprint-1.0.2 (lib) +Building alex-3.5.3.0 (exe:alex) +Downloaded Unique-0.4.7.9 +Downloading StateVar-1.2.2 +Starting Unique-0.4.7.9 (lib) +Building Win32-network-0.2.0.1 (lib) +Building fmt-0.6.3.0 (lib) +Installing Win32-network-0.2.0.1 (lib) +Downloaded StateVar-1.2.2 +Downloading contravariant-1.5.5 +Starting StateVar-1.2.2 (lib) +Installing pretty-simple-4.1.3.0 (lib) +Completed Win32-network-0.2.0.1 (lib) +Building Unique-0.4.7.9 (lib) +Completed pretty-simple-4.1.3.0 (lib) +Downloaded contravariant-1.5.5 +Downloading profunctors-5.6.2 +Building StateVar-1.2.2 (lib) +Installing Unique-0.4.7.9 (lib) +Downloaded profunctors-5.6.2 +Downloading generic-lens-2.2.2.0 +Completed Unique-0.4.7.9 (lib) +Installing StateVar-1.2.2 (lib) +Installing optparse-applicative-0.18.1.0 (lib) +Downloaded generic-lens-2.2.2.0 +Downloading semigroupoids-6.0.1 +Completed StateVar-1.2.2 (lib) +Starting contravariant-1.5.5 (lib) +Installing optparse-applicative-fork-0.18.1.0 (lib) +Completed optparse-applicative-0.18.1.0 (lib) +Starting tasty-1.5.3 (lib) +Downloaded semigroupoids-6.0.1 +Downloading either-5.0.2 +Completed optparse-applicative-fork-0.18.1.0 (lib) +Building contravariant-1.5.5 (lib) +Building tasty-1.5.3 (lib) +Downloaded either-5.0.2 +Downloading foldl-1.4.18 +Downloaded foldl-1.4.18 +Downloading list-t-1.0.5.7 +Installing contravariant-1.5.5 (lib) +Installing blaze-html-0.9.2.0 (lib) +Completed contravariant-1.5.5 (lib) +Starting profunctors-5.6.2 (lib) +Starting semigroupoids-6.0.1 (lib) +Downloaded list-t-1.0.5.7 +Downloading flat-0.6 +Completed blaze-html-0.9.2.0 (lib) +Building profunctors-5.6.2 (lib) +Building semigroupoids-6.0.1 (lib) +Downloaded flat-0.6 +Downloading free-5.2 +Installing direct-sqlite-2.3.29 (lib) +Downloaded free-5.2 +Downloading adjunctions-4.4.3 +Completed direct-sqlite-2.3.29 (lib) +Installing http2-5.3.9 (lib) +Installing alex-3.5.3.0 (exe:alex) +Completed alex-3.5.3.0 (exe:alex) +Completed http2-5.3.9 (lib) +Downloaded adjunctions-4.4.3 +Downloading recursion-schemes-5.2.3 +Downloaded recursion-schemes-5.2.3 +Downloading cardano-binary-1.7.1.0 +Downloaded cardano-binary-1.7.1.0 +Downloading strict-list-0.1.7.6 +Downloaded strict-list-0.1.7.6 +Downloading deque-0.4.4.2 +Installing fmt-0.6.3.0 (lib) +Downloaded deque-0.4.4.2 +Downloading invariant-0.6.4 +Completed fmt-0.6.3.0 (lib) +Installing tasty-1.5.3 (lib) +Downloaded invariant-0.6.4 +Downloading kan-extensions-5.2.6 +Completed tasty-1.5.3 (lib) +Starting tasty-expected-failure-0.12.3 (lib) +Starting tasty-hunit-0.10.2 (lib) +Starting tasty-golden-2.3.5 (lib) +Downloaded kan-extensions-5.2.6 +Downloading QuickCheck-2.15.0.1 +Installing profunctors-5.6.2 (lib) +Building tasty-expected-failure-0.12.3 (lib) +Building tasty-hunit-0.10.2 (lib) +Building tasty-golden-2.3.5 (lib) +Completed profunctors-5.6.2 (lib) +Starting invariant-0.6.4 (lib) +Starting generic-lens-2.2.2.0 (lib) +Downloaded QuickCheck-2.15.0.1 +Downloading Stream-0.4.7.2 +Starting QuickCheck-2.15.0.1 (lib) +Installing tasty-expected-failure-0.12.3 (lib) +Installing tasty-hunit-0.10.2 (lib) +Completed tasty-expected-failure-0.12.3 (lib) +Building generic-lens-2.2.2.0 (lib) +Building invariant-0.6.4 (lib) +Completed tasty-hunit-0.10.2 (lib) +Downloaded Stream-0.4.7.2 +Downloading fin-0.3.2 +Building QuickCheck-2.15.0.1 (lib) +Installing semigroupoids-6.0.1 (lib) +Installing tasty-golden-2.3.5 (lib) +Completed semigroupoids-6.0.1 (lib) +Starting either-5.0.2 (lib) +Starting strict-list-0.1.7.6 (lib) +Starting free-5.2 (lib) +Completed tasty-golden-2.3.5 (lib) +Downloaded fin-0.3.2 +Downloading bin-0.1.4 +Building free-5.2 (lib) +Building strict-list-0.1.7.6 (lib) +Building either-5.0.2 (lib) +Downloaded bin-0.1.4 +Downloading generic-random-1.5.0.1 +Installing generic-lens-2.2.2.0 (lib) +Completed generic-lens-2.2.2.0 (lib) +Downloaded generic-random-1.5.0.1 +Downloading genvalidity-1.1.1.0 +Installing algebraic-graphs-0.7 (lib) +Installing either-5.0.2 (lib) +Completed algebraic-graphs-0.7 (lib) +Installing hedgehog-1.5 (lib) +Downloaded genvalidity-1.1.1.0 +Downloading hedgehog-quickcheck-0.1.1 +Completed either-5.0.2 (lib) +Installing strict-list-0.1.7.6 (lib) +Completed hedgehog-1.5 (lib) +Starting tasty-hedgehog-1.4.0.2 (lib) +Completed strict-list-0.1.7.6 (lib) +Starting deque-0.4.4.2 (lib) +Installing invariant-0.6.4 (lib) +Downloaded hedgehog-quickcheck-0.1.1 +Downloading io-sim-1.5.1.0 +Completed invariant-0.6.4 (lib) +Building tasty-hedgehog-1.4.0.2 (lib) +Building deque-0.4.4.2 (lib) +Downloaded io-sim-1.5.1.0 +Downloading quickcheck-transformer-0.3.1.2 +Installing tasty-hedgehog-1.4.0.2 (lib) +Downloaded quickcheck-transformer-0.3.1.2 +Downloading ral-0.2.2 +Completed tasty-hedgehog-1.4.0.2 (lib) +Installing attoparsec-0.14.4 (lib) +Completed attoparsec-0.14.4 (lib) +Starting http-date-0.0.11 (lib) +Starting parsers-0.12.12 (lib) +Starting dns-4.2.0 (lib:dns-internal) +Downloaded ral-0.2.2 +Downloading plutus-core-1.45.0.0 +Installing deque-0.4.4.2 (lib) +Downloaded plutus-core-1.45.0.0 +Downloading tasty-quickcheck-0.11.1 +Building http-date-0.0.11 (lib) +Building parsers-0.12.12 (lib) +Completed deque-0.4.4.2 (lib) +Building dns-4.2.0 (lib:dns-internal) +Downloaded tasty-quickcheck-0.11.1 +Downloading Only-0.1 +Downloaded Only-0.1 +Downloading cassava-0.5.3.2 +Starting Only-0.1 (lib) +Installing http-date-0.0.11 (lib) +Completed http-date-0.0.11 (lib) +Starting warp-3.4.8 (lib) +Downloaded cassava-0.5.3.2 +Downloading OneTuple-0.4.2 +Building Only-0.1 (lib) +Downloaded OneTuple-0.4.2 +Downloading indexed-traversable-instances-0.1.2 +Starting OneTuple-0.4.2 (lib) +Building warp-3.4.8 (lib) +Installing Only-0.1 (lib) +Downloaded indexed-traversable-instances-0.1.2 +Downloading lens-5.3.4 +Building OneTuple-0.4.2 (lib) +Completed Only-0.1 (lib) +Installing OneTuple-0.4.2 (lib) +Downloaded lens-5.3.4 +Downloading capability-0.5.0.1 +Completed OneTuple-0.4.2 (lib) +Downloaded capability-0.5.0.1 +Downloading cuddle-0.3.2.1 +Downloaded cuddle-0.3.2.1 +Downloading validation-1.1.3 +Downloaded validation-1.1.3 +Downloading semialign-1.3.1 +Installing parsers-0.12.12 (lib) +Downloaded semialign-1.3.1 +Downloading witherable-0.5 +Completed parsers-0.12.12 (lib) +Downloaded witherable-0.5 +Downloading aeson-2.2.3.0 +Installing free-5.2 (lib) +Downloaded aeson-2.2.3.0 +Downloading aeson-pretty-0.8.10 +Installing QuickCheck-2.15.0.1 (lib) +Completed free-5.2 (lib) +Starting recursion-schemes-5.2.3 (lib) +Starting adjunctions-4.4.3 (lib) +Installing dns-4.2.0 (lib:dns-internal) +Completed QuickCheck-2.15.0.1 (lib) +Starting tasty-quickcheck-0.11.1 (lib) +Starting quickcheck-transformer-0.3.1.2 (lib) +Starting hedgehog-quickcheck-0.1.1 (lib) +Starting genvalidity-1.1.1.0 (lib) +Starting generic-random-1.5.0.1 (lib) +Starting fin-0.3.2 (lib) +Starting Stream-0.4.7.2 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded aeson-pretty-0.8.10 +Downloading base64-bytestring-type-1.0.1 +Completed dns-4.2.0 (lib:dns-internal) +Starting dns-4.2.0 (lib) +Building recursion-schemes-5.2.3 (lib) +Building adjunctions-4.4.3 (lib) +Downloaded base64-bytestring-type-1.0.1 +Downloading cardano-addresses-4.0.0 +Building quickcheck-transformer-0.3.1.2 (lib) +Building hedgehog-quickcheck-0.1.1 (lib) +Building generic-random-1.5.0.1 (lib) +Building Stream-0.4.7.2 (all, legacy fallback: cabal-version is less than 1.8) +Building genvalidity-1.1.1.0 (lib) +Building fin-0.3.2 (lib) +Building tasty-quickcheck-0.11.1 (lib) +Building dns-4.2.0 (lib) +Installing warp-3.4.8 (lib) +Downloaded cardano-addresses-4.0.0 +Downloading cardano-prelude-0.2.1.0 +Installing hedgehog-quickcheck-0.1.1 (lib) +Installing quickcheck-transformer-0.3.1.2 (lib) +Downloaded cardano-prelude-0.2.1.0 +Downloading cardano-slotting-0.2.0.0 +Completed warp-3.4.8 (lib) +Installing Stream-0.4.7.2 (all, legacy fallback: cabal-version is less than 1.8) +Installing tasty-quickcheck-0.11.1 (lib) +Completed hedgehog-quickcheck-0.1.1 (lib) +Downloaded cardano-slotting-0.2.0.0 +Downloading cardano-strict-containers-0.1.4.0 +Completed quickcheck-transformer-0.3.1.2 (lib) +Downloaded cardano-strict-containers-0.1.4.0 +Downloading fingertree-rm-1.0.0.4 +Completed Stream-0.4.7.2 (all, legacy fallback: cabal-version is less than 1.8) +Completed tasty-quickcheck-0.11.1 (lib) +Downloaded fingertree-rm-1.0.0.4 +Downloading criterion-measurement-0.2.3.0 +Installing generic-random-1.5.0.1 (lib) +Installing fin-0.3.2 (lib) +Completed generic-random-1.5.0.1 (lib) +Downloaded criterion-measurement-0.2.3.0 +Downloading deriving-aeson-0.2.10 +Installing dns-4.2.0 (lib) +Completed fin-0.3.2 (lib) +Starting bin-0.1.4 (lib) +Installing genvalidity-1.1.1.0 (lib) +Installing adjunctions-4.4.3 (lib) +Completed dns-4.2.0 (lib) +Downloaded deriving-aeson-0.2.10 +Downloading ekg-json-0.1.1.1 +Completed genvalidity-1.1.1.0 (lib) +Completed adjunctions-4.4.3 (lib) +Starting kan-extensions-5.2.6 (lib) +Building bin-0.1.4 (lib) +Downloaded ekg-json-0.1.1.1 +Downloading katip-0.8.8.2 +Building kan-extensions-5.2.6 (lib) +Installing recursion-schemes-5.2.3 (lib) +Downloaded katip-0.8.8.2 +Downloading microlens-aeson-2.5.2 +Completed recursion-schemes-5.2.3 (lib) +Downloaded microlens-aeson-2.5.2 +Downloading microstache-1.0.3 +Downloaded microstache-1.0.3 +Downloading nonempty-containers-0.3.5.0 +Installing bin-0.1.4 (lib) +Completed bin-0.1.4 (lib) +Starting ral-0.2.2 (lib) +Downloaded nonempty-containers-0.3.5.0 +Downloading diff-containers-1.3.0.0 +Downloaded diff-containers-1.3.0.0 +Downloading small-steps-1.1.1.0 +Installing vector-0.13.2.0 (lib) +Downloaded small-steps-1.1.1.0 +Downloading statistics-0.16.3.0 +Building ral-0.2.2 (lib) +Completed vector-0.13.2.0 (lib) +Starting vector-binary-instances-0.2.5.2 (lib) +Starting th-lift-instances-0.1.20 (lib) +Starting nothunks-0.2.1.1 (lib) +Starting nonempty-vector-0.2.4 (lib) +Starting heapwords-0.1.0.2 (lib) +Starting monoid-subclasses-1.2.6 (lib) +Starting serialise-0.2.6.1 (lib) +Starting foldl-1.4.18 (lib) +Starting cassava-0.5.3.2 (lib) +Starting cardano-binary-1.7.1.0 (lib) +Starting vector-th-unbox-0.2.2 (lib) +Starting bitvec-1.1.5.0 (lib) +Starting indexed-traversable-instances-0.1.2 (lib) +Starting math-functions-0.3.4.4 (lib) +Installing kan-extensions-5.2.6 (lib) +Downloaded statistics-0.16.3.0 +Downloading tree-diff-0.3.4 +Building nonempty-vector-0.2.4 (lib) +Building monoid-subclasses-1.2.6 (lib) +Building vector-binary-instances-0.2.5.2 (lib) +Building heapwords-0.1.0.2 (lib) +Building foldl-1.4.18 (lib) +Building th-lift-instances-0.1.20 (lib) +Building bitvec-1.1.5.0 (lib) +Building cassava-0.5.3.2 (lib) +Building nothunks-0.2.1.1 (lib) +Completed kan-extensions-5.2.6 (lib) +Building vector-th-unbox-0.2.2 (lib) +Building serialise-0.2.6.1 (lib) +Building indexed-traversable-instances-0.1.2 (lib) +Building math-functions-0.3.4.4 (lib) +Building cardano-binary-1.7.1.0 (lib) +Downloaded tree-diff-0.3.4 +Downloading vector-map-1.1.0.0 +Downloaded vector-map-1.1.0.0 +Downloading yaml-0.11.11.2 +Installing th-lift-instances-0.1.20 (lib) +Downloaded yaml-0.11.11.2 +Downloading monoidal-containers-0.6.6.0 +Installing vector-th-unbox-0.2.2 (lib) +Installing indexed-traversable-instances-0.1.2 (lib) +Installing heapwords-0.1.0.2 (lib) +Installing vector-binary-instances-0.2.5.2 (lib) +Completed th-lift-instances-0.1.20 (lib) +Completed vector-th-unbox-0.2.2 (lib) +Downloaded monoidal-containers-0.6.6.0 +Downloading quickcheck-instances-0.3.32 +Completed indexed-traversable-instances-0.1.2 (lib) +Starting witherable-0.5 (lib) +Starting semialign-1.3.1 (lib) +Starting lens-5.3.4 (lib) +Completed vector-binary-instances-0.2.5.2 (lib) +Completed heapwords-0.1.0.2 (lib) +Downloaded quickcheck-instances-0.3.32 +Downloading MonadRandom-0.6.2 +Starting quickcheck-instances-0.3.32 (lib) +Building witherable-0.5 (lib) +Building semialign-1.3.1 (lib) +Installing nothunks-0.2.1.1 (lib) +Building lens-5.3.4 (lib) +Downloaded MonadRandom-0.6.2 +Downloading random-shuffle-0.0.4 +Starting MonadRandom-0.6.2 (lib) +Completed nothunks-0.2.1.1 (lib) +Starting strict-sop-core-0.1.3.0 (lib) +Starting si-timers-1.5.0.0 (lib) +Starting resource-registry-0.1.0.0 (lib) +Starting rawlock-0.1.1.0 (lib) +Building quickcheck-instances-0.3.32 (lib) +Downloaded random-shuffle-0.0.4 +Downloading statistics-linreg-0.3 +Building MonadRandom-0.6.2 (lib) +Building si-timers-1.5.0.0 (lib) +Building resource-registry-0.1.0.0 (lib) +Building strict-sop-core-0.1.3.0 (lib) +Building rawlock-0.1.1.0 (lib) +Downloaded statistics-linreg-0.3 +Downloading ekg-forward-0.9 +Downloaded ekg-forward-0.9 +Downloading HUnit-1.6.2.0 +Downloaded HUnit-1.6.2.0 +Downloading hspec-expectations-0.8.4 +Starting HUnit-1.6.2.0 (lib) +Downloaded hspec-expectations-0.8.4 +Downloading hspec-expectations-lifted-0.10.0 +Installing si-timers-1.5.0.0 (lib) +Downloaded hspec-expectations-lifted-0.10.0 +Downloading quickcheck-io-0.2.0 +Installing strict-sop-core-0.1.3.0 (lib) +Building HUnit-1.6.2.0 (lib) +Installing MonadRandom-0.6.2 (lib) +Installing rawlock-0.1.1.0 (lib) +Completed si-timers-1.5.0.0 (lib) +Starting io-classes-mtl-0.1.2.0 (lib) +Starting io-sim-1.5.1.0 (lib) +Downloaded quickcheck-io-0.2.0 +Downloading hspec-core-2.11.12 +Completed strict-sop-core-0.1.3.0 (lib) +Starting sop-extras-0.4.0.0 (lib) +Installing cardano-binary-1.7.1.0 (lib) +Completed MonadRandom-0.6.2 (lib) +Starting random-shuffle-0.0.4 (all, legacy fallback: cabal-version is less than 1.8) +Downloaded hspec-core-2.11.12 +Downloading hspec-2.11.12 +Completed rawlock-0.1.1.0 (lib) +Installing ral-0.2.2 (lib) +Installing resource-registry-0.1.0.0 (lib) +Completed cardano-binary-1.7.1.0 (lib) +Building io-sim-1.5.1.0 (lib) +Downloaded hspec-2.11.12 +Downloading ImpSpec-0.1.0.0 +Building io-classes-mtl-0.1.2.0 (lib) +Installing semialign-1.3.1 (lib) +Building sop-extras-0.4.0.0 (lib) +Completed resource-registry-0.1.0.0 (lib) +Installing witherable-0.5 (lib) +Installing quickcheck-instances-0.3.32 (lib) +Building random-shuffle-0.0.4 (all, legacy fallback: cabal-version is less than 1.8) +Installing foldl-1.4.18 (lib) +Completed ral-0.2.2 (lib) +Installing HUnit-1.6.2.0 (lib) +Completed semialign-1.3.1 (lib) +Downloaded ImpSpec-0.1.0.0 +Downloading cardano-prelude-test-0.1.0.5 +Completed witherable-0.5 (lib) +Starting aeson-2.2.3.0 (lib) +Downloaded cardano-prelude-test-0.1.0.5 +Downloading wai-extra-3.1.17 +Installing random-shuffle-0.0.4 (all, legacy fallback: cabal-version is less than 1.8) +Completed quickcheck-instances-0.3.32 (lib) +Completed foldl-1.4.18 (lib) +Starting list-t-1.0.5.7 (lib) +Completed HUnit-1.6.2.0 (lib) +Starting quickcheck-io-0.2.0 (lib) +Starting hspec-expectations-0.8.4 (lib) +Downloaded wai-extra-3.1.17 +Downloading wai-app-static-3.1.9 +Completed random-shuffle-0.0.4 (all, legacy fallback: cabal-version is less than 1.8) +Building aeson-2.2.3.0 (lib) +Building list-t-1.0.5.7 (lib) +Building hspec-expectations-0.8.4 (lib) +Building quickcheck-io-0.2.0 (lib) +Installing nonempty-vector-0.2.4 (lib) +Downloaded wai-app-static-3.1.9 +Downloading ekg-wai-0.1.2.0 +Installing serialise-0.2.6.1 (lib) +Completed nonempty-vector-0.2.4 (lib) +Starting plutus-core-1.45.0.0 (lib:index-envs) +Installing quickcheck-io-0.2.0 (lib) +Downloaded ekg-wai-0.1.2.0 +Downloading iohk-monitoring-0.2.1.2 +Completed serialise-0.2.6.1 (lib) +Starting cardano-lmdb-simple-0.8.0.1 (lib) +Installing hspec-expectations-0.8.4 (lib) +Downloaded iohk-monitoring-0.2.1.2 +Downloading lobemo-backend-aggregation-0.1.0.3 +Completed quickcheck-io-0.2.0 (lib) +Downloaded lobemo-backend-aggregation-0.1.0.3 +Downloading lobemo-backend-monitoring-0.1.0.3 +Completed hspec-expectations-0.8.4 (lib) +Starting hspec-expectations-lifted-0.10.0 (lib) +Starting hspec-core-2.11.12 (lib) +Building plutus-core-1.45.0.0 (lib:index-envs) +Downloaded lobemo-backend-monitoring-0.1.0.3 +Downloading lobemo-backend-trace-forwarder-0.1.0.0 +Installing sop-extras-0.4.0.0 (lib) +Building cardano-lmdb-simple-0.8.0.1 (lib) +Downloaded lobemo-backend-trace-forwarder-0.1.0.0 +Downloading lobemo-backend-ekg-0.2.0.1 +Downloaded lobemo-backend-ekg-0.2.0.1 +Downloading Glob-0.10.2 +Completed sop-extras-0.4.0.0 (lib) +Building hspec-expectations-lifted-0.10.0 (lib) +Building hspec-core-2.11.12 (lib) +Installing list-t-1.0.5.7 (lib) +Installing hspec-expectations-lifted-0.10.0 (lib) +Downloaded Glob-0.10.2 +Downloading criterion-1.6.4.0 +Starting Glob-0.10.2 (lib) +Completed list-t-1.0.5.7 (lib) +Completed hspec-expectations-lifted-0.10.0 (lib) +Installing math-functions-0.3.4.4 (lib) +Installing plutus-core-1.45.0.0 (lib:index-envs) +Downloaded criterion-1.6.4.0 +Downloading FailT-0.1.2.0 +Completed math-functions-0.3.4.4 (lib) +Starting mwc-random-0.15.2.0 (lib) +Building Glob-0.10.2 (lib) +Completed plutus-core-1.45.0.0 (lib:index-envs) +Downloaded FailT-0.1.2.0 +Downloading mempack-0.1.2.0 +Starting FailT-0.1.2.0 (lib) +Installing cardano-lmdb-simple-0.8.0.1 (lib) +Building mwc-random-0.15.2.0 (lib) +Completed cardano-lmdb-simple-0.8.0.1 (lib) +Downloaded mempack-0.1.2.0 +Downloading cardano-crypto-class-2.2.2.0 +Installing cassava-0.5.3.2 (lib) +Building FailT-0.1.2.0 (lib) +Installing io-classes-mtl-0.1.2.0 (lib) +Downloaded cardano-crypto-class-2.2.2.0 +Downloading cardano-crypto-praos-2.2.1.0 +Completed cassava-0.5.3.2 (lib) +Downloaded cardano-crypto-praos-2.2.1.0 +Downloading plutus-tx-1.45.0.0 +Completed io-classes-mtl-0.1.2.0 (lib) +Downloaded plutus-tx-1.45.0.0 +Downloading plutus-ledger-api-1.45.0.0 +Downloaded plutus-ledger-api-1.45.0.0 +Downloading cardano-crypto-tests-2.2.1.0 +Installing Glob-0.10.2 (lib) +Downloaded cardano-crypto-tests-2.2.1.0 +Downloading cardano-ledger-binary-1.6.0.0 +Completed Glob-0.10.2 (lib) +Downloaded cardano-ledger-binary-1.6.0.0 +Downloading cardano-crypto-wrapper-1.6.0.0 +Installing FailT-0.1.2.0 (lib) +Downloaded cardano-crypto-wrapper-1.6.0.0 +Downloading cardano-data-1.2.4.0 +Completed FailT-0.1.2.0 (lib) +Starting mempack-0.1.2.0 (lib) +Downloaded cardano-data-1.2.4.0 +Downloading set-algebra-1.1.0.3 +Downloaded set-algebra-1.1.0.3 +Downloading cardano-crypto-test-1.6.0.0 +Building mempack-0.1.2.0 (lib) +Downloaded cardano-crypto-test-1.6.0.0 +Downloading byron-spec-ledger-1.1.0.0 +Downloaded byron-spec-ledger-1.1.0.0 +Downloading byron-spec-chain-1.0.1.0 +Downloaded byron-spec-chain-1.0.1.0 +Downloading Cabal-syntax-3.14.2.0 +Downloaded Cabal-syntax-3.14.2.0 +Downloading cardano-ledger-byron-1.1.0.0 +Starting Cabal-syntax-3.14.2.0 (lib) +Downloaded cardano-ledger-byron-1.1.0.0 +Downloading cardano-ledger-byron-test-1.5.2.1 +Downloaded cardano-ledger-byron-test-1.5.2.1 +Downloading cardano-ledger-core-1.17.0.0 +Building Cabal-syntax-3.14.2.0 (lib) +Downloaded cardano-ledger-core-1.17.0.0 +Downloading cardano-ledger-shelley-1.16.0.0 +Downloaded cardano-ledger-shelley-1.16.0.0 +Downloading cardano-ledger-allegra-1.7.0.0 +Downloaded cardano-ledger-allegra-1.7.0.0 +Downloading cardano-ledger-mary-1.8.0.0 +Downloaded cardano-ledger-mary-1.8.0.0 +Downloading cardano-ledger-alonzo-1.13.0.0 +Downloaded cardano-ledger-alonzo-1.13.0.0 +Downloading cardano-ledger-babbage-1.11.0.0 +Downloaded cardano-ledger-babbage-1.11.0.0 +Downloading cardano-ledger-conway-1.19.0.0 +Downloaded cardano-ledger-conway-1.19.0.0 +Downloading cardano-ledger-api-1.11.0.0 +Installing hspec-core-2.11.12 (lib) +Downloaded cardano-ledger-api-1.11.0.0 +Downloading cardano-protocol-tpraos-1.4.0.0 +Downloaded cardano-protocol-tpraos-1.4.0.0 +Downloading ouroboros-consensus-protocol-0.12.0.0 +Completed hspec-core-2.11.12 (lib) +Starting hspec-2.11.12 (lib) +Downloaded ouroboros-consensus-protocol-0.12.0.0 +Downloading cardano-api-10.16.3.0 +Downloaded cardano-api-10.16.3.0 +Downloading Cabal-3.14.2.0 +Installing io-sim-1.5.1.0 (lib) +Building hspec-2.11.12 (lib) +Completed io-sim-1.5.1.0 (lib) +Downloaded Cabal-3.14.2.0 +Downloading entropy-0.4.1.11 +Installing hspec-2.11.12 (lib) +Downloaded entropy-0.4.1.11 +Downloading uuid-1.3.16 +Completed hspec-2.11.12 (lib) +Starting ImpSpec-0.1.0.0 (lib) +Downloaded uuid-1.3.16 +Downloading libsystemd-journal-1.4.6.0 +Building ImpSpec-0.1.0.0 (lib) +Downloaded libsystemd-journal-1.4.6.0 +Downloading lobemo-scribe-systemd-0.1.0.0 +Downloaded lobemo-scribe-systemd-0.1.0.0 +Installing monoid-subclasses-1.2.6 (lib) +Completed monoid-subclasses-1.2.6 (lib) +Installing ImpSpec-0.1.0.0 (lib) +Completed ImpSpec-0.1.0.0 (lib) +Installing mwc-random-0.15.2.0 (lib) +Completed mwc-random-0.15.2.0 (lib) +Installing mempack-0.1.2.0 (lib) +Completed mempack-0.1.2.0 (lib) +Installing bitvec-1.1.5.0 (lib) +Completed bitvec-1.1.5.0 (lib) +Starting vector-algorithms-0.9.1.0 (lib) +Building vector-algorithms-0.9.1.0 (lib) +Installing lens-5.3.4 (lib) +Completed lens-5.3.4 (lib) +Starting validation-1.1.3 (lib) +Building validation-1.1.3 (lib) +Installing validation-1.1.3 (lib) +Completed validation-1.1.3 (lib) +Installing aeson-2.2.3.0 (lib) +Completed aeson-2.2.3.0 (lib) +Starting tree-diff-0.3.4 (lib) +Starting monoidal-containers-0.6.6.0 (lib) +Starting nonempty-containers-0.3.5.0 (lib) +Starting microstache-1.0.3 (lib) +Starting microlens-aeson-2.5.2 (lib) +Starting ekg-json-0.1.1.1 (lib) +Starting deriving-aeson-0.2.10 (lib) +Starting criterion-measurement-0.2.3.0 (lib) +Starting cardano-strict-containers-0.1.4.0 (lib) +Starting cardano-slotting-0.2.0.0 (lib) +Starting base64-bytestring-type-1.0.1 (lib) +Starting cardano-prelude-0.2.1.0 (lib) +Starting aeson-pretty-0.8.10 (lib) +Starting katip-0.8.8.2 (lib) +Starting wai-extra-3.1.17 (lib) +Starting plutus-core-1.45.0.0 (lib:satint) +Building tree-diff-0.3.4 (lib) +Building deriving-aeson-0.2.10 (lib) +Building microstache-1.0.3 (lib) +Building microlens-aeson-2.5.2 (lib) +Building cardano-slotting-0.2.0.0 (lib) +Building ekg-json-0.1.1.1 (lib) +Building nonempty-containers-0.3.5.0 (lib) +Building monoidal-containers-0.6.6.0 (lib) +Building base64-bytestring-type-1.0.1 (lib) +Building cardano-strict-containers-0.1.4.0 (lib) +Building cardano-prelude-0.2.1.0 (lib) +Building criterion-measurement-0.2.3.0 (lib) +Building katip-0.8.8.2 (lib) +Building aeson-pretty-0.8.10 (lib) +Building plutus-core-1.45.0.0 (lib:satint) +Building wai-extra-3.1.17 (lib) +Installing deriving-aeson-0.2.10 (lib) +Installing ekg-json-0.1.1.1 (lib) +Completed deriving-aeson-0.2.10 (lib) +Installing aeson-pretty-0.8.10 (lib) +Installing plutus-core-1.45.0.0 (lib:satint) +Completed ekg-json-0.1.1.1 (lib) +Completed plutus-core-1.45.0.0 (lib:satint) +Installing microlens-aeson-2.5.2 (lib) +Completed aeson-pretty-0.8.10 (lib) +Starting cardano-addresses-4.0.0 (lib) +Installing cardano-slotting-0.2.0.0 (lib) +Installing cardano-strict-containers-0.1.4.0 (lib) +Completed microlens-aeson-2.5.2 (lib) +Completed cardano-slotting-0.2.0.0 (lib) +Installing base64-bytestring-type-1.0.1 (lib) +Completed cardano-strict-containers-0.1.4.0 (lib) +Starting fingertree-rm-1.0.0.4 (lib) +Starting small-steps-1.1.1.0 (lib) +Starting cardano-crypto-class-2.2.2.0 (lib) +Building cardano-addresses-4.0.0 (lib) +Completed base64-bytestring-type-1.0.1 (lib) +Installing tree-diff-0.3.4 (lib) +Building small-steps-1.1.1.0 (lib) +Building fingertree-rm-1.0.0.4 (lib) +Building cardano-crypto-class-2.2.2.0 (lib) +Completed tree-diff-0.3.4 (lib) +Starting cardano-slotting-0.2.0.0 (lib:testlib) +Installing cardano-prelude-0.2.1.0 (lib) +Installing microstache-1.0.3 (lib) +Completed cardano-prelude-0.2.1.0 (lib) +Starting cardano-prelude-test-0.1.0.5 (lib) +Completed microstache-1.0.3 (lib) +Building cardano-slotting-0.2.0.0 (lib:testlib) +Installing criterion-measurement-0.2.3.0 (lib) +Installing fingertree-rm-1.0.0.4 (lib) +Completed criterion-measurement-0.2.3.0 (lib) +Building cardano-prelude-test-0.1.0.5 (lib) +Installing monoidal-containers-0.6.6.0 (lib) +Installing cardano-slotting-0.2.0.0 (lib:testlib) +Completed fingertree-rm-1.0.0.4 (lib) +Completed monoidal-containers-0.6.6.0 (lib) +Installing small-steps-1.1.1.0 (lib) +Completed cardano-slotting-0.2.0.0 (lib:testlib) +Completed small-steps-1.1.1.0 (lib) +Installing wai-extra-3.1.17 (lib) +Completed wai-extra-3.1.17 (lib) +Starting wai-app-static-3.1.9 (lib) +Installing cardano-prelude-test-0.1.0.5 (lib) +Completed cardano-prelude-test-0.1.0.5 (lib) +Building wai-app-static-3.1.9 (lib) +Installing vector-algorithms-0.9.1.0 (lib) +Completed vector-algorithms-0.9.1.0 (lib) +Starting vector-map-1.1.0.0 (lib) +Starting dense-linear-algebra-0.1.0.0 (lib) +Starting mono-traversable-1.0.21.0 (lib) +Building mono-traversable-1.0.21.0 (lib) +Building dense-linear-algebra-0.1.0.0 (lib) +Building vector-map-1.1.0.0 (lib) +Installing nonempty-containers-0.3.5.0 (lib) +Completed nonempty-containers-0.3.5.0 (lib) +Starting diff-containers-1.3.0.0 (lib) +Building diff-containers-1.3.0.0 (lib) +Installing dense-linear-algebra-0.1.0.0 (lib) +Installing wai-app-static-3.1.9 (lib) +Completed dense-linear-algebra-0.1.0.0 (lib) +Starting statistics-0.16.3.0 (lib) +Completed wai-app-static-3.1.9 (lib) +Starting ekg-wai-0.1.2.0 (lib) +Building statistics-0.16.3.0 (lib) +Building ekg-wai-0.1.2.0 (lib) +Installing diff-containers-1.3.0.0 (lib) +Completed diff-containers-1.3.0.0 (lib) +Installing ekg-wai-0.1.2.0 (lib) +Installing katip-0.8.8.2 (lib) +Completed ekg-wai-0.1.2.0 (lib) +Completed katip-0.8.8.2 (lib) +Installing cardano-addresses-4.0.0 (lib) +Completed cardano-addresses-4.0.0 (lib) +Installing cardano-crypto-class-2.2.2.0 (lib) +Completed cardano-crypto-class-2.2.2.0 (lib) +Starting cardano-crypto-praos-2.2.1.0 (lib) +Building cardano-crypto-praos-2.2.1.0 (lib) +Installing cardano-crypto-praos-2.2.1.0 (lib) +Completed cardano-crypto-praos-2.2.1.0 (lib) +Installing vector-map-1.1.0.0 (lib) +Completed vector-map-1.1.0.0 (lib) +Starting vector-map-1.1.0.0 (lib:testlib) +Building vector-map-1.1.0.0 (lib:testlib) +Installing vector-map-1.1.0.0 (lib:testlib) +Completed vector-map-1.1.0.0 (lib:testlib) +Installing mono-traversable-1.0.21.0 (lib) +Completed mono-traversable-1.0.21.0 (lib) +Starting mutable-containers-0.3.4.1 (lib) +Starting conduit-1.3.6.1 (lib) +Starting flat-0.6 (lib) +Building mutable-containers-0.3.4.1 (lib) +Building conduit-1.3.6.1 (lib) +Building flat-0.6 (lib) +Installing mutable-containers-0.3.4.1 (lib) +Completed mutable-containers-0.3.4.1 (lib) +Starting capability-0.5.0.1 (lib) +Building capability-0.5.0.1 (lib) +Installing Cabal-syntax-3.14.2.0 (lib) +Completed Cabal-syntax-3.14.2.0 (lib) +Starting Cabal-3.14.2.0 (lib) +Building Cabal-3.14.2.0 (lib) +Installing capability-0.5.0.1 (lib) +Completed capability-0.5.0.1 (lib) +Starting cuddle-0.3.2.1 (lib) +Building cuddle-0.3.2.1 (lib) +Installing conduit-1.3.6.1 (lib) +Completed conduit-1.3.6.1 (lib) +Starting libyaml-0.1.4 (lib) +Building libyaml-0.1.4 (lib) +Installing flat-0.6 (lib) +Completed flat-0.6 (lib) +Starting plutus-core-1.45.0.0 (lib) +Building plutus-core-1.45.0.0 (lib) +Installing libyaml-0.1.4 (lib) +Completed libyaml-0.1.4 (lib) +Starting yaml-0.11.11.2 (lib) +Building yaml-0.11.11.2 (lib) +Installing yaml-0.11.11.2 (lib) +Completed yaml-0.11.11.2 (lib) +Starting iohk-monitoring-0.2.1.2 (lib) +Building iohk-monitoring-0.2.1.2 (lib) +Installing cuddle-0.3.2.1 (lib) +Completed cuddle-0.3.2.1 (lib) +Installing statistics-0.16.3.0 (lib) +Completed statistics-0.16.3.0 (lib) +Starting statistics-linreg-0.3 (all, legacy fallback: cabal-version is less than 1.8) +Starting criterion-1.6.4.0 (lib) +Building statistics-linreg-0.3 (all, legacy fallback: cabal-version is less than 1.8) +Building criterion-1.6.4.0 (lib) +Installing statistics-linreg-0.3 (all, legacy fallback: cabal-version is less than 1.8) +Completed statistics-linreg-0.3 (all, legacy fallback: cabal-version is less than 1.8) +Starting network-mux-0.8.0.2 (lib) +Building network-mux-0.8.0.2 (lib) +Installing network-mux-0.8.0.2 (lib) +Completed network-mux-0.8.0.2 (lib) +Starting ouroboros-network-testing-0.8.1.0 (lib) +Starting ouroboros-network-api-0.14.1.0 (lib) +Building ouroboros-network-api-0.14.1.0 (lib) +Building ouroboros-network-testing-0.8.1.0 (lib) +Installing criterion-1.6.4.0 (lib) +Completed criterion-1.6.4.0 (lib) +Starting cardano-crypto-tests-2.2.1.0 (lib) +Building cardano-crypto-tests-2.2.1.0 (lib) +Installing iohk-monitoring-0.2.1.2 (lib) +Completed iohk-monitoring-0.2.1.2 (lib) +Starting lobemo-backend-ekg-0.2.0.1 (lib) +Starting lobemo-backend-trace-forwarder-0.1.0.0 (lib) +Starting lobemo-backend-aggregation-0.1.0.3 (lib) +Starting lobemo-backend-monitoring-0.1.0.3 (lib) +Building lobemo-backend-aggregation-0.1.0.3 (lib) +Building lobemo-backend-monitoring-0.1.0.3 (lib) +Building lobemo-backend-trace-forwarder-0.1.0.0 (lib) +Building lobemo-backend-ekg-0.2.0.1 (lib) +Installing ouroboros-network-testing-0.8.1.0 (lib) +Completed ouroboros-network-testing-0.8.1.0 (lib) +Installing lobemo-backend-aggregation-0.1.0.3 (lib) +Installing lobemo-backend-trace-forwarder-0.1.0.0 (lib) +Completed lobemo-backend-aggregation-0.1.0.3 (lib) +Installing lobemo-backend-monitoring-0.1.0.3 (lib) +Completed lobemo-backend-trace-forwarder-0.1.0.0 (lib) +Completed lobemo-backend-monitoring-0.1.0.3 (lib) +Installing ouroboros-network-api-0.14.1.0 (lib) +Installing lobemo-backend-ekg-0.2.0.1 (lib) +Completed ouroboros-network-api-0.14.1.0 (lib) +Starting ouroboros-network-mock-0.1.1.2 (lib) +Starting ouroboros-network-protocols-0.14.0.2 (lib) +Starting ouroboros-network-framework-0.18.0.2 (lib) +Completed lobemo-backend-ekg-0.2.0.1 (lib) +Building ouroboros-network-protocols-0.14.0.2 (lib) +Building ouroboros-network-mock-0.1.1.2 (lib) +Building ouroboros-network-framework-0.18.0.2 (lib) +Installing ouroboros-network-mock-0.1.1.2 (lib) +Completed ouroboros-network-mock-0.1.1.2 (lib) +Installing ouroboros-network-protocols-0.14.0.2 (lib) +Completed ouroboros-network-protocols-0.14.0.2 (lib) +Installing cardano-crypto-tests-2.2.1.0 (lib) +Completed cardano-crypto-tests-2.2.1.0 (lib) +Installing ouroboros-network-framework-0.18.0.2 (lib) +Completed ouroboros-network-framework-0.18.0.2 (lib) +Configuring library for trace-forward-2.2.11... +Starting ekg-forward-0.9 (lib) +Starting ouroboros-network-0.21.3.0 (lib) +Building ekg-forward-0.9 (lib) +Building ouroboros-network-0.21.3.0 (lib) +Preprocessing library for trace-forward-2.2.11... +Building library for trace-forward-2.2.11... +[ 1 of 16] Compiling Trace.Forward.Protocol.DataPoint.Type ( src/Trace/Forward/Protocol/DataPoint/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Type.dyn_o ) +[ 2 of 16] Compiling Trace.Forward.Protocol.DataPoint.Forwarder ( src/Trace/Forward/Protocol/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Forwarder.dyn_o ) +[ 3 of 16] Compiling Trace.Forward.Protocol.DataPoint.Codec ( src/Trace/Forward/Protocol/DataPoint/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Codec.dyn_o ) +[ 4 of 16] Compiling Trace.Forward.Protocol.DataPoint.Acceptor ( src/Trace/Forward/Protocol/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/DataPoint/Acceptor.dyn_o ) +[ 5 of 16] Compiling Trace.Forward.Configuration.DataPoint ( src/Trace/Forward/Configuration/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Configuration/DataPoint.dyn_o ) +[ 6 of 16] Compiling Trace.Forward.Protocol.TraceObject.Type ( src/Trace/Forward/Protocol/TraceObject/Type.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Type.dyn_o ) +[ 7 of 16] Compiling Trace.Forward.Protocol.TraceObject.Forwarder ( src/Trace/Forward/Protocol/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Forwarder.dyn_o ) +[ 8 of 16] Compiling Trace.Forward.Protocol.TraceObject.Codec ( src/Trace/Forward/Protocol/TraceObject/Codec.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Codec.dyn_o ) +[ 9 of 16] Compiling Trace.Forward.Protocol.TraceObject.Acceptor ( src/Trace/Forward/Protocol/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Protocol/TraceObject/Acceptor.dyn_o ) +[10 of 16] Compiling Trace.Forward.Configuration.TraceObject ( src/Trace/Forward/Configuration/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Configuration/TraceObject.dyn_o ) +[11 of 16] Compiling Trace.Forward.Utils.DataPoint ( src/Trace/Forward/Utils/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Utils/DataPoint.dyn_o ) +[12 of 16] Compiling Trace.Forward.Run.DataPoint.Forwarder ( src/Trace/Forward/Run/DataPoint/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Forwarder.dyn_o ) +[13 of 16] Compiling Trace.Forward.Run.DataPoint.Acceptor ( src/Trace/Forward/Run/DataPoint/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Run/DataPoint/Acceptor.dyn_o ) +[14 of 16] Compiling Trace.Forward.Utils.TraceObject ( src/Trace/Forward/Utils/TraceObject.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Utils/TraceObject.dyn_o ) +[15 of 16] Compiling Trace.Forward.Run.TraceObject.Forwarder ( src/Trace/Forward/Run/TraceObject/Forwarder.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Forwarder.dyn_o ) +[16 of 16] Compiling Trace.Forward.Run.TraceObject.Acceptor ( src/Trace/Forward/Run/TraceObject/Acceptor.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-forward-2.2.11/build/Trace/Forward/Run/TraceObject/Acceptor.dyn_o ) +Installing ekg-forward-0.9 (lib) +Completed ekg-forward-0.9 (lib) +Installing Cabal-3.14.2.0 (lib) +Completed Cabal-3.14.2.0 (lib) +Starting entropy-0.4.1.11 (all, legacy fallback: build-type is Custom) +Building entropy-0.4.1.11 (all, legacy fallback: build-type is Custom) +Installing entropy-0.4.1.11 (all, legacy fallback: build-type is Custom) +Completed entropy-0.4.1.11 (all, legacy fallback: build-type is Custom) +Starting uuid-1.3.16 (lib) +Building uuid-1.3.16 (lib) +Installing uuid-1.3.16 (lib) +Completed uuid-1.3.16 (lib) +Starting libsystemd-journal-1.4.6.0 (lib) +Installing ouroboros-network-0.21.3.0 (lib) +Building libsystemd-journal-1.4.6.0 (lib) +Completed ouroboros-network-0.21.3.0 (lib) +Configuring library for trace-dispatcher-2.9.2... +Preprocessing library for trace-dispatcher-2.9.2... +Building library for trace-dispatcher-2.9.2... +[ 1 of 26] Compiling Cardano.Logging.Prometheus.Exposition ( src/Cardano/Logging/Prometheus/Exposition.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/Exposition.dyn_o ) +[ 2 of 26] Compiling Cardano.Logging.Types.NodeInfo ( src/Cardano/Logging/Types/NodeInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeInfo.dyn_o ) +Installing libsystemd-journal-1.4.6.0 (lib) +[ 3 of 26] Compiling Cardano.Logging.Types.NodePeers ( src/Cardano/Logging/Types/NodePeers.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodePeers.dyn_o ) +Completed libsystemd-journal-1.4.6.0 (lib) +Starting lobemo-scribe-systemd-0.1.0.0 (lib) +[ 4 of 26] Compiling Cardano.Logging.Types.NodeStartupInfo ( src/Cardano/Logging/Types/NodeStartupInfo.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Types/NodeStartupInfo.dyn_o ) +[ 5 of 26] Compiling Cardano.Logging.Version ( src/Cardano/Logging/Version.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Version.dyn_o ) +[ 6 of 26] Compiling Control.Tracer.Arrow ( src/Control/Tracer/Arrow.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Control/Tracer/Arrow.dyn_o ) +[ 7 of 26] Compiling Control.Tracer ( src/Control/Tracer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Control/Tracer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Control/Tracer.dyn_o ) +[ 8 of 26] Compiling Cardano.Logging.Utils ( src/Cardano/Logging/Utils.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Utils.dyn_o ) +[ 9 of 26] Compiling Cardano.Logging.Prometheus.NetworkRun ( src/Cardano/Logging/Prometheus/NetworkRun.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/NetworkRun.dyn_o ) +Building lobemo-scribe-systemd-0.1.0.0 (lib) +[10 of 26] Compiling Cardano.Logging.Prometheus.TCPServer ( src/Cardano/Logging/Prometheus/TCPServer.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Prometheus/TCPServer.dyn_o ) +[11 of 26] Compiling Cardano.Logging.Types ( src/Cardano/Logging/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Types.dyn_o ) +Installing lobemo-scribe-systemd-0.1.0.0 (lib) +Completed lobemo-scribe-systemd-0.1.0.0 (lib) +[12 of 26] Compiling Cardano.Logging.Forwarding ( src/Cardano/Logging/Forwarding.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Forwarding.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Forwarding.dyn_o ) +[13 of 26] Compiling Cardano.Logging.ConfigurationParser ( src/Cardano/Logging/ConfigurationParser.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/ConfigurationParser.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/ConfigurationParser.dyn_o ) +[14 of 26] Compiling Cardano.Logging.TraceDispatcherMessage ( src/Cardano/Logging/TraceDispatcherMessage.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/TraceDispatcherMessage.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/TraceDispatcherMessage.dyn_o ) +[15 of 26] Compiling Cardano.Logging.Consistency ( src/Cardano/Logging/Consistency.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Consistency.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Consistency.dyn_o ) +[16 of 26] Compiling Cardano.Logging.Trace ( src/Cardano/Logging/Trace.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Trace.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Trace.dyn_o ) +[17 of 26] Compiling Cardano.Logging.FrequencyLimiter ( src/Cardano/Logging/FrequencyLimiter.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/FrequencyLimiter.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/FrequencyLimiter.dyn_o ) +[18 of 26] Compiling Cardano.Logging.Formatter ( src/Cardano/Logging/Formatter.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Formatter.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Formatter.dyn_o ) +[19 of 26] Compiling Cardano.Logging.DocuGenerator ( src/Cardano/Logging/DocuGenerator.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/DocuGenerator.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/DocuGenerator.dyn_o ) +[20 of 26] Compiling Cardano.Logging.Tracer.Standard ( src/Cardano/Logging/Tracer/Standard.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Standard.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Standard.dyn_o ) +[21 of 26] Compiling Cardano.Logging.Tracer.Forward ( src/Cardano/Logging/Tracer/Forward.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Forward.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Forward.dyn_o ) +[22 of 26] Compiling Cardano.Logging.Tracer.EKG ( src/Cardano/Logging/Tracer/EKG.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/EKG.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/EKG.dyn_o ) +[23 of 26] Compiling Cardano.Logging.Tracer.DataPoint ( src/Cardano/Logging/Tracer/DataPoint.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/DataPoint.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/DataPoint.dyn_o ) +[24 of 26] Compiling Cardano.Logging.Configuration ( src/Cardano/Logging/Configuration.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Configuration.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Configuration.dyn_o ) +[25 of 26] Compiling Cardano.Logging.Tracer.Composed ( src/Cardano/Logging/Tracer/Composed.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Composed.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging/Tracer/Composed.dyn_o ) +[26 of 26] Compiling Cardano.Logging ( src/Cardano/Logging.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-dispatcher-2.9.2/build/Cardano/Logging.dyn_o ) +Configuring library for trace-resources-0.2.3... +Preprocessing library for trace-resources-0.2.3... +Building library for trace-resources-0.2.3... +[1 of 4] Compiling Cardano.Logging.Resources.Types ( src/Cardano/Logging/Resources/Types.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-resources-0.2.3/build/Cardano/Logging/Resources/Types.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-resources-0.2.3/build/Cardano/Logging/Resources/Types.dyn_o ) +[2 of 4] Compiling Cardano.Logging.Resources.Linux ( src/Cardano/Logging/Resources/Linux.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-resources-0.2.3/build/Cardano/Logging/Resources/Linux.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-resources-0.2.3/build/Cardano/Logging/Resources/Linux.dyn_o ) +[3 of 4] Compiling Cardano.Logging.Resources.Dummy ( src/Cardano/Logging/Resources/Dummy.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-resources-0.2.3/build/Cardano/Logging/Resources/Dummy.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-resources-0.2.3/build/Cardano/Logging/Resources/Dummy.dyn_o ) +[4 of 4] Compiling Cardano.Logging.Resources ( src/Cardano/Logging/Resources.hs, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-resources-0.2.3/build/Cardano/Logging/Resources.o, /home/ch1bo/code/iog/cardano-node/dist-newstyle/build/x86_64-linux/ghc-9.8.4/trace-resources-0.2.3/build/Cardano/Logging/Resources.dyn_o ) +Installing plutus-core-1.45.0.0 (lib) +Completed plutus-core-1.45.0.0 (lib) +Starting plutus-core-1.45.0.0 (lib:plutus-ir) +Building plutus-core-1.45.0.0 (lib:plutus-ir) +Installing plutus-core-1.45.0.0 (lib:plutus-ir) +Completed plutus-core-1.45.0.0 (lib:plutus-ir) +Starting plutus-tx-1.45.0.0 (lib) +Starting plutus-core-1.45.0.0 (lib:plutus-core-testlib) +Building plutus-tx-1.45.0.0 (lib) +Building plutus-core-1.45.0.0 (lib:plutus-core-testlib) +Installing plutus-core-1.45.0.0 (lib:plutus-core-testlib) +Completed plutus-core-1.45.0.0 (lib:plutus-core-testlib) +Installing plutus-tx-1.45.0.0 (lib) +Completed plutus-tx-1.45.0.0 (lib) +Starting plutus-ledger-api-1.45.0.0 (lib) +Building plutus-ledger-api-1.45.0.0 (lib) +Installing plutus-ledger-api-1.45.0.0 (lib) +Completed plutus-ledger-api-1.45.0.0 (lib) +Starting cardano-ledger-binary-1.6.0.0 (lib) +Starting plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) +Building cardano-ledger-binary-1.6.0.0 (lib) +Building plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) +Installing plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) +Completed plutus-ledger-api-1.45.0.0 (lib:plutus-ledger-api-testlib) +Installing cardano-ledger-binary-1.6.0.0 (lib) +Completed cardano-ledger-binary-1.6.0.0 (lib) +Starting cardano-data-1.2.4.0 (lib) +Starting cardano-ledger-binary-1.6.0.0 (lib:testlib) +Starting cardano-crypto-wrapper-1.6.0.0 (lib) +Building cardano-data-1.2.4.0 (lib) +Building cardano-crypto-wrapper-1.6.0.0 (lib) +Building cardano-ledger-binary-1.6.0.0 (lib:testlib) +Installing cardano-data-1.2.4.0 (lib) +Completed cardano-data-1.2.4.0 (lib) +Starting set-algebra-1.1.0.3 (lib) +Installing cardano-ledger-binary-1.6.0.0 (lib:testlib) +Installing cardano-crypto-wrapper-1.6.0.0 (lib) +Completed cardano-ledger-binary-1.6.0.0 (lib:testlib) +Starting small-steps-1.1.1.0 (lib:testlib) +Building set-algebra-1.1.0.3 (lib) +Completed cardano-crypto-wrapper-1.6.0.0 (lib) +Starting cardano-crypto-test-1.6.0.0 (lib) +Starting cardano-ledger-byron-1.1.0.0 (lib) +Building small-steps-1.1.1.0 (lib:testlib) +Building cardano-ledger-byron-1.1.0.0 (lib) +Building cardano-crypto-test-1.6.0.0 (lib) +Installing set-algebra-1.1.0.3 (lib) +Completed set-algebra-1.1.0.3 (lib) +Installing cardano-crypto-test-1.6.0.0 (lib) +Installing small-steps-1.1.1.0 (lib:testlib) +Completed cardano-crypto-test-1.6.0.0 (lib) +Completed small-steps-1.1.1.0 (lib:testlib) +Starting byron-spec-ledger-1.1.0.0 (lib) +Building byron-spec-ledger-1.1.0.0 (lib) +Installing byron-spec-ledger-1.1.0.0 (lib) +Completed byron-spec-ledger-1.1.0.0 (lib) +Starting byron-spec-chain-1.0.1.0 (lib) +Building byron-spec-chain-1.0.1.0 (lib) +Installing cardano-ledger-byron-1.1.0.0 (lib) +Completed cardano-ledger-byron-1.1.0.0 (lib) +Starting cardano-ledger-core-1.17.0.0 (lib) +Installing byron-spec-chain-1.0.1.0 (lib) +Building cardano-ledger-core-1.17.0.0 (lib) +Completed byron-spec-chain-1.0.1.0 (lib) +Starting cardano-ledger-byron-test-1.5.2.1 (lib) +Building cardano-ledger-byron-test-1.5.2.1 (lib) +Installing cardano-ledger-byron-test-1.5.2.1 (lib) +Completed cardano-ledger-byron-test-1.5.2.1 (lib) +Installing cardano-ledger-core-1.17.0.0 (lib) +Completed cardano-ledger-core-1.17.0.0 (lib) +Starting cardano-ledger-shelley-1.16.0.0 (lib) +Starting cardano-ledger-core-1.17.0.0 (lib:testlib) +Starting ouroboros-consensus-0.27.0.0 (lib) +Building cardano-ledger-shelley-1.16.0.0 (lib) +Building ouroboros-consensus-0.27.0.0 (lib) +Building cardano-ledger-core-1.17.0.0 (lib:testlib) +Installing cardano-ledger-core-1.17.0.0 (lib:testlib) +Completed cardano-ledger-core-1.17.0.0 (lib:testlib) diff --git a/bench/plutus-scripts-bench/plutus-scripts-bench.cabal b/bench/plutus-scripts-bench/plutus-scripts-bench.cabal index acee503164a..c32261c34f8 100644 --- a/bench/plutus-scripts-bench/plutus-scripts-bench.cabal +++ b/bench/plutus-scripts-bench/plutus-scripts-bench.cabal @@ -82,7 +82,7 @@ library -- IOG dependencies -------------------------- build-depends: - , cardano-api ^>=11.0 + , cardano-api ^>= 11.0 || ^>= 11.1 , plutus-ledger-api ^>=1.63 , plutus-tx ^>=1.63 , plutus-tx-plugin ^>=1.63 diff --git a/bench/tx-generator/tx-generator.cabal b/bench/tx-generator/tx-generator.cabal index f7ced513cb4..d12045ff876 100644 --- a/bench/tx-generator/tx-generator.cabal +++ b/bench/tx-generator/tx-generator.cabal @@ -109,9 +109,9 @@ library , attoparsec-aeson , base16-bytestring , bytestring - , cardano-api ^>= 11.0 + , cardano-api ^>= 11.0 || ^>= 11.1 , cardano-binary - , cardano-cli ^>= 11.0 + , cardano-cli ^>= 11.0 || ^>= 11.1 , cardano-crypto-class , cardano-crypto-wrapper , cardano-data diff --git a/cardano-node-chairman/cardano-node-chairman.cabal b/cardano-node-chairman/cardano-node-chairman.cabal index 09db99a60e3..9906e62277e 100644 --- a/cardano-node-chairman/cardano-node-chairman.cabal +++ b/cardano-node-chairman/cardano-node-chairman.cabal @@ -86,5 +86,5 @@ test-suite chairman-tests ghc-options: -threaded -rtsopts "-with-rtsopts=-N -T" build-tool-depends: cardano-node:cardano-node - , cardano-cli:cardano-cli ^>= 11.0 + , cardano-cli:cardano-cli ^>= 11.0 || ^>= 11.1 , cardano-node-chairman:cardano-node-chairman diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index 81c5aad8b70..7dd92682cee 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -138,7 +138,7 @@ library , async , base16-bytestring , bytestring - , cardano-api ^>= 11.0 + , cardano-api ^>= 11.0 || ^>= 11.1 , cardano-data , cardano-crypto-class ^>=2.3 , cardano-crypto-wrapper @@ -186,8 +186,8 @@ library , network-mux >= 0.8 , nothunks , optparse-applicative - , ouroboros-consensus:{ouroboros-consensus, lsm, cardano, diffusion, protocol} ^>= 3.0.1 - , ouroboros-network:{api, ouroboros-network, orphan-instances, framework, protocols, tracing} ^>= 1.1 + , ouroboros-consensus:{ouroboros-consensus, lmdb, lsm, cardano, diffusion, protocol} ^>= 3.0.1 + , ouroboros-network:{api, ouroboros-network, orphan-instances, framework, framework-tracing, protocols, tracing} ^>= 1.1 , cardano-diffusion:{api, cardano-diffusion, orphan-instances, tracing} ^>=1.0 , prettyprinter , prettyprinter-ansi-terminal diff --git a/cardano-node/src/Cardano/Node/Orphans.hs b/cardano-node/src/Cardano/Node/Orphans.hs index fdbde6766be..d101edcf444 100644 --- a/cardano-node/src/Cardano/Node/Orphans.hs +++ b/cardano-node/src/Cardano/Node/Orphans.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE DataKinds #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} @@ -16,9 +17,19 @@ import Cardano.Api (FromCBOR (..), HasTextEnvelope (..), HasTypeProxy import qualified Cardano.Crypto.KES.Class as Crypto import Cardano.Protocol.Crypto (KES, StandardCrypto) import Ouroboros.Consensus.Node +import Ouroboros.Consensus.Byron.Ledger.Block (ByronBlock) +import Ouroboros.Consensus.HardFork.Combinator (HardForkBlock) import Ouroboros.Consensus.Node.Genesis (GenesisConfigFlags (..)) +import Ouroboros.Consensus.Protocol.Praos (Praos) import Ouroboros.Consensus.Protocol.Praos.Common (PraosCredentialsSource (..)) +import Ouroboros.Consensus.Protocol.TPraos (TPraos) +import Ouroboros.Consensus.Shelley.HFEras () +import Ouroboros.Consensus.Shelley.ShelleyHFC (ShelleyBlockHFC) +import Ouroboros.Consensus.Storage.LedgerDB.Forker (ResolveLeiosBlock) import Ouroboros.Consensus.Storage.LedgerDB.Snapshots (Flag (..)) +import Cardano.Ledger.Api.Era + (AllegraEra, AlonzoEra, BabbageEra, ConwayEra, + MaryEra, ShelleyEra) import Ouroboros.Network.SizeInBytes (SizeInBytes (..)) import Data.Aeson.Types @@ -83,3 +94,14 @@ instance HasTextEnvelope (PraosCredentialsSource StandardCrypto) where textEnvelopeType _ = "PraosCredentialsSource_" <> fromString (Crypto.algorithmNameKES (Proxy @(KES StandardCrypto))) + +-- 'ResolveLeiosBlock' instances for the HFC-wrapped 'ByronBlock' and per-era +-- 'ShelleyBlockHFC'. These use the class default (no-op resolution), since +-- only the Cardano 'HardForkBlock' carries the Dijkstra-era EB closure splice. +instance ResolveLeiosBlock (HardForkBlock '[ByronBlock]) +instance ResolveLeiosBlock (ShelleyBlockHFC (TPraos c) ShelleyEra) +instance ResolveLeiosBlock (ShelleyBlockHFC (TPraos c) AllegraEra) +instance ResolveLeiosBlock (ShelleyBlockHFC (TPraos c) MaryEra) +instance ResolveLeiosBlock (ShelleyBlockHFC (TPraos c) AlonzoEra) +instance ResolveLeiosBlock (ShelleyBlockHFC (Praos c) BabbageEra) +instance ResolveLeiosBlock (ShelleyBlockHFC (Praos c) ConwayEra) diff --git a/cardano-node/src/Cardano/Node/Protocol/Types.hs b/cardano-node/src/Cardano/Node/Protocol/Types.hs index e45bba24132..8aa3fdc23ce 100644 --- a/cardano-node/src/Cardano/Node/Protocol/Types.hs +++ b/cardano-node/src/Cardano/Node/Protocol/Types.hs @@ -16,6 +16,7 @@ import qualified Cardano.Api as Api import Cardano.Node.Orphans () import Cardano.Node.Queries (HasKESInfo, HasKESMetricsData) import Cardano.Node.TraceConstraints (TraceConstraints) +import qualified Ouroboros.Consensus.Storage.LedgerDB.Forker import Ouroboros.Network.Block (HeaderHash) import Control.DeepSeq (NFData) @@ -48,6 +49,7 @@ data SomeConsensusProtocol where , TraceConstraints blk , Api.ToCBOR (HeaderHash blk) , Api.FromCBOR (HeaderHash blk) + , Ouroboros.Consensus.Storage.LedgerDB.Forker.ResolveLeiosBlock blk ) => Api.BlockType blk -> Api.ProtocolInfoArgs blk diff --git a/cardano-node/src/Cardano/Node/Run.hs b/cardano-node/src/Cardano/Node/Run.hs index 5298d926c9d..c6847eb50b5 100644 --- a/cardano-node/src/Cardano/Node/Run.hs +++ b/cardano-node/src/Cardano/Node/Run.hs @@ -85,6 +85,7 @@ import Ouroboros.Consensus.Node.NetworkProtocolVersion import Ouroboros.Consensus.Node.ProtocolInfo import qualified Ouroboros.Consensus.Node.Tracers as Consensus import qualified Ouroboros.Consensus.Storage.LedgerDB.Args as LDBArgs +import qualified Ouroboros.Consensus.Storage.LedgerDB.Forker import Ouroboros.Consensus.Util.Args import Ouroboros.Consensus.Util.Orphans () @@ -395,6 +396,7 @@ handlePeersListSimple tr nodeKern = forever $ do handleSimpleNode :: forall blk . ( Api.Protocol IO blk + , Ouroboros.Consensus.Storage.LedgerDB.Forker.ResolveLeiosBlock blk ) => Api.BlockType blk -> Api.ProtocolInfoArgs blk diff --git a/cardano-node/src/Cardano/Node/Tracing/Consistency.hs b/cardano-node/src/Cardano/Node/Tracing/Consistency.hs index b611c07fc90..b35882b22c2 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Consistency.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Consistency.hs @@ -97,6 +97,12 @@ import Ouroboros.Network.Tracing.PeerSelection () import Ouroboros.Network.TxSubmission.Inbound.V2 (TraceTxSubmissionInbound) import Ouroboros.Network.TxSubmission.Outbound (TraceTxSubmissionOutbound) +import qualified LeiosDemoOnlyTestFetch as LF +import qualified LeiosDemoOnlyTestNotify as LN +import LeiosDemoTypes (LeiosEb, LeiosPoint, LeiosTx, LeiosVote, + TraceLeiosKernel, TraceLeiosPeer) +import Network.TypedProtocol.Codec (AnyMessage) + import qualified Codec.CBOR.Term as CBOR import qualified Data.Text as T import qualified Network.Mux as Mux @@ -207,6 +213,10 @@ getAllNamespaces = (allNamespaces :: [Namespace (Jumping.TraceEventCsj peer blk)]) dbfNS = map (nsGetTuple . nsReplacePrefix ["Consensus", "DevotedBlockFetch"]) (allNamespaces :: [Namespace (Jumping.TraceEventDbf peer)]) + leiosKernelNS = map (nsGetTuple . nsReplacePrefix ["Consensus", "LeiosKernel"]) + (allNamespaces :: [Namespace TraceLeiosKernel]) + leiosPeerNS = map (nsGetTuple . nsReplacePrefix ["Consensus", "LeiosPeer"]) + (allNamespaces :: [Namespace TraceLeiosPeer]) -- Node to client keepAliveClientNS = map (nsGetTuple . nsReplacePrefix ["Net"]) @@ -263,6 +273,14 @@ getAllNamespaces = (BlockFetch.TraceLabelPeer peer (TraceSendRecv (TxSubmission2 (GenTxId blk) (GenTx blk))))]) + leiosNotifyNS = map (nsGetTuple . nsReplacePrefix + ["LeiosNotify", "Remote"]) + (allNamespaces :: [Namespace + (AnyMessage (LN.LeiosNotify LeiosPoint () LeiosVote))]) + leiosFetchNS = map (nsGetTuple . nsReplacePrefix + ["LeiosFetch", "Remote"]) + (allNamespaces :: [Namespace + (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx))]) -- Diffusion @@ -414,6 +432,8 @@ getAllNamespaces = <> gsmNS <> csjNS <> dbfNS + <> leiosKernelNS + <> leiosPeerNS -- NodeToClient <> keepAliveClientNS <> chainSyncNS @@ -426,6 +446,8 @@ getAllNamespaces = <> blockFetchNS <> blockFetchSerialisedNS <> txSubmission2NS + <> leiosNotifyNS + <> leiosFetchNS -- Diffusion <> dtMuxNS <> dtMuxBearerNS diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs index b3a24a9f034..fb628bebe74 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs @@ -351,6 +351,16 @@ mkConsensusTracers configReflection trBase trForward mbTrEKG _trDataPoint trConf ["txCounters", "Remote"] configureTracers configReflection trConfig [txCountersTracer] + !leiosKernelTr <- mkCardanoTracer + trBase trForward mbTrEKG + ["Consensus", "LeiosKernel"] + configureTracers configReflection trConfig [leiosKernelTr] + + !leiosPeerTr <- mkCardanoTracer + trBase trForward mbTrEKG + ["Consensus", "LeiosPeer"] + configureTracers configReflection trConfig [leiosPeerTr] + pure $ Consensus.Tracers { Consensus.chainSyncClientTracer = Tracer $ traceWith chainSyncClientTr @@ -403,6 +413,10 @@ mkConsensusTracers configReflection trBase trForward mbTrEKG _trDataPoint trConf traceWith txLogicTracer , Consensus.txCountersTracer = Tracer $ traceWith txCountersTracer + , Consensus.leiosKernelTracer = Tracer $ + traceWith leiosKernelTr + , Consensus.leiosPeerTracer = Tracer $ + traceWith leiosPeerTr } mkNodeToClientTracers :: forall blk. @@ -502,6 +516,16 @@ mkNodeToNodeTracers configReflection trBase trForward mbTrEKG _trDataPoint trCon ["txLogic", "Remote"] configureTracers configReflection trConfig [txLogicTracer] + !leiosNotifyTracer <- mkCardanoTracer + trBase trForward mbTrEKG + ["LeiosNotify", "Remote"] + configureTracers configReflection trConfig [leiosNotifyTracer] + + !leiosFetchTracer <- mkCardanoTracer + trBase trForward mbTrEKG + ["LeiosFetch", "Remote"] + configureTracers configReflection trConfig [leiosFetchTracer] + pure $ NtN.Tracers { NtN.tChainSyncTracer = Tracer $ traceWith chainSyncTracer @@ -519,6 +543,10 @@ mkNodeToNodeTracers configReflection trBase trForward mbTrEKG _trDataPoint trCon traceWith peerSharingTracer , NtN.tTxLogicTracer = Tracer $ traceWith txLogicTracer + , NtN.tLeiosNotifyTracer = Tracer $ + traceWith leiosNotifyTracer + , NtN.tLeiosFetchTracer = Tracer $ + traceWith leiosFetchTracer } mkDiffusionTracers :: diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 73441a77393..594138ba4e9 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -45,7 +45,9 @@ 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, TxMeasureMetrics (..), txForgetValidated, txId) +import LeiosDemoTypes (TraceLeiosKernel (..), TraceLeiosPeer (..), leiosEbTxs, + traceLeiosKernelToObject, traceLeiosPeerToObject) import Ouroboros.Consensus.Ledger.SupportsProtocol import Ouroboros.Consensus.Mempool (MempoolRejectionDetails (..), MempoolSize (..), TraceEventMempool (..), jsonMempoolRejectionDetails) @@ -2305,3 +2307,71 @@ instance MetaTrace KESAgentClientTrace where allNamespaces = Namespace [] ["KESAgentClientException"] : fmap nsCast (allNamespaces :: [Namespace Agent.ServiceClientTrace]) + +-------------------------------------------------------------------------------- +-- Consensus.LeiosKernel / Consensus.LeiosPeer +-- +-- Delegate to the compact 'traceLeios*ToObject' helpers from +-- 'LeiosDemoTypes' so we get structured per-event objects instead of dumping +-- the derived 'Show'. +-------------------------------------------------------------------------------- + +instance LogFormatting TraceLeiosKernel where + forHuman = showT + forMachine _dtal = traceLeiosKernelToObject + + asMetrics TraceLeiosBlockForged{eb, ebMeasure} = + [ CounterM "Forge.endorser-block.total-count" Nothing + , CounterM "Forge.endorser-block.total-tx-count" + (Just . fromIntegral . length $ leiosEbTxs eb) + , CounterM "Forge.endorser-block.total-tx-bytes" + (Just . fromInteger . toInteger . unByteSize32 + . txMeasureMetricTxSizeBytes $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-xu-memory" + (Just . fromInteger . toInteger + . txMeasureMetricExUnitsMemory $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-xu-time" + (Just . fromInteger . toInteger + . txMeasureMetricExUnitsSteps $ ebMeasure) + , CounterM "Forge.endorser-block.total-tx-ref-script-size-bytes" + (Just . fromInteger . toInteger . unByteSize32 + . txMeasureMetricRefScriptsSizeBytes $ ebMeasure) + ] + asMetrics _ = [] + +instance MetaTrace TraceLeiosKernel where + namespaceFor _ = Namespace [] ["TraceLeiosKernel"] + + severityFor _ (Just TraceLeiosDbException{}) = Just Error + severityFor _ _ = Just Debug + + documentFor _ = Nothing + allNamespaces = [Namespace [] ["TraceLeiosKernel"]] + + metricsDocFor _ = + [ ("Forge.endorser-block.total-count", + "Counter of forged endorser blocks") + , ("Forge.endorser-block.total-tx-count", + "Total number of transactions in the forged endorser block") + , ("Forge.endorser-block.total-tx-bytes", + "Total transaction bytes in the forged endorser block") + , ("Forge.endorser-block.total-tx-xu-memory", + "Total execution units (memory) in the forged endorser block") + , ("Forge.endorser-block.total-tx-xu-time", + "Total execution units (time) in the forged endorser block") + , ("Forge.endorser-block.total-tx-ref-script-size-bytes", + "Total reference script size bytes in the forged endorser block") + ] + +instance LogFormatting TraceLeiosPeer where + forHuman = showT + forMachine _dtal = traceLeiosPeerToObject + +instance MetaTrace TraceLeiosPeer where + namespaceFor _ = Namespace [] ["TraceLeiosPeer"] + + severityFor _ (Just TraceLeiosPeerDbException{}) = Just Error + severityFor _ _ = Just Debug + + documentFor _ = Nothing + allNamespaces = [Namespace [] ["TraceLeiosPeer"]] diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs index b84f9f7299e..4896ac27de3 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToClient.hs @@ -18,145 +18,15 @@ import qualified Ouroboros.Network.Protocol.LocalTxMonitor.Type as LTM import qualified Ouroboros.Network.Protocol.LocalTxSubmission.Type as LTS import Ouroboros.Network.Tracing () -import Data.Aeson (Value (String), (.=), (.?=)) +import Data.Aeson (Value (String), (.=)) import Data.Text (Text, pack) import qualified Network.TypedProtocol.Codec as Simple import qualified Network.TypedProtocol.Stateful.Codec as Stateful {-# ANN module ("HLint: ignore Redundant bracket" :: Text) #-} -instance LogFormatting (Simple.AnyMessage ps) - => LogFormatting (Simple.TraceSendRecv ps) where - forMachine dtal (Simple.TraceSendMsg tm m) = mconcat - [ "kind" .= String "Send" , "msg" .= forMachine dtal m, "tm" .= String (pack $ show tm) ] - forMachine dtal (Simple.TraceRecvMsg mbTm m) = mconcat - [ "kind" .= String "Recv" , "msg" .= forMachine dtal m, "tm" .?= fmap (String . pack . show) mbTm ] - - forHuman (Simple.TraceSendMsg _tm m) = "Send: " <> forHumanOrMachine m - forHuman (Simple.TraceRecvMsg _mbTm m) = "Receive: " <> forHumanOrMachine m - - asMetrics (Simple.TraceSendMsg _tm m) = asMetrics m - asMetrics (Simple.TraceRecvMsg _mbTm m) = asMetrics m - -instance LogFormatting (Stateful.AnyMessage ps f) - => LogFormatting (Stateful.TraceSendRecv ps f) where - forMachine dtal (Stateful.TraceSendMsg tm m) = mconcat - [ "kind" .= String "Send" , "msg" .= forMachine dtal m, "tm" .= String (pack $ show tm) ] - forMachine dtal (Stateful.TraceRecvMsg mbTm m) = mconcat - [ "kind" .= String "Recv" , "msg" .= forMachine dtal m, "tm" .?= fmap (String . pack . show) mbTm ] - - forHuman (Stateful.TraceSendMsg _tm m) = "Send: " <> forHumanOrMachine m - forHuman (Stateful.TraceRecvMsg _mbTm m) = "Receive: " <> forHumanOrMachine m - - asMetrics (Stateful.TraceSendMsg _tm m) = asMetrics m - asMetrics (Stateful.TraceRecvMsg _mbTm m) = asMetrics m - -instance MetaTrace (Simple.AnyMessage ps) => - MetaTrace (Simple.TraceSendRecv ps) where - namespaceFor (Simple.TraceSendMsg _tm msg) = - nsPrependInner "Send" (namespaceFor msg) - namespaceFor (Simple.TraceRecvMsg _mbTm msg) = - nsPrependInner "Receive" (namespaceFor msg) - - severityFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = - severityFor (Namespace out tl) (Just msg) - severityFor (Namespace out ("Send" : tl)) Nothing = - severityFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing - severityFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = - severityFor (Namespace out tl) (Just msg) - severityFor (Namespace out ("Receive" : tl)) Nothing = - severityFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing - severityFor _ _ = Nothing - - privacyFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = - privacyFor (Namespace out tl) (Just msg) - privacyFor (Namespace out ("Send" : tl)) Nothing = - privacyFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing - privacyFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = - privacyFor (Namespace out tl) (Just msg) - privacyFor (Namespace out ("Receive" : tl)) Nothing = - privacyFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing - privacyFor _ _ = Nothing - - detailsFor (Namespace out ("Send" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = - detailsFor (Namespace out tl) (Just msg) - detailsFor (Namespace out ("Send" : tl)) Nothing = - detailsFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing - detailsFor (Namespace out ("Receive" : tl)) (Just (Simple.TraceSendMsg _tm msg)) = - detailsFor (Namespace out tl) (Just msg) - detailsFor (Namespace out ("Receive" : tl)) Nothing = - detailsFor (Namespace out tl :: Namespace (Simple.AnyMessage ps)) Nothing - detailsFor _ _ = Nothing - - metricsDocFor (Namespace out ("Send" : tl)) = - metricsDocFor (nsCast (Namespace out tl) :: Namespace (Simple.AnyMessage ps)) - metricsDocFor (Namespace out ("Receive" : tl)) = - metricsDocFor (nsCast (Namespace out tl) :: Namespace (Simple.AnyMessage ps)) - metricsDocFor _ = [] - - documentFor (Namespace out ("Send" : tl)) = - documentFor (nsCast (Namespace out tl) :: Namespace (Simple.AnyMessage ps)) - documentFor (Namespace out ("Receive" : tl)) = - documentFor (nsCast (Namespace out tl) :: Namespace (Simple.AnyMessage ps)) - documentFor _ = Nothing - - allNamespaces = - let cn = allNamespaces :: [Namespace (Simple.AnyMessage ps)] - in fmap (nsPrependInner "Send") cn ++ fmap (nsPrependInner "Receive") cn - -instance MetaTrace (Stateful.AnyMessage ps f) => - MetaTrace (Stateful.TraceSendRecv ps f) where - namespaceFor (Stateful.TraceSendMsg _tm msg) = - nsPrependInner "Send" (namespaceFor msg) - namespaceFor (Stateful.TraceRecvMsg _mbTm msg) = - nsPrependInner "Receive" (namespaceFor msg) - - severityFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = - severityFor (Namespace out tl) (Just msg) - severityFor (Namespace out ("Send" : tl)) Nothing = - severityFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing - severityFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = - severityFor (Namespace out tl) (Just msg) - severityFor (Namespace out ("Receive" : tl)) Nothing = - severityFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing - severityFor _ _ = Nothing - - privacyFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = - privacyFor (Namespace out tl) (Just msg) - privacyFor (Namespace out ("Send" : tl)) Nothing = - privacyFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing - privacyFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = - privacyFor (Namespace out tl) (Just msg) - privacyFor (Namespace out ("Receive" : tl)) Nothing = - privacyFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing - privacyFor _ _ = Nothing - - detailsFor (Namespace out ("Send" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = - detailsFor (Namespace out tl) (Just msg) - detailsFor (Namespace out ("Send" : tl)) Nothing = - detailsFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing - detailsFor (Namespace out ("Receive" : tl)) (Just (Stateful.TraceSendMsg _tm msg)) = - detailsFor (Namespace out tl) (Just msg) - detailsFor (Namespace out ("Receive" : tl)) Nothing = - detailsFor (Namespace out tl :: Namespace (Stateful.AnyMessage ps f)) Nothing - detailsFor _ _ = Nothing - - metricsDocFor (Namespace out ("Send" : tl)) = - metricsDocFor (nsCast (Namespace out tl) :: Namespace (Stateful.AnyMessage ps f)) - metricsDocFor (Namespace out ("Receive" : tl)) = - metricsDocFor (nsCast (Namespace out tl) :: Namespace (Stateful.AnyMessage ps f)) - metricsDocFor _ = [] - - documentFor (Namespace out ("Send" : tl)) = - documentFor (nsCast (Namespace out tl) :: Namespace (Stateful.AnyMessage ps f)) - documentFor (Namespace out ("Receive" : tl)) = - documentFor (nsCast (Namespace out tl) :: Namespace (Stateful.AnyMessage ps f)) - documentFor _ = Nothing - - allNamespaces = - let cn = allNamespaces :: [Namespace (Stateful.AnyMessage ps f)] - in fmap (nsPrependInner "Send") cn ++ fmap (nsPrependInner "Receive") cn - +-- 'LogFormatting' and 'MetaTrace' instances for 'Simple.TraceSendRecv' and +-- 'Stateful.TraceSendRecv' come from 'ouroboros-network:framework-tracing'. -- -------------------------------------------------------------------------------- -- -- TChainSync Tracer diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs index 1d38c3982cc..0fe3aad8b81 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/NodeToNode.hs @@ -15,6 +15,10 @@ module Cardano.Node.Tracing.Tracers.NodeToNode import Cardano.Logging import Cardano.Node.Queries (ConvertTxId) import Cardano.Node.Tracing.Render (renderHeaderHash, renderTxIdForDetails) +import qualified LeiosDemoOnlyTestFetch as LF +import qualified LeiosDemoOnlyTestNotify as LN +import LeiosDemoTypes (LeiosEb, LeiosPoint, LeiosTx, LeiosVote, + messageLeiosFetchToObject, messageLeiosNotifyToObject) import Ouroboros.Consensus.Block (ConvertRawHash, GetHeader, StandardHash, getHeader) import Ouroboros.Consensus.Ledger.SupportsMempool (GenTx, HasTxId, HasTxs, LedgerSupportsMempool, extractTxs, txId) @@ -462,3 +466,66 @@ instance MetaTrace (TraceKeepAliveClient remotePeer) where documentFor _ = Just "" allNamespaces = [Namespace [] ["KeepAliveClient"]] + +-------------------------------------------------------------------------------- +-- LeiosNotify / LeiosFetch tracers +-- +-- Delegate to the compact 'messageLeiosNotifyToObject' / 'messageLeiosFetchToObject' +-- helpers exported from 'LeiosDemoTypes' so MsgLeiosBlock(Txs) lines emit just +-- the metadata (kind / ebHash / ebSlot / sizes / counts) and not the full tx +-- CBOR payload that the derived 'Show' would dump. +-------------------------------------------------------------------------------- + +instance LogFormatting (AnyMessage (LN.LeiosNotify LeiosPoint () LeiosVote)) where + forHuman = showT + + forMachine _dtal (AnyMessageAndAgency _stok msg) = + messageLeiosNotifyToObject msg + +instance LogFormatting (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where + forHuman = showT + + forMachine _dtal (AnyMessageAndAgency _stok msg) = + messageLeiosFetchToObject msg + +instance MetaTrace (AnyMessage (LN.LeiosNotify LeiosPoint () LeiosVote)) where + namespaceFor (AnyMessageAndAgency _stok msg) = case msg of + LN.MsgLeiosNotificationRequestNext{} -> Namespace [] ["RequestNext"] + LN.MsgLeiosBlockAnnouncement{} -> Namespace [] ["BlockAnnouncement"] + LN.MsgLeiosBlockOffer{} -> Namespace [] ["BlockOffer"] + LN.MsgLeiosBlockTxsOffer{} -> Namespace [] ["BlockTxsOffer"] + LN.MsgLeiosVotes{} -> Namespace [] ["Votes"] + LN.MsgDone -> Namespace [] ["Done"] + + severityFor _ _ = Just Debug + + documentFor _ = Nothing + + allNamespaces = + [ Namespace [] ["RequestNext"] + , Namespace [] ["BlockAnnouncement"] + , Namespace [] ["BlockOffer"] + , Namespace [] ["BlockTxsOffer"] + , Namespace [] ["Votes"] + , Namespace [] ["Done"] + ] + +instance MetaTrace (AnyMessage (LF.LeiosFetch LeiosPoint LeiosEb LeiosTx)) where + namespaceFor (AnyMessageAndAgency _stok msg) = case msg of + LF.MsgLeiosBlockRequest{} -> Namespace [] ["BlockRequest"] + LF.MsgLeiosBlock{} -> Namespace [] ["Block"] + LF.MsgLeiosBlockTxsRequest{} -> Namespace [] ["BlockTxsRequest"] + LF.MsgLeiosBlockTxs{} -> Namespace [] ["BlockTxs"] + LF.MsgDone -> Namespace [] ["Done"] + + severityFor _ _ = Just Debug + + documentFor _ = Nothing + + allNamespaces = + [ Namespace [] ["BlockRequest"] + , Namespace [] ["Block"] + , Namespace [] ["BlockTxsRequest"] + , Namespace [] ["BlockTxs"] + , Namespace [] ["Done"] + ] diff --git a/cardano-node/src/Cardano/Tracing/Config.hs b/cardano-node/src/Cardano/Tracing/Config.hs index 09e01488756..75b4948c9cc 100644 --- a/cardano-node/src/Cardano/Tracing/Config.hs +++ b/cardano-node/src/Cardano/Tracing/Config.hs @@ -199,6 +199,10 @@ type TraceChurnMode = ("TraceChurnMode" :: Symbol) type TraceDNS = ("TraceDNS" :: Symbol) type TraceTxLogic = ("TraceTxLogic" :: Symbol) type TraceTxCounters = ("TraceTxCounters" :: Symbol) +type TraceLeiosKernel = ("TraceLeiosKernel" :: Symbol) +type TraceLeiosPeer = ("TraceLeiosPeer" :: Symbol) +type TraceLeiosNotifyProtocol = ("TraceLeiosNotifyProtocol" :: Symbol) +type TraceLeiosFetchProtocol = ("TraceLeiosFetchProtocol" :: Symbol) newtype OnOff (name :: Symbol) = OnOff { isOn :: Bool } deriving (Eq, Show) @@ -284,6 +288,10 @@ data TraceSelection , traceDNS :: OnOff TraceDNS , traceTxLogic :: OnOff TraceTxLogic , traceTxCounters :: OnOff TraceTxCounters + , traceLeiosKernel :: OnOff TraceLeiosKernel + , traceLeiosPeer :: OnOff TraceLeiosPeer + , traceLeiosNotifyProtocol :: OnOff TraceLeiosNotifyProtocol + , traceLeiosFetchProtocol :: OnOff TraceLeiosFetchProtocol } deriving (Eq, Show) @@ -363,6 +371,10 @@ data PartialTraceSelection , pTraceKesAgent :: Last (OnOff TraceKesAgent) , pTraceTxLogic :: Last (OnOff TraceTxLogic) , pTraceTxCounters :: Last (OnOff TraceTxCounters) + , pTraceLeiosKernel :: Last (OnOff TraceLeiosKernel) + , pTraceLeiosPeer :: Last (OnOff TraceLeiosPeer) + , pTraceLeiosNotifyProtocol :: Last (OnOff TraceLeiosNotifyProtocol) + , pTraceLeiosFetchProtocol :: Last (OnOff TraceLeiosFetchProtocol) } deriving (Eq, Generic, Show) @@ -443,6 +455,10 @@ instance FromJSON PartialTraceSelection where <*> parseTracer (Proxy @TraceKesAgent) v <*> parseTracer (Proxy @TraceTxLogic) v <*> parseTracer (Proxy @TraceTxCounters) v + <*> parseTracer (Proxy @TraceLeiosKernel) v + <*> parseTracer (Proxy @TraceLeiosPeer) v + <*> parseTracer (Proxy @TraceLeiosNotifyProtocol) v + <*> parseTracer (Proxy @TraceLeiosFetchProtocol) v defaultPartialTraceConfiguration :: PartialTraceSelection @@ -520,6 +536,10 @@ defaultPartialTraceConfiguration = , pTraceKesAgent = pure $ OnOff False , pTraceTxLogic = pure $ OnOff False , pTraceTxCounters = pure $ OnOff False + , pTraceLeiosKernel = pure $ OnOff False + , pTraceLeiosPeer = pure $ OnOff False + , pTraceLeiosNotifyProtocol = pure $ OnOff False + , pTraceLeiosFetchProtocol = pure $ OnOff False } @@ -599,6 +619,10 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio traceDNS <- proxyLastToEither (Proxy @TraceDNS) pTraceDNS traceTxLogic <- proxyLastToEither (Proxy @TraceTxLogic) pTraceTxLogic traceTxCounters <- proxyLastToEither (Proxy @TraceTxCounters) pTraceTxCounters + traceLeiosKernel <- proxyLastToEither (Proxy @TraceLeiosKernel) pTraceLeiosKernel + traceLeiosPeer <- proxyLastToEither (Proxy @TraceLeiosPeer) pTraceLeiosPeer + traceLeiosNotifyProtocol <- proxyLastToEither (Proxy @TraceLeiosNotifyProtocol) pTraceLeiosNotifyProtocol + traceLeiosFetchProtocol <- proxyLastToEither (Proxy @TraceLeiosFetchProtocol) pTraceLeiosFetchProtocol Right $ TraceDispatcher $ TraceSelection { traceVerbosity = traceVerbosity , traceAcceptPolicy = traceAcceptPolicy @@ -671,6 +695,10 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio , traceKesAgent = traceKesAgent , traceTxLogic , traceTxCounters + , traceLeiosKernel + , traceLeiosPeer + , traceLeiosNotifyProtocol + , traceLeiosFetchProtocol } partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelection))) = do @@ -747,6 +775,10 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio traceDNS <- proxyLastToEither (Proxy @TraceDNS) pTraceDNS traceTxLogic <- proxyLastToEither (Proxy @TraceTxLogic) pTraceTxLogic traceTxCounters <- proxyLastToEither (Proxy @TraceTxCounters) pTraceTxCounters + traceLeiosKernel <- proxyLastToEither (Proxy @TraceLeiosKernel) pTraceLeiosKernel + traceLeiosPeer <- proxyLastToEither (Proxy @TraceLeiosPeer) pTraceLeiosPeer + traceLeiosNotifyProtocol <- proxyLastToEither (Proxy @TraceLeiosNotifyProtocol) pTraceLeiosNotifyProtocol + traceLeiosFetchProtocol <- proxyLastToEither (Proxy @TraceLeiosFetchProtocol) pTraceLeiosFetchProtocol Right $ TracingOnLegacy $ TraceSelection { traceVerbosity = traceVerbosity , traceAcceptPolicy = traceAcceptPolicy @@ -819,6 +851,10 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio , traceKesAgent = traceKesAgent , traceTxLogic , traceTxCounters + , traceLeiosKernel + , traceLeiosPeer + , traceLeiosNotifyProtocol + , traceLeiosFetchProtocol } proxyLastToEither :: KnownSymbol name => Proxy name -> Last (OnOff name) -> Either Text (OnOff name) diff --git a/cardano-node/src/Cardano/Tracing/Tracers.hs b/cardano-node/src/Cardano/Tracing/Tracers.hs index 6cd5a36219d..211e722e359 100644 --- a/cardano-node/src/Cardano/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Tracing/Tracers.hs @@ -505,6 +505,8 @@ mkTracers _ _ _ _ _ = , Consensus.kesAgentTracer = nullTracer , Consensus.txLogicTracer = nullTracer , Consensus.txCountersTracer = nullTracer + , Consensus.leiosKernelTracer = nullTracer + , Consensus.leiosPeerTracer = nullTracer } , nodeToClientTracers = NodeToClient.Tracers { NodeToClient.tChainSyncTracer = nullTracer @@ -521,6 +523,8 @@ mkTracers _ _ _ _ _ = , NodeToNode.tKeepAliveTracer = nullTracer , NodeToNode.tPeerSharingTracer = nullTracer , NodeToNode.tTxLogicTracer = nullTracer + , NodeToNode.tLeiosNotifyTracer = nullTracer + , NodeToNode.tLeiosFetchTracer = nullTracer } , diffusionTracers = Diffusion.nullTracers , churnModeTracer = nullTracer @@ -862,6 +866,10 @@ mkConsensusTracers mbEKGDirect trSel verb tr nodeKern fStats = do , Consensus.kesAgentTracer = tracerOnOff (traceKesAgent trSel) verb "kesAgent" tr , Consensus.txLogicTracer = tracerOnOff (traceTxLogic trSel) verb "txLogic" tr , Consensus.txCountersTracer = tracerOnOff (traceTxCounters trSel) verb "txCounters" tr + -- TODO: 'Transformable Text IO TraceLeiosKernel' / 'TraceLeiosPeer' not yet + -- ported to the old-style tracing path. Wire as real tracers once available. + , Consensus.leiosKernelTracer = nullTracer + , Consensus.leiosPeerTracer = nullTracer } where mkForgeTracers :: IO ForgeTracers @@ -1534,6 +1542,9 @@ nodeToNodeTracers' trSel verb tr = , NodeToNode.tTxLogicTracer = tracerOnOff (traceTxLogic trSel) verb "TxLogicTracer" tr + -- TODO: old-style tracing for LeiosNotify/LeiosFetch protocols not yet ported. + , NodeToNode.tLeiosNotifyTracer = nullTracer + , NodeToNode.tLeiosFetchTracer = nullTracer } -- TODO @ouroboros-network diff --git a/cardano-submit-api/cardano-submit-api.cabal b/cardano-submit-api/cardano-submit-api.cabal index 6ef4ff984f7..fe30defd1fb 100644 --- a/cardano-submit-api/cardano-submit-api.cabal +++ b/cardano-submit-api/cardano-submit-api.cabal @@ -39,9 +39,9 @@ library , aeson , async , bytestring - , cardano-api ^>= 11.0 + , cardano-api ^>= 11.0 || ^>= 11.1 , cardano-binary - , cardano-cli ^>= 11.0 + , cardano-cli ^>= 11.0 || ^>= 11.1 , cardano-crypto-class ^>=2.3 , containers , ekg-core diff --git a/cardano-testnet/cardano-testnet.cabal b/cardano-testnet/cardano-testnet.cabal index 43b7a3cea20..758400ba15b 100644 --- a/cardano-testnet/cardano-testnet.cabal +++ b/cardano-testnet/cardano-testnet.cabal @@ -41,8 +41,8 @@ library , annotated-exception , ansi-terminal , bytestring - , cardano-api ^>= 11.0 - , cardano-cli:{cardano-cli, cardano-cli-test-lib} ^>= 11.0 + , cardano-api ^>= 11.0 || ^>= 11.1 + , cardano-cli:{cardano-cli, cardano-cli-test-lib} ^>= 11.0 || ^>= 11.1 , cardano-crypto-class ^>=2.3 , cardano-crypto-wrapper , cardano-git-rev ^>= 0.2.2 diff --git a/ekg-forward/CHANGELOG.md b/ekg-forward/CHANGELOG.md new file mode 100644 index 00000000000..3d2a5865953 --- /dev/null +++ b/ekg-forward/CHANGELOG.md @@ -0,0 +1,53 @@ +# Changelog + +## 1.2 - Mar 2026 + +* Generalised metrics acceptor to work with an arbitrary store. +* Updated to `ouroboros-network-1.1`. + +## 1.1 - Mar 2026 + +* Updated to `typed-protocols-1.2`. +* Updated to `ouroboros-network-1.0`. + +## 1.0 - Sep 2025 + +* Updated to `typed-protocols-1.0`. +* Updated to `ouroboros-network-framework-0.19`. + +## 0.9 - Mar 2025 + +* New `Deltify` data type that selects only the delta/changes of metrics, keeping a reference to the previously transmitted sample in a back buffer. +* Saving bandwidth: New request constructor `GetUpdatedMetrics` which asks for changed metrics only - with the initial back buffer being empty. +* Saving bandwidth: New boolean field `useDummyForwarder` in `ForwarderConfiguration` to forcibly use a dummy forwarder, i.e. when the consumer is certain it wont require metrics at all. +* New test case for `GetUpdatedMetrics`. +* Updated to `ouroboros-network-framework-0.17`. + +## 0.8.1 + +* Updated to `ouroboros-network-framework-0.16`. + +## 0.8 + +* Updated to `network-mux-0.6` and `ouroboros-network-framework-0.15` + +## 0.7 - Oct 2024 + +* Updated to `typed-protocols-0.3`. + +## 0.6.0 - Sep 2024 + +* Remove potentially leaky continuation passing of `EKGForwarder`. +* Bump dependency version bounds. + +## 0.5.0 + +* Bump dependency version bounds + +## 0.4.0 + +* Updated to `ouroboros-network-framework-0.8`. + +## 0.1.0 + +* Initially created. diff --git a/ekg-forward/LICENSE b/ekg-forward/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/ekg-forward/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/ekg-forward/README.md b/ekg-forward/README.md new file mode 100644 index 00000000000..c973c09b794 --- /dev/null +++ b/ekg-forward/README.md @@ -0,0 +1,32 @@ +# ekg-forward + +[![GitHub CI](https://github.com/input-output-hk/ekg-forward/workflows/CI/badge.svg)](https://github.com/input-output-hk/ekg-forward/actions) + +## What Is It + +`ekg-forward` is a library allowing to forward [EKG system metrics](https://hackage.haskell.org/package/ekg-core) from one process to another one. + +## Main Use Case + +You have one Haskell application that collects its EKG system metrics (both predefined and custom) and another Haskell application that needs to receive those metrics. You can think of the first application as a Forwarder and the second one as an Acceptor. + +## Motivation + +There is `ekg` [package](https://hackage.haskell.org/package/ekg) that already lets you remotely monitor a running Haskell process over HTTP. But there are three main differences between `ekg` and `ekg-forward`: + +1. `ekg` provides HTTP server for monitoring, `ekg-forward` is a lightweight library without HTTP and REST API. +2. `ekg-forward` is based on Haskell typed protocol, which provides type-level guarantees of correctness. +3. `ekg-forward`'s network layer uses `ouroboros-network-framework` [package](https://github.com/IntersectMBO/ouroboros-network/) which supports both network sockets and local pipes for connection. + +## How To Use It + +You can find demo programs in the `demo` directory. + +## Limitations + +Please note that **not all** EKG metrics are supported in the current release: + +1. [Gauge](https://hackage.haskell.org/package/ekg-core-0.1.1.7/docs/System-Metrics-Gauge.html) - supported +2. [Label](https://hackage.haskell.org/package/ekg-core-0.1.1.7/docs/System-Metrics-Label.html) - supported +3. [Counter](https://hackage.haskell.org/package/ekg-core-0.1.1.7/docs/System-Metrics-Counter.html) - supported +4. [Distribution](https://hackage.haskell.org/package/ekg-core-0.1.1.7/docs/System-Metrics-Distribution.html) - **not** supported diff --git a/ekg-forward/demo/acceptor.hs b/ekg-forward/demo/acceptor.hs new file mode 100644 index 00000000000..a334fa0608c --- /dev/null +++ b/ekg-forward/demo/acceptor.hs @@ -0,0 +1,41 @@ +{-# LANGUAGE LambdaCase #-} + +import Control.Concurrent.STM.TVar (newTVarIO) +import Control.Tracer (contramap, stdoutTracer) +import Data.Fixed (Pico) +import Data.Text (pack) +import Data.Time.Clock (secondsToNominalDiffTime) +import System.Environment (getArgs) +import System.Exit (die) +import qualified System.Metrics as EKG + +import System.Metrics.Acceptor (runEKGAcceptor) +import System.Metrics.Configuration (AcceptorConfiguration (..), + HowToConnect (..), Port) +import System.Metrics.ReqResp (Request (..)) + +main :: IO () +main = do + -- Prepare the acceptor's configuration. + (listenIt, freq) <- getArgs >>= \case + [path, freq] -> return (LocalPipe path, freq) + [host, port, freq] -> return (RemoteSocket (pack host) (read port :: Port), freq) + _ -> die "Usage: demo-acceptor (pathToLocalPipe | host port) freqInSecs" + weAreDone <- newTVarIO False + let config = + AcceptorConfiguration + { acceptorTracer = contramap show stdoutTracer + , forwarderEndpoint = listenIt + , requestFrequency = secondsToNominalDiffTime (read freq :: Pico) + , whatToRequest = GetAllMetrics + , shouldWeStop = weAreDone + } + + -- Create an empty EKG store. + store <- EKG.newStore + + -- Run the acceptor. It will listen to the forwarder, and after the connection + -- will be established, the acceptor will periodically (using 'requestFrequency') + -- ask for the metrics from the forwarder. After these metrics will be received, + -- the acceptor will put them in the 'store'. + runEKGAcceptor config store diff --git a/ekg-forward/demo/forwarder.hs b/ekg-forward/demo/forwarder.hs new file mode 100644 index 00000000000..1cb8611eda5 --- /dev/null +++ b/ekg-forward/demo/forwarder.hs @@ -0,0 +1,52 @@ +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE OverloadedStrings #-} + +import Control.Concurrent +import Control.Tracer (contramap, stdoutTracer) +import Data.Fixed (Pico) +import Data.Text (pack) +import Data.Time.Clock (secondsToNominalDiffTime) +import System.Environment (getArgs) +import System.Exit (die) +import qualified System.Metrics as EKG +import qualified System.Metrics.Counter as EKGC + +import System.Metrics.Forwarder (runEKGForwarder) +import System.Metrics.Configuration (ForwarderConfiguration (..), + HowToConnect (..), Port) + +main :: IO () +main = do + -- Prepare the forwarder's configuration. + (howToConnect, freq) <- getArgs >>= \case + [path, freq] -> return (LocalPipe path, freq) + [host, port, freq] -> return (RemoteSocket (pack host) (read port :: Port), freq) + _ -> die "Usage: demo-forwarder (pathToLocalPipe | host port) freqInSecs" + let config = + ForwarderConfiguration + { forwarderTracer = contramap show stdoutTracer + , acceptorEndpoint = howToConnect + , reConnectFrequency = secondsToNominalDiffTime (read freq :: Pico) + , actionOnRequest = \_ -> return () + , useDummyForwarder = False + } + + -- Create an empty EKG store and register predefined GC metrics in it. + store <- EKG.newStore + _ <- forkIO $ delayedRegisterMetrics store + + -- Run the forwarder. It will establish the connection with the acceptor, + -- then the acceptor will periodically ask for the metrics, the forwarder + -- will take them from the 'store' and send them back. + runEKGForwarder config store + +delayedRegisterMetrics :: EKG.Store -> IO () +delayedRegisterMetrics store = do + threadDelay 3000000 + cnt <- EKG.createCounter "counter.1" store + threadDelay 3000000 + EKGC.inc cnt + threadDelay 3000000 + EKGC.inc cnt + threadDelay 3000000 + -- EKG.registerGcMetrics store diff --git a/ekg-forward/ekg-forward.cabal b/ekg-forward/ekg-forward.cabal new file mode 100644 index 00000000000..4bbcf76aa20 --- /dev/null +++ b/ekg-forward/ekg-forward.cabal @@ -0,0 +1,129 @@ +cabal-version: 3.0 +name: ekg-forward +version: 1.2 +synopsis: See README for more info +description: See README for more info +homepage: https://github.com/input-output-hk/ekg-forward +bug-reports: https://github.com/input-output-hk/ekg-forward/issues +license: Apache-2.0 +license-file: LICENSE +copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2026 Intersect. +author: IOHK +maintainer: operations@iohk.io +category: System, Network +build-type: Simple +extra-doc-files: README.md + CHANGELOG.md + +source-repository head + type: git + location: https://github.com/input-output-hk/ekg-forward.git + +common common-options + build-depends: base >=4.12 && <5 + + ghc-options: -Wall + -Wcompat + -Widentities + -Wincomplete-uni-patterns + -Wincomplete-record-updates + -Wredundant-constraints + -Wmissing-export-lists + -Wpartial-fields + -fhide-source-paths + + default-language: Haskell2010 + +library + import: common-options + hs-source-dirs: src + + exposed-modules: System.Metrics.Acceptor + System.Metrics.Configuration + System.Metrics.Forwarder + System.Metrics.ReqResp + + System.Metrics.Network.Acceptor + System.Metrics.Network.Forwarder + + System.Metrics.Store.Acceptor + System.Metrics.Store.Forwarder + + System.Metrics.Protocol.Type + System.Metrics.Protocol.Codec + System.Metrics.Protocol.Acceptor + System.Metrics.Protocol.Forwarder + + other-modules: System.Metrics.Store.Deltify + + build-depends: async + , bytestring + , cborg + , contra-tracer + , ekg-core + , io-classes >= 1.4.1 + , network + , network-mux + , ouroboros-network:{api, framework} ^>= 1.1 + , singletons ^>= 3.0 + , serialise + , stm + , text + , time + , typed-protocols:{typed-protocols, cborg} ^>= 1.2 + , unordered-containers + +executable demo-forwarder + hs-source-dirs: demo + main-is: forwarder.hs + build-depends: base + , contra-tracer + , ekg-core + , ekg-forward + , text + , time + + default-language: Haskell2010 + ghc-options: -Wall + -threaded + -rtsopts + -with-rtsopts=-T + +executable demo-acceptor + hs-source-dirs: demo + main-is: acceptor.hs + build-depends: base + , contra-tracer + , ekg-core + , ekg-forward + , stm + , text + , time + + default-language: Haskell2010 + ghc-options: -Wall + -threaded + -rtsopts + -with-rtsopts=-T + +test-suite ekg-forward-test + import: common-options + type: exitcode-stdio-1.0 + hs-source-dirs: test + main-is: Spec.hs + other-modules: Test.GetAllMetrics + Test.GetMetrics + Test.GetUpdatedMetrics + Test.MkConfig + build-depends: base + , contra-tracer + , ekg-core + , ekg-forward + , hspec + , stm + , time + , unordered-containers + ghc-options: -threaded + -rtsopts + -with-rtsopts=-N + default-extensions: OverloadedStrings diff --git a/ekg-forward/src/System/Metrics/Acceptor.hs b/ekg-forward/src/System/Metrics/Acceptor.hs new file mode 100644 index 00000000000..b0906b61d59 --- /dev/null +++ b/ekg-forward/src/System/Metrics/Acceptor.hs @@ -0,0 +1,34 @@ +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE ScopedTypeVariables #-} + +-- | This top-level module will be used by the acceptor app +-- (the app that asks EKG metrics from the forwarder app). +module System.Metrics.Acceptor ( + runEKGAcceptor + ) where + +import Control.Concurrent.STM.TVar (newTVarIO) +import Control.Exception (SomeException, try) +import Control.Monad (void) +import qualified System.Metrics as EKG + +import System.Metrics.Network.Acceptor (listenToForwarder) +import System.Metrics.Store.Acceptor (emptyMetricsLocalStore, storeMetrics) +import System.Metrics.Configuration (AcceptorConfiguration (..)) + +runEKGAcceptor + :: AcceptorConfiguration -- ^ Acceptor configuration. + -> EKG.Store -- ^ The store all received metrics will be stored in. + -> IO () +runEKGAcceptor config ekgStore = + try (void $ listenToForwarder config mkStores insertStores peerErrorHandler) >>= \case + Left (_e :: SomeException) -> runEKGAcceptor config ekgStore + Right _ -> return () + where + mkStores _ = do + metricsStore <- newTVarIO emptyMetricsLocalStore + return (ekgStore, metricsStore) + + insertStores _ (a, b) resp = storeMetrics resp a b + + peerErrorHandler _ = return () diff --git a/ekg-forward/src/System/Metrics/Configuration.hs b/ekg-forward/src/System/Metrics/Configuration.hs new file mode 100644 index 00000000000..27b8cfc50e6 --- /dev/null +++ b/ekg-forward/src/System/Metrics/Configuration.hs @@ -0,0 +1,60 @@ +module System.Metrics.Configuration + ( AcceptorConfiguration (..) + , ForwarderConfiguration (..) + , HowToConnect (..) + , Host + , Port + ) where + +import Control.Concurrent.STM.TVar (TVar) +import Control.Tracer (Tracer) +import Data.Text (Text) +import Data.Time.Clock (NominalDiffTime) +import Data.Word (Word16) +import Ouroboros.Network.Driver (TraceSendRecv) + +import System.Metrics.Protocol.Type (EKGForward) +import System.Metrics.ReqResp (Request, Response) + +type Host = Text +type Port = Word16 + +-- | Specifies how to connect to the peer. +data HowToConnect + = LocalPipe !FilePath -- ^ Local pipe (UNIX or Windows). + | RemoteSocket !Host !Port -- ^ Remote socket (host and port). + +-- | Acceptor configuration. +data AcceptorConfiguration = AcceptorConfiguration + { -- | The tracer that will be used by the acceptor in its network layer. + -- For more info about tracers please read its [documentation](https://github.com/input-output-hk/iohk-monitoring-framework/tree/master/contra-tracer). + acceptorTracer :: !(Tracer IO (TraceSendRecv (EKGForward Request Response))) + -- | The endpoint that will be used to listen to the forwarder. + , forwarderEndpoint :: !HowToConnect + -- | Specifies how often the acceptor will ask the framework for new metrics. + -- It can be specified as seconds or as fraction of second. + , requestFrequency :: !NominalDiffTime + -- | Specifies what to request: all existing metrics or particular metrics. + , whatToRequest :: !Request + -- | 'TVar' that can be used as a brake: if an external thread will set it to + -- 'True', the acceptor will send 'MsgDone' message to the forwarder and their + -- session will be closed. + , shouldWeStop :: !(TVar Bool) + } + +-- | Forwarder configuration. +data ForwarderConfiguration = ForwarderConfiguration + { -- | The tracer that will be used by the forwarder in its network layer. + forwarderTracer :: !(Tracer IO (TraceSendRecv (EKGForward Request Response))) + -- | The endpoint that will be used to connect to the acceptor. + , acceptorEndpoint :: !HowToConnect + -- | If the connection with the acceptor will fail, the forwarder will attempt + -- to re-establish the connection after this delay. + -- It can be specified as seconds or as fraction of second. + , reConnectFrequency :: !NominalDiffTime + -- | Additional action that will be performed every time the forwarder will + -- receive the request from the acceptor. + , actionOnRequest :: !(Request -> IO ()) + -- | Forcibly use a dummy forwarder for metrics, i.e. when the consumer is certain they won't be needed + , useDummyForwarder :: !Bool + } diff --git a/ekg-forward/src/System/Metrics/Forwarder.hs b/ekg-forward/src/System/Metrics/Forwarder.hs new file mode 100644 index 00000000000..e03e0fc5d5c --- /dev/null +++ b/ekg-forward/src/System/Metrics/Forwarder.hs @@ -0,0 +1,33 @@ +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE ScopedTypeVariables #-} + +-- This top-level module will be used by the forwarder app +-- (the app that collects EKG metrics and sends them to the acceptor). +module System.Metrics.Forwarder + ( runEKGForwarder + ) where + +import Control.Exception (SomeException, try) +import Control.Concurrent (threadDelay) +import Data.Time.Clock (NominalDiffTime) +import qualified System.Metrics as EKG + +import System.Metrics.Configuration (ForwarderConfiguration (..)) +import System.Metrics.Network.Forwarder (connectToAcceptor) + +-- | Please note that forwarder is a client from the __networking__ point of view: +-- it establishes network connection with the acceptor. +runEKGForwarder + :: ForwarderConfiguration -- ^ Forwarder configuration. + -> EKG.Store -- ^ The store the forwarder will take EKG metrics from. + -> IO () +runEKGForwarder config@ForwarderConfiguration{..} ekgStore = + try (connectToAcceptor config ekgStore) >>= \case + Left (_e :: SomeException) -> do + threadDelay $ toMicroSecs reConnectFrequency + runEKGForwarder config ekgStore + Right _ -> return () + where + toMicroSecs :: NominalDiffTime -> Int + toMicroSecs dt = fromEnum dt `div` 1000000 diff --git a/ekg-forward/src/System/Metrics/Network/Acceptor.hs b/ekg-forward/src/System/Metrics/Network/Acceptor.hs new file mode 100644 index 00000000000..933b28df4f4 --- /dev/null +++ b/ekg-forward/src/System/Metrics/Network/Acceptor.hs @@ -0,0 +1,209 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE RecordWildCards #-} + +module System.Metrics.Network.Acceptor + ( listenToForwarder + -- | Export this function for Mux purpose. + , acceptEKGMetricsInit + , acceptEKGMetricsResp + , acceptMetricsInit + , acceptMetricsResp + ) where + +import Codec.CBOR.Term (Term) +import qualified Codec.Serialise as CBOR +import Control.Exception (finally) +import Control.Concurrent (threadDelay) +import Control.Concurrent.Async (wait) +import Control.Concurrent.STM.TVar (TVar, readTVarIO) +import Control.Tracer (nullTracer) +import qualified Data.ByteString.Lazy as LBS +import qualified Data.Text as T +import Data.Time.Clock (NominalDiffTime) +import Data.Void (Void) +import qualified Network.Mux as Mux +import qualified Network.Socket as Socket +import Ouroboros.Network.Context (MinimalInitiatorContext, ResponderContext) +import Ouroboros.Network.IOManager (withIOManager) +import Ouroboros.Network.Driver.Simple (runPeer) +import Ouroboros.Network.Mux (MiniProtocol (..), MiniProtocolCb (..), + MiniProtocolLimits (..), + MiniProtocolNum (..), + OuroborosApplication (..), + RunMiniProtocol (..), + miniProtocolLimits, miniProtocolNum, miniProtocolRun) +import Ouroboros.Network.Snocket (LocalAddress, MakeBearer, Snocket, + localAddressFromPath, localSnocket, socketSnocket, + makeLocalBearer, makeSocketBearer) +import Ouroboros.Network.Socket (SomeResponderApplication (..)) + +import qualified Ouroboros.Network.Server.Simple as OServer +import Ouroboros.Network.Protocol.Handshake (HandshakeArguments(..), + noTimeLimitsHandshake, + simpleSingletonVersions, + Acceptable(..), + Queryable(..), Handshake) +import Ouroboros.Network.Protocol.Handshake.Codec (timeLimitsHandshake) +import Ouroboros.Network.Protocol.Handshake.Unversioned (UnversionedProtocol (..), + UnversionedProtocolData (..), + unversionedHandshakeCodec, + unversionedProtocolDataCodec) +import Ouroboros.Network.Protocol.Limits (ProtocolTimeLimits) + +import qualified System.Metrics.Protocol.Acceptor as Acceptor +import qualified System.Metrics.Protocol.Codec as Acceptor +import System.Metrics.ReqResp (Request (..), Response (..)) +import System.Metrics.Configuration (AcceptorConfiguration (..), HowToConnect (..)) +import qualified System.Metrics as EKG +import System.Metrics.Store.Acceptor (MetricsLocalStore, storeMetrics) + +listenToForwarder + :: AcceptorConfiguration + -> (ResponderContext (Either LocalAddress Socket.SockAddr) -> IO store) + -> (ResponderContext (Either LocalAddress Socket.SockAddr) -> store -> Response -> IO ()) + -> (ResponderContext (Either LocalAddress Socket.SockAddr) -> IO ()) + -> IO Void +listenToForwarder config mkStore insertStore peerErrorHandler = withIOManager $ \iocp -> do + case forwarderEndpoint config of + LocalPipe localPipe -> do + let app = acceptorApp config (mkStore . fmap Left) (insertStore . fmap Left) (peerErrorHandler . fmap Left) + snocket = localSnocket iocp + address = localAddressFromPath localPipe + configureSocket = mempty + doListenToForwarder snocket makeLocalBearer configureSocket address noTimeLimitsHandshake app + RemoteSocket host port -> do + listenAddress:_ <- Socket.getAddrInfo Nothing (Just $ T.unpack host) (Just $ show port) + let app = acceptorApp config (mkStore . fmap Right) (insertStore . fmap Right) (peerErrorHandler . fmap Right) + snocket = socketSnocket iocp + address = Socket.addrAddress listenAddress + configureSocket fd _addr = + Socket.setSocketOption fd Socket.ReuseAddr 1 + doListenToForwarder snocket makeSocketBearer configureSocket address timeLimitsHandshake app + +doListenToForwarder + :: Snocket IO fd addr + -> MakeBearer IO fd + -> (fd -> addr -> IO ()) -- ^ configure socket + -> addr + -> ProtocolTimeLimits (Handshake UnversionedProtocol Term) + -> OuroborosApplication 'Mux.ResponderMode + (MinimalInitiatorContext addr) + (ResponderContext addr) + LBS.ByteString IO Void () + -> IO Void +doListenToForwarder snocket makeBearer configureSocket address timeLimits app = do + OServer.with + snocket + nullTracer + Mux.nullTracers + makeBearer + configureSocket + address + HandshakeArguments { + haBearerTracer = nullTracer, + haHandshakeTracer = nullTracer, + haHandshakeCodec = unversionedHandshakeCodec, + haVersionDataCodec = unversionedProtocolDataCodec, + haAcceptVersion = acceptableVersion, + haQueryVersion = queryVersion, + haTimeLimits = timeLimits + } + (simpleSingletonVersions + UnversionedProtocol + UnversionedProtocolData + (\_ -> SomeResponderApplication app)) + $ \_ serverAsync -> wait serverAsync -- Block until async exception. + +acceptorApp + :: AcceptorConfiguration + -> (ResponderContext addr -> IO store) + -> (ResponderContext addr -> store -> Response -> IO ()) + -> (ResponderContext addr -> IO ()) + -> OuroborosApplication 'Mux.ResponderMode + (MinimalInitiatorContext addr) + (ResponderContext addr) + LBS.ByteString IO Void () +acceptorApp config mkStore insertStore peerErrorHandler = + OuroborosApplication [ + MiniProtocol + { miniProtocolNum = MiniProtocolNum 2 + , miniProtocolStart = Mux.StartEagerly + , miniProtocolLimits = MiniProtocolLimits { maximumIngressQueue = maxBound } + , miniProtocolRun = acceptMetricsResp config mkStore insertStore peerErrorHandler + } + ] + +{-# INLINE acceptMetricsResp #-} +acceptMetricsResp + :: AcceptorConfiguration + -> (responderCtx -> IO store) + -> (responderCtx -> store -> Response -> IO ()) + -> (responderCtx -> IO ()) + -> RunMiniProtocol 'Mux.ResponderMode initiatorCtx responderCtx LBS.ByteString IO Void () +acceptMetricsResp config mkStore insertStore peerErrorHandler = + ResponderProtocolOnly $ runPeerWithStores config mkStore insertStore peerErrorHandler + +{-# INLINE acceptMetricsInit #-} +acceptMetricsInit + :: AcceptorConfiguration + -> (initiatorCtx -> IO store) + -> (initiatorCtx -> store -> Response -> IO ()) + -> (initiatorCtx -> IO ()) + -> RunMiniProtocol 'Mux.InitiatorMode initiatorCtx responderCtx LBS.ByteString IO () Void +acceptMetricsInit config mkStore insertStore peerErrorHandler = + InitiatorProtocolOnly $ runPeerWithStores config mkStore insertStore peerErrorHandler + +acceptEKGMetricsResp + :: AcceptorConfiguration + -> (responderCtx -> IO (EKG.Store, TVar MetricsLocalStore)) + -> (responderCtx -> IO ()) + -> RunMiniProtocol 'Mux.ResponderMode initiatorCtx responderCtx LBS.ByteString IO Void () +acceptEKGMetricsResp config mkStore = + acceptMetricsResp config mkStore insertStore where + insertStore _ (a, b) resp = storeMetrics resp a b + +acceptEKGMetricsInit + :: AcceptorConfiguration + -> (initiatorCtx -> IO (EKG.Store, TVar MetricsLocalStore)) + -> (initiatorCtx -> IO ()) + -> RunMiniProtocol 'Mux.InitiatorMode initiatorCtx responderCtx LBS.ByteString IO () Void +acceptEKGMetricsInit config mkStore = + acceptMetricsInit config mkStore insertStore where + insertStore _ (a, b) resp = storeMetrics resp a b + +runPeerWithStores + :: AcceptorConfiguration + -> (ctx -> IO store) + -> (ctx -> store -> Response -> IO ()) + -> (ctx -> IO ()) + -> MiniProtocolCb ctx LBS.ByteString IO () +runPeerWithStores config mkStore insertStore peerErrorHandler = + MiniProtocolCb $ \ctx channel -> do + st <- mkStore ctx + runPeer + (acceptorTracer config) + (Acceptor.codecEKGForward CBOR.encode CBOR.decode + CBOR.encode CBOR.decode) + channel + (Acceptor.ekgAcceptorPeer $ acceptorActions True config (insertStore ctx st)) + `finally` peerErrorHandler ctx + +acceptorActions + :: Bool + -> AcceptorConfiguration + -> (Response -> IO ()) + -> Acceptor.EKGAcceptor Request Response IO () +acceptorActions True config@AcceptorConfiguration{..} insertStore = + Acceptor.SendMsgReq whatToRequest $ \response -> do + insertStore response + threadDelay $ toMicroSecs requestFrequency + weAreDone <- readTVarIO shouldWeStop + if weAreDone + then return $ acceptorActions False config insertStore + else return $ acceptorActions True config insertStore + where + toMicroSecs :: NominalDiffTime -> Int + toMicroSecs dt = fromEnum dt `div` 1000000 + +acceptorActions False _ _ = + Acceptor.SendMsgDone $ return () diff --git a/ekg-forward/src/System/Metrics/Network/Forwarder.hs b/ekg-forward/src/System/Metrics/Network/Forwarder.hs new file mode 100644 index 00000000000..ceea51b4eab --- /dev/null +++ b/ekg-forward/src/System/Metrics/Network/Forwarder.hs @@ -0,0 +1,189 @@ +{-# LANGUAGE BlockArguments #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PackageImports #-} +{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE ScopedTypeVariables #-} + +module System.Metrics.Network.Forwarder + ( connectToAcceptor + -- | Export this function for Mux purpose. + , forwardEKGMetrics + , forwardEKGMetricsDummy + , forwardEKGMetricsResp + , forwardEKGMetricsRespDummy + ) where + +import Codec.CBOR.Term (Term) +import qualified Codec.Serialise as CBOR +import "contra-tracer" Control.Tracer (nullTracer) +import qualified Data.ByteString.Lazy as LBS +import qualified Data.Text as T +import Data.Void (Void, absurd) +import qualified Network.Mux as Mux +import qualified Network.Socket as Socket +import Network.TypedProtocol.Codec +import Control.Exception (throwIO) +import Ouroboros.Network.Context (MinimalInitiatorContext, ResponderContext) +import Ouroboros.Network.Driver.Simple (runPeer) +import Ouroboros.Network.Driver.Limits (ProtocolTimeLimits) +import Ouroboros.Network.IOManager (withIOManager) +import Ouroboros.Network.Mux (MiniProtocol (..), MiniProtocolCb (..), MiniProtocolLimits (..), MiniProtocolNum (..), + OuroborosApplication (..), RunMiniProtocol (..), + miniProtocolLimits, miniProtocolNum, miniProtocolRun) +import Ouroboros.Network.Protocol.Handshake.Codec (VersionDataCodec, noTimeLimitsHandshake, + timeLimitsHandshake) +import Ouroboros.Network.Protocol.Handshake.Type (Handshake) +import Ouroboros.Network.Protocol.Handshake.Unversioned (UnversionedProtocol (..), + UnversionedProtocolData (..), + unversionedHandshakeCodec, + unversionedProtocolDataCodec) + +import Ouroboros.Network.Protocol.Handshake.Version (Versions, acceptableVersion, queryVersion, simpleSingletonVersions) +import Ouroboros.Network.Snocket (MakeBearer, Snocket, + localAddressFromPath, localSnocket, socketSnocket, + makeLocalBearer, makeSocketBearer) +import Ouroboros.Network.Socket (NetworkConnectTracers(..), HandshakeCallbacks (..), ConnectToArgs (..), connectToNode, nullNetworkConnectTracers) +import qualified System.Metrics as EKG + +import System.Metrics.Configuration (ForwarderConfiguration (..), HowToConnect (..)) +import System.Metrics.Store.Forwarder (mkResponse, mkResponseDummy) +import qualified System.Metrics.Protocol.Forwarder as Forwarder +import qualified System.Metrics.Protocol.Codec as Forwarder +import System.Metrics.Store.Deltify + + +connectToAcceptor + :: ForwarderConfiguration + -> EKG.Store + -> IO () +connectToAcceptor config@ForwarderConfiguration{..} ekgStore = withIOManager \iocp -> + let app = forwarderApp config ekgStore + in case acceptorEndpoint of + LocalPipe localPipe -> do + let snocket = localSnocket iocp + address = localAddressFromPath localPipe + doConnectToAcceptor snocket makeLocalBearer mempty address noTimeLimitsHandshake app + RemoteSocket host port -> do + acceptorAddr:_ <- Socket.getAddrInfo Nothing (Just $ T.unpack host) (Just $ show port) + let snocket = socketSnocket iocp + address = Socket.addrAddress acceptorAddr + doConnectToAcceptor snocket makeSocketBearer mempty address timeLimitsHandshake app + +doConnectToAcceptor + :: forall fd addr. () + => Snocket IO fd addr + -> MakeBearer IO fd + -> (fd -> IO ()) -- ^ configure socket + -> addr + -> ProtocolTimeLimits (Handshake UnversionedProtocol Term) + -> OuroborosApplication 'Mux.InitiatorMode + (MinimalInitiatorContext addr) + (ResponderContext addr) + LBS.ByteString IO () Void + -> IO () +doConnectToAcceptor snocket makeBearer configureSocket address timeLimits app = + + let + connectToArgs :: ConnectToArgs fd addr UnversionedProtocol UnversionedProtocolData + connectToArgs = ConnectToArgs + { ctaHandshakeCodec = unversionedHandshakeCodec + :: Codec (Handshake UnversionedProtocol Term) CBOR.DeserialiseFailure IO LBS.ByteString + , ctaHandshakeTimeLimits = timeLimits + :: ProtocolTimeLimits (Handshake UnversionedProtocol Term) + , ctaVersionDataCodec = unversionedProtocolDataCodec + :: VersionDataCodec Term UnversionedProtocol UnversionedProtocolData + , ctaConnectTracers = nullNetworkConnectTracers + :: NetworkConnectTracers addr UnversionedProtocol + , ctaHandshakeCallbacks = HandshakeCallbacks acceptableVersion queryVersion + :: HandshakeCallbacks UnversionedProtocolData + } + + versions :: Versions UnversionedProtocol UnversionedProtocolData + (OuroborosApplication 'Mux.InitiatorMode (MinimalInitiatorContext addr) (ResponderContext addr) LBS.ByteString IO () Void) + versions = simpleSingletonVersions + UnversionedProtocol + UnversionedProtocolData + (const app) + + localAddress :: Maybe addr + remoteAddress :: addr + (localAddress, remoteAddress) = (Nothing, address) + + in do + res <- connectToNode + snocket + makeBearer + connectToArgs + configureSocket + versions + localAddress + remoteAddress + + case res of + Left err -> throwIO err + Right (Left ()) -> pure () + Right (Right void) -> absurd void + +forwarderApp + :: ForwarderConfiguration + -> EKG.Store + -> OuroborosApplication 'Mux.InitiatorMode initiatorCtx responderCtx LBS.ByteString IO () Void +forwarderApp config ekgStore = + OuroborosApplication + [ MiniProtocol + { miniProtocolNum = MiniProtocolNum 2 + , miniProtocolStart = Mux.StartEagerly + , miniProtocolLimits = MiniProtocolLimits { maximumIngressQueue = maxBound } + , miniProtocolRun = if useDummyForwarder config then forwardEKGMetricsDummy else forwardEKGMetrics config ekgStore + } + ] + +forwardEKGMetrics + :: ForwarderConfiguration + -> EKG.Store + -> RunMiniProtocol 'Mux.InitiatorMode initiatorCtx responderCtx LBS.ByteString IO () Void +forwardEKGMetrics config ekgStore = + InitiatorProtocolOnly $ MiniProtocolCb \_ctx channel -> do + deltify <- mkDeltify + runPeer + (forwarderTracer config) + (Forwarder.codecEKGForward CBOR.encode CBOR.decode + CBOR.encode CBOR.decode) + channel + (Forwarder.ekgForwarderPeer $ mkResponse config deltify ekgStore) + +forwardEKGMetricsResp + :: ForwarderConfiguration + -> EKG.Store + -> RunMiniProtocol 'Mux.ResponderMode initiatorCtx responderCtx LBS.ByteString IO Void () +forwardEKGMetricsResp config ekgStore = + ResponderProtocolOnly $ MiniProtocolCb \_ctx channel -> do + deltify <- mkDeltify + runPeer + (forwarderTracer config) + (Forwarder.codecEKGForward CBOR.encode CBOR.decode + CBOR.encode CBOR.decode) + channel + (Forwarder.ekgForwarderPeer $ mkResponse config deltify ekgStore) + +forwardEKGMetricsDummy + :: RunMiniProtocol 'Mux.InitiatorMode initiatorCtx responderCtx LBS.ByteString IO () Void +forwardEKGMetricsDummy = + InitiatorProtocolOnly $ MiniProtocolCb \_ctx channel -> + runPeer + nullTracer + (Forwarder.codecEKGForward CBOR.encode CBOR.decode + CBOR.encode CBOR.decode) + channel + (Forwarder.ekgForwarderPeer mkResponseDummy) + +forwardEKGMetricsRespDummy + :: RunMiniProtocol 'Mux.ResponderMode initiatorCtx responderCtx LBS.ByteString IO Void () +forwardEKGMetricsRespDummy = + ResponderProtocolOnly $ MiniProtocolCb \_ctx channel -> + runPeer + nullTracer + (Forwarder.codecEKGForward CBOR.encode CBOR.decode + CBOR.encode CBOR.decode) + channel + (Forwarder.ekgForwarderPeer mkResponseDummy) diff --git a/ekg-forward/src/System/Metrics/Protocol/Acceptor.hs b/ekg-forward/src/System/Metrics/Protocol/Acceptor.hs new file mode 100644 index 00000000000..dca41735c15 --- /dev/null +++ b/ekg-forward/src/System/Metrics/Protocol/Acceptor.hs @@ -0,0 +1,56 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE LambdaCase #-} + +{- HLINT ignore "Use <$>" -} + +-- | A view of the EKG forwarding/accepting protocol from the point of view of the +-- client. +-- +-- For execution, a conversion into the typed protocol is provided. +-- +module System.Metrics.Protocol.Acceptor ( + EKGAcceptor(..) + , ekgAcceptorPeer + ) where + +import Network.TypedProtocol.Peer.Client +import System.Metrics.Protocol.Type + +-- | Please note that the acceptor is a server from the __networking__ +-- point of view: the forwarder establishes network connection with the acceptor. +-- But after the connection is established, the acceptor becomes a client +-- from the __interaction__ point of view: it sends a request for new +-- metrics, the forwarder replies to the acceptor. +-- +data EKGAcceptor req resp m a where + SendMsgReq :: req + -> (resp -> m (EKGAcceptor req resp m a)) + -> EKGAcceptor req resp m a + + SendMsgDone :: m a -> EKGAcceptor req resp m a + +-- | Interpret a particular action sequence into the client side of the +-- 'EKGForward' protocol. +-- +ekgAcceptorPeer + :: Monad m + => EKGAcceptor req resp m a + -> Client (EKGForward req resp) 'NonPipelined 'StIdle m a +ekgAcceptorPeer = \case + SendMsgReq req next -> + -- Send our message (request for the new metrics from the forwarder). + Yield (MsgReq req) $ + -- We're now into the 'StBusy' state, and now we'll wait for a reply + -- from the forwarder. + Await $ \(MsgResp resp) -> + Effect $ + ekgAcceptorPeer <$> next resp + + SendMsgDone getResult -> + -- We do an actual transition using 'yield', to go from the 'StIdle' to + -- 'StDone' state. Once in the 'StDone' state we can actually stop using + -- 'done', with a return value. + Effect $ do + r <- getResult + return $ Yield MsgDone (Done r) diff --git a/ekg-forward/src/System/Metrics/Protocol/Codec.hs b/ekg-forward/src/System/Metrics/Protocol/Codec.hs new file mode 100644 index 00000000000..e053fb46e0b --- /dev/null +++ b/ekg-forward/src/System/Metrics/Protocol/Codec.hs @@ -0,0 +1,81 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE ScopedTypeVariables #-} + +module System.Metrics.Protocol.Codec ( + codecEKGForward + ) where + +import qualified Codec.CBOR.Decoding as CBOR +import qualified Codec.CBOR.Encoding as CBOR +import Codec.CBOR.Read (DeserialiseFailure) +import Control.Monad.Class.MonadST (MonadST) +import qualified Data.ByteString.Lazy as LBS +import Text.Printf (printf) +import Network.TypedProtocol.Core +import Network.TypedProtocol.Codec (Codec, SomeMessage (..)) +import Network.TypedProtocol.Codec.CBOR (mkCodecCborLazyBS) + +import System.Metrics.Protocol.Type + + +codecEKGForward + :: forall req resp m. + (MonadST m) + => (req -> CBOR.Encoding) + -> (forall s . CBOR.Decoder s req) + -> (resp -> CBOR.Encoding) + -> (forall s . CBOR.Decoder s resp) + -> Codec (EKGForward req resp) + DeserialiseFailure m LBS.ByteString +codecEKGForward encodeReq decodeReq + encodeResp decodeResp = + mkCodecCborLazyBS encode decode + where + -- Encode messages. + encode :: forall (st :: EKGForward req resp) + (st' :: EKGForward req resp). + Message (EKGForward req resp) st st' + -> CBOR.Encoding + + encode (MsgReq req) = + CBOR.encodeListLen 2 + <> CBOR.encodeWord 0 + <> encodeReq req + + encode MsgDone = + CBOR.encodeListLen 1 + <> CBOR.encodeWord 1 + + encode (MsgResp resp) = + CBOR.encodeListLen 2 + <> CBOR.encodeWord 1 + <> encodeResp resp + + -- Decode messages + decode :: forall (st :: EKGForward req resp) s. + ActiveState st + => StateToken st + -> CBOR.Decoder s (SomeMessage st) + decode stok = do + len <- CBOR.decodeListLen + key <- CBOR.decodeWord + case (key, len, stok) of + (0, 2, SingIdle) -> + SomeMessage . MsgReq <$> decodeReq + + (1, 1, SingIdle) -> + return $ SomeMessage MsgDone + + (1, 2, SingBusy) -> + SomeMessage . MsgResp <$> decodeResp + + -- Failures per protocol state + (_, _, SingIdle) -> + fail (printf "codecEKGForward (%s) unexpected key (%d, %d)" (show stok) key len) + (_, _, SingBusy) -> + fail (printf "codecEKGForward (%s) unexpected key (%d, %d)" (show stok) key len) + (_, _, SingDone) -> notActiveState stok diff --git a/ekg-forward/src/System/Metrics/Protocol/Forwarder.hs b/ekg-forward/src/System/Metrics/Protocol/Forwarder.hs new file mode 100644 index 00000000000..67e2ae688b0 --- /dev/null +++ b/ekg-forward/src/System/Metrics/Protocol/Forwarder.hs @@ -0,0 +1,53 @@ +{-# LANGUAGE BlockArguments #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE ScopedTypeVariables #-} + +module System.Metrics.Protocol.Forwarder ( + EKGForwarder (..) + , ekgForwarderPeer + ) where + +import Network.TypedProtocol.Peer.Server + +import System.Metrics.Protocol.Type + +-- | Please note that the forwarder is a client from the __networking__ +-- point of view: it establishes network connection with the acceptor. +-- But after the connection is established, the forwarder becomes a server +-- from the __interaction__ point of view: the acceptor sends a request for +-- new metrics, the forwarder replies to the acceptor. +-- +data EKGForwarder req resp m a = EKGForwarder { + -- | The acceptor sent us a request for new metrics. + recvMsgReq :: req -> m resp + + -- | The acceptor terminated. Here we have a pure return value, but we + -- could have done another action in 'm' if we wanted to. + , recvMsgDone :: m a + } + +-- | Interpret a particular action sequence into the server side of the +-- 'EKGForward' protocol. +-- +ekgForwarderPeer + :: forall m req resp a. () + => Monad m + => EKGForwarder req resp m a + -> Server (EKGForward req resp) 'NonPipelined 'StIdle m a +ekgForwarderPeer EKGForwarder{..} = go + where + go :: Server (EKGForward req resp) 'NonPipelined 'StIdle m a + go = + -- In the 'StIdle' state the forwarder is awaiting a request message + -- from the acceptor. + Await \case + MsgReq req -> Effect do + resp <- recvMsgReq req + return $ Yield (MsgResp resp) go + + -- The acceptor sent the done transition, so we're in the 'StDone' state + -- so all we can do is stop using 'done', with a return value. + MsgDone -> Effect $ Done <$> recvMsgDone diff --git a/ekg-forward/src/System/Metrics/Protocol/Type.hs b/ekg-forward/src/System/Metrics/Protocol/Type.hs new file mode 100644 index 00000000000..e7525a3366d --- /dev/null +++ b/ekg-forward/src/System/Metrics/Protocol/Type.hs @@ -0,0 +1,122 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE TypeFamilies #-} + +-- | The type of the EKG forwarding/accepting protocol. +-- +-- Since we are using a typed protocol framework this is in some sense /the/ +-- definition of the protocol: what is allowed and what is not allowed. + +module System.Metrics.Protocol.Type + ( EKGForward (..) + , Message (..) + , SingEKGForward (..) + ) where + +import Data.Singletons +import Network.TypedProtocol.Core +import Ouroboros.Network.Util.ShowProxy (ShowProxy(..)) + +-- | A kind to identify our protocol, and the types of the states in the state +-- transition diagram of the protocol. +-- +-- IMPORTANT NOTE: the following terminology is used: +-- +-- 1. From the protocol's point of view, two peers talk to each other: +-- the forwarder and the acceptor. +-- 2. The forwarder is an application that collects EKG metrics and sends +-- them to the acceptor by request. +-- 3. The acceptor is an application that receives EKG metrics from the +-- forwarder. +-- 4. You can this of the forwarder as a client, and the acceptor as a server: +-- 4.1. The client is "initially active side", because it establishes the +-- connection with the server. +-- 4.2. The server is "initially passive side", because it accepts the +-- connection from the client. +-- 5. But after the connection is established, the roles are REVERSED: +-- the acceptor becomes an active side because it asks the metrics, the +-- forwarder becomes a passive side because it waits for the request from +-- the acceptor, collects the metrics and sends them to the acceptor. +-- +data EKGForward req resp where + + -- | Both acceptor and forwarder are in idle state. The acceptor can send a + -- request for the metrics and the forwarder is waiting for a request. + StIdle :: EKGForward req resp + + -- | The acceptor has sent a next request for the metrics. The acceptor is + -- now waiting for a response, and the forwarder is busy getting ready to send a + -- response with new metrics. It is assumed that the forwarder can send a reply + -- immediately (with the current list of the metrics). + StBusy :: EKGForward req resp + + -- | Both the acceptor and forwarder are in the terminal state. They're done. + StDone :: EKGForward req resp + +instance (ShowProxy req, ShowProxy resp) + => ShowProxy (EKGForward req resp) where + showProxy _ = concat + [ "EKGForward (" + , showProxy (Proxy :: Proxy req) + , ") (" + , showProxy (Proxy :: Proxy resp) + , ")" + ] + +-- | Singleton type of EKGForward. Same as: +-- +-- @ +-- type SingEKGForward :: EKGForward req resp -> Type +-- type SingEKGForward = TypeRep +-- @ +data SingEKGForward (st :: EKGForward req resp) where + SingIdle :: SingEKGForward 'StIdle + SingBusy :: SingEKGForward 'StBusy + SingDone :: SingEKGForward 'StDone + +type instance Sing = SingEKGForward + +deriving instance Show (SingEKGForward st) +instance StateTokenI 'StIdle where stateToken = SingIdle +instance StateTokenI 'StBusy where stateToken = SingBusy +instance StateTokenI 'StDone where stateToken = SingDone + +instance Protocol (EKGForward req resp) where + + -- | The messages in the EKG forwarding/accepting protocol. + -- + data Message (EKGForward req resp) from to where + -- | Request the list of metrics from the forwarder. State: Idle -> Busy. + MsgReq :: req -> Message (EKGForward req resp) 'StIdle 'StBusy + + -- | Response with the list of metrics for the acceptor. State: Busy -> Idle. + MsgResp :: resp -> Message (EKGForward req resp) 'StBusy 'StIdle + + -- | Terminating message. State: Idle -> Done. + MsgDone :: Message (EKGForward req resp) 'StIdle 'StDone + + -- | This is an explanation of our states, in terms of which party has agency + -- in each state. + -- + -- 1. When both peers are in Idle state, the acceptor can send a message + -- to the forwarder (request for the new metrics), + -- 2. When both peers are in Busy state, the forwarder is expected to send + -- a reply to the acceptor (list of new metrics). + -- + -- So we assume that, from __interaction__ point of view: + -- 1. ClientAgency (from 'Network.TypedProtocol.Core') corresponds to acceptor's agency. + -- 3. ServerAgency (from 'Network.TypedProtocol.Core') corresponds to forwarder's agency. + -- + type StateAgency 'StIdle = 'ClientAgency + type StateAgency 'StBusy = 'ServerAgency + type StateAgency 'StDone = 'NobodyAgency + + type StateToken = SingEKGForward + +deriving instance (Show req, Show resp) + => Show (Message (EKGForward req resp) from to) diff --git a/ekg-forward/src/System/Metrics/ReqResp.hs b/ekg-forward/src/System/Metrics/ReqResp.hs new file mode 100644 index 00000000000..eadfac6a7d4 --- /dev/null +++ b/ekg-forward/src/System/Metrics/ReqResp.hs @@ -0,0 +1,50 @@ +{-# LANGUAGE DeriveGeneric #-} + +module System.Metrics.ReqResp + ( MetricName + , MetricValue (..) + , Request (..) + , Response (..) + ) where + +import Codec.Serialise (Serialise) +import Data.Int (Int64) +import Data.List.NonEmpty (NonEmpty) +import Data.Text (Text) +import GHC.Generics (Generic) +import Ouroboros.Network.Util.ShowProxy (ShowProxy(..)) + +-- | Each EKG metric has a unique name. +type MetricName = Text + +-- | Metric value that will be transmitted from the forwarder to the acceptor. +-- Please note that EKG.Distribution is not supported yet. +data MetricValue + = CounterValue !Int64 -- ^ Counter value. + | GaugeValue !Int64 -- ^ Gauge value. + | LabelValue !Text -- ^ Text label. + deriving (Eq, Show, Generic) + +instance ShowProxy MetricValue +instance Serialise MetricValue + +-- | The request for the new metrics. +-- The acceptor will send this request to the forwarder. +data Request + = GetAllMetrics -- ^ Get all metrics from the forwarder's local store. + | GetMetrics !(NonEmpty MetricName) -- ^ Get specific metrics only. + | GetUpdatedMetrics -- ^ Get all metrics from the forwarder's local store that have changed since the last request. + deriving (Eq, Generic, Show) + +-- | The response with the metrics. +-- The forwarder will send it to the acceptor as a reply for the request. +-- Please note that the list of metrics can be empty (for example, if the +-- forwarder's local store is empty). +newtype Response = ResponseMetrics [(MetricName, MetricValue)] + deriving (Generic, Show) + +instance ShowProxy Request +instance Serialise Request + +instance ShowProxy Response +instance Serialise Response diff --git a/ekg-forward/src/System/Metrics/Store/Acceptor.hs b/ekg-forward/src/System/Metrics/Store/Acceptor.hs new file mode 100644 index 00000000000..b4b5bf2b571 --- /dev/null +++ b/ekg-forward/src/System/Metrics/Store/Acceptor.hs @@ -0,0 +1,104 @@ +module System.Metrics.Store.Acceptor + ( storeMetrics + , MetricsLocalStore (..) + , emptyMetricsLocalStore + ) where + +import Control.Concurrent.STM (atomically) +import Control.Concurrent.STM.TVar (TVar, modifyTVar', readTVarIO) +import Control.Monad (forM_, when) +import Data.HashMap.Strict (HashMap, (!)) +import qualified Data.HashMap.Strict as HM +import Data.Int (Int64) +import Data.Text (Text) +import qualified System.Metrics as EKG +import qualified System.Metrics.Counter as C +import qualified System.Metrics.Gauge as G +import qualified System.Metrics.Label as L + +import System.Metrics.ReqResp (MetricName, MetricValue (..), Response (..)) + +storeMetrics + :: Response + -> EKG.Store + -> TVar MetricsLocalStore + -> IO () +storeMetrics (ResponseMetrics []) _ _ = return () +storeMetrics (ResponseMetrics newMetrics) ekgStore metricsStore = do + storedMetrics <- readTVarIO metricsStore + forM_ newMetrics $ \(mName, mValue) -> + case mValue of + CounterValue c -> addOrUpdate mName storedMetrics c checkCounter addCounter updateCounter + GaugeValue g -> addOrUpdate mName storedMetrics g checkGauge addGauge updateGauge + LabelValue l -> addOrUpdate mName storedMetrics l checkLabel addLabel updateLabel + where + addOrUpdate mName storedMetrics v checkIt addIt updateIt = + if checkIt mName storedMetrics + then updateIt v mName storedMetrics + else addIt v mName ekgStore metricsStore + + -- We have to check if this metric is already registered, because if we'll try + -- to add the metric with existing name, 'ekg-core' will throw an exception. + checkCounter mName = HM.member mName . ekgCounters + checkGauge mName = HM.member mName . ekgGauges + checkLabel mName = HM.member mName . ekgLabels + +addCounter :: Int64 -> MetricName -> EKG.Store -> TVar MetricsLocalStore -> IO () +addCounter c mName ekgStore metricsStore = do + newCounter <- EKG.createCounter mName ekgStore + C.add newCounter c + atomically $ modifyTVar' metricsStore $ \currentStore -> + currentStore { ekgCounters = HM.insert mName newCounter $ ekgCounters currentStore } + +addGauge :: Int64 -> MetricName -> EKG.Store -> TVar MetricsLocalStore -> IO () +addGauge g mName ekgStore metricsStore = do + newGauge <- EKG.createGauge mName ekgStore + G.set newGauge g + atomically $ modifyTVar' metricsStore $ \currentStore -> + currentStore { ekgGauges = HM.insert mName newGauge $ ekgGauges currentStore } + +addLabel :: Text -> MetricName -> EKG.Store -> TVar MetricsLocalStore -> IO () +addLabel l mName ekgStore metricsStore = do + newLabel <- EKG.createLabel mName ekgStore + L.set newLabel l + atomically $ modifyTVar' metricsStore $ \currentStore -> + currentStore { ekgLabels = HM.insert mName newLabel $ ekgLabels currentStore } + +updateCounter :: Int64 -> MetricName -> MetricsLocalStore -> IO () +updateCounter c mName storedMetrics = do + let counter = ekgCounters storedMetrics ! mName + currentValue <- C.read counter + let difference = c - currentValue + when (difference > 0) $ + C.add counter difference + +updateGauge :: Int64 -> MetricName -> MetricsLocalStore -> IO () +updateGauge g mName storedMetrics = do + let gauge = ekgGauges storedMetrics ! mName + currentValue <- G.read gauge + when (currentValue /= g) $ + G.set gauge g + +updateLabel :: Text -> MetricName -> MetricsLocalStore -> IO () +updateLabel l mName storedMetrics = do + let label = ekgLabels storedMetrics ! mName + currentValue <- L.read label + when (currentValue /= l) $ + L.set label l + +-- Local storage for metrics. We need it be able to update metrics in EKG.Store +-- by new values we receive from the forwarder. + +data MetricsLocalStore = MetricsLocalStore + { ekgCounters :: !(HashMap MetricName C.Counter) + , ekgGauges :: !(HashMap MetricName G.Gauge) + , ekgLabels :: !(HashMap MetricName L.Label) + } + +emptyMetricsLocalStore :: MetricsLocalStore +emptyMetricsLocalStore = + MetricsLocalStore + { ekgCounters = HM.empty + , ekgGauges = HM.empty + , ekgLabels = HM.empty + } diff --git a/ekg-forward/src/System/Metrics/Store/Deltify.hs b/ekg-forward/src/System/Metrics/Store/Deltify.hs new file mode 100644 index 00000000000..b641023144c --- /dev/null +++ b/ekg-forward/src/System/Metrics/Store/Deltify.hs @@ -0,0 +1,40 @@ +{-# LANGUAGE RecordWildCards #-} + +module System.Metrics.Store.Deltify + ( Deltify(..) + , mkDeltify + ) where + +import Control.Concurrent.Class.MonadSTM.TVar +import Control.Monad.Class.MonadSTM +import qualified Data.HashMap.Strict as HM +import System.Metrics (Sample) + + +data Deltify m = Deltify + { deltaPutAll :: Sample -> m () -- ^ put an entire Sample into the backbuffer + , deltaDeltify :: Sample -> m Sample -- ^ return delta to current backbuffer, and update backbuffer + , deltaPutDelta :: Sample -> m () -- ^ apply delta to backbuffer + } + +newtype BackBuffer = BackBuffer Sample -- ^ the backbuffer holds the latest sample that was base for a Response + + +{-# SPECIALIZE mkDeltify :: IO (Deltify IO) #-} +mkDeltify :: MonadSTM m => m (Deltify m) +mkDeltify = do + backBuffer <- newTVarIO (BackBuffer HM.empty) + + let + deltaPutAll = atomically . writeTVar backBuffer . BackBuffer + deltaDeltify = atomically . stateTVar backBuffer . getDelta + deltaPutDelta = atomically . modifyTVar' backBuffer . putDelta + pure Deltify{..} + where + putDelta :: Sample -> BackBuffer -> BackBuffer + putDelta curr (BackBuffer prev) = BackBuffer (HM.union curr prev) + + getDelta :: Sample -> BackBuffer -> (Sample, BackBuffer) + getDelta curr (BackBuffer prev) = (updateMetrics, BackBuffer curr) + where + updateMetrics = HM.differenceWith (\v' v -> if v' == v then Nothing else Just v') curr prev diff --git a/ekg-forward/src/System/Metrics/Store/Forwarder.hs b/ekg-forward/src/System/Metrics/Store/Forwarder.hs new file mode 100644 index 00000000000..8f1022d832d --- /dev/null +++ b/ekg-forward/src/System/Metrics/Store/Forwarder.hs @@ -0,0 +1,73 @@ +{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE ViewPatterns #-} + +module System.Metrics.Store.Forwarder + ( mkResponse + , mkResponseDummy + ) where + +import qualified Data.HashMap.Strict as HM +import qualified Data.HashSet as HS +import qualified Data.List.NonEmpty as NE +import Data.Maybe (mapMaybe) +import qualified System.Metrics as EKG + +import System.Metrics.Configuration (ForwarderConfiguration (..)) +import qualified System.Metrics.Protocol.Forwarder as Forwarder +import System.Metrics.ReqResp (MetricName, + MetricValue (..), + Request (..), Response (..)) +import System.Metrics.Store.Deltify + + +mkResponse + :: ForwarderConfiguration + -> Deltify IO + -> EKG.Store + -> Forwarder.EKGForwarder Request Response IO () +mkResponse ForwarderConfiguration{..} Deltify{..} ekgStore = + Forwarder.EKGForwarder + { Forwarder.recvMsgReq = \request -> do + actionOnRequest request + sample <- EKG.sampleAll ekgStore + case request of + GetUpdatedMetrics -> do + sample' <- deltaDeltify sample + let supportedMetrics = mapMaybe filterMetrics $ HM.toList sample' + return $ ResponseMetrics supportedMetrics + GetAllMetrics -> do + let supportedMetrics = mapMaybe filterMetrics $ HM.toList sample + deltaPutAll sample + return $ ResponseMetrics supportedMetrics + GetMetrics (HS.fromList . NE.toList -> mNames) -> do + let + sample' = filterSample mNames sample + supportedMetrics = mapMaybe filterMetrics $ HM.toList sample' + deltaPutDelta sample' + return $ ResponseMetrics supportedMetrics + , Forwarder.recvMsgDone = return () + } + +filterMetrics + :: (MetricName, EKG.Value) + -> Maybe (MetricName, MetricValue) +filterMetrics (mName, ekgValue) = + case ekgValue of + EKG.Counter c -> Just (mName, CounterValue c) + EKG.Gauge g -> Just (mName, GaugeValue g) + EKG.Label l -> Just (mName, LabelValue l) + EKG.Distribution _ -> Nothing -- Distribution does not supported yet. + +filterSample + :: HS.HashSet MetricName + -> EKG.Sample + -> EKG.Sample +filterSample mNames = HM.filterWithKey (\k _ -> k `HS.member` mNames) + +mkResponseDummy + :: Forwarder.EKGForwarder Request Response IO () +mkResponseDummy = + Forwarder.EKGForwarder + { Forwarder.recvMsgReq = const $ return $ ResponseMetrics [] + , Forwarder.recvMsgDone = return () + } diff --git a/ekg-forward/test/Spec.hs b/ekg-forward/test/Spec.hs new file mode 100644 index 00000000000..dac9c54c38e --- /dev/null +++ b/ekg-forward/test/Spec.hs @@ -0,0 +1,22 @@ +import Test.Hspec + +import Test.GetAllMetrics +import Test.GetMetrics +import Test.GetUpdatedMetrics + +main :: IO () +main = hspec $ do + describe "EKG metrics forwarding, via local pipe" $ do + it "request of all metrics" + getAllMetricsViaPipe + it "request of some metrics" + getMetricsViaPipe + it "request of updated metrics" + getUpdatedMetricsViaPipe + describe "EKG metrics forwarding, via remote socket" $ do + it "request of all metrics" + getAllMetricsViaSocket + it "request of some metrics" + getMetricsViaSocket + it "request of updated metrics" + getUpdatedMetricsViaSocket diff --git a/ekg-forward/test/Test/GetAllMetrics.hs b/ekg-forward/test/Test/GetAllMetrics.hs new file mode 100644 index 00000000000..a852f7cf57f --- /dev/null +++ b/ekg-forward/test/Test/GetAllMetrics.hs @@ -0,0 +1,55 @@ +module Test.GetAllMetrics + ( getAllMetricsViaPipe + , getAllMetricsViaSocket + ) where + +import Test.Hspec + +import Control.Concurrent (forkIO, threadDelay) +import Control.Concurrent.STM (atomically) +import Control.Concurrent.STM.TVar (modifyTVar', newTVarIO) +import qualified System.Metrics as EKG +import qualified System.Metrics.Gauge as G +import qualified System.Metrics.Label as L +import qualified System.Metrics.Counter as C + +import System.Metrics.Acceptor (runEKGAcceptor) +import System.Metrics.Forwarder (runEKGForwarder) +import System.Metrics.Configuration (HowToConnect (..)) +import System.Metrics.ReqResp (Request (..)) + +import Test.MkConfig (mkAcceptorConfig, mkForwarderConfig) + +getAllMetricsViaPipe, getAllMetricsViaSocket :: IO () +getAllMetricsViaPipe = getAllMetrics $ LocalPipe "/tmp/ekg-forward-test-1.sock" +getAllMetricsViaSocket = getAllMetrics $ RemoteSocket "127.0.0.1" 3010 + +getAllMetrics :: HowToConnect -> IO () +getAllMetrics endpoint = do + forwarderStore <- EKG.newStore + acceptorStore <- EKG.newStore + weAreDone <- newTVarIO False + + let acceptorConfig = mkAcceptorConfig endpoint weAreDone GetAllMetrics + forwarderConfig = mkForwarderConfig endpoint + + _acceptorThr <- forkIO $ runEKGAcceptor acceptorConfig acceptorStore + + EKG.createGauge "test1.gauge.1" forwarderStore >>= flip G.set 123 + EKG.createGauge "test1.gauge.2" forwarderStore >>= flip G.set 456 + EKG.createLabel "test1.label.1" forwarderStore >>= flip L.set "TestLabel_1" + EKG.createLabel "test1.label.2" forwarderStore >>= flip L.set "TestLabel_2" + EKG.createCounter "test1.cntr.1" forwarderStore >>= flip C.add 10 + + _forwarderThr <- forkIO $ runEKGForwarder forwarderConfig forwarderStore + + threadDelay 2000000 + + atomically $ modifyTVar' weAreDone (const True) + + threadDelay 1000000 + + forwarderMetrics <- EKG.sampleAll forwarderStore + acceptorMetrics <- EKG.sampleAll acceptorStore + + acceptorMetrics `shouldBe` forwarderMetrics diff --git a/ekg-forward/test/Test/GetMetrics.hs b/ekg-forward/test/Test/GetMetrics.hs new file mode 100644 index 00000000000..1f182679bb6 --- /dev/null +++ b/ekg-forward/test/Test/GetMetrics.hs @@ -0,0 +1,63 @@ +module Test.GetMetrics + ( getMetricsViaPipe + , getMetricsViaSocket + ) where + +import Test.Hspec + +import Control.Concurrent (forkIO, threadDelay) +import Control.Concurrent.STM (atomically) +import Control.Concurrent.STM.TVar (modifyTVar', newTVarIO) +import qualified Data.HashMap.Strict as HM +import qualified Data.List.NonEmpty as NE +import qualified System.Metrics as EKG +import qualified System.Metrics.Gauge as G +import qualified System.Metrics.Label as L +import qualified System.Metrics.Counter as C + +import System.Metrics.Acceptor (runEKGAcceptor) +import System.Metrics.Forwarder (runEKGForwarder) +import System.Metrics.Configuration (HowToConnect (..)) +import System.Metrics.ReqResp (Request (..)) + +import Test.MkConfig (mkAcceptorConfig, mkForwarderConfig) + +getMetricsViaPipe, getMetricsViaSocket :: IO () +getMetricsViaPipe = getMetrics $ LocalPipe "/tmp/ekg-forward-test-2.sock" +getMetricsViaSocket = getMetrics $ RemoteSocket "127.0.0.1" 3020 + +getMetrics :: HowToConnect -> IO () +getMetrics endpoint = do + forwarderStore <- EKG.newStore + acceptorStore <- EKG.newStore + weAreDone <- newTVarIO False + + let acceptorConfig = mkAcceptorConfig endpoint weAreDone $ + GetMetrics $ NE.fromList ["test2.gauge.1", "test2.label.2"] + forwarderConfig = mkForwarderConfig endpoint + + _acceptorThr <- forkIO $ runEKGAcceptor acceptorConfig acceptorStore + + EKG.createGauge "test2.gauge.1" forwarderStore >>= flip G.set 123 + EKG.createGauge "test2.gauge.2" forwarderStore >>= flip G.set 456 + EKG.createLabel "test2.label.1" forwarderStore >>= flip L.set "TestLabel_1" + EKG.createLabel "test2.label.2" forwarderStore >>= flip L.set "TestLabel_2" + EKG.createCounter "test2.cntr.1" forwarderStore >>= flip C.add 10 + + _forwarderThr <- forkIO $ runEKGForwarder forwarderConfig forwarderStore + + threadDelay 2000000 + + atomically $ modifyTVar' weAreDone (const True) + + threadDelay 1000000 + + acceptorMetrics <- HM.toList <$> EKG.sampleAll acceptorStore + + length acceptorMetrics `shouldBe` 2 + + let fstMetricIsHere = ("test2.gauge.1", EKG.Gauge 123) `elem` acceptorMetrics + sndMetricIsHere = ("test2.label.2", EKG.Label "TestLabel_2") `elem` acceptorMetrics + + fstMetricIsHere `shouldBe` True + sndMetricIsHere `shouldBe` True diff --git a/ekg-forward/test/Test/GetUpdatedMetrics.hs b/ekg-forward/test/Test/GetUpdatedMetrics.hs new file mode 100644 index 00000000000..7678fe434a8 --- /dev/null +++ b/ekg-forward/test/Test/GetUpdatedMetrics.hs @@ -0,0 +1,61 @@ +module Test.GetUpdatedMetrics + ( getUpdatedMetricsViaPipe + , getUpdatedMetricsViaSocket + ) where + +import Test.Hspec + +import Control.Concurrent (forkIO, threadDelay) +import Control.Concurrent.STM (atomically) +import Control.Concurrent.STM.TVar (modifyTVar', newTVarIO) +import qualified System.Metrics as EKG +import qualified System.Metrics.Gauge as G +import qualified System.Metrics.Label as L +import qualified System.Metrics.Counter as C + +import System.Metrics.Acceptor (runEKGAcceptor) +import System.Metrics.Forwarder (runEKGForwarder) +import System.Metrics.Configuration (HowToConnect (..)) +import System.Metrics.ReqResp (Request (..)) + +import Test.MkConfig (mkAcceptorConfig, mkForwarderConfig) + +getUpdatedMetricsViaPipe, getUpdatedMetricsViaSocket :: IO () +getUpdatedMetricsViaPipe = getUpdatedMetrics $ LocalPipe "/tmp/ekg-forward-test-3.sock" +getUpdatedMetricsViaSocket = getUpdatedMetrics $ RemoteSocket "127.0.0.1" 3030 + +getUpdatedMetrics :: HowToConnect -> IO () +getUpdatedMetrics endpoint = do + forwarderStore <- EKG.newStore + acceptorStore <- EKG.newStore + weAreDone <- newTVarIO False + + let acceptorConfig = mkAcceptorConfig endpoint weAreDone GetUpdatedMetrics + forwarderConfig = mkForwarderConfig endpoint + + _acceptorThr <- forkIO $ runEKGAcceptor acceptorConfig acceptorStore + + EKG.createGauge "test1.gauge.1" forwarderStore >>= flip G.set 123 + g2 <- EKG.createGauge "test1.gauge.2" forwarderStore + G.set g2 456 + EKG.createLabel "test1.label.1" forwarderStore >>= flip L.set "TestLabel_1" + l2 <- EKG.createLabel "test1.label.2" forwarderStore + L.set l2 "TestLabel_2" + EKG.createCounter "test1.cntr.1" forwarderStore >>= flip C.add 10 + + _forwarderThr <- forkIO $ runEKGForwarder forwarderConfig forwarderStore + + threadDelay 1500000 + G.set g2 789 + L.set l2 "TestLabel_3.1415" + EKG.createCounter "test1.cntr.2" forwarderStore >>= flip C.add 42 + threadDelay 1500000 + + atomically $ modifyTVar' weAreDone (const True) + + threadDelay 1000000 + + forwarderMetrics <- EKG.sampleAll forwarderStore + acceptorMetrics <- EKG.sampleAll acceptorStore + + acceptorMetrics `shouldBe` forwarderMetrics diff --git a/ekg-forward/test/Test/MkConfig.hs b/ekg-forward/test/Test/MkConfig.hs new file mode 100644 index 00000000000..84eb3270bac --- /dev/null +++ b/ekg-forward/test/Test/MkConfig.hs @@ -0,0 +1,39 @@ +module Test.MkConfig + ( mkAcceptorConfig + , mkForwarderConfig + ) where + +import Control.Concurrent.STM.TVar (TVar) +import Control.Tracer (nullTracer) +import Data.Time.Clock (secondsToNominalDiffTime) + +import System.Metrics.Configuration (AcceptorConfiguration (..), + ForwarderConfiguration (..), + HowToConnect (..)) +import System.Metrics.ReqResp (Request (..)) + +mkAcceptorConfig + :: HowToConnect + -> TVar Bool + -> Request + -> AcceptorConfiguration +mkAcceptorConfig endpoint weAreDone request = + AcceptorConfiguration + { acceptorTracer = nullTracer + , forwarderEndpoint = endpoint + , requestFrequency = secondsToNominalDiffTime 1 + , whatToRequest = request + , shouldWeStop = weAreDone + } + +mkForwarderConfig + :: HowToConnect + -> ForwarderConfiguration +mkForwarderConfig endpoint = + ForwarderConfiguration + { forwarderTracer = nullTracer + , acceptorEndpoint = endpoint + , reConnectFrequency = secondsToNominalDiffTime 1 + , actionOnRequest = \_ -> return () + , useDummyForwarder = False + } diff --git a/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs b/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs index e535dc3d305..5131d36efed 100644 --- a/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs +++ b/trace-forward/src/Trace/Forward/Run/DataPoint/Acceptor.hs @@ -54,7 +54,6 @@ runPeerWithRequestor config mkDPRequestor peerErrorHandler = (acceptorTracer config) (Acceptor.codecDataPointForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) - (fromIntegral . LBS.length) channel (Acceptor.dataPointAcceptorPeer $ acceptorActions config dpRequestor []) `finally` peerErrorHandler ctx diff --git a/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs b/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs index 554aac56943..3a8537540f3 100644 --- a/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs +++ b/trace-forward/src/Trace/Forward/Run/DataPoint/Forwarder.hs @@ -42,6 +42,5 @@ runPeerWithDPStore config dpStore = (forwarderTracer config) (Forwarder.codecDataPointForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) - (fromIntegral . LBS.length) channel (Forwarder.dataPointForwarderPeer $ readFromStore dpStore) diff --git a/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs b/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs index 175506dd981..511fb50e7f8 100644 --- a/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs +++ b/trace-forward/src/Trace/Forward/Run/TraceObject/Acceptor.hs @@ -68,7 +68,6 @@ runPeerWithHandler config@AcceptorConfiguration{acceptorTracer, shouldWeStop} lo acceptorTracer (Acceptor.codecTraceObjectForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) - (fromIntegral . LBS.length) channel (Acceptor.traceObjectAcceptorPeer $ acceptorActions config (loHandler ctx)) `finally` peerErrorHandler ctx diff --git a/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs b/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs index 7727e14ed94..b2dcb08b429 100644 --- a/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs +++ b/trace-forward/src/Trace/Forward/Run/TraceObject/Forwarder.hs @@ -52,6 +52,5 @@ runPeerWithSink config sink = (forwarderTracer config) (Forwarder.codecTraceObjectForward CBOR.encode CBOR.decode CBOR.encode CBOR.decode) - (fromIntegral . LBS.length) channel (Forwarder.traceObjectForwarderPeer $ readFromSink sink) From a7d5a6f582cae54315813d15faed9347cbfbcafb Mon Sep 17 00:00:00 2001 From: Drazen Popovic Date: Mon, 4 May 2026 17:28:15 +0200 Subject: [PATCH 67/69] N3: LeiosDbConfig configuration entry + thread to consensus Introduces 'Cardano.Node.Configuration.Leios.LeiosDbConfig' with two constructors: - LeiosDbInMemory (matches 'LeiosDbConnection's in-memory backend) - LeiosDbSQLite !FilePath (SQLite backend, file relative to node CWD) Wired through 'PartialNodeConfiguration' / 'NodeConfiguration' as 'ncLeiosDbConfig' with JSON parsing ('"LeiosDbConfig":{"Backend":..., "Filepath":...}') and a default of 'LeiosDbSQLite "leios.db"'. At node startup ('Cardano.Node.Run.handleSimpleNode'), the configured backend is materialised into a 'LeiosDbHandle' (via 'newLeiosDBInMemory' / 'newLeiosDBSQLite') and passed into 'RunNodeArgs' through a new 'rnLeiosDb :: Maybe (LeiosDbHandle m)' field, which consensus's 'runWith' threads into the Leios kernel's shared connection. 'Nothing' falls back to the in-memory default. Co-Authored-By: Claude Opus 4.7 --- cardano-node/cardano-node.cabal | 1 + .../src/Cardano/Node/Configuration/Leios.hs | 34 +++++++++++++++++++ .../src/Cardano/Node/Configuration/POM.hs | 18 ++++++++++ cardano-node/src/Cardano/Node/Parsers.hs | 1 + cardano-node/src/Cardano/Node/Run.hs | 8 +++++ cardano-node/test/Test/Cardano/Node/POM.hs | 4 +++ 6 files changed, 66 insertions(+) create mode 100644 cardano-node/src/Cardano/Node/Configuration/Leios.hs diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index 7dd92682cee..5558f5ce702 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -63,6 +63,7 @@ library exposed-modules: Cardano.Node.Configuration.Logging Cardano.Node.Configuration.NodeAddress Cardano.Node.Configuration.POM + Cardano.Node.Configuration.Leios Cardano.Node.Configuration.LedgerDB Cardano.Node.Configuration.Socket Cardano.Node.Configuration.TopologyP2P diff --git a/cardano-node/src/Cardano/Node/Configuration/Leios.hs b/cardano-node/src/Cardano/Node/Configuration/Leios.hs new file mode 100644 index 00000000000..c1535758a8e --- /dev/null +++ b/cardano-node/src/Cardano/Node/Configuration/Leios.hs @@ -0,0 +1,34 @@ +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE ScopedTypeVariables #-} + +module Cardano.Node.Configuration.Leios( + LeiosDbConfig(..) + ) where + +import Data.Aeson (FromJSON (parseJSON), ToJSON (toJSON), Value (String), object, + withObject, (.:), (.=)) + +data LeiosDbConfig = LeiosDbInMemory + | LeiosDbSQLite !FilePath + deriving (Eq, Show) + +instance FromJSON LeiosDbConfig where + parseJSON = withObject "LeiosDbConfig" $ \o -> do + backend :: String <- o .: "Backend" + case backend of + "InMemory" -> return LeiosDbInMemory + "SQLite" -> do + fp <- o .: "Filepath" + return $ LeiosDbSQLite fp + _ -> fail $ "Invalid LeiosDb backend " <> backend <> ", did you mean InMemory or SQLite?" + +instance ToJSON LeiosDbConfig where + toJSON LeiosDbInMemory = + object + [ "Backend" .= String "InMemory" + ] + toJSON (LeiosDbSQLite fp) = + object + [ "Backend" .= String "SQLite", + "Filepath" .= fp + ] diff --git a/cardano-node/src/Cardano/Node/Configuration/POM.hs b/cardano-node/src/Cardano/Node/Configuration/POM.hs index 980b30003ba..e8d2447333d 100644 --- a/cardano-node/src/Cardano/Node/Configuration/POM.hs +++ b/cardano-node/src/Cardano/Node/Configuration/POM.hs @@ -33,6 +33,7 @@ import Cardano.Network.ConsensusMode (ConsensusMode (..), defaultConse import qualified Cardano.Network.Diffusion.Configuration as Cardano import Cardano.Network.PeerSelection (NumberOfBigLedgerPeers (..)) import Cardano.Node.Configuration.LedgerDB +import Cardano.Node.Configuration.Leios (LeiosDbConfig (..)) import Cardano.Node.Configuration.Socket (SocketConfig (..)) import Cardano.Node.Handlers.Shutdown import Cardano.Node.Protocol.Types (Protocol (..)) @@ -209,6 +210,9 @@ data NodeConfiguration , ncTxSubmissionLogicVersion :: TxSubmissionLogicVersion , ncTxSubmissionInitDelay :: TxSubmissionInitDelay + + -- Leios + , ncLeiosDbConfig :: LeiosDbConfig } deriving (Eq, Show) -- | We expose the `Ouroboros.Network.Mux.ForkPolicy` as a `NodeConfiguration` field. @@ -316,6 +320,9 @@ data PartialNodeConfiguration -- gRPC , pncRpcConfig :: !PartialRpcConfig + + -- Leios + , pncLeiosDbConfig :: !(Last LeiosDbConfig) } deriving (Eq, Generic, Show) instance AdjustFilePaths PartialNodeConfiguration where @@ -443,6 +450,9 @@ instance FromJSON PartialNodeConfiguration where maybe (pncTxSubmissionInitDelay defaultPartialNodeConfiguration) (fmap TxSubmissionInitDelay) <$> v .:? "TxSubmissionInitDelay" pncTxSubmissionInitDelay <- parseInitDelay + + pncLeiosDbConfig <- Last <$> v .:? "LeiosDbConfig" + pure PartialNodeConfiguration { pncProtocolConfig , pncSocketConfig = Last . Just $ SocketConfig mempty mempty mempty pncSocketPath @@ -493,6 +503,7 @@ instance FromJSON PartialNodeConfiguration where , pncRpcConfig , pncTxSubmissionLogicVersion = txSubmissionLogicVersion , pncTxSubmissionInitDelay + , pncLeiosDbConfig } where parseMempoolCapacityBytesOverride v = parseNoOverride <|> parseOverride @@ -762,6 +773,8 @@ defaultPartialNodeConfiguration = , pncTxSubmissionLogicVersion = Last $ Just TxSubmissionLogicV1 , pncTxSubmissionInitDelay = Last $ Just defaultTxSubmissionInitDelay + + , pncLeiosDbConfig = Last (Just (LeiosDbSQLite "leios.db")) } lastOption :: Parser a -> Parser (Last a) @@ -918,6 +931,10 @@ makeNodeConfiguration pnc = do ncRpcConfig <- makeRpcConfig $ (pncRpcConfig pnc){nodeSocketPath=ncSocketPath socketConfig} + ncLeiosDbConfig <- + lastToEither "Missing LeiosDbConfig" + $ pncLeiosDbConfig pnc + return $ NodeConfiguration { ncConfigFile = configFile , ncTopologyFile = topologyFile @@ -969,6 +986,7 @@ makeNodeConfiguration pnc = do , ncRpcConfig , ncTxSubmissionLogicVersion , ncTxSubmissionInitDelay + , ncLeiosDbConfig } ncProtocol :: NodeConfiguration -> Protocol diff --git a/cardano-node/src/Cardano/Node/Parsers.hs b/cardano-node/src/Cardano/Node/Parsers.hs index 76220a54dfa..23b1acd12d8 100644 --- a/cardano-node/src/Cardano/Node/Parsers.hs +++ b/cardano-node/src/Cardano/Node/Parsers.hs @@ -149,6 +149,7 @@ nodeRunParser = do , pncRpcConfig , pncTxSubmissionLogicVersion = mempty , pncTxSubmissionInitDelay = mempty + , pncLeiosDbConfig = mempty } parseSocketPath :: Text -- ^ option name diff --git a/cardano-node/src/Cardano/Node/Run.hs b/cardano-node/src/Cardano/Node/Run.hs index c6847eb50b5..cd1967157cd 100644 --- a/cardano-node/src/Cardano/Node/Run.hs +++ b/cardano-node/src/Cardano/Node/Run.hs @@ -47,6 +47,7 @@ import Cardano.Node.Configuration.Socket (LocalSocketOrSocketInfo, getSocketOrSocketInfoAddr) import Cardano.Node.Configuration.TopologyP2P import qualified Cardano.Node.Configuration.TopologyP2P as TopologyP2P +import Cardano.Node.Configuration.Leios (LeiosDbConfig(..)) import Cardano.Node.Handlers.Shutdown import Cardano.Node.Protocol (ProtocolInstantiationError (..), mkConsensusProtocol) import Cardano.Node.Protocol.Byron (ByronProtocolInstantiationError (CredentialsError)) @@ -181,6 +182,8 @@ import Paths_cardano_node (version) import Ouroboros.Consensus.Mempool (MempoolTimeoutConfig(..)) import GHC.Stack +import LeiosDemoDb (newLeiosDBInMemory, newLeiosDBSQLite) + {- HLINT ignore "Fuse concatMap/map" -} {- HLINT ignore "Redundant <$>" -} {- HLINT ignore "Use fewer imports" -} @@ -451,6 +454,10 @@ handleSimpleNode blockType runP tracers nc networkMagic onKernel = do $ Proxy @blk )) + leiosDB <- case ncLeiosDbConfig nc of + LeiosDbInMemory -> newLeiosDBInMemory + LeiosDbSQLite leiosDbPath -> newLeiosDBSQLite leiosDbPath + withShutdownHandling (ncShutdownConfig nc) (shutdownTracer tracers) $ do traceWith (startupTracer tracers) (StartupP2PInfo (ncDiffusionMode nc)) @@ -516,6 +523,7 @@ handleSimpleNode blockType runP tracers nc networkMagic onKernel = do , rnTxSubmissionLogicVersion = ncTxSubmissionLogicVersion nc , rnTxSubmissionInitDelay = ncTxSubmissionInitDelay nc , rnFeatureFlags = mempty -- TODO(10.7) forward this to CLI options? + , rnLeiosDb = leiosDB } #ifdef UNIX -- initial `SIGHUP` handler, which rereads the topology file and the RPC config from the main configuration file diff --git a/cardano-node/test/Test/Cardano/Node/POM.hs b/cardano-node/test/Test/Cardano/Node/POM.hs index ab86a6c0300..422541c9800 100644 --- a/cardano-node/test/Test/Cardano/Node/POM.hs +++ b/cardano-node/test/Test/Cardano/Node/POM.hs @@ -14,6 +14,7 @@ import Cardano.Network.Diffusion.Configuration (defaultNumberOfBigLedg import Cardano.Network.NodeToNode (AcceptedConnectionsLimit (..), DiffusionMode (InitiatorAndResponderDiffusionMode)) import Cardano.Node.Configuration.LedgerDB +import Cardano.Node.Configuration.Leios (LeiosDbConfig (..)) import Cardano.Node.Configuration.POM import Cardano.Node.Configuration.Socket import Cardano.Node.Handlers.Shutdown @@ -182,6 +183,7 @@ testPartialYamlConfig = , pncRpcConfig = mempty , pncTxSubmissionLogicVersion = mempty , pncTxSubmissionInitDelay = mempty + , pncLeiosDbConfig = mempty } -- | Example partial configuration theoretically created @@ -238,6 +240,7 @@ testPartialCliConfig = , pncRpcConfig = mempty , pncTxSubmissionLogicVersion = mempty , pncTxSubmissionInitDelay = mempty + , pncLeiosDbConfig = mempty } -- | Expected final NodeConfiguration @@ -301,6 +304,7 @@ eExpectedConfig = do , ncRpcConfig , ncTxSubmissionLogicVersion = TxSubmissionLogicV1 , ncTxSubmissionInitDelay = defaultTxSubmissionInitDelay + , ncLeiosDbConfig = LeiosDbSQLite "leios.db" } -- ----------------------------------------------------------------------------- From f16f42308011e3e9cef3711558489dcc71d40c05 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Mon, 18 May 2026 23:37:22 +0200 Subject: [PATCH 68/69] tx-generator: adapt to Leios-extended Codecs + Reception-wrapped recv The consensus Leios chunks extended 'NTN.Codecs' with two extra type parameters ('bLN' / 'bLF', for LeiosNotify and LeiosFetch), and the network-side BearerBytes/Reception work changed 'runPeerWithLimits' to return 'Maybe (Reception bytes)' (instead of 'Maybe bytes') and made 'byteLimitsKeepAlive' parameter-less. Update 'tx-generator' to compile against the rebased stack: - Pull in 'ouroboros-network:framework-tracing' as a sublib dependency. - Extend the local 'myCodecs' type to 9 'ByteString' parameters (was 7). - Update 'kaClient' return type to 'IO ((), Maybe (Mux.Reception ByteString))'. - Drop the size-function argument from 'byteLimitsKeepAlive'. Co-Authored-By: Claude Opus 4.7 --- .../src/Cardano/Benchmarking/GeneratorTx/NodeToNode.hs | 8 +++++--- bench/tx-generator/tx-generator.cabal | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/NodeToNode.hs b/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/NodeToNode.hs index f2030e39ae6..d6f56376308 100644 --- a/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/NodeToNode.hs +++ b/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/NodeToNode.hs @@ -110,9 +110,11 @@ benchmarkConnectTxSubmit EnvConsts { .. } handshakeTracer submissionTracer codec blkN2nVer = supportedVers Map.! n2nVer supportedVers :: Map.Map NodeToNodeVersion (BlockNodeToNodeVersion blk) supportedVers = supportedNodeToNodeVersions (Proxy @blk) + -- Codecs gained two type params for LeiosNotify (bLN) and LeiosFetch (bLF) + -- via the Leios chunks; they are unused on the tx-generator initiator path. myCodecs :: Codecs blk NtN.RemoteAddress DeserialiseFailure IO ByteString ByteString ByteString ByteString ByteString ByteString - ByteString + ByteString ByteString ByteString myCodecs = defaultCodecs codecConfig blkN2nVer encodeRemoteAddress decodeRemoteAddress n2nVer peerMultiplex :: NtN.Versions NodeToNodeVersion NtN.NodeToNodeVersionData @@ -170,14 +172,14 @@ benchmarkConnectTxSubmit EnvConsts { .. } handshakeTracer submissionTracer codec => NodeToNodeVersion -> remotePeer -> Channel IO ByteString - -> IO ((), Maybe ByteString) + -> IO ((), Maybe (Mux.Reception ByteString)) kaClient _version them channel = do keepAliveRng <- newStdGen peerGSVMap <- liftIO . newTVarIO $ Map.singleton them defaultGSV runPeerWithLimits mempty (cKeepAliveCodec myCodecs) - (byteLimitsKeepAlive (const 0)) -- TODO: Real Bytelimits, see #1727 + byteLimitsKeepAlive timeLimitsKeepAlive channel $ keepAliveClientPeer diff --git a/bench/tx-generator/tx-generator.cabal b/bench/tx-generator/tx-generator.cabal index d12045ff876..e40fb007965 100644 --- a/bench/tx-generator/tx-generator.cabal +++ b/bench/tx-generator/tx-generator.cabal @@ -142,7 +142,7 @@ library , network-mux , optparse-applicative , ouroboros-consensus:{ouroboros-consensus, cardano, diffusion} >= 3.0.1 - , ouroboros-network:{api, framework, tracing, ouroboros-network, protocols} >= 1.1 + , ouroboros-network:{api, framework, framework-tracing, tracing, ouroboros-network, protocols} >= 1.1 , plutus-ledger-api , plutus-tx , random From 5ee1ab7c95758425338380f8ebf2b8cfcefb5fa2 Mon Sep 17 00:00:00 2001 From: Sebastian Nagel Date: Fri, 22 May 2026 22:55:11 +0200 Subject: [PATCH 69/69] Remake forging and cumulative tx bytes metrics Both had been on the leios-prototype and and need to be re-exposed after resetting to a recent cardano-node version. Only the rest-in-mempool execution units metric was not easily applicable. That part of the code will change anyways though. --- cardano-node/src/Cardano/Node/Queries.hs | 23 ++++++-- .../Cardano/Node/Tracing/Tracers/Consensus.hs | 55 +++++++++++++++++-- .../Node/Tracing/Tracers/LedgerMetrics.hs | 34 +++++++----- 3 files changed, 88 insertions(+), 24 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Queries.hs b/cardano-node/src/Cardano/Node/Queries.hs index 65391519c84..fcc4404bbb8 100644 --- a/cardano-node/src/Cardano/Node/Queries.hs +++ b/cardano-node/src/Cardano/Node/Queries.hs @@ -234,8 +234,9 @@ instance All GetKESInfo xs => GetKESInfo (HardForkBlock xs) where -- * General ledger -- class LedgerQueries blk where - ledgerUtxoSize :: LedgerState blk EmptyMK -> Int - ledgerDelegMapSize :: LedgerState blk EmptyMK -> Int + ledgerUtxoSize :: LedgerState blk EmptyMK -> Int + ledgerDelegMapSize :: LedgerState blk EmptyMK -> Int + ledgerCumulativeTxBytes :: LedgerState blk EmptyMK -> Word64 class LedgerConwayQueries blk where ledgerDRepCount :: LedgerState blk EmptyMK -> Int @@ -243,7 +244,8 @@ class LedgerConwayQueries blk where instance LedgerQueries Byron.ByronBlock where ledgerUtxoSize = Map.size . Byron.unUTxO . Byron.cvsUtxo . Byron.byronLedgerState - ledgerDelegMapSize _ = 0 + ledgerDelegMapSize _ = 0 + ledgerCumulativeTxBytes _ = 0 instance (Ledger.EraAccounts era, Shelley.EraCertState era) => LedgerQueries (Shelley.ShelleyBlock protocol era) where ledgerUtxoSize = @@ -265,6 +267,7 @@ instance (Ledger.EraAccounts era, Shelley.EraCertState era) => LedgerQueries (Sh . Shelley.certPStateL ) . Shelley.shelleyLedgerState + ledgerCumulativeTxBytes = Shelley.shelleyCumulativeTxBytes instance Conway.ConwayEraCertState era => LedgerConwayQueries (Shelley.ShelleyBlock protocol era) where ledgerDRepCount = @@ -289,8 +292,9 @@ instance Conway.ConwayEraCertState era => LedgerConwayQueries (Shelley.ShelleyBl instance (LedgerQueries x, NoHardForks x) => LedgerQueries (HardForkBlock '[x]) where - ledgerUtxoSize = ledgerUtxoSize . unFlip . project . Flip - ledgerDelegMapSize = ledgerDelegMapSize . unFlip . project . Flip + ledgerUtxoSize = ledgerUtxoSize . unFlip . project . Flip + ledgerDelegMapSize = ledgerDelegMapSize . unFlip . project . Flip + ledgerCumulativeTxBytes = ledgerCumulativeTxBytes . unFlip . project . Flip instance (LedgerConwayQueries x, NoHardForks x) => LedgerConwayQueries (HardForkBlock '[x]) where @@ -316,6 +320,15 @@ instance LedgerQueries (Cardano.CardanoBlock c) where Cardano.LedgerStateBabbage ledgerBabbage -> ledgerDelegMapSize ledgerBabbage Cardano.LedgerStateConway ledgerConway -> ledgerDelegMapSize ledgerConway Cardano.LedgerStateDijkstra ledgerDijkstra -> ledgerDelegMapSize ledgerDijkstra + ledgerCumulativeTxBytes = \case + Cardano.LedgerStateByron ledgerByron -> ledgerCumulativeTxBytes ledgerByron + Cardano.LedgerStateShelley ledgerShelley -> ledgerCumulativeTxBytes ledgerShelley + Cardano.LedgerStateAllegra ledgerAllegra -> ledgerCumulativeTxBytes ledgerAllegra + Cardano.LedgerStateMary ledgerMary -> ledgerCumulativeTxBytes ledgerMary + Cardano.LedgerStateAlonzo ledgerAlonzo -> ledgerCumulativeTxBytes ledgerAlonzo + Cardano.LedgerStateBabbage ledgerBabbage -> ledgerCumulativeTxBytes ledgerBabbage + Cardano.LedgerStateConway ledgerConway -> ledgerCumulativeTxBytes ledgerConway + Cardano.LedgerStateDijkstra ledgerDijkstra -> ledgerCumulativeTxBytes ledgerDijkstra instance LedgerConwayQueries (Cardano.CardanoBlock c) where ledgerDRepCount = \case diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 594138ba4e9..d35b3ce8b34 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -45,7 +45,8 @@ 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, TxMeasureMetrics (..), txForgetValidated, txId) + HasTxId, HasTxs (..), LedgerSupportsMempool, TxMeasure, + TxMeasureMetrics (..), txForgetValidated, txId) import LeiosDemoTypes (TraceLeiosKernel (..), TraceLeiosPeer (..), leiosEbTxs, traceLeiosKernelToObject, traceLeiosPeerToObject) import Ouroboros.Consensus.Ledger.SupportsProtocol @@ -1298,12 +1299,14 @@ instance ( tx ~ GenTx blk , HasHeader blk , HasKESInfo blk , HasTxId (GenTx blk) + , HasTxs blk , LedgerSupportsProtocol blk , LedgerSupportsMempool blk , SerialiseNodeToNodeConstraints blk , Show (ForgeStateUpdateError blk) , Show (CannotForge blk) , Show (TxId (GenTx blk)) + , TxMeasureMetrics (TxMeasure blk) , LogFormatting (CannotForge blk) , LogFormatting (ExtValidationError blk) , LogFormatting (ForgeStateUpdateError blk)) @@ -1559,9 +1562,32 @@ 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 _point blk mempoolSize blkMeasure) = + let blkTxCount = length (extractTxs blk) + blkTxBytes = unByteSize32 (txMeasureMetricTxSizeBytes blkMeasure) + mempoolTxs = msNumTxs mempoolSize + mempoolBytes = unByteSize32 (msNumBytes mempoolSize) + restTxCount = fromIntegral mempoolTxs - blkTxCount + restTxBytes = fromIntegral mempoolBytes - fromIntegral blkTxBytes :: Int + in [ IntM "forgedSlotLast" (fromIntegral $ unSlotNo slot) + , CounterM "Forge.forged" Nothing + , CounterM "Forge.ranking-block.total-count" Nothing + , CounterM "Forge.ranking-block.total-tx-count" + (Just $ fromIntegral blkTxCount) + , CounterM "Forge.ranking-block.total-tx-bytes" + (Just $ fromIntegral blkTxBytes) + , CounterM "Forge.ranking-block.total-tx-xu-memory" + (Just . fromIntegral $ txMeasureMetricExUnitsMemory blkMeasure) + , CounterM "Forge.ranking-block.total-tx-xu-time" + (Just . fromIntegral $ txMeasureMetricExUnitsSteps blkMeasure) + , CounterM "Forge.ranking-block.total-tx-ref-script-size-bytes" + (Just . fromIntegral . unByteSize32 + $ txMeasureMetricRefScriptsSizeBytes blkMeasure) + , CounterM "Forge.rest-in-mempool.total-tx-count" + (Just $ fromIntegral restTxCount) + , CounterM "Forge.rest-in-mempool.total-tx-bytes" + (Just $ fromIntegral restTxBytes) + ] asMetrics (TraceDidntAdoptBlock _slot _) = [CounterM "Forge.didnt-adopt" Nothing] asMetrics (TraceForgedInvalidBlock _slot _ _) = @@ -1663,8 +1689,25 @@ instance MetaTrace (TraceForgeEvent blk) where metricsDocFor (Namespace _ ["ForgeTickedLedgerState"]) = [] metricsDocFor (Namespace _ ["ForgingMempoolSnapshot"]) = [] metricsDocFor (Namespace _ ["ForgedBlock"]) = - [("forgedSlotLast", "Slot number of the last forged block"), - ("Forge.forged", "Counter of forged blocks")] + [ ("forgedSlotLast", "Slot number of the last forged block") + , ("Forge.forged", "Counter of forged blocks") + , ("Forge.ranking-block.total-count", + "Counter of forged ranking blocks") + , ("Forge.ranking-block.total-tx-count", + "Total number of transactions in the forged ranking block") + , ("Forge.ranking-block.total-tx-bytes", + "Total transaction bytes in the forged ranking block") + , ("Forge.ranking-block.total-tx-xu-memory", + "Total execution units (memory) in the forged ranking block") + , ("Forge.ranking-block.total-tx-xu-time", + "Total execution units (time) in the forged ranking block") + , ("Forge.ranking-block.total-tx-ref-script-size-bytes", + "Total reference script size bytes in the forged ranking block") + , ("Forge.rest-in-mempool.total-tx-count", + "Number of transactions still in the mempool after forging the ranking block") + , ("Forge.rest-in-mempool.total-tx-bytes", + "Total transaction bytes still in the mempool after forging the ranking block") + ] metricsDocFor (Namespace _ ["DidntAdoptBlock"]) = [("Forge.didnt-adopt", "")] metricsDocFor (Namespace _ ["ForgedInvalidBlock"]) = diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs index 6f2e0820ff4..e2c8f194b6b 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/LedgerMetrics.hs @@ -35,6 +35,7 @@ import Control.Monad.STM (atomically, retry) import "contra-tracer" Control.Tracer (Tracer, traceWith) import Data.Aeson (Value (Number, String), toJSON, (.=)) import Data.Text as Text +import Data.Word (Word64) import GHC.Conc (labelThread, myThreadId) @@ -82,10 +83,11 @@ startLedgerMetricsTracer tr everyNThSlot nodeKernelData = data LedgerMetrics = LedgerMetrics { - tsSlotNo :: SlotNo - , tsUtxoSize :: Int - , tsDelegMapSize :: Int - , tsChainDensity :: Double + tsSlotNo :: SlotNo + , tsUtxoSize :: Int + , tsDelegMapSize :: Int + , tsChainDensity :: Double + , tsCumulativeTxBytes :: Word64 {- see Note [GovMetrics] , tsDRepCount :: Int , tsDRepMapSize :: Int @@ -104,10 +106,11 @@ traceLedgerMetrics :: traceLedgerMetrics nodeKern slotNo tracer = do query <- mapNodeKernelDataIO (\nk -> - (,,) -- (,,,,) + (,,,) -- (,,,,,) <$> ChainDB.getStatistics (getChainDB nk) <*> nkQueryLedger (ledgerDelegMapSize . ledgerState) nk <*> nkQueryChain fragmentChainDensity nk + <*> nkQueryLedger (ledgerCumulativeTxBytes . ledgerState) nk {- see Note [GovMetrics] <*> nkQueryLedger (ledgerDRepCount . ledgerState) nk <*> nkQueryLedger (ledgerDRepMapSize . ledgerState) nk @@ -116,7 +119,7 @@ traceLedgerMetrics nodeKern slotNo tracer = do nodeKern case query of SNothing -> pure () - SJust (ledgerStatistics, delegMapSize, {- drepCount, drepMapSize, -} chainDensity) -> + SJust (ledgerStatistics, delegMapSize, {- drepCount, drepMapSize, -} chainDensity, cumulativeTxBytes) -> let msg = LedgerMetrics slotNo (LedgerDB.ledgerTableSize ledgerStatistics) @@ -126,6 +129,7 @@ traceLedgerMetrics nodeKern slotNo tracer = do drepMapSize -} (fromRational chainDensity) + cumulativeTxBytes in traceWith tracer msg -------------------------------------------------------------------------------- @@ -139,6 +143,7 @@ instance LogFormatting LedgerMetrics where , "utxoSize" .= Number (fromIntegral tsUtxoSize) , "delegMapSize" .= Number (fromIntegral tsDelegMapSize) , "chainDensity" .= Number (fromRational (toRational tsChainDensity)) + , "cumulativeTxBytes" .= Number (fromIntegral tsCumulativeTxBytes) {- see Note [GovMetrics] , "drepCount" .= Number (fromIntegral tsDRepCount) , "drepMapSize" .= Number (fromIntegral tsDRepMapSize) @@ -146,16 +151,18 @@ instance LogFormatting LedgerMetrics where ] forHuman LedgerMetrics {..} = "Ledger metrics " - <> " utxoSize " <> showT tsUtxoSize - <> " delegMapSize " <> showT tsDelegMapSize - <> " chainDensity " <> showT tsChainDensity + <> " utxoSize " <> showT tsUtxoSize + <> " delegMapSize " <> showT tsDelegMapSize + <> " chainDensity " <> showT tsChainDensity + <> " cumulativeTxBytes " <> showT tsCumulativeTxBytes {- see Note [GovMetrics] <> " drepCount" <> showT tsDRepCount <> " drepMapSize" <> showT tsDRepMapSize -} asMetrics LedgerMetrics {..} = - [ IntM "utxoSize" (fromIntegral tsUtxoSize) - , IntM "delegMapSize" (fromIntegral tsDelegMapSize) + [ IntM "utxoSize" (fromIntegral tsUtxoSize) + , IntM "delegMapSize" (fromIntegral tsDelegMapSize) + , IntM "cumulativeTxBytes" (fromIntegral tsCumulativeTxBytes) {- see Note [GovMetrics] , IntM "drepCount" (fromIntegral tsDRepCount) , IntM "drepMapSize" (fromIntegral tsDRepMapSize) @@ -168,8 +175,9 @@ instance MetaTrace LedgerMetrics where severityFor _ _ = Nothing metricsDocFor (Namespace _ ["LedgerMetrics"]) = - [ ("utxoSize", "UTxO set size") - , ("delegMapSize", "Delegation map size") + [ ("utxoSize", "UTxO set size") + , ("delegMapSize", "Delegation map size") + , ("cumulativeTxBytes", "Cumulative transaction bytes on the selected chain") {- see Note [GovMetrics] , ("drepCount", "Number of DReps") , ("drepMapSize", "Number of DRep delegations")