Skip to content

Commit 5fad777

Browse files
committed
Propagate feature flags down to NodeKernelArgs
Brings in cardano-base and propagates a set of `CardanoFeatureFlag`s from the top-level `RunNodeArgs` down to the `NodeKernelArgs`. This is currently needed by an upcoming PR to the GSM to distinguish whether having an established PerasCertDiffusion connection with a given peer is necessary or not when trying to decide if such peer is idling.
1 parent 17b9132 commit 5fad777

File tree

6 files changed

+22
-4
lines changed

6 files changed

+22
-4
lines changed

cabal.project

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ index-state:
1616
-- Bump this if you need newer packages from Hackage
1717
, hackage.haskell.org 2025-07-22T09:13:54Z
1818
-- Bump this if you need newer packages from CHaP
19-
, cardano-haskell-packages 2025-08-21T09:41:03Z
19+
, cardano-haskell-packages 2025-10-07T11:20:00Z
2020

2121
packages:
2222
ouroboros-consensus

flake.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ouroboros-consensus-diffusion/ouroboros-consensus-diffusion.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ library
7777
build-depends:
7878
base >=4.14 && <4.22,
7979
bytestring >=0.10 && <0.13,
80+
cardano-base,
8081
cardano-slotting,
8182
cborg ^>=0.2.2,
8283
containers >=0.5 && <0.8,

ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Node.hs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ module Ouroboros.Consensus.Node
6060
, openChainDB
6161
) where
6262

63+
import Cardano.Base.FeatureFlags (CardanoFeatureFlag)
6364
import qualified Cardano.Network.Diffusion as Cardano.Diffusion
6465
import Cardano.Network.Diffusion.Configuration (ChainSyncIdleTimeout (..))
6566
import qualified Cardano.Network.Diffusion.Policies as Cardano.Diffusion
@@ -84,6 +85,7 @@ import Data.Kind (Type)
8485
import Data.Map.Strict (Map)
8586
import qualified Data.Map.Strict as Map
8687
import Data.Maybe (fromMaybe, isNothing)
88+
import Data.Set (Set)
8789
import Data.Time (NominalDiffTime)
8890
import Data.Typeable (Typeable)
8991
import Ouroboros.Consensus.Block
@@ -232,6 +234,8 @@ data RunNodeArgs m addrNTN addrNTC blk = RunNodeArgs
232234
-- ^ Network PeerSharing miniprotocol willingness flag
233235
, rnGetUseBootstrapPeers :: STM m UseBootstrapPeers
234236
, rnGenesisConfig :: GenesisConfig
237+
, rnFeatureFlags :: Set CardanoFeatureFlag
238+
-- ^ Enabled experimental features
235239
}
236240

237241
-- | Arguments that usually only tests /directly/ specify.
@@ -319,6 +323,8 @@ data LowLevelRunNodeArgs m addrNTN addrNTC blk
319323
, llrnPublicPeerSelectionStateVar :: StrictSTM.StrictTVar m (PublicPeerSelectionState addrNTN)
320324
, llrnLdbFlavorArgs :: Complete LedgerDbFlavorArgs m
321325
-- ^ The flavor arguments
326+
, llrnFeatureFlags :: Set CardanoFeatureFlag
327+
-- ^ Enabled experimental features
322328
}
323329

324330
data NodeDatabasePaths
@@ -570,6 +576,7 @@ runWith RunNodeArgs{..} encAddrNtN decAddrNtN LowLevelRunNodeArgs{..} =
570576
gsmAntiThunderingHerd
571577
keepAliveRng
572578
cfg
579+
llrnFeatureFlags
573580
rnTraceConsensus
574581
btime
575582
(InFutureCheck.realHeaderInFutureCheck llrnMaxClockSkew systemTime)
@@ -847,6 +854,7 @@ mkNodeKernelArgs ::
847854
StdGen ->
848855
StdGen ->
849856
TopLevelConfig blk ->
857+
Set CardanoFeatureFlag ->
850858
Tracers m (ConnectionId addrNTN) (ConnectionId addrNTC) blk ->
851859
BlockchainTime m ->
852860
InFutureCheck.SomeHeaderInFutureCheck m blk ->
@@ -866,6 +874,7 @@ mkNodeKernelArgs
866874
gsmAntiThunderingHerd
867875
rng
868876
cfg
877+
featureFlags
869878
tracers
870879
btime
871880
chainSyncFutureCheck
@@ -885,6 +894,7 @@ mkNodeKernelArgs
885894
{ tracers
886895
, registry
887896
, cfg
897+
, featureFlags
888898
, btime
889899
, chainDB
890900
, initChainDB = nodeInitChainDB
@@ -1003,6 +1013,7 @@ stdLowLevelRunNodeArgsIO
10031013
{ rnProtocolInfo
10041014
, rnPeerSharing
10051015
, rnGenesisConfig
1016+
, rnFeatureFlags
10061017
}
10071018
$(SafeWildCards.fields 'StdRunNodeArgs) = do
10081019
llrnBfcSalt <- stdBfcSaltIO
@@ -1053,6 +1064,8 @@ stdLowLevelRunNodeArgsIO
10531064
Diffusion.dcPublicPeerSelectionVar srnDiffusionConfiguration
10541065
, llrnLdbFlavorArgs =
10551066
srnLdbFlavorArgs
1067+
, llrnFeatureFlags =
1068+
rnFeatureFlags
10561069
}
10571070
where
10581071
networkMagic :: NetworkMagic

ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/NodeKernel.hs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ module Ouroboros.Consensus.NodeKernel
2727
, toConsensusMode
2828
) where
2929

30+
import Cardano.Base.FeatureFlags (CardanoFeatureFlag)
3031
import Cardano.Network.ConsensusMode (ConsensusMode (..))
3132
import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers)
3233
import Cardano.Network.PeerSelection.LocalRootPeers
@@ -51,6 +52,7 @@ import Data.List.NonEmpty (NonEmpty)
5152
import qualified Data.List.NonEmpty as NE
5253
import Data.Maybe (isJust, mapMaybe)
5354
import Data.Proxy
55+
import Data.Set (Set)
5456
import qualified Data.Text as Text
5557
import Data.Void (Void)
5658
import Ouroboros.Consensus.Block hiding (blockMatchesHeader)
@@ -195,6 +197,7 @@ data NodeKernelArgs m addrNTN addrNTC blk = NodeKernelArgs
195197
{ tracers :: Tracers m (ConnectionId addrNTN) addrNTC blk
196198
, registry :: ResourceRegistry m
197199
, cfg :: TopLevelConfig blk
200+
, featureFlags :: Set CardanoFeatureFlag
198201
, btime :: BlockchainTime m
199202
, chainDB :: ChainDB m blk
200203
, initChainDB :: StorageConfig blk -> InitChainDB m blk -> m ()

ouroboros-consensus-diffusion/src/unstable-diffusion-testlib/Test/ThreadNet/Network.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,6 +1045,7 @@ runThreadNetwork
10451045
{ tracers
10461046
, registry
10471047
, cfg = pInfoConfig
1048+
, featureFlags = mempty
10481049
, btime
10491050
, chainDB
10501051
, initChainDB = nodeInitChainDB

0 commit comments

Comments
 (0)