Skip to content

Commit 00af40d

Browse files
committed
peer-selection: reorganised exports, part 2
Added `Cardano.Network.PeerSelection` which re-export useful cardano peer selection APIs.
1 parent ffa9063 commit 00af40d

File tree

22 files changed

+172
-191
lines changed

22 files changed

+172
-191
lines changed

cardano-diffusion/api/lib/Cardano/Network/FetchMode.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
module Cardano.Network.FetchMode
44
( mkReadFetchMode
5+
, ConsensusMode (..)
6+
, LedgerStateJudgement (..)
57
, module Ouroboros.Network.BlockFetch.ConsensusInterface
68
) where
79

810
import Data.Functor ((<&>))
911

10-
import Cardano.Network.ConsensusMode (ConsensusMode (..))
11-
import Cardano.Network.Types (LedgerStateJudgement (..))
12+
import Cardano.Network.ConsensusMode
13+
import Cardano.Network.LedgerStateJudgement
1214
import Ouroboros.Network.BlockFetch.ConsensusInterface
1315

1416

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{-# LANGUAGE DeriveGeneric #-}
2+
{-# LANGUAGE DerivingStrategies #-}
3+
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
4+
5+
module Cardano.Network.LedgerStateJudgement (LedgerStateJudgement (..)) where
6+
7+
import GHC.Generics (Generic)
8+
import NoThunks.Class (NoThunks)
9+
10+
-- | Wether the node is caught up or fell too far behind the chain
11+
data LedgerStateJudgement = YoungEnough | TooOld
12+
deriving (Eq, Show, Generic)
13+
14+
instance NoThunks LedgerStateJudgement

cardano-diffusion/api/lib/Cardano/Network/PeerSelection/Bootstrap.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ module Cardano.Network.PeerSelection.Bootstrap
88
, isNodeAbleToMakeProgress
99
) where
1010

11-
import Cardano.Network.Types (LedgerStateJudgement (..))
1211
import GHC.Generics (Generic)
12+
13+
import Cardano.Network.LedgerStateJudgement
1314
import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint)
1415

1516
-- | `UseBootstrapPeers` is read from the topology file. It's value might

cardano-diffusion/api/lib/Cardano/Network/Types.hs

Lines changed: 0 additions & 29 deletions
This file was deleted.

cardano-diffusion/cardano-diffusion.cabal

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,12 @@ library api
5858
exposed-modules:
5959
Cardano.Network.ConsensusMode
6060
Cardano.Network.FetchMode
61+
Cardano.Network.LedgerStateJudgement
6162
Cardano.Network.NodeToClient.Version
6263
Cardano.Network.NodeToNode.Version
6364
Cardano.Network.PeerSelection.Bootstrap
6465
Cardano.Network.PeerSelection.LocalRootPeers
6566
Cardano.Network.PeerSelection.PeerTrustable
66-
Cardano.Network.Types
6767

6868
build-depends:
6969
aeson,
@@ -110,6 +110,7 @@ library
110110
Cardano.Network.LedgerPeerConsensusInterface
111111
Cardano.Network.NodeToClient
112112
Cardano.Network.NodeToNode
113+
Cardano.Network.PeerSelection
113114
Cardano.Network.PeerSelection.Churn
114115
Cardano.Network.PeerSelection.ExtraRootPeers
115116
Cardano.Network.PeerSelection.Governor.Monitor
@@ -147,6 +148,7 @@ library
147148
TypeInType
148149

149150
build-depends:
151+
aeson,
150152
base >=4.14 && <4.22,
151153
bytestring,
152154
cardano-diffusion:{api, protocols},

cardano-diffusion/lib/Cardano/Network/Diffusion.hs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,14 @@ import Cardano.Network.NodeToClient qualified as NodeToClient
3030
import Cardano.Network.NodeToNode (NodeToNodeVersionData (..), RemoteAddress,
3131
ntnDataFlow)
3232
import Cardano.Network.NodeToNode qualified as NodeToNode
33+
import Cardano.Network.PeerSelection qualified as Cardano
3334
import Cardano.Network.PeerSelection.Churn qualified as Cardano.Churn
3435
import Cardano.Network.PeerSelection.ExtraRootPeers qualified as Cardano
35-
import Cardano.Network.PeerSelection.Governor.PeerSelectionActions qualified as Cardano
3636
import Cardano.Network.PeerSelection.Governor.PeerSelectionState qualified as Cardano.PeerSelectionState
3737
import Cardano.Network.PeerSelection.Governor.Types qualified as Cardano.Types
38-
import Cardano.Network.PeerSelection.PeerSelectionActions qualified as Cardano
3938

4039
import Ouroboros.Network.Diffusion qualified as Diffusion
4140
import Ouroboros.Network.IOManager
42-
import Ouroboros.Network.PeerSelection.LedgerPeers.Type
43-
(LedgerPeersConsensusInterface (..))
4441
import Ouroboros.Network.PeerSelection.PeerStateActions
4542
import Ouroboros.Network.Protocol.Handshake
4643

@@ -150,7 +147,7 @@ run CardanoNodeArguments {
150147
daPeerSelectionStateToExtraCounters = Cardano.Types.cardanoPeerSelectionStatetoCounters,
151148
daToExtraPeers = flip Cardano.ExtraPeers Set.empty,
152149
daRequestPublicRootPeers =
153-
Just $ Cardano.requestPublicRootPeers
150+
Just $ Cardano.requestPublicRootPeersImpl
154151
(Diffusion.dtTracePublicRootPeersTracer tracers)
155152
readUseBootstrapPeers
156153
(Cardano.getLedgerStateJudgement (lpExtraAPI ledgerPeersAPI))

cardano-diffusion/lib/Cardano/Network/Diffusion/Configuration.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ module Cardano.Network.Diffusion.Configuration
2424

2525
import Cardano.Network.NodeToNode (MiniProtocolParameters (..),
2626
defaultMiniProtocolParameters)
27-
import Cardano.Network.Types (NumberOfBigLedgerPeers (..))
27+
import Cardano.Network.PeerSelection.Governor.PeerSelectionState
28+
(NumberOfBigLedgerPeers (..))
2829

2930
import Ouroboros.Network.BlockFetch (BlockFetchConfiguration (..),
3031
GenesisBlockFetchConfiguration (..))

cardano-diffusion/lib/Cardano/Network/Diffusion/Handlers.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,21 @@
88

99
module Cardano.Network.Diffusion.Handlers where
1010

11+
import Control.Concurrent.Class.MonadSTM.Strict
1112
import Control.Monad.Class.MonadTime.SI
1213

14+
import Cardano.Network.LedgerStateJudgement
1315
import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers)
1416
import Cardano.Network.PeerSelection.Governor.PeerSelectionState qualified as Cardano
1517
import Cardano.Network.PeerSelection.Governor.Types qualified as Cardano
16-
import Cardano.Network.Types (LedgerStateJudgement)
17-
import Control.Concurrent.Class.MonadSTM.Strict
18+
1819
import Ouroboros.Network.ConnectionManager.Types
1920
import Ouroboros.Network.Diffusion.Types (Tracers (..))
2021
import Ouroboros.Network.PeerSelection.Governor
2122
import Ouroboros.Network.PeerSelection.LedgerPeers.Type (UseLedgerPeers)
2223
import Ouroboros.Network.PeerSelection.PeerMetric
2324
import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing)
25+
2426
#ifdef POSIX
2527
import Control.Tracer (traceWith)
2628
import Ouroboros.Network.ConnectionManager.Core (Trace (..))

cardano-diffusion/lib/Cardano/Network/Diffusion/Types.hs

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,40 +18,30 @@ module Cardano.Network.Diffusion.Types
1818
, CardanoTracePeerSelection
1919
, CardanoDebugPeerSelection
2020
-- * Re-exports
21-
, PeerMetrics
2221
, Cardano.Churn.TraceChurnMode (..)
22+
, module Reexports
2323
) where
2424

2525

2626
import Control.Concurrent.Class.MonadSTM.Strict
2727
import Control.Tracer (Tracer)
2828
import Network.Socket (SockAddr, Socket)
2929

30-
import Cardano.Network.ConsensusMode
30+
import Cardano.Network.ConsensusMode as Reexports (ConsensusMode (..))
3131
import Cardano.Network.LedgerPeerConsensusInterface qualified as Cardano
3232
import Cardano.Network.NodeToClient (LocalAddress, LocalSocket,
3333
NodeToClientVersion, NodeToClientVersionData)
3434
import Cardano.Network.NodeToNode (NodeToNodeVersion, NodeToNodeVersionData,
3535
RemoteAddress)
36-
import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers)
36+
import Cardano.Network.PeerSelection as Rexports (NumberOfBigLedgerPeers (..),
37+
PeerTrustable (..), UseBootstrapPeers (..))
38+
import Cardano.Network.PeerSelection qualified as Cardano
3739
import Cardano.Network.PeerSelection.Churn qualified as Cardano.Churn
38-
import Cardano.Network.PeerSelection.ExtraRootPeers (ExtraPeers)
39-
import Cardano.Network.PeerSelection.ExtraRootPeers qualified as Cardano
40-
import Cardano.Network.PeerSelection.Governor.PeerSelectionState (ExtraState)
41-
import Cardano.Network.PeerSelection.Governor.PeerSelectionState qualified as Cardano
42-
import Cardano.Network.PeerSelection.Governor.Types qualified as Cardano
43-
import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable)
44-
import Cardano.Network.Types (NumberOfBigLedgerPeers (..))
4540

4641
import Ouroboros.Network.Diffusion qualified as Diffusion
47-
import Ouroboros.Network.PeerSelection.Governor.Types (DebugPeerSelection,
48-
PeerSelectionCounters, PeerSelectionTargets (..), TracePeerSelection)
49-
import Ouroboros.Network.PeerSelection.LedgerPeers.Type
50-
(LedgerPeersConsensusInterface (..))
51-
import Ouroboros.Network.PeerSelection.PeerMetric (PeerMetrics)
52-
import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers
53-
(TraceLocalRootPeers)
54-
import Ouroboros.Network.PeerSelection.State.LocalRootPeers (LocalRootConfig)
42+
import Ouroboros.Network.PeerSelection as Reexports
43+
(LedgerPeersConsensusInterface (..), PeerMetrics,
44+
PeerSelectionTargets)
5545

5646
-- | Arguments required to instantiate Cardano Node Diffusion
5747
--
@@ -133,26 +123,26 @@ type CardanoApplications m a =
133123

134124

135125

136-
type CardanoLocalRootConfig = LocalRootConfig PeerTrustable
126+
type CardanoLocalRootConfig = Cardano.LocalRootConfig PeerTrustable
137127

138128

139129
type CardanoTraceLocalRootPeers =
140-
TraceLocalRootPeers PeerTrustable RemoteAddress
130+
Cardano.TraceLocalRootPeers PeerTrustable RemoteAddress
141131

142132

143133
type CardanoTracePeerSelection =
144-
TracePeerSelection Cardano.DebugPeerSelectionState
145-
PeerTrustable
146-
(ExtraPeers SockAddr)
147-
RemoteAddress
134+
Cardano.TracePeerSelection Cardano.DebugPeerSelectionState
135+
PeerTrustable
136+
(Cardano.ExtraPeers SockAddr)
137+
RemoteAddress
148138

149139

150140
type CardanoDebugPeerSelection =
151-
DebugPeerSelection ExtraState
152-
PeerTrustable
153-
(ExtraPeers RemoteAddress)
154-
RemoteAddress
141+
Cardano.DebugPeerSelection Cardano.ExtraState
142+
PeerTrustable
143+
(Cardano.ExtraPeers RemoteAddress)
144+
RemoteAddress
155145

156146

157147
type CardanoPeerSelectionCounters =
158-
PeerSelectionCounters (Cardano.ExtraPeerSelectionSetsWithSizes RemoteAddress)
148+
Cardano.PeerSelectionCounters (Cardano.ExtraPeerSelectionSetsWithSizes RemoteAddress)

cardano-diffusion/lib/Cardano/Network/LedgerPeerConsensusInterface.hs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
1-
module Cardano.Network.LedgerPeerConsensusInterface where
1+
module Cardano.Network.LedgerPeerConsensusInterface
2+
( LedgerPeersConsensusInterface (..)
3+
-- * Re-exports
4+
, FetchMode (..)
5+
, LedgerStateJudgement (..)
6+
, OutboundConnectionsState (..)
7+
) where
28

3-
import Cardano.Network.PeerSelection.LocalRootPeers (OutboundConnectionsState)
4-
import Cardano.Network.Types (LedgerStateJudgement)
59
import Control.Concurrent.Class.MonadSTM (MonadSTM (..))
6-
import Ouroboros.Network.BlockFetch.ConsensusInterface (FetchMode)
10+
11+
import Ouroboros.Network.BlockFetch.ConsensusInterface (FetchMode (..))
12+
13+
import Cardano.Network.LedgerStateJudgement
14+
import Cardano.Network.PeerSelection.LocalRootPeers
15+
(OutboundConnectionsState (..))
716

817
-- | Cardano Node specific consensus interface actions.
918
--

0 commit comments

Comments
 (0)