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/18] 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/18] 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/18] 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/18] 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/18] 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/18] 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/18] 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/18] 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/18] 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/18] 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/18] 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/18] 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/18] 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/18] 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 1a0d2e65beb5e4dde5cb33f7fabeeec6f0e14a60 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Thu, 20 Nov 2025 15:30:39 -0500 Subject: [PATCH 15/18] update CHaP --- cabal.project | 2 +- flake.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cabal.project b/cabal.project index 203826e8bed..84ceb394ca0 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-07-17T12:00:21Z + , cardano-haskell-packages 2025-11-20T19:55:27Z packages: cardano-node diff --git a/flake.lock b/flake.lock index 47c2726fb80..7f80efc9b8f 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1752755491, - "narHash": "sha256-LhTRY6kgvg5cGfoQ9FD2v15WucqO4C+VLMHa9JP/Zi4=", + "lastModified": 1763670101, + "narHash": "sha256-3S6OSnW0Nn+YBVmuV0XnYQRAuS3i0F9lRdH4KQiN1uI=", "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "fe5f8c99284ca892efe46d91a9ccb00aa76f2525", + "rev": "d341a38325d5d65cde10fa92af125b226c51615f", "type": "github" }, "original": { From 1ec98e952863fd836df8e7c3476fcce6cc019fce Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Thu, 20 Nov 2025 17:29:58 -0500 Subject: [PATCH 16/18] cardano-node: bump to 10.5.2 --- 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 1624a529e08..c87f47add85 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.1 +version: 10.5.2 synopsis: The cardano full node description: The cardano full node. category: Cardano, From 00fb480363295362edee2c851e62d43d014ed970 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Fri, 21 Nov 2025 09:35:00 -0500 Subject: [PATCH 17/18] Bump dependencies --- cardano-node/cardano-node.cabal | 8 ++++---- cardano-submit-api/cardano-submit-api.cabal | 4 ++-- cardano-testnet/cardano-testnet.cabal | 2 +- cardano-tracer/cardano-tracer.cabal | 4 ++-- trace-dispatcher/trace-dispatcher.cabal | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index c87f47add85..0b897d473d4 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.2 +version: 10.5.3 synopsis: The cardano full node description: The cardano full node. category: Cardano, @@ -150,7 +150,7 @@ library , base16-bytestring , bytestring , cardano-api ^>= 10.16 - , cardano-crypto-class + , cardano-crypto-class ^>=2.2.3.2 , cardano-crypto-wrapper , cardano-git-rev ^>=0.2.2 , cardano-ledger-alonzo @@ -198,7 +198,7 @@ library , ouroboros-consensus-diffusion ^>= 0.23 , ouroboros-consensus-protocol , ouroboros-network-api ^>= 0.14.1 - , ouroboros-network ^>= 0.21.3 + , ouroboros-network ^>= 0.21.4 , ouroboros-network-framework ^>= 0.18 , ouroboros-network-protocols ^>= 0.14 , prettyprinter @@ -244,7 +244,7 @@ executable cardano-node autogen-modules: Paths_cardano_node build-depends: base - , cardano-crypto-class + , cardano-crypto-class ^>=2.2.3.2 , cardano-git-rev , cardano-node , optparse-applicative-fork diff --git a/cardano-submit-api/cardano-submit-api.cabal b/cardano-submit-api/cardano-submit-api.cabal index 6267ac0062c..873cc5ef41b 100644 --- a/cardano-submit-api/cardano-submit-api.cabal +++ b/cardano-submit-api/cardano-submit-api.cabal @@ -42,14 +42,14 @@ library , cardano-api ^>= 10.16 , cardano-binary , cardano-cli ^>= 10.11 - , cardano-crypto-class ^>= 2.2 + , cardano-crypto-class ^>= 2.2.3.2 , http-media , iohk-monitoring , mtl , network , optparse-applicative-fork , ouroboros-consensus-cardano - , ouroboros-network ^>= 0.21.3 + , ouroboros-network ^>= 0.21.4 , ouroboros-network-protocols , prometheus >= 2.2.4 , servant diff --git a/cardano-testnet/cardano-testnet.cabal b/cardano-testnet/cardano-testnet.cabal index 5604f927bf7..61afb98fbcd 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.3 + , ouroboros-network ^>= 0.21.4 , ouroboros-network-api , prettyprinter , process diff --git a/cardano-tracer/cardano-tracer.cabal b/cardano-tracer/cardano-tracer.cabal index be71ee78aba..bb9f1f0c526 100644 --- a/cardano-tracer/cardano-tracer.cabal +++ b/cardano-tracer/cardano-tracer.cabal @@ -183,7 +183,7 @@ library , mime-mail , network-mux >= 0.8 , optparse-applicative - , ouroboros-network ^>= 0.21.3 + , ouroboros-network ^>= 0.21.4 , ouroboros-network-api ^>= 0.14.1 , ouroboros-network-framework , signal @@ -411,7 +411,7 @@ test-suite cardano-tracer-test-ext , Glob , network-mux , optparse-applicative-fork >= 0.18.1 - , ouroboros-network ^>= 0.21.3 + , ouroboros-network ^>= 0.21.4 , ouroboros-network-api ^>= 0.14.1 , ouroboros-network-framework , process diff --git a/trace-dispatcher/trace-dispatcher.cabal b/trace-dispatcher/trace-dispatcher.cabal index 95e63d60eb6..6fe6dd1fa13 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.3 + , ouroboros-network ^>= 0.21.4 , ouroboros-network-api , ouroboros-network-framework , serialise From 6c034ec038d8d276a3595e10e2d38643f09bd1f2 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Fri, 21 Nov 2025 09:54:37 -0500 Subject: [PATCH 18/18] report 10.6 in block header --- cardano-node/src/Cardano/Node/Protocol/Cardano.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cardano-node/src/Cardano/Node/Protocol/Cardano.hs b/cardano-node/src/Cardano/Node/Protocol/Cardano.hs index d720c816d73..f660a6dcca9 100644 --- a/cardano-node/src/Cardano/Node/Protocol/Cardano.hs +++ b/cardano-node/src/Cardano/Node/Protocol/Cardano.hs @@ -171,7 +171,7 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { shelleyGenesisHash, shelleyBasedLeaderCredentials = shelleyLeaderCredentials } - , Consensus.cardanoProtocolVersion = ProtVer (natVersion @10) 3 + , Consensus.cardanoProtocolVersion = ProtVer (natVersion @10) 6 -- The remaining arguments specify the parameters needed to transition between two eras , Consensus.cardanoLedgerTransitionConfig = Ledger.mkLatestTransitionConfig