Skip to content

Commit

Permalink
Integrate ouroboros-network changes
Browse files Browse the repository at this point in the history
  • Loading branch information
dnadales authored and coot committed May 8, 2024
1 parent d93f629 commit 923a927
Show file tree
Hide file tree
Showing 18 changed files with 478 additions and 144 deletions.
2 changes: 1 addition & 1 deletion bench/locli/locli.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ library
, optparse-generic
, ouroboros-consensus
-- for Data.SOP.Strict:
, ouroboros-network ^>= 0.13
, ouroboros-network ^>= 0.16
, ouroboros-network-api
, process
, quiet
Expand Down
12 changes: 11 additions & 1 deletion cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ repository cardano-haskell-packages
-- you need to run if you change them
index-state:
, hackage.haskell.org 2024-03-26T06:28:59Z
, cardano-haskell-packages 2024-04-05T07:51:28Z
, cardano-haskell-packages 2024-05-07T20:35:20Z

packages:
cardano-node
Expand Down Expand Up @@ -59,3 +59,13 @@ package plutus-scripts-bench
-- temporary! Please read the section in CONTRIBUTING about updating dependencies.

-- `smtp-mail` should depend on `crypton-connection` rather than `connection`!

source-repository-package
type: git
location: https://github.com/IntersectMBO/ouroboros-consensus
tag: 3a3a92d40d3f26fe7bd9c57c1eb8196b73dcda42
subdir: ouroboros-consensus-diffusion

allow-newer: ouroboros-consensus-diffusion:ouroboros-network
, ouroboros-consensus-diffusion:ouroboros-network-framework
, ekg-forward:ouroboros-network-framework
8 changes: 4 additions & 4 deletions cardano-node/cardano-node.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -185,12 +185,12 @@ library
, optparse-applicative-fork >= 0.18.1
, ouroboros-consensus ^>= 0.17
, ouroboros-consensus-cardano ^>= 0.15
, ouroboros-consensus-diffusion ^>= 0.13
, ouroboros-consensus-diffusion ^>= 0.15
, ouroboros-consensus-protocol
, ouroboros-network-api ^>= 0.7.1
, ouroboros-network ^>= 0.13
, ouroboros-network-api ^>= 0.7.2
, ouroboros-network ^>= 0.16
, ouroboros-network-framework
, ouroboros-network-protocols ^>= 0.8
, ouroboros-network-protocols ^>= 0.8.1
, prettyprinter
, prettyprinter-ansi-terminal
, psqueues
Expand Down
38 changes: 25 additions & 13 deletions cardano-node/src/Cardano/Node/Configuration/POM.hs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}

{-# OPTIONS_GHC -Wno-noncanonical-monoid-instances #-}
Expand Down Expand Up @@ -36,7 +37,9 @@ import Ouroboros.Consensus.Mempool (MempoolCapacityBytes (..),
import qualified Ouroboros.Consensus.Node as Consensus (NetworkP2PMode (..))
import Ouroboros.Consensus.Storage.LedgerDB.DiskPolicy (NumOfDiskSnapshots (..),
SnapshotInterval (..))
import qualified Ouroboros.Network.Diffusion.Configuration as Diffusion
import Ouroboros.Network.NodeToNode (AcceptedConnectionsLimit (..), DiffusionMode (..))
import Ouroboros.Network.PeerSelection.Governor (PeerSelectionTargets (..))
import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing (..))

import Control.Monad (when)
Expand Down Expand Up @@ -516,22 +519,31 @@ defaultPartialNodeConfiguration =
, pncAcceptedConnectionsLimit =
Last
$ Just
$ AcceptedConnectionsLimit
{ acceptedConnectionsHardLimit = 512
, acceptedConnectionsSoftLimit = 384
, acceptedConnectionsDelay = 5
}
, pncTargetNumberOfRootPeers = Last (Just 85)
, pncTargetNumberOfKnownPeers = Last (Just 85)
, pncTargetNumberOfEstablishedPeers = Last (Just 40)
, pncTargetNumberOfActivePeers = Last (Just 15)
$ Diffusion.defaultAcceptedConnectionsLimit

-- peer selection targets
, pncTargetNumberOfRootPeers =
Last (Just targetNumberOfRootPeers)
, pncTargetNumberOfKnownPeers =
Last (Just targetNumberOfKnownPeers)
, pncTargetNumberOfEstablishedPeers =
Last (Just targetNumberOfEstablishedPeers)
, pncTargetNumberOfActivePeers =
Last (Just targetNumberOfActivePeers)
, pncTargetNumberOfKnownBigLedgerPeers =
Last (Just targetNumberOfKnownBigLedgerPeers)
, pncTargetNumberOfEstablishedBigLedgerPeers =
Last (Just targetNumberOfEstablishedBigLedgerPeers)
, pncTargetNumberOfActiveBigLedgerPeers =
Last (Just targetNumberOfActiveBigLedgerPeers)

, pncChainSyncIdleTimeout = mempty
, pncTargetNumberOfKnownBigLedgerPeers = Last (Just 15)
, pncTargetNumberOfEstablishedBigLedgerPeers = Last (Just 10)
, pncTargetNumberOfActiveBigLedgerPeers = Last (Just 5)
, pncEnableP2P = Last (Just EnabledP2PMode)
, pncPeerSharing = Last (Just PeerSharingDisabled)
, pncPeerSharing = Last (Just Diffusion.defaultPeerSharing)
}
where
-- unpack all `targetNumberOf...`
PeerSelectionTargets {..} = Diffusion.defaultPeerSelectionTargets

lastOption :: Parser a -> Parser (Last a)
lastOption = fmap Last . optional
Expand Down
6 changes: 4 additions & 2 deletions cardano-node/src/Cardano/Node/Run.hs
Original file line number Diff line number Diff line change
Expand Up @@ -374,8 +374,9 @@ handleSimpleNode blockType runP p2pMode tracers nc onKernel = do

dbPath <- canonDbPath nc

let diffusionArguments :: Diffusion.Arguments Socket RemoteAddress
LocalSocket LocalAddress
publicPeerSelectionVar <- Diffusion.makePublicPeerSelectionStateVar
let diffusionArguments :: Diffusion.Arguments IO Socket RemoteAddress
LocalSocket LocalAddress
diffusionArguments =
Diffusion.Arguments {
Diffusion.daIPv4Address =
Expand All @@ -395,6 +396,7 @@ handleSimpleNode blockType runP p2pMode tracers nc onKernel = do
Nothing -> Nothing
, Diffusion.daAcceptedConnectionsLimit = ncAcceptedConnectionsLimit nc
, Diffusion.daMode = ncDiffusionMode nc
, Diffusion.daPublicPeerSelectionVar = publicPeerSelectionVar
}

ipv4 <- traverse getSocketOrSocketInfoAddr publicIPv4SocketOrAddr
Expand Down
2 changes: 1 addition & 1 deletion cardano-node/src/Cardano/Node/Tracing/Consistency.hs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ import qualified Ouroboros.Network.NodeToClient as NtC
import Ouroboros.Network.NodeToNode (ErrorPolicyTrace (..), RemoteAddress, WithAddr (..))
import qualified Ouroboros.Network.NodeToNode as NtN
import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (..),
PeerSelectionCounters (..), TracePeerSelection (..))
PeerSelectionCounters, TracePeerSelection (..))
import Ouroboros.Network.PeerSelection.LedgerPeers (TraceLedgerPeers)
import Ouroboros.Network.PeerSelection.PeerStateActions (PeerSelectionActionsTrace (..))
import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers
Expand Down
2 changes: 1 addition & 1 deletion cardano-node/src/Cardano/Node/Tracing/Documentation.hs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ import qualified Ouroboros.Network.NodeToClient as NtC
import Ouroboros.Network.NodeToNode (ErrorPolicyTrace (..), RemoteAddress, WithAddr (..))
import qualified Ouroboros.Network.NodeToNode as NtN
import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (..),
PeerSelectionCounters (..), TracePeerSelection (..))
PeerSelectionCounters, TracePeerSelection (..))
import Ouroboros.Network.PeerSelection.LedgerPeers (TraceLedgerPeers)
import Ouroboros.Network.PeerSelection.PeerStateActions (PeerSelectionActionsTrace (..))
import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers
Expand Down
7 changes: 7 additions & 0 deletions cardano-node/src/Cardano/Node/Tracing/Tracers.hs
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,11 @@ mkDiffusionTracersExtra configReflection trBase trForward mbTrEKG _trDataPoint t
["Net", "PeerSelection"]
configureTracers configReflection trConfig [peerSelectionCountersTr]

!churnCountersTr <- mkCardanoTracer
trBase trForward mbTrEKG
["Net", "Churn"]
configureTracers configReflection trConfig [churnCountersTr]

!peerSelectionActionsTr <- mkCardanoTracer
trBase trForward mbTrEKG
["Net", "PeerSelection", "Actions"]
Expand Down Expand Up @@ -602,6 +607,8 @@ mkDiffusionTracersExtra configReflection trBase trForward mbTrEKG _trDataPoint t
traceWith debugPeerSelectionResponderTr
, P2P.dtTracePeerSelectionCounters = Tracer $
traceWith peerSelectionCountersTr
, P2P.dtTraceChurnCounters = Tracer $
traceWith churnCountersTr
, P2P.dtPeerSelectionActionsTracer = Tracer $
traceWith peerSelectionActionsTr
, P2P.dtConnectionManagerTracer = Tracer $
Expand Down

0 comments on commit 923a927

Please sign in to comment.