Skip to content

Commit c1d3b23

Browse files
agustinmistatbagrel1
authored andcommitted
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 b8c1491 commit c1d3b23

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-09-26T20:57:57Z
1818
-- Bump this if you need newer packages from CHaP
19-
, cardano-haskell-packages 2025-10-01T14:54:25Z
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
@@ -61,6 +61,7 @@ module Ouroboros.Consensus.Node
6161
, openChainDB
6262
) where
6363

64+
import Cardano.Base.FeatureFlags (CardanoFeatureFlag)
6465
import qualified Cardano.Network.Diffusion as Cardano.Diffusion
6566
import Cardano.Network.Diffusion.Configuration (ChainSyncIdleTimeout (..))
6667
import qualified Cardano.Network.Diffusion.Policies as Cardano.Diffusion
@@ -85,6 +86,7 @@ import Data.Kind (Type)
8586
import Data.Map.Strict (Map)
8687
import qualified Data.Map.Strict as Map
8788
import Data.Maybe (fromMaybe, isNothing)
89+
import Data.Set (Set)
8890
import Data.Time (NominalDiffTime)
8991
import Data.Typeable (Typeable)
9092
import Ouroboros.Consensus.Block
@@ -233,6 +235,8 @@ data RunNodeArgs m addrNTN addrNTC blk = RunNodeArgs
233235
-- ^ Network PeerSharing miniprotocol willingness flag
234236
, rnGetUseBootstrapPeers :: STM m UseBootstrapPeers
235237
, rnGenesisConfig :: GenesisConfig
238+
, rnFeatureFlags :: Set CardanoFeatureFlag
239+
-- ^ Enabled experimental features
236240
}
237241

238242
-- | Arguments that usually only tests /directly/ specify.
@@ -320,6 +324,8 @@ data LowLevelRunNodeArgs m addrNTN addrNTC blk
320324
, llrnPublicPeerSelectionStateVar :: StrictSTM.StrictTVar m (PublicPeerSelectionState addrNTN)
321325
, llrnLdbFlavorArgs :: LedgerDbBackendArgs m blk
322326
-- ^ The flavor arguments
327+
, llrnFeatureFlags :: Set CardanoFeatureFlag
328+
-- ^ Enabled experimental features
323329
}
324330

325331
data NodeDatabasePaths
@@ -571,6 +577,7 @@ runWith RunNodeArgs{..} encAddrNtN decAddrNtN LowLevelRunNodeArgs{..} =
571577
gsmAntiThunderingHerd
572578
keepAliveRng
573579
cfg
580+
llrnFeatureFlags
574581
rnTraceConsensus
575582
btime
576583
(InFutureCheck.realHeaderInFutureCheck llrnMaxClockSkew systemTime)
@@ -848,6 +855,7 @@ mkNodeKernelArgs ::
848855
StdGen ->
849856
StdGen ->
850857
TopLevelConfig blk ->
858+
Set CardanoFeatureFlag ->
851859
Tracers m (ConnectionId addrNTN) (ConnectionId addrNTC) blk ->
852860
BlockchainTime m ->
853861
InFutureCheck.SomeHeaderInFutureCheck m blk ->
@@ -867,6 +875,7 @@ mkNodeKernelArgs
867875
gsmAntiThunderingHerd
868876
rng
869877
cfg
878+
featureFlags
870879
tracers
871880
btime
872881
chainSyncFutureCheck
@@ -886,6 +895,7 @@ mkNodeKernelArgs
886895
{ tracers
887896
, registry
888897
, cfg
898+
, featureFlags
889899
, btime
890900
, chainDB
891901
, initChainDB = nodeInitChainDB
@@ -1004,6 +1014,7 @@ stdLowLevelRunNodeArgsIO
10041014
{ rnProtocolInfo
10051015
, rnPeerSharing
10061016
, rnGenesisConfig
1017+
, rnFeatureFlags
10071018
}
10081019
$(SafeWildCards.fields 'StdRunNodeArgs) = do
10091020
llrnBfcSalt <- stdBfcSaltIO
@@ -1053,6 +1064,8 @@ stdLowLevelRunNodeArgsIO
10531064
, llrnPublicPeerSelectionStateVar =
10541065
Diffusion.dcPublicPeerSelectionVar srnDiffusionConfiguration
10551066
, llrnLdbFlavorArgs = srnLedgerDbBackendArgs
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)