Skip to content

Commit 982cd1d

Browse files
Integrate o-network and o-consensus
Missing updating Node Configuration parser to read genesis targets and ledger snapshot.
1 parent f5a4215 commit 982cd1d

File tree

8 files changed

+66
-51
lines changed

8 files changed

+66
-51
lines changed

bench/tx-generator/src/Cardano/Benchmarking/Command.hs

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ import GHC.Weak as Weak (deRefWeak)
5858
import System.Posix.Signals as Sig (Handler (CatchInfo),
5959
SignalInfo (..), SignalSpecificInfo (..), installHandler,
6060
sigINT, sigTERM)
61+
import Foreign.C (Errno(..))
6162
#if MIN_VERSION_base(4,18,0)
6263
import Data.Maybe as Maybe (fromMaybe)
6364
import GHC.Conc.Sync as Conc (threadLabel)

bench/tx-generator/tx-generator.cabal

+1
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ library
158158
, transformers-except
159159
, unordered-containers
160160
, yaml
161+
, microlens
161162

162163
default-language: Haskell2010
163164
default-extensions: OverloadedStrings

cardano-node/src/Cardano/Node/Configuration/POM.hs

+19-11
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@ data NodeConfiguration
166166
-- by the diffusion layer when syncing
167167
, ncConsensusMode :: !ConsensusMode
168168

169+
-- Minimum number of active big ledger peers we must be connected to
170+
-- in Genesis mode
171+
, ncMinBigLedgerPeersForTrustedState :: MinBigLedgerPeersForTrustedState
172+
169173
-- Enable experimental P2P mode
170174
, ncEnableP2P :: SomeNetworkP2PMode
171175

@@ -232,7 +236,9 @@ data PartialNodeConfiguration
232236
, pncSyncTargetOfKnownBigLedgerPeers :: !(Last Int)
233237
, pncSyncTargetOfEstablishedBigLedgerPeers :: !(Last Int)
234238
, pncSyncTargetOfActiveBigLedgerPeers :: !(Last Int)
235-
, pncSyncMinTrusted :: !(Last MinBigLedgerPeersForTrustedState)
239+
-- Minimum number of active big ledger peers we must be connected to
240+
-- in Genesis mode
241+
, pncMinBigLedgerPeersForTrustedState :: !(Last MinBigLedgerPeersForTrustedState)
236242

237243
-- Consensus mode for diffusion layer
238244
, pncConsensusMode :: !(Last ConsensusMode)
@@ -328,7 +334,9 @@ instance FromJSON PartialNodeConfiguration where
328334
pncSyncTargetOfKnownBigLedgerPeers <- Last <$> v .:? "SyncTargetNumberOfKnownBigLedgerPeers"
329335
pncSyncTargetOfEstablishedBigLedgerPeers <- Last <$> v .:? "SyncTargetNumberOfEstablishedBigLedgerPeers"
330336
pncSyncTargetOfActiveBigLedgerPeers <- Last <$> v .:? "SyncTargetNumberOfActiveBigLedgerPeers"
331-
pncSyncMinTrusted <- Last <$> v .:? "SyncMinNumberOfBigLedgerPeersForTrustedState"
337+
-- Minimum number of active big ledger peers we must be connected to
338+
-- in Genesis mode
339+
pncMinBigLedgerPeersForTrustedState <- Last <$> v .:? "MinBigLedgerPeersForTrustedState"
332340

333341
pncConsensusMode <- Last <$> v .:? "ConsensusMode"
334342

@@ -344,7 +352,7 @@ instance FromJSON PartialNodeConfiguration where
344352

345353
-- Peer Sharing
346354
-- DISABLED BY DEFAULT
347-
pncPeerSharing <- Last <$> v .:? "PeerSharing" .!= Just Configuration.PeerSharingDisabled
355+
pncPeerSharing <- Last <$> v .:? "PeerSharing"
348356

349357
pure PartialNodeConfiguration {
350358
pncProtocolConfig
@@ -382,7 +390,7 @@ instance FromJSON PartialNodeConfiguration where
382390
, pncSyncTargetOfKnownBigLedgerPeers
383391
, pncSyncTargetOfEstablishedBigLedgerPeers
384392
, pncSyncTargetOfActiveBigLedgerPeers
385-
, pncSyncMinTrusted
393+
, pncMinBigLedgerPeersForTrustedState
386394
, pncConsensusMode
387395
, pncEnableP2P
388396
, pncPeerSharing
@@ -564,10 +572,10 @@ defaultPartialNodeConfiguration =
564572
, pncSyncTargetOfKnownBigLedgerPeers = Last (Just syncBigKnown)
565573
, pncSyncTargetOfEstablishedBigLedgerPeers = Last (Just syncBigEst)
566574
, pncSyncTargetOfActiveBigLedgerPeers = Last (Just syncBigAct)
567-
, pncSyncMinTrusted = Last (Just defaultMinBigLedgerPeersForTrustedState)
568-
, pncConsensusMode = mempty
575+
, pncMinBigLedgerPeersForTrustedState = Last (Just defaultMinBigLedgerPeersForTrustedState)
576+
, pncConsensusMode = Last (Just defaultConsensusMode)
569577
, pncEnableP2P = Last (Just EnabledP2PMode)
570-
, pncPeerSharing = Last (Just Configuration.PeerSharingDisabled)
578+
, pncPeerSharing = Last (Just defaultPeerSharing)
571579
}
572580
where
573581
Configuration.PeerSelectionTargets {
@@ -637,9 +645,9 @@ makeNodeConfiguration pnc = do
637645
ncSyncTargetOfActiveBigLedgerPeers <-
638646
lastToEither "Missing SyncTargetNumberOfActiveBigLedgerPeers"
639647
$ pncSyncTargetOfActiveBigLedgerPeers pnc
640-
ncSyncMinTrusted <-
641-
lastToEither "Missing SyncMinNumberOfBigLedgerPeersForTrustedState"
642-
$ pncSyncMinTrusted pnc
648+
ncMinBigLedgerPeersForTrustedState <-
649+
lastToEither "Missing MinBigLedgerPeersForTrustedState"
650+
$ pncMinBigLedgerPeersForTrustedState pnc
643651
ncConsensusMode <-
644652
lastToEither "Missing ConsensusMode"
645653
$ pncConsensusMode pnc
@@ -712,7 +720,7 @@ makeNodeConfiguration pnc = do
712720
, ncSyncTargetOfKnownBigLedgerPeers
713721
, ncSyncTargetOfEstablishedBigLedgerPeers
714722
, ncSyncTargetOfActiveBigLedgerPeers
715-
, ncSyncMinTrusted
723+
, ncMinBigLedgerPeersForTrustedState
716724
, ncEnableP2P = case enableP2P of
717725
EnabledP2PMode -> SomeNetworkP2PMode Consensus.EnabledP2PMode
718726
DisabledP2PMode -> SomeNetworkP2PMode Consensus.DisabledP2PMode

cardano-node/src/Cardano/Node/Parsers.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ nodeRunParser = do
128128
, pncSyncTargetOfKnownBigLedgerPeers = mempty
129129
, pncSyncTargetOfEstablishedBigLedgerPeers = mempty
130130
, pncSyncTargetOfActiveBigLedgerPeers = mempty
131-
, pncSyncMinTrusted = mempty
131+
, pncMinBigLedgerPeersForTrustedState = mempty
132132
, pncConsensusMode = mempty
133133
, pncEnableP2P = mempty
134134
, pncPeerSharing = mempty

cardano-node/src/Cardano/Node/Run.hs

+2-2
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,7 @@ mkP2PArguments NodeConfiguration {
900900
ncSyncTargetOfKnownBigLedgerPeers,
901901
ncSyncTargetOfEstablishedBigLedgerPeers,
902902
ncSyncTargetOfActiveBigLedgerPeers,
903-
ncSyncMinTrusted,
903+
ncMinBigLedgerPeersForTrustedState,
904904
ncProtocolIdleTimeout,
905905
ncTimeWaitTimeout,
906906
ncPeerSharing,
@@ -926,7 +926,7 @@ mkP2PArguments NodeConfiguration {
926926
, P2P.daBulkChurnInterval = Configuration.defaultBulkChurnInterval
927927
, P2P.daOwnPeerSharing = ncPeerSharing
928928
, P2P.daConsensusMode = ncConsensusMode
929-
, P2P.daMinBigLedgerPeersForTrustedState = ncSyncMinTrusted
929+
, P2P.daMinBigLedgerPeersForTrustedState = ncMinBigLedgerPeersForTrustedState
930930
}
931931
where
932932
deadlineTargets = Configuration.defaultDeadlineTargets {

cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -778,7 +778,7 @@ instance MetaTrace (TracePeerSelection SockAddr) where
778778
documentFor (Namespace [] ["DebugState"]) = Just
779779
"peer selection internal state"
780780
documentFor (Namespace [] ["VerifyPeerSnapshot"]) = Just
781-
"Big ledger peer snapshot file failed integrity check against the ledger"
781+
"Verification outcome of big ledger peer snapshot"
782782
documentFor _ = Nothing
783783

784784
metricsDocFor (Namespace [] ["ChurnAction"]) =

cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs

+2
Original file line numberDiff line numberDiff line change
@@ -2201,6 +2201,7 @@ instance ToJSON NodeToClientVersion where
22012201
toJSON NodeToClientV_16 = Number 16
22022202
toJSON NodeToClientV_17 = Number 17
22032203
toJSON NodeToClientV_18 = Number 18
2204+
toJSON NodeToClientV_19 = Number 19
22042205
-- NB: When adding a new version here, update FromJSON below as well!
22052206

22062207
instance FromJSON NodeToClientVersion where
@@ -2214,6 +2215,7 @@ instance FromJSON NodeToClientVersion where
22142215
parseJSON (Number 16) = return NodeToClientV_16
22152216
parseJSON (Number 17) = return NodeToClientV_17
22162217
parseJSON (Number 18) = return NodeToClientV_18
2218+
parseJSON (Number 19) = return NodeToClientV_19
22172219
parseJSON (Number x) = fail ("FromJSON.NodeToClientVersion: unsupported node-to-client protocol version " ++ show x)
22182220
parseJSON x = fail ("FromJSON.NodeToClientVersion: error parsing NodeToClientVersion: " ++ show x)
22192221

cardano-node/test/Test/Cardano/Node/POM.hs

+39-36
Original file line numberDiff line numberDiff line change
@@ -134,20 +134,21 @@ testPartialYamlConfig =
134134
, pncTimeWaitTimeout = mempty
135135
, pncChainSyncIdleTimeout = mempty
136136
, pncAcceptedConnectionsLimit = mempty
137-
, pncTargetNumberOfRootPeers = mempty
138-
, pncTargetNumberOfKnownPeers = mempty
139-
, pncTargetNumberOfEstablishedPeers = mempty
140-
, pncTargetNumberOfActivePeers = mempty
141-
, pncTargetNumberOfKnownBigLedgerPeers = mempty
142-
, pncTargetNumberOfEstablishedBigLedgerPeers = mempty
143-
, pncTargetNumberOfActiveBigLedgerPeers = mempty
144-
, pncGenesisTargetNumberOfActivePeers = mempty
145-
, pncGenesisTargetNumberOfKnownBigLedgerPeers = mempty
146-
, pncGenesisTargetNumberOfEstablishedBigLedgerPeers = mempty
147-
, pncGenesisTargetNumberOfActiveBigLedgerPeers = mempty
137+
, pncDeadlineTargetOfRootPeers = mempty
138+
, pncDeadlineTargetOfKnownPeers = mempty
139+
, pncDeadlineTargetOfEstablishedPeers = mempty
140+
, pncDeadlineTargetOfActivePeers = mempty
141+
, pncDeadlineTargetOfKnownBigLedgerPeers = mempty
142+
, pncDeadlineTargetOfEstablishedBigLedgerPeers = mempty
143+
, pncDeadlineTargetOfActiveBigLedgerPeers = mempty
144+
, pncSyncTargetNumberOfActivePeers = mempty
145+
, pncSyncTargetNumberOfKnownBigLedgerPeers = mempty
146+
, pncSyncTargetNumberOfEstablishedBigLedgerPeers = mempty
147+
, pncSyncTargetNumberOfActiveBigLedgerPeers = mempty
148+
, pncMinBigLedgerPeersForTrustedState = mempty
148149
, pncEnableP2P = Last (Just DisabledP2PMode)
149150
, pncPeerSharing = Last (Just PeerSharingDisabled)
150-
, pncConsensusMode = Last (Just PraosMode)
151+
, pncConsensusMode = mempty
151152
}
152153

153154
-- | Example partial configuration theoretically created
@@ -179,20 +180,21 @@ testPartialCliConfig =
179180
, pncTimeWaitTimeout = mempty
180181
, pncChainSyncIdleTimeout = mempty
181182
, pncAcceptedConnectionsLimit = mempty
182-
, pncTargetNumberOfRootPeers = mempty
183-
, pncTargetNumberOfKnownPeers = mempty
184-
, pncTargetNumberOfEstablishedPeers = mempty
185-
, pncTargetNumberOfActivePeers = mempty
186-
, pncTargetNumberOfKnownBigLedgerPeers = mempty
187-
, pncTargetNumberOfEstablishedBigLedgerPeers = mempty
188-
, pncTargetNumberOfActiveBigLedgerPeers = mempty
189-
, pncGenesisTargetNumberOfActivePeers = mempty
190-
, pncGenesisTargetNumberOfKnownBigLedgerPeers = mempty
191-
, pncGenesisTargetNumberOfEstablishedBigLedgerPeers = mempty
192-
, pncGenesisTargetNumberOfActiveBigLedgerPeers = mempty
183+
, pncDeadlineTargetNumberOfRootPeers = mempty
184+
, pncDeadlineTargetNumberOfKnownPeers = mempty
185+
, pncDeadlineTargetNumberOfEstablishedPeers = mempty
186+
, pncDeadlineTargetNumberOfActivePeers = mempty
187+
, pncDeadlineTargetNumberOfKnownBigLedgerPeers = mempty
188+
, pncDeadlineTargetNumberOfEstablishedBigLedgerPeers = mempty
189+
, pncDeadlineTargetNumberOfActiveBigLedgerPeers = mempty
190+
, pncSyncTargetNumberOfActivePeers = mempty
191+
, pncSyncTargetNumberOfKnownBigLedgerPeers = mempty
192+
, pncSyncTargetNumberOfEstablishedBigLedgerPeers = mempty
193+
, pncSyncTargetNumberOfActiveBigLedgerPeers = mempty
194+
, pncMinBigLedgerPeersForTrustedState = Last (Just defaultMinBigLedgerPeersForTrustedState)
193195
, pncEnableP2P = Last (Just DisabledP2PMode)
194196
, pncPeerSharing = Last (Just PeerSharingDisabled)
195-
, pncConsensusMode = Last (Just GenesisMode)
197+
, pncConsensusMode = Last (Just PraosMode)
196198
}
197199

198200
-- | Expected final NodeConfiguration
@@ -230,20 +232,21 @@ eExpectedConfig = do
230232
, acceptedConnectionsSoftLimit = 384
231233
, acceptedConnectionsDelay = 5
232234
}
233-
, ncTargetNumberOfRootPeers = 60
234-
, ncTargetNumberOfKnownPeers = 85
235-
, ncTargetNumberOfEstablishedPeers = 40
236-
, ncTargetNumberOfActivePeers = 15
237-
, ncTargetNumberOfKnownBigLedgerPeers = 15
238-
, ncTargetNumberOfEstablishedBigLedgerPeers = 10
239-
, ncTargetNumberOfActiveBigLedgerPeers = 5
240-
, ncGenesisTargetNumberOfActivePeers = 0
241-
, ncGenesisTargetNumberOfKnownBigLedgerPeers = 100
242-
, ncGenesisTargetNumberOfEstablishedBigLedgerPeers = 50
243-
, ncGenesisTargetNumberOfActiveBigLedgerPeers = 30
235+
, ncDeadlineTargetNumberOfRootPeers = 60
236+
, ncDeadlineTargetNumberOfKnownPeers = 85
237+
, ncDeadlineTargetNumberOfEstablishedPeers = 40
238+
, ncDeadlineTargetNumberOfActivePeers = 15
239+
, ncDeadlineTargetNumberOfKnownBigLedgerPeers = 15
240+
, ncDeadlineTargetNumberOfEstablishedBigLedgerPeers = 10
241+
, ncDeadlineTargetNumberOfActiveBigLedgerPeers = 5
242+
, ncSyncTargetNumberOfActivePeers = 0
243+
, ncSyncTargetNumberOfKnownBigLedgerPeers = 100
244+
, ncSyncTargetNumberOfEstablishedBigLedgerPeers = 50
245+
, ncSyncTargetNumberOfActiveBigLedgerPeers = 30
246+
, ncMinBigLedgerPeersForTrustedState = defaultMinBigLedgerPeersForTrustedState
244247
, ncEnableP2P = SomeNetworkP2PMode Consensus.DisabledP2PMode
245248
, ncPeerSharing = PeerSharingDisabled
246-
, ncConsensusMode = GenesisMode
249+
, ncConsensusMode = PraosMode
247250
}
248251

249252
-- -----------------------------------------------------------------------------

0 commit comments

Comments
 (0)