Skip to content

Commit de3deab

Browse files
tbagrel1amesgen
authored andcommitted
Wire-in the PerasCertDiffusion protocol in NodeToNode
1 parent 9279da4 commit de3deab

File tree

2 files changed

+44
-0
lines changed
  • ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus

2 files changed

+44
-0
lines changed

ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Network/NodeToNode.hs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ import Ouroboros.Consensus.MiniProtocol.ChainSync.Client
6868
)
6969
import qualified Ouroboros.Consensus.MiniProtocol.ChainSync.Client as CsClient
7070
import Ouroboros.Consensus.MiniProtocol.ChainSync.Server
71+
import Ouroboros.Consensus.MiniProtocol.ObjectDiffusion.Inbound (objectDiffusionInbound)
72+
import Ouroboros.Consensus.MiniProtocol.ObjectDiffusion.ObjectPool.PerasCert
73+
import Ouroboros.Consensus.MiniProtocol.ObjectDiffusion.Outbound (objectDiffusionOutbound)
74+
import Ouroboros.Consensus.MiniProtocol.ObjectDiffusion.PerasCert
7175
import Ouroboros.Consensus.Node.ExitPolicy
7276
import Ouroboros.Consensus.Node.NetworkProtocolVersion
7377
import Ouroboros.Consensus.Node.Run
@@ -197,6 +201,19 @@ data Handlers m addr blk = Handlers
197201
NodeToNodeVersion ->
198202
ConnectionId addr ->
199203
TxSubmissionServerPipelined (GenTxId blk) (GenTx blk) m ()
204+
, hPerasCertDiffusionInbound ::
205+
NodeToNodeVersion ->
206+
ConnectionId addr ->
207+
PerasCertDiffusionInboundPipelined blk m ()
208+
-- ^ TODO: We should pass 'hPerasCertDiffusionInbound' to the network
209+
-- layer, as per https://github.com/tweag/cardano-peras/issues/78
210+
, hPerasCertDiffusionOutbound ::
211+
NodeToNodeVersion ->
212+
ControlMessageSTM m ->
213+
ConnectionId addr ->
214+
PerasCertDiffusionOutbound blk m ()
215+
-- ^ TODO: We should pass 'hPerasCertDiffusionOutbound' to the network
216+
-- layer, as per https://github.com/tweag/cardano-peras/issues/78
200217
, hKeepAliveClient ::
201218
NodeToNodeVersion ->
202219
ControlMessageSTM m ->
@@ -293,6 +310,22 @@ mkHandlers
293310
(mapTxSubmissionMempoolReader txForgetValidated $ getMempoolReader getMempool)
294311
(getMempoolWriter getMempool)
295312
version
313+
, hPerasCertDiffusionInbound = \version peer ->
314+
objectDiffusionInbound
315+
(contramap (TraceLabelPeer peer) (Node.perasCertDiffusionInboundTracer tracers))
316+
( perasCertDiffusionMaxFifoLength miniProtocolParameters
317+
, 10 -- TODO https://github.com/tweag/cardano-peras/issues/97
318+
, 10 -- TODO https://github.com/tweag/cardano-peras/issues/97
319+
)
320+
(makePerasCertPoolWriterFromChainDB $ getChainDB)
321+
version
322+
, hPerasCertDiffusionOutbound = \version controlMessageSTM peer ->
323+
objectDiffusionOutbound
324+
(contramap (TraceLabelPeer peer) (Node.perasCertDiffusionOutboundTracer tracers))
325+
(perasCertDiffusionMaxFifoLength miniProtocolParameters)
326+
(makePerasCertPoolReaderFromChainDB $ getChainDB)
327+
version
328+
controlMessageSTM
296329
, hKeepAliveClient = \_version -> keepAliveClient (Node.keepAliveClientTracer tracers) keepAliveRng
297330
, hKeepAliveServer = \_version _peer -> keepAliveServer
298331
, hPeerSharingClient = \_version controlMessageSTM _peer -> peerSharingClient controlMessageSTM

ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Node/Tracers.hs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import Ouroboros.Consensus.MiniProtocol.ChainSync.Server
4242
import Ouroboros.Consensus.MiniProtocol.LocalTxSubmission.Server
4343
( TraceLocalTxSubmissionServerEvent (..)
4444
)
45+
import Ouroboros.Consensus.MiniProtocol.ObjectDiffusion.PerasCert
4546
import Ouroboros.Consensus.Node.GSM (TraceGsmEvent)
4647
import Ouroboros.Network.Block (Tip)
4748
import Ouroboros.Network.BlockFetch
@@ -87,6 +88,10 @@ data Tracers' remotePeer localPeer blk f = Tracers
8788
, csjTracer ::
8889
f (TraceLabelPeer remotePeer (CSJumping.TraceEventCsj remotePeer blk))
8990
, dbfTracer :: f (CSJumping.TraceEventDbf remotePeer)
91+
, perasCertDiffusionInboundTracer ::
92+
f (TraceLabelPeer remotePeer (TracePerasCertDiffusionInbound blk))
93+
, perasCertDiffusionOutboundTracer ::
94+
f (TraceLabelPeer remotePeer (TracePerasCertDiffusionOutbound blk))
9095
}
9196

9297
instance
@@ -115,6 +120,8 @@ instance
115120
, gddTracer = f gddTracer
116121
, csjTracer = f csjTracer
117122
, dbfTracer = f dbfTracer
123+
, perasCertDiffusionInboundTracer = f perasCertDiffusionInboundTracer
124+
, perasCertDiffusionOutboundTracer = f perasCertDiffusionOutboundTracer
118125
}
119126
where
120127
f ::
@@ -151,6 +158,8 @@ nullTracers =
151158
, gddTracer = nullTracer
152159
, csjTracer = nullTracer
153160
, dbfTracer = nullTracer
161+
, perasCertDiffusionInboundTracer = nullTracer
162+
, perasCertDiffusionOutboundTracer = nullTracer
154163
}
155164

156165
showTracers ::
@@ -189,6 +198,8 @@ showTracers tr =
189198
, gddTracer = showTracing tr
190199
, csjTracer = showTracing tr
191200
, dbfTracer = showTracing tr
201+
, perasCertDiffusionInboundTracer = showTracing tr
202+
, perasCertDiffusionOutboundTracer = showTracing tr
192203
}
193204

194205
{-------------------------------------------------------------------------------

0 commit comments

Comments
 (0)