From 82a4410101fe7d19ff1944e550338449c39fdbe6 Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Sat, 15 Feb 2025 09:23:00 +0100 Subject: [PATCH 1/4] peer-selection: import and export lists --- .../Network/PeerSelection/LedgerPeers/Type.hs | 1 + ouroboros-network/ouroboros-network.cabal | 1 + .../Test/Ouroboros/Network/Diffusion/Node.hs | 31 ++++++-------- .../Network/Diffusion/Node/Kernel.hs | 3 +- .../Ouroboros/Network/Diffusion/Policies.hs | 2 +- .../Network/Diffusion/Testnet/Cardano.hs | 10 +---- .../Diffusion/Testnet/Cardano/Simulation.hs | 24 ++++------- .../Test/Ouroboros/Network/LedgerPeers.hs | 1 - .../Network/PeerSelection/RootPeersDNS.hs | 10 ++--- .../src/Ouroboros/Network/Diffusion.hs | 34 ++++++--------- .../src/Ouroboros/Network/Diffusion/Types.hs | 26 ++---------- .../src/Ouroboros/Network/PeerSelection.hs | 42 +++++++++++++++++++ .../Network/PeerSelection/Governor.hs | 3 +- .../Network/PeerSelection/LedgerPeers.hs | 3 -- .../PeerSelection/PeerSelectionActions.hs | 9 +--- .../Network/PeerSelection/PublicRootPeers.hs | 3 +- .../Network/PeerSelection/RootPeersDNS.hs | 25 +++++------ .../PeerSelection/RootPeersDNS/DNSActions.hs | 12 ++++++ .../RootPeersDNS/LocalRootPeers.hs | 1 - 19 files changed, 119 insertions(+), 122 deletions(-) create mode 100644 ouroboros-network/src/Ouroboros/Network/PeerSelection.hs diff --git a/ouroboros-network-api/src/Ouroboros/Network/PeerSelection/LedgerPeers/Type.hs b/ouroboros-network-api/src/Ouroboros/Network/PeerSelection/LedgerPeers/Type.hs index 553378d0e74..dc5f109a166 100644 --- a/ouroboros-network-api/src/Ouroboros/Network/PeerSelection/LedgerPeers/Type.hs +++ b/ouroboros-network-api/src/Ouroboros/Network/PeerSelection/LedgerPeers/Type.hs @@ -43,6 +43,7 @@ import Control.DeepSeq (NFData (..)) import Data.Aeson import Data.Aeson.Types import NoThunks.Class + import Ouroboros.Network.PeerSelection.RelayAccessPoint -- |The type of big ledger peers that is serialised or later diff --git a/ouroboros-network/ouroboros-network.cabal b/ouroboros-network/ouroboros-network.cabal index 9f635725814..e8773d100ae 100644 --- a/ouroboros-network/ouroboros-network.cabal +++ b/ouroboros-network/ouroboros-network.cabal @@ -87,6 +87,7 @@ library Ouroboros.Network.KeepAlive Ouroboros.Network.NodeToClient Ouroboros.Network.NodeToNode + Ouroboros.Network.PeerSelection Ouroboros.Network.PeerSelection.Churn Ouroboros.Network.PeerSelection.Governor Ouroboros.Network.PeerSelection.Governor.Monitor diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node.hs b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node.hs index fe872cf3d85..c6a1b93c13f 100644 --- a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node.hs +++ b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node.hs @@ -89,25 +89,18 @@ import Ouroboros.Network.Mock.ConcreteBlock (Block (..), BlockHeader (..), convertSlotToTimeForTestsAssumingNoHardFork) import Ouroboros.Network.Mock.ProducerState (ChainProducerState (..)) import Ouroboros.Network.NodeToNode.Version (DiffusionMode (..)) -import Ouroboros.Network.PeerSelection.Churn (PeerChurnArgs) -import Ouroboros.Network.PeerSelection.Governor (PeerSelectionState (..), - PeerSelectionTargets (..), PublicPeerSelectionState (..)) -import Ouroboros.Network.PeerSelection.Governor.Types - (PeerSelectionGovernorArgs) -import Ouroboros.Network.PeerSelection.LedgerPeers (NumberOfPeers) -import Ouroboros.Network.PeerSelection.LedgerPeers.Type - (LedgerPeersConsensusInterface, LedgerPeersKind, UseLedgerPeers) -import Ouroboros.Network.PeerSelection.PeerAdvertise (PeerAdvertise (..)) -import Ouroboros.Network.PeerSelection.PeerMetric (PeerMetrics, - PeerMetricsConfiguration (..), newPeerMetric) -import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing (..)) -import Ouroboros.Network.PeerSelection.PeerStateActions (PeerConnectionHandle) -import Ouroboros.Network.PeerSelection.PublicRootPeers (PublicRootPeers) -import Ouroboros.Network.PeerSelection.RelayAccessPoint (DomainAccessPoint, - RelayAccessPoint) -import Ouroboros.Network.PeerSelection.RootPeersDNS (PeerActionsDNS) -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions (DNSLookupType) -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSSemaphore (DNSSemaphore) +import Ouroboros.Network.PeerSelection (DomainAccessPoint, PeerAdvertise (..), + PeerChurnArgs, PeerConnectionHandle, PeerMetrics, + PeerMetricsConfiguration (..), PeerSharing (..), PublicRootPeers, + RelayAccessPoint, newPeerMetric) +import Ouroboros.Network.PeerSelection.Governor (PeerSelectionGovernorArgs, + PeerSelectionState (..), PeerSelectionTargets (..), + PublicPeerSelectionState (..)) +import Ouroboros.Network.PeerSelection.LedgerPeers + (LedgerPeersConsensusInterface, LedgerPeersKind, NumberOfPeers, + UseLedgerPeers) +import Ouroboros.Network.PeerSelection.RootPeersDNS (DNSLookupType, + DNSSemaphore, PeerActionsDNS) import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency, LocalRootConfig, WarmValency) import Ouroboros.Network.PeerSelection.Types (PublicExtraPeersAPI (..)) diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node/Kernel.hs b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node/Kernel.hs index 4abe8ccebb3..e0273cf5bec 100644 --- a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node/Kernel.hs +++ b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node/Kernel.hs @@ -68,10 +68,9 @@ import Ouroboros.Network.Mock.ConcreteBlock qualified as ConcreteBlock import Ouroboros.Network.Mock.ProducerState import Ouroboros.Network.NodeToNode () import Ouroboros.Network.NodeToNode.Version (DiffusionMode (..)) +import Ouroboros.Network.PeerSelection (PeerSharing, RelayAccessPoint (..)) import Ouroboros.Network.PeerSelection.Governor (PublicPeerSelectionState, makePublicPeerSelectionStateVar) -import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing) -import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint (..)) import Ouroboros.Network.PeerSharing (PeerSharingAPI, PeerSharingRegistry (..), newPeerSharingAPI, newPeerSharingRegistry, ps_POLICY_PEER_SHARE_MAX_PEERS, ps_POLICY_PEER_SHARE_STICKY_TIME) diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Policies.hs b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Policies.hs index d2b91e3f94d..1214f43ff23 100644 --- a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Policies.hs +++ b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Policies.hs @@ -25,9 +25,9 @@ import NoThunks.Class.Orphans () import Cardano.Slotting.Slot (SlotNo (..)) import Ouroboros.Network.ExitPolicy (RepromoteDelay (..)) +import Ouroboros.Network.PeerSelection (PeerSource (..)) import Ouroboros.Network.PeerSelection.Governor import Ouroboros.Network.PeerSelection.PeerMetric -import Ouroboros.Network.PeerSelection.Types (PeerSource (..)) import Ouroboros.Network.SizeInBytes import Ouroboros.Cardano.Network.Diffusion.Policies diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano.hs b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano.hs index d5937639aa0..5950bc21040 100644 --- a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano.hs +++ b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano.hs @@ -68,22 +68,16 @@ import Ouroboros.Network.ExitPolicy (RepromoteDelay (..)) import Ouroboros.Network.InboundGovernor qualified as IG import Ouroboros.Network.Mock.ConcreteBlock (BlockHeader) import Ouroboros.Network.NodeToNode (DiffusionMode (..)) +import Ouroboros.Network.PeerSelection import Ouroboros.Network.PeerSelection.Governor hiding (PeerSelectionState (..)) import Ouroboros.Network.PeerSelection.Governor qualified as Governor -import Ouroboros.Network.PeerSelection.LedgerPeers -import Ouroboros.Network.PeerSelection.PeerAdvertise (PeerAdvertise (..)) -import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing (..)) -import Ouroboros.Network.PeerSelection.PeerStateActions import Ouroboros.Network.PeerSelection.PublicRootPeers qualified as PublicRootPeers -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions hiding (IOError) -import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers - (TraceLocalRootPeers (..)) +import Ouroboros.Network.PeerSelection.RootPeersDNS hiding (IOError) import Ouroboros.Network.PeerSelection.State.EstablishedPeers qualified as EstablishedPeers import Ouroboros.Network.PeerSelection.State.KnownPeers qualified as KnownPeers import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency (..), LocalRootConfig (..), WarmValency (..)) import Ouroboros.Network.PeerSelection.State.LocalRootPeers qualified as LocalRootPeers -import Ouroboros.Network.PeerSelection.Types import Ouroboros.Network.PeerSharing (PeerSharingResult (..)) import Ouroboros.Network.Server qualified as Server diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano/Simulation.hs b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano/Simulation.hs index 2897ab21a87..93fb9de20f0 100644 --- a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano/Simulation.hs +++ b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano/Simulation.hs @@ -109,22 +109,16 @@ import Ouroboros.Network.InboundGovernor (RemoteTransitionTrace) import Ouroboros.Network.InboundGovernor qualified as IG import Ouroboros.Network.Mock.ConcreteBlock (Block (..), BlockHeader (..)) import Ouroboros.Network.Mux (MiniProtocolLimits (..)) +import Ouroboros.Network.PeerSelection (AfterSlot (..), DomainAccessPoint (..), + LedgerPeersConsensusInterface (..), PeerSelectionActionsTrace, + PeerSharing, PortNumber, RelayAccessPoint (..), TraceLedgerPeers, + UseLedgerPeers (..)) import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (..), TracePeerSelection) -import Ouroboros.Network.PeerSelection.Governor qualified as PeerSelection -import Ouroboros.Network.PeerSelection.LedgerPeers (AfterSlot (..), - LedgerPeersConsensusInterface (..), TraceLedgerPeers, - UseLedgerPeers (..), accPoolStake) -import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing) -import Ouroboros.Network.PeerSelection.PeerStateActions - (PeerSelectionActionsTrace) -import Ouroboros.Network.PeerSelection.RelayAccessPoint (DomainAccessPoint (..), - PortNumber, RelayAccessPoint (..)) -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions (DNSLookupType) -import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers - (TraceLocalRootPeers) -import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers - (TracePublicRootPeers) +import Ouroboros.Network.PeerSelection.Governor qualified as Governor +import Ouroboros.Network.PeerSelection.LedgerPeers (accPoolStake) +import Ouroboros.Network.PeerSelection.RootPeersDNS (DNSLookupType, + TraceLocalRootPeers, TracePublicRootPeers) import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency (..), LocalRootConfig, WarmValency (..)) import Ouroboros.Network.Protocol.BlockFetch.Codec (byteLimitsBlockFetch, @@ -362,7 +356,7 @@ instance Arbitrary SmallPeerSelectionTargets where [ SmallTargets targets' | (r',k',e',a',kb',eb',ab') <- shrink (r,k,e,a,kb,eb,ab) , let targets' = PeerSelectionTargets r' k' e' a' kb' eb' ab' - , PeerSelection.sanePeerSelectionTargets targets' + , Governor.sanePeerSelectionTargets targets' ] diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/LedgerPeers.hs b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/LedgerPeers.hs index 62ada7b7417..22e590c4587 100644 --- a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/LedgerPeers.hs +++ b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/LedgerPeers.hs @@ -45,7 +45,6 @@ import Ouroboros.Network.PeerSelection.LedgerPeers.Utils import Ouroboros.Network.PeerSelection.RelayAccessPoint import Ouroboros.Network.PeerSelection.RootPeersDNS -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSSemaphore import Test.Ouroboros.Network.Data.Script import Test.Ouroboros.Network.PeerSelection.RootPeersDNS import Test.QuickCheck diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/RootPeersDNS.hs b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/RootPeersDNS.hs index 23831ee7461..5a51518a83f 100644 --- a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/RootPeersDNS.hs +++ b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/RootPeersDNS.hs @@ -58,13 +58,9 @@ import Control.Concurrent.Class.MonadSTM qualified as LazySTM import Data.List (intercalate) import Data.List.NonEmpty (NonEmpty (..)) import Ouroboros.Network.NodeToNode.Version (DiffusionMode (..)) -import Ouroboros.Network.PeerSelection.LedgerPeers -import Ouroboros.Network.PeerSelection.PeerAdvertise (PeerAdvertise (..)) -import Ouroboros.Network.PeerSelection.RootPeersDNS (PeerActionsDNS (..)) -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSSemaphore -import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers -import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers +import Ouroboros.Network.PeerSelection (DomainAccessPoint (..), IP (..), + PeerAdvertise (..), RelayAccessPoint (..), TraceLedgerPeers) +import Ouroboros.Network.PeerSelection.RootPeersDNS import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency (..), LocalRootConfig (..), WarmValency (..)) import Test.Ouroboros.Network.Data.Script (Script (Script), initScript', diff --git a/ouroboros-network/src/Ouroboros/Network/Diffusion.hs b/ouroboros-network/src/Ouroboros/Network/Diffusion.hs index 08a45052405..fda2f88bfc3 100644 --- a/ouroboros-network/src/Ouroboros/Network/Diffusion.hs +++ b/ouroboros-network/src/Ouroboros/Network/Diffusion.hs @@ -78,20 +78,10 @@ import Ouroboros.Network.NodeToClient qualified as NodeToClient import Ouroboros.Network.NodeToNode (NodeToNodeVersion (..), NodeToNodeVersionData (..), RemoteAddress) import Ouroboros.Network.NodeToNode qualified as NodeToNode -import Ouroboros.Network.PeerSelection.Churn (PeerChurnArgs (..)) +import Ouroboros.Network.PeerSelection as PeerSelection import Ouroboros.Network.PeerSelection.Governor qualified as Governor -import Ouroboros.Network.PeerSelection.Governor.Types hiding (peerSharing) -import Ouroboros.Network.PeerSelection.LedgerPeers (WithLedgerPeersArgs (..)) -import Ouroboros.Network.PeerSelection.PeerMetric -import Ouroboros.Network.PeerSelection.PeerSelectionActions -import Ouroboros.Network.PeerSelection.PeerSelectionActions qualified as Ouroboros -import Ouroboros.Network.PeerSelection.PeerStateActions (PeerConnectionHandle, - PeerStateActionsArguments (..), pchPeerSharing, withPeerStateActions) -import Ouroboros.Network.PeerSelection.RootPeersDNS -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions - (DNSLookupType (..), ioDNSActions) -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSSemaphore - (newLedgerAndPublicRootDNSSemaphore) +import Ouroboros.Network.PeerSelection.RootPeersDNS (PeerActionsDNS (..)) +import Ouroboros.Network.PeerSelection.RootPeersDNS qualified as RootPeersDNS import Ouroboros.Network.PeerSelection.State.LocalRootPeers qualified as LocalRootPeers import Ouroboros.Network.PeerSharing (PeerSharingRegistry (..)) import Ouroboros.Network.Protocol.Handshake @@ -432,9 +422,9 @@ runM Interfaces Nothing -> pure () lookupReqs <- case (ipv4Address, ipv6Address) of - (Just _ , Nothing) -> return LookupReqAOnly - (Nothing, Just _ ) -> return LookupReqAAAAOnly - (Just _ , Just _ ) -> return LookupReqAAndAAAA + (Just _ , Nothing) -> return RootPeersDNS.LookupReqAOnly + (Nothing, Just _ ) -> return RootPeersDNS.LookupReqAAAAOnly + (Just _ , Just _ ) -> return RootPeersDNS.LookupReqAAndAAAA (Nothing, Nothing) -> throwIO NoSocket -- RNGs used for picking random peers from the ledger and for @@ -445,7 +435,7 @@ runM Interfaces peerSelectionTargetsVar <- newTVarIO daPeerSelectionTargets - countersVar <- newTVarIO (emptyPeerSelectionCounters daEmptyExtraCounters) + countersVar <- newTVarIO (Governor.emptyPeerSelectionCounters daEmptyExtraCounters) -- Design notes: -- - We split the following code into two parts: @@ -582,7 +572,7 @@ runM Interfaces spsMainThreadId = mainThreadId } - dnsSemaphore <- newLedgerAndPublicRootDNSSemaphore + dnsSemaphore <- RootPeersDNS.newLedgerAndPublicRootDNSSemaphore let dnsActions = PeerActionsDNS { paToPeerAddr = diNtnToPeerAddr @@ -629,7 +619,7 @@ runM Interfaces requestPublicRootPeers = case daRequestPublicRootPeers of Nothing -> - Ouroboros.requestPublicRootPeers + PeerSelection.requestPublicRootPeers dtTracePublicRootPeersTracer daReadPublicRootPeers dnsActions @@ -750,7 +740,7 @@ runM Interfaces -- InitiatorOnly mode, run peer selection only: InitiatorOnlyDiffusionMode -> withConnectionManagerInitiatorOnlyMode $ \connectionManager-> do - debugStateVar <- newTVarIO $ emptyPeerSelectionState fuzzRng daEmptyExtraState mempty + debugStateVar <- newTVarIO $ Governor.emptyPeerSelectionState fuzzRng daEmptyExtraState mempty diInstallSigUSR1Handler connectionManager debugStateVar daPeerMetrics withPeerStateActions' connectionManager $ \peerStateActions-> withPeerSelectionActions' @@ -782,7 +772,7 @@ runM Interfaces -- withServer sockets connectionManager inboundInfoChannel $ \inboundGovernorThread readInboundState -> do - debugStateVar <- newTVarIO $ emptyPeerSelectionState fuzzRng daEmptyExtraState mempty + debugStateVar <- newTVarIO $ Governor.emptyPeerSelectionState fuzzRng daEmptyExtraState mempty diInstallSigUSR1Handler connectionManager debugStateVar daPeerMetrics withPeerStateActions' connectionManager $ \peerStateActions -> @@ -930,7 +920,7 @@ run sigUSR1Signal tracers args apps = do diNtcSnocket = Snocket.localSnocket iocp, diNtcBearer = makeLocalBearer, diNtcGetFileDescriptor = localSocketFileDescriptor, - diDnsActions = ioDNSActions, + diDnsActions = RootPeersDNS.ioDNSActions, diInstallSigUSR1Handler = sigUSR1Signal, diNtnHandshakeArguments, diNtcHandshakeArguments, diff --git a/ouroboros-network/src/Ouroboros/Network/Diffusion/Types.hs b/ouroboros-network/src/Ouroboros/Network/Diffusion/Types.hs index da67d15c93e..a80c8bce49b 100644 --- a/ouroboros-network/src/Ouroboros/Network/Diffusion/Types.hs +++ b/ouroboros-network/src/Ouroboros/Network/Diffusion/Types.hs @@ -38,7 +38,6 @@ import Control.Monad.Class.MonadTimer.SI import Control.Tracer (Tracer, nullTracer) import Data.ByteString.Lazy (ByteString) -import Data.IP (IP) import Data.List.NonEmpty (NonEmpty) import Data.Map (Map) import Data.Set (Set) @@ -72,27 +71,10 @@ import Ouroboros.Network.Socket (SystemdSocketTracer) import Ouroboros.Network.NodeToClient qualified as NodeToClient import Ouroboros.Network.NodeToNode (AcceptedConnectionsLimit, DiffusionMode) import Ouroboros.Network.NodeToNode qualified as NodeToNode -import Ouroboros.Network.PeerSelection.Churn qualified as Governor +import Ouroboros.Network.PeerSelection as PeerSelection import Ouroboros.Network.PeerSelection.Governor.Types -import Ouroboros.Network.PeerSelection.LedgerPeers (LedgerPeerSnapshot, - LedgerPeersConsensusInterface (..), LedgerPeersKind, NumberOfPeers, - TraceLedgerPeers, UseLedgerPeers) -import Ouroboros.Network.PeerSelection.PeerAdvertise -import Ouroboros.Network.PeerSelection.PeerMetric (PeerMetrics) -import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing (..)) -import Ouroboros.Network.PeerSelection.PeerStateActions (PeerConnectionHandle, - PeerSelectionActionsTrace) -import Ouroboros.Network.PeerSelection.PublicRootPeers (PublicRootPeers) -import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint) -import Ouroboros.Network.PeerSelection.RootPeersDNS (PeerActionsDNS) -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSSemaphore -import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers - (TraceLocalRootPeers) -import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers - (TracePublicRootPeers) +import Ouroboros.Network.PeerSelection.RootPeersDNS import Ouroboros.Network.PeerSelection.State.LocalRootPeers qualified as LocalRootPeers -import Ouroboros.Network.PeerSelection.Types (PublicExtraPeersAPI) -- | The 'DiffusionTracer' logs -- @@ -187,7 +169,7 @@ data Tracers ntnAddr ntnVersion ntnVersionData :: Tracer m (PeerSelectionCounters extraCounters) , dtTraceChurnCounters - :: Tracer m Governor.ChurnCounters + :: Tracer m PeerSelection.ChurnCounters , dtPeerSelectionActionsTracer :: Tracer m (PeerSelectionActionsTrace ntnAddr ntnVersion) @@ -406,7 +388,7 @@ data Arguments extraState extraDebugState extraFlags extraPeers -- 'Ouroboros.Network.PeerSelection.Churn.peerChurnGovernor' -- , daPeerChurnGovernor - :: Governor.PeerChurnArgs + :: PeerSelection.PeerChurnArgs m extraChurnArgs extraDebugState diff --git a/ouroboros-network/src/Ouroboros/Network/PeerSelection.hs b/ouroboros-network/src/Ouroboros/Network/PeerSelection.hs new file mode 100644 index 00000000000..e8b09526128 --- /dev/null +++ b/ouroboros-network/src/Ouroboros/Network/PeerSelection.hs @@ -0,0 +1,42 @@ +{-# LANGUAGE ExplicitNamespaces #-} + +module Ouroboros.Network.PeerSelection + ( module Governor + , module PeerSelection + , module PeerSelection.Types + , module PeerSelection.PublicRootPeers + , module PeerSelection.PeerStateActions + , module PeerSelection.PeerSelectionActions + , module PeerSelection.RelayAccessPoint + , module PeerSelection.LedgerPeers + , module PeerSelection.PeerMetrics + , module PeerSelection.Churn + , module PeerSelection.PeerAdvertise + , module PeerSelection.PeerSharing + ) where + +import Ouroboros.Network.PeerSelection.Churn as PeerSelection.Churn +-- Only essential `Governor` types. +import Ouroboros.Network.PeerSelection.Governor as Governor + (DebugPeerSelection (..), PeerSelectionActions, + PeerSelectionInterfaces (..), PeerSelectionPolicy (..), + PeerSelectionState, PeerSelectionTargets (..), PeerStateActions, + PickPolicy) +import Ouroboros.Network.PeerSelection.LedgerPeers as PeerSelection.LedgerPeers + (AfterSlot (..), IsBigLedgerPeer (..), LedgerPeerSnapshot (..), + LedgerPeers (..), LedgerPeersConsensusInterface (..), + LedgerPeersKind (..), NumberOfPeers (..), TraceLedgerPeers (..), + UseLedgerPeers (..), WithLedgerPeersArgs (..), withLedgerPeers) +import Ouroboros.Network.PeerSelection.PeerAdvertise as PeerSelection.PeerAdvertise +import Ouroboros.Network.PeerSelection.PeerMetric as PeerSelection.PeerMetrics + (PeerMetrics, PeerMetricsConfiguration (..), ReportPeerMetrics (..), + newPeerMetric, newPeerMetric', nullMetric, reportMetric) +import Ouroboros.Network.PeerSelection.PeerSelectionActions as PeerSelection.PeerSelectionActions +import Ouroboros.Network.PeerSelection.PeerSharing as PeerSelection.PeerSharing +import Ouroboros.Network.PeerSelection.PeerStateActions as PeerSelection.PeerStateActions +import Ouroboros.Network.PeerSelection.PublicRootPeers as PeerSelection.PublicRootPeers + (PublicRootPeers) +import Ouroboros.Network.PeerSelection.RelayAccessPoint as PeerSelection.RelayAccessPoint + (DomainAccessPoint (..), IP (..), PortNumber, RelayAccessPoint (..)) +import Ouroboros.Network.PeerSelection.Types as PeerSelection +import Ouroboros.Network.PeerSelection.Types as PeerSelection.Types diff --git a/ouroboros-network/src/Ouroboros/Network/PeerSelection/Governor.hs b/ouroboros-network/src/Ouroboros/Network/PeerSelection/Governor.hs index 2c8486eab8a..5f3fa88432f 100644 --- a/ouroboros-network/src/Ouroboros/Network/PeerSelection/Governor.hs +++ b/ouroboros-network/src/Ouroboros/Network/PeerSelection/Governor.hs @@ -3,7 +3,6 @@ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE LambdaCase #-} -{-# LANGUAGE MultiWayIf #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE ScopedTypeVariables #-} @@ -19,10 +18,12 @@ module Ouroboros.Network.PeerSelection.Governor -- * Peer selection governor -- $peer-selection-governor PeerSelectionPolicy (..) + , PickPolicy , PeerSelectionTargets (..) , PeerSelectionActions (..) , PeerSelectionInterfaces (..) , PeerStateActions (..) + , PeerSelectionGovernorArgs (..) , TracePeerSelection (..) , ChurnAction (..) , DebugPeerSelection (..) diff --git a/ouroboros-network/src/Ouroboros/Network/PeerSelection/LedgerPeers.hs b/ouroboros-network/src/Ouroboros/Network/PeerSelection/LedgerPeers.hs index 332bd6810ce..f7917f1b31a 100644 --- a/ouroboros-network/src/Ouroboros/Network/PeerSelection/LedgerPeers.hs +++ b/ouroboros-network/src/Ouroboros/Network/PeerSelection/LedgerPeers.hs @@ -70,9 +70,6 @@ import Ouroboros.Network.PeerSelection.LedgerPeers.Utils recomputeRelativeStake) import Ouroboros.Network.PeerSelection.RelayAccessPoint import Ouroboros.Network.PeerSelection.RootPeersDNS -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSSemaphore (DNSSemaphore) -import Ouroboros.Network.PeerSelection.RootPeersDNS.LedgerPeers - (resolveLedgerPeers) -- | Internal API to deal with 'UseLedgerAfter' configuration -- option diff --git a/ouroboros-network/src/Ouroboros/Network/PeerSelection/PeerSelectionActions.hs b/ouroboros-network/src/Ouroboros/Network/PeerSelection/PeerSelectionActions.hs index c16cb51874a..424f4493cd9 100644 --- a/ouroboros-network/src/Ouroboros/Network/PeerSelection/PeerSelectionActions.hs +++ b/ouroboros-network/src/Ouroboros/Network/PeerSelection/PeerSelectionActions.hs @@ -1,14 +1,13 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE LambdaCase #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TupleSections #-} module Ouroboros.Network.PeerSelection.PeerSelectionActions - ( withPeerSelectionActions + ( PeerSelectionActions (..) + , withPeerSelectionActions , requestPeerSharingResult , requestPublicRootPeers ) where @@ -39,10 +38,6 @@ import Ouroboros.Network.PeerSelection.PeerAdvertise (PeerAdvertise) import Ouroboros.Network.PeerSelection.PublicRootPeers (PublicRootPeers) import Ouroboros.Network.PeerSelection.PublicRootPeers qualified as PublicRootPeers import Ouroboros.Network.PeerSelection.RootPeersDNS -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSSemaphore (DNSSemaphore) -import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers -import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers - (TracePublicRootPeers, publicRootPeersProvider) import Ouroboros.Network.PeerSelection.State.LocalRootPeers import Ouroboros.Network.PeerSharing (PeerSharingController, PeerSharingResult (..), requestPeers) diff --git a/ouroboros-network/src/Ouroboros/Network/PeerSelection/PublicRootPeers.hs b/ouroboros-network/src/Ouroboros/Network/PeerSelection/PublicRootPeers.hs index 33d6dd3d65a..0822c4e9207 100644 --- a/ouroboros-network/src/Ouroboros/Network/PeerSelection/PublicRootPeers.hs +++ b/ouroboros-network/src/Ouroboros/Network/PeerSelection/PublicRootPeers.hs @@ -2,8 +2,9 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE NamedFieldPuns #-} -{-# LANGUAGE TypeOperators #-} +-- | The module is designed to be imported qualified. +-- module Ouroboros.Network.PeerSelection.PublicRootPeers ( -- * Types PublicRootPeers (..) diff --git a/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS.hs b/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS.hs index dacd58004fe..05d847d3cff 100644 --- a/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS.hs +++ b/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS.hs @@ -1,13 +1,14 @@ -module Ouroboros.Network.PeerSelection.RootPeersDNS (PeerActionsDNS (..)) where +module Ouroboros.Network.PeerSelection.RootPeersDNS + ( PeerActionsDNS (..) + , module DNSActions + , module DNSSemaphore + , module LedgerPeers + , module LocalRootPeers + , module PublicRootPeers + ) where -import Data.IP (IP) -import Network.Socket (PortNumber) - -import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions - --- | Record of some parameters that are commonly used together --- -data PeerActionsDNS peeraddr resolver exception m = PeerActionsDNS { - paToPeerAddr :: IP -> PortNumber -> peeraddr, - paDnsActions :: DNSActions resolver exception m - } +import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions as DNSActions +import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSSemaphore as DNSSemaphore +import Ouroboros.Network.PeerSelection.RootPeersDNS.LedgerPeers as LedgerPeers +import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers as LocalRootPeers +import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers as PublicRootPeers diff --git a/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs b/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs index 28b67aa7aa1..36f8e2ce951 100644 --- a/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs +++ b/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs @@ -7,6 +7,7 @@ module Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions ( -- * DNS based actions for local and public root providers DNSActions (..) + , PeerActionsDNS (..) -- * DNSActions IO , ioDNSActions , DNSLookupType (..) @@ -46,6 +47,7 @@ import System.Directory (getModificationTime) import Data.IP (IP (..)) import Network.DNS (DNSError) import Network.DNS qualified as DNS +import Network.Socket (PortNumber) data DNSLookupType = LookupReqAOnly @@ -175,6 +177,16 @@ data DNSActions resolver exception m = DNSActions { } +-- | Record of some parameters that are commonly used together +-- +-- TODO: rename as `PeerDNSActions`; can we bundle `paToPeerAddr` with +-- `DNSActions`? +data PeerActionsDNS peeraddr resolver exception m = PeerActionsDNS { + paToPeerAddr :: IP -> PortNumber -> peeraddr, + paDnsActions :: DNSActions resolver exception m + } + + -- | Get a resolver from 'DNS.ResolvConf'. -- diff --git a/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/LocalRootPeers.hs b/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/LocalRootPeers.hs index 7a30a74b1dc..6dc5fda348a 100644 --- a/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/LocalRootPeers.hs +++ b/ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/LocalRootPeers.hs @@ -30,7 +30,6 @@ import Network.DNS qualified as DNS import Data.Bifunctor (second) import Ouroboros.Network.PeerSelection.RelayAccessPoint -import Ouroboros.Network.PeerSelection.RootPeersDNS (PeerActionsDNS (..)) import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSSemaphore (DNSSemaphore, newDNSLocalRootSemaphore, withDNSSemaphore) From 7d6b4269e9b41eebb16dba9c9aa64c9b2732ba7a Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Wed, 19 Feb 2025 12:36:08 +0100 Subject: [PATCH 2/4] sim-tests-lib: code style --- .../Test/Ouroboros/Network/PeerSelection/KnownPeers.hs | 4 +++- .../Test/Ouroboros/Network/PeerSelection/LocalRootPeers.hs | 5 ++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/KnownPeers.hs b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/KnownPeers.hs index 4e69dd12dba..09bdabb1176 100644 --- a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/KnownPeers.hs +++ b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/KnownPeers.hs @@ -1,10 +1,12 @@ - module Test.Ouroboros.Network.PeerSelection.KnownPeers (tests) where + import Data.Map (Map) + import Ouroboros.Network.PeerSelection.LedgerPeers (RelayAccessPoint) import Ouroboros.Network.PeerSelection.PeerAdvertise (PeerAdvertise) import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing) import Ouroboros.Network.PeerSelection.State.KnownPeers qualified as KnownPeers + import Test.Ouroboros.Network.PeerSelection.Instances () import Test.QuickCheck (Property, counterexample) import Test.Tasty (TestTree, testGroup) diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/LocalRootPeers.hs b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/LocalRootPeers.hs index 726cc88052b..1ee5f74f1f3 100644 --- a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/LocalRootPeers.hs +++ b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/LocalRootPeers.hs @@ -1,8 +1,7 @@ -{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-orphans #-} -{-# LANGUAGE StandaloneDeriving #-} -{-# LANGUAGE TypeApplications #-} module Test.Ouroboros.Network.PeerSelection.LocalRootPeers ( arbitraryLocalRootPeers From f30e87268691e71abccd8a9a38c6f91a9b71bc7e Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Wed, 19 Feb 2025 12:38:58 +0100 Subject: [PATCH 3/4] ouroboros-network: renamed sim-test-lib as testlib Just to make it similar to test libraries in other packages. --- ouroboros-network/ouroboros-network.cabal | 8 ++++---- .../Ouroboros/Network/BlockFetch/Examples.hs | 0 .../Ouroboros/Network/MockNode.hs | 0 .../Test/Ouroboros/Network/BlockFetch.hs | 0 .../Test/Ouroboros/Network/Diffusion/Node.hs | 0 .../Test/Ouroboros/Network/Diffusion/Node/ChainDB.hs | 0 .../Test/Ouroboros/Network/Diffusion/Node/Kernel.hs | 0 .../Ouroboros/Network/Diffusion/Node/MiniProtocols.hs | 0 .../Test/Ouroboros/Network/Diffusion/Policies.hs | 0 .../Test/Ouroboros/Network/Diffusion/Testnet/Cardano.hs | 0 .../Network/Diffusion/Testnet/Cardano/Simulation.hs | 0 .../Test/Ouroboros/Network/KeepAlive.hs | 0 .../Test/Ouroboros/Network/LedgerPeers.hs | 0 .../Test/Ouroboros/Network/MockNode.hs | 0 .../Test/Ouroboros/Network/Mux.hs | 0 .../Test/Ouroboros/Network/NodeToClient/Version.hs | 0 .../Test/Ouroboros/Network/NodeToNode/Version.hs | 0 .../Test/Ouroboros/Network/Orphans.hs | 0 .../Test/Ouroboros/Network/PeerSelection.hs | 0 .../Ouroboros/Network/PeerSelection/Cardano/Instances.hs | 0 .../Network/PeerSelection/Cardano/LocalRootPeers.hs | 0 .../Network/PeerSelection/Cardano/MockEnvironment.hs | 0 .../Network/PeerSelection/Cardano/PublicRootPeers.hs | 0 .../Test/Ouroboros/Network/PeerSelection/Instances.hs | 0 .../Test/Ouroboros/Network/PeerSelection/Json.hs | 0 .../Test/Ouroboros/Network/PeerSelection/KnownPeers.hs | 0 .../Ouroboros/Network/PeerSelection/LocalRootPeers.hs | 0 .../Test/Ouroboros/Network/PeerSelection/PeerGraph.hs | 0 .../Test/Ouroboros/Network/PeerSelection/PeerMetric.hs | 0 .../Test/Ouroboros/Network/PeerSelection/RootPeersDNS.hs | 0 .../Test/Ouroboros/Network/TxSubmission.hs | 0 .../Test/Ouroboros/Network/Version.hs | 0 32 files changed, 4 insertions(+), 4 deletions(-) rename ouroboros-network/{sim-tests-lib => testlib}/Ouroboros/Network/BlockFetch/Examples.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Ouroboros/Network/MockNode.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/BlockFetch.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/Diffusion/Node.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/Diffusion/Node/ChainDB.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/Diffusion/Node/Kernel.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/Diffusion/Node/MiniProtocols.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/Diffusion/Policies.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/Diffusion/Testnet/Cardano.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/Diffusion/Testnet/Cardano/Simulation.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/KeepAlive.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/LedgerPeers.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/MockNode.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/Mux.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/NodeToClient/Version.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/NodeToNode/Version.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/Orphans.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/Cardano/Instances.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/Cardano/LocalRootPeers.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/Cardano/MockEnvironment.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/Cardano/PublicRootPeers.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/Instances.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/Json.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/KnownPeers.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/LocalRootPeers.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/PeerGraph.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/PeerMetric.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/PeerSelection/RootPeersDNS.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/TxSubmission.hs (100%) rename ouroboros-network/{sim-tests-lib => testlib}/Test/Ouroboros/Network/Version.hs (100%) diff --git a/ouroboros-network/ouroboros-network.cabal b/ouroboros-network/ouroboros-network.cabal index e8773d100ae..cc301e30a23 100644 --- a/ouroboros-network/ouroboros-network.cabal +++ b/ouroboros-network/ouroboros-network.cabal @@ -200,12 +200,12 @@ library cpp-options: -DTXSUBMISSION_DELAY -- Simulation Test Library -library sim-tests-lib +library testlib import: ghc-options-tests default-language: Haskell2010 default-extensions: ImportQualifiedPost visibility: public - hs-source-dirs: sim-tests-lib + hs-source-dirs: testlib build-depends: QuickCheck, aeson, @@ -297,7 +297,7 @@ test-suite sim-tests main-is: Main.hs build-depends: base >=4.14 && <4.22, - ouroboros-network:sim-tests-lib, + ouroboros-network:testlib, ouroboros-network-protocols:testlib, tasty, with-utf8, @@ -402,7 +402,7 @@ benchmark sim-benchmarks main-is: Main.hs build-depends: base, - ouroboros-network:sim-tests-lib, + ouroboros-network:testlib, tasty-bench >=0.3.5, ghc-options: diff --git a/ouroboros-network/sim-tests-lib/Ouroboros/Network/BlockFetch/Examples.hs b/ouroboros-network/testlib/Ouroboros/Network/BlockFetch/Examples.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Ouroboros/Network/BlockFetch/Examples.hs rename to ouroboros-network/testlib/Ouroboros/Network/BlockFetch/Examples.hs diff --git a/ouroboros-network/sim-tests-lib/Ouroboros/Network/MockNode.hs b/ouroboros-network/testlib/Ouroboros/Network/MockNode.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Ouroboros/Network/MockNode.hs rename to ouroboros-network/testlib/Ouroboros/Network/MockNode.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/BlockFetch.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/BlockFetch.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/BlockFetch.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/BlockFetch.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Node.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Node.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node/ChainDB.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Node/ChainDB.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node/ChainDB.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Node/ChainDB.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node/Kernel.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Node/Kernel.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node/Kernel.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Node/Kernel.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node/MiniProtocols.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Node/MiniProtocols.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node/MiniProtocols.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Node/MiniProtocols.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Policies.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Policies.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Policies.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Policies.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano/Simulation.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano/Simulation.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano/Simulation.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/Diffusion/Testnet/Cardano/Simulation.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/KeepAlive.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/KeepAlive.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/KeepAlive.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/KeepAlive.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/LedgerPeers.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/LedgerPeers.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/LedgerPeers.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/LedgerPeers.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/MockNode.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/MockNode.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/MockNode.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/MockNode.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Mux.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/Mux.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Mux.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/Mux.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/NodeToClient/Version.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/NodeToClient/Version.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/NodeToClient/Version.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/NodeToClient/Version.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/NodeToNode/Version.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/NodeToNode/Version.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/NodeToNode/Version.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/NodeToNode/Version.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Orphans.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/Orphans.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Orphans.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/Orphans.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Cardano/Instances.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Cardano/Instances.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Cardano/Instances.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Cardano/Instances.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Cardano/LocalRootPeers.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Cardano/LocalRootPeers.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Cardano/LocalRootPeers.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Cardano/LocalRootPeers.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Cardano/MockEnvironment.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Cardano/MockEnvironment.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Cardano/MockEnvironment.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Cardano/MockEnvironment.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Cardano/PublicRootPeers.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Cardano/PublicRootPeers.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Cardano/PublicRootPeers.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Cardano/PublicRootPeers.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Instances.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Instances.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Instances.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Instances.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Json.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Json.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/Json.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/Json.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/KnownPeers.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/KnownPeers.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/KnownPeers.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/KnownPeers.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/LocalRootPeers.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/LocalRootPeers.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/LocalRootPeers.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/LocalRootPeers.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/PeerGraph.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/PeerGraph.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/PeerGraph.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/PeerGraph.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/PeerMetric.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/PeerMetric.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/PeerMetric.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/PeerMetric.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/RootPeersDNS.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/RootPeersDNS.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/PeerSelection/RootPeersDNS.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/PeerSelection/RootPeersDNS.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/TxSubmission.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/TxSubmission.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/TxSubmission.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/TxSubmission.hs diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Version.hs b/ouroboros-network/testlib/Test/Ouroboros/Network/Version.hs similarity index 100% rename from ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Version.hs rename to ouroboros-network/testlib/Test/Ouroboros/Network/Version.hs From be7913cb875086979d0d5e8fac78883256d1b981 Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Wed, 5 Mar 2025 21:29:43 +0100 Subject: [PATCH 4/4] nix: raise heap limit for ouroboros-newtork:sim-tests --- nix/ouroboros-network.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nix/ouroboros-network.nix b/nix/ouroboros-network.nix index d69c51cd4b4..3479cd63e69 100644 --- a/nix/ouroboros-network.nix +++ b/nix/ouroboros-network.nix @@ -101,6 +101,8 @@ let # don't run checks using Wine when cross compiling packages.network-mux.components.tests.test.preCheck = if buildSystem == "x86_64-linux" then "export GHCRTS=-M500M" else ""; + packages.ouroboros-network.components.tests.sim-tests.preCheck = + if buildSystem == "x86_64-linux" then "export GHCRTS=-M600M" else ""; }) ]; });