From 857aa7a3bf0b87c942bee5d30de7f729078d7faa Mon Sep 17 00:00:00 2001 From: Georgy Lukyanov Date: Tue, 21 Apr 2026 16:09:36 +0200 Subject: [PATCH 1/5] Bump the `npcExperimentalHardForksEnabled`-gated ProtVer to 12 - The experimental hard fork becomes `ProtVer 12` - `ProtVer 11` is not the default --- cardano-node-chairman/cardano-node-chairman.cabal | 2 +- cardano-node/cardano-node.cabal | 2 +- cardano-node/src/Cardano/Node/Protocol/Cardano.hs | 4 ++-- configuration/cardano/mainnet-config.json | 2 +- configuration/cardano/mainnet-config.yaml | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cardano-node-chairman/cardano-node-chairman.cabal b/cardano-node-chairman/cardano-node-chairman.cabal index 2dd4258aca1..6d7927d1969 100644 --- a/cardano-node-chairman/cardano-node-chairman.cabal +++ b/cardano-node-chairman/cardano-node-chairman.cabal @@ -45,7 +45,7 @@ executable cardano-node-chairman , cardano-crypto-class , cardano-git-rev ^>= 0.2.2 , cardano-ledger-core - , cardano-node ^>= 10.7 + , cardano-node ^>= 11.0 , cardano-prelude , containers , contra-tracer diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index 7742649365d..0becb775ead 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.7.1 +version: 11.0 synopsis: The cardano full node description: The cardano full node. category: Cardano, diff --git a/cardano-node/src/Cardano/Node/Protocol/Cardano.hs b/cardano-node/src/Cardano/Node/Protocol/Cardano.hs index 52cfbc4b954..09dd3b3088f 100644 --- a/cardano-node/src/Cardano/Node/Protocol/Cardano.hs +++ b/cardano-node/src/Cardano/Node/Protocol/Cardano.hs @@ -181,8 +181,8 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { shelleyBasedLeaderCredentials = shelleyLeaderCredentials } , Consensus.cardanoProtocolVersion = if npcExperimentalHardForksEnabled - then ProtVer (natVersion @11) 0 - else ProtVer (natVersion @10) 8 + then ProtVer (natVersion @12) 0 + else ProtVer (natVersion @11) 0 -- The remaining arguments specify the parameters needed to transition between two eras , Consensus.cardanoLedgerTransitionConfig = Ledger.mkLatestTransitionConfig diff --git a/configuration/cardano/mainnet-config.json b/configuration/cardano/mainnet-config.json index b587e72e99d..8f63b23fd06 100644 --- a/configuration/cardano/mainnet-config.json +++ b/configuration/cardano/mainnet-config.json @@ -18,7 +18,7 @@ "SnapshotInterval": 4320 }, "MaxKnownMajorProtocolVersion": 2, - "MinNodeVersion": "10.7.0", + "MinNodeVersion": "11.0", "Protocol": "Cardano", "RequiresNetworkMagic": "RequiresNoMagic", "ShelleyGenesisFile": "mainnet-shelley-genesis.json", diff --git a/configuration/cardano/mainnet-config.yaml b/configuration/cardano/mainnet-config.yaml index f0d1cece56b..dbeb7c0944e 100644 --- a/configuration/cardano/mainnet-config.yaml +++ b/configuration/cardano/mainnet-config.yaml @@ -96,9 +96,9 @@ LedgerDB: ##### Version Information ##### -# Min is currently 10.7.0 due to change of config bundled peer-snapshot +# Min is currently 11.0 due to change of config bundled peer-snapshot # version. -MinNodeVersion: 10.7.0 +MinNodeVersion: "11.0" ##### Logging configuration ##### From 8d4d161762d95e2fccc6f53f685eeb2219e6496b Mon Sep 17 00:00:00 2001 From: Jordan Millar Date: Tue, 21 Apr 2026 16:13:12 -0400 Subject: [PATCH 2/5] cardano-testnet: disable ExperimentalHardForksEnabled in default config After ProtVer 12 became the experimental-gated version, Conway-era testnets forged blocks with PV 12 in the header, which the Conway BBody rule rejects (max PV = 11). Dropping the unconditional flag from hardforkViaConfig makes the node fall back to ProtVer 11, which Conway accepts, so the testnet chain progresses. --- cardano-testnet/src/Testnet/Defaults.hs | 3 +-- .../files/golden/node_default_config.json | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/cardano-testnet/src/Testnet/Defaults.hs b/cardano-testnet/src/Testnet/Defaults.hs index ef1976b7557..c5931ceb8b3 100644 --- a/cardano-testnet/src/Testnet/Defaults.hs +++ b/cardano-testnet/src/Testnet/Defaults.hs @@ -219,8 +219,7 @@ defaultYamlHardforkViaConfig sbe = hardforkViaConfig :: ShelleyBasedEra era -> Aeson.KeyMap Aeson.Value hardforkViaConfig sbe' = Aeson.fromList $ - [ ("ExperimentalHardForksEnabled", Aeson.Bool True) - , ("ExperimentalProtocolsEnabled", Aeson.Bool True) ] + [ ("ExperimentalProtocolsEnabled", Aeson.Bool True) ] ++ (case sbe' of ShelleyBasedEraShelley -> [ ("TestShelleyHardForkAtEpoch", Aeson.Number 0) ] diff --git a/cardano-testnet/test/cardano-testnet-golden/files/golden/node_default_config.json b/cardano-testnet/test/cardano-testnet-golden/files/golden/node_default_config.json index cb0c0c45c86..47f505577f2 100644 --- a/cardano-testnet/test/cardano-testnet-golden/files/golden/node_default_config.json +++ b/cardano-testnet/test/cardano-testnet-golden/files/golden/node_default_config.json @@ -5,7 +5,6 @@ "DijkstraGenesisFile": "dijkstra-genesis.json", "EnableLogMetrics": false, "EnableLogging": true, - "ExperimentalHardForksEnabled": true, "ExperimentalProtocolsEnabled": true, "LastKnownBlockVersion-Alt": 0, "LastKnownBlockVersion-Major": 9, From 4581fb67b01579b5dcb37b03a0aa0318158ac5f2 Mon Sep 17 00:00:00 2001 From: Jordan Millar Date: Tue, 21 Apr 2026 18:00:38 -0400 Subject: [PATCH 3/5] cardano-testnet: fix hlint, add changelog fragment - Rewrite the singleton-list `++` in hardforkViaConfig as `:` to satisfy hlint's "Use :" hint. - Add scriv fragment documenting the previous commit's disabling of ExperimentalHardForksEnabled. --- ...jordan.millar_disable_experimental_hardforks_enabled.md | 7 +++++++ cardano-testnet/src/Testnet/Defaults.hs | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 cardano-testnet/changelog.d/20260421_175934_jordan.millar_disable_experimental_hardforks_enabled.md diff --git a/cardano-testnet/changelog.d/20260421_175934_jordan.millar_disable_experimental_hardforks_enabled.md b/cardano-testnet/changelog.d/20260421_175934_jordan.millar_disable_experimental_hardforks_enabled.md new file mode 100644 index 00000000000..897c8a3a757 --- /dev/null +++ b/cardano-testnet/changelog.d/20260421_175934_jordan.millar_disable_experimental_hardforks_enabled.md @@ -0,0 +1,7 @@ +### Fixed + +- Disable `ExperimentalHardForksEnabled` in the default testnet config. + After the experimental-gated `cardanoProtocolVersion` was bumped to 12, + Conway-era testnets forged blocks with protocol version 12, which the Conway + BBody rule rejects (max protocol version = 11). Dropping the flag makes the + node use protocol version 11, which Conway accepts. diff --git a/cardano-testnet/src/Testnet/Defaults.hs b/cardano-testnet/src/Testnet/Defaults.hs index c5931ceb8b3..a88ddae2d58 100644 --- a/cardano-testnet/src/Testnet/Defaults.hs +++ b/cardano-testnet/src/Testnet/Defaults.hs @@ -219,8 +219,8 @@ defaultYamlHardforkViaConfig sbe = hardforkViaConfig :: ShelleyBasedEra era -> Aeson.KeyMap Aeson.Value hardforkViaConfig sbe' = Aeson.fromList $ - [ ("ExperimentalProtocolsEnabled", Aeson.Bool True) ] - ++ (case sbe' of + ("ExperimentalProtocolsEnabled", Aeson.Bool True) + : (case sbe' of ShelleyBasedEraShelley -> [ ("TestShelleyHardForkAtEpoch", Aeson.Number 0) ] ShelleyBasedEraAllegra -> From b2733a206e66ae5653a7d076f0a5da44655ba2b6 Mon Sep 17 00:00:00 2001 From: Georgy Lukyanov Date: Thu, 23 Apr 2026 09:07:19 +0200 Subject: [PATCH 4/5] Bump CHaP --- cabal.project | 2 +- flake.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cabal.project b/cabal.project index 33c782f5396..29fdcbeaf12 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 2026-03-26T20:21:33Z - , cardano-haskell-packages 2026-04-14T21:25:56Z + , cardano-haskell-packages 2026-04-22T19:21:15Z active-repositories: , :rest diff --git a/flake.lock b/flake.lock index 3acaf16b533..550d7435e53 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1776203472, - "narHash": "sha256-husRfOULFemi5q+JpO7deykZxTKSIz0E4fCR387aO3Y=", + "lastModified": 1776891677, + "narHash": "sha256-QBhjAV4dwQG8TrSKQJuiBy55+iUXCrkQqhScj6pFU+Y=", "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "3831817e4131b3ef5fe262e3f853b87bec8a24a0", + "rev": "c7fd8630157da3d91c13c13e6d54ed493830b914", "type": "github" }, "original": { From f997d6dbff3cfd12f0b44bf1ef7a4254a57adfc0 Mon Sep 17 00:00:00 2001 From: Georgy Lukyanov Date: Thu, 23 Apr 2026 09:07:26 +0200 Subject: [PATCH 5/5] cardano-node: use `cardano-ledger-conway >= 1.22.1.0` --- 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 0becb775ead..9f05daafaef 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -149,7 +149,7 @@ library , cardano-ledger-babbage , cardano-ledger-binary >= 1.7.1 , cardano-ledger-byron - , cardano-ledger-conway + , cardano-ledger-conway >= 1.22.1.0 , cardano-ledger-core , cardano-ledger-dijkstra , cardano-ledger-shelley