@@ -44,7 +44,7 @@ import Cardano.Tracing.Config
44
44
import Ouroboros.Consensus.Mempool.API (MempoolCapacityBytesOverride (.. ), MempoolCapacityBytes (.. ))
45
45
import Ouroboros.Consensus.Storage.LedgerDB.DiskPolicy (SnapshotInterval (.. ))
46
46
import Ouroboros.Network.Block (MaxSlotNo (.. ))
47
- import Ouroboros.Network.NodeToNode (DiffusionMode (.. ))
47
+ import Ouroboros.Network.NodeToNode (DiffusionMode (.. ), AcceptedConnectionsLimit ( .. ) )
48
48
import qualified Ouroboros.Consensus.Node as Consensus ( NetworkP2PMode (.. ) )
49
49
50
50
data NetworkP2PMode = EnabledP2PMode | DisabledP2PMode
@@ -127,6 +127,9 @@ data NodeConfiguration
127
127
--
128
128
, ncTimeWaitTimeout :: DiffTime
129
129
130
+ -- | Node AcceptedConnectionsLimit
131
+ , ncAcceptedConnectionsLimit :: ! AcceptedConnectionsLimit
132
+
130
133
-- P2P governor targets
131
134
, ncTargetNumberOfRootPeers :: Int
132
135
, ncTargetNumberOfKnownPeers :: Int
@@ -179,6 +182,9 @@ data PartialNodeConfiguration
179
182
, pncProtocolIdleTimeout :: ! (Last DiffTime )
180
183
, pncTimeWaitTimeout :: ! (Last DiffTime )
181
184
185
+ -- AcceptedConnectionsLimit
186
+ , pncAcceptedConnectionsLimit :: ! (Last AcceptedConnectionsLimit )
187
+
182
188
-- P2P governor targets
183
189
, pncTargetNumberOfRootPeers :: ! (Last Int )
184
190
, pncTargetNumberOfKnownPeers :: ! (Last Int )
@@ -241,6 +247,11 @@ instance FromJSON PartialNodeConfiguration where
241
247
pncProtocolIdleTimeout <- Last <$> v .:? " ProtocolIdleTimeout"
242
248
pncTimeWaitTimeout <- Last <$> v .:? " TimeWaitTimeout"
243
249
250
+
251
+ -- AcceptedConnectionsLimit
252
+ pncAcceptedConnectionsLimit
253
+ <- Last <$> v .:? " AcceptedConnectionsLimit"
254
+
244
255
-- P2P Governor parameters, with conservative defaults.
245
256
pncTargetNumberOfRootPeers <- Last <$> v .:? " TargetNumberOfRootPeers"
246
257
pncTargetNumberOfKnownPeers <- Last <$> v .:? " TargetNumberOfKnownPeers"
@@ -279,6 +290,7 @@ instance FromJSON PartialNodeConfiguration where
279
290
, pncMaybeMempoolCapacityOverride
280
291
, pncProtocolIdleTimeout
281
292
, pncTimeWaitTimeout
293
+ , pncAcceptedConnectionsLimit
282
294
, pncTargetNumberOfRootPeers
283
295
, pncTargetNumberOfKnownPeers
284
296
, pncTargetNumberOfEstablishedPeers
@@ -420,6 +432,14 @@ defaultPartialNodeConfiguration =
420
432
, pncMaybeMempoolCapacityOverride = mempty
421
433
, pncProtocolIdleTimeout = Last (Just 5 )
422
434
, pncTimeWaitTimeout = Last (Just 60 )
435
+ , pncAcceptedConnectionsLimit =
436
+ Last
437
+ $ Just
438
+ $ AcceptedConnectionsLimit
439
+ { acceptedConnectionsHardLimit = 512
440
+ , acceptedConnectionsSoftLimit = 384
441
+ , acceptedConnectionsDelay = 5
442
+ }
423
443
, pncTargetNumberOfRootPeers = Last (Just 100 )
424
444
, pncTargetNumberOfKnownPeers = Last (Just 100 )
425
445
, pncTargetNumberOfEstablishedPeers = Last (Just 50 )
@@ -467,6 +487,9 @@ makeNodeConfiguration pnc = do
467
487
ncTimeWaitTimeout <-
468
488
lastToEither " Missing TimeWaitTimeout"
469
489
$ pncTimeWaitTimeout pnc
490
+ ncAcceptedConnectionsLimit <-
491
+ lastToEither " Missing AcceptedConnectionsLimit" $
492
+ pncAcceptedConnectionsLimit pnc
470
493
enableP2P <-
471
494
lastToEither " Missing EnableP2P"
472
495
$ pncEnableP2P pnc
@@ -499,6 +522,7 @@ makeNodeConfiguration pnc = do
499
522
, ncMaybeMempoolCapacityOverride = getLast $ pncMaybeMempoolCapacityOverride pnc
500
523
, ncProtocolIdleTimeout
501
524
, ncTimeWaitTimeout
525
+ , ncAcceptedConnectionsLimit
502
526
, ncTargetNumberOfRootPeers
503
527
, ncTargetNumberOfKnownPeers
504
528
, ncTargetNumberOfEstablishedPeers
0 commit comments