2
2
{-# LANGUAGE ConstraintKinds #-}
3
3
{-# LANGUAGE DataKinds #-}
4
4
{-# LANGUAGE FlexibleContexts #-}
5
+ {-# LANGUAGE FlexibleInstances #-}
5
6
{-# LANGUAGE NumericUnderscores #-}
6
7
{-# LANGUAGE RankNTypes #-}
7
8
{-# LANGUAGE ScopedTypeVariables #-}
8
9
{-# LANGUAGE TypeApplications #-}
9
10
11
+ {-# OPTIONS_GHC -Wno-orphans #-}
12
+
10
13
module Cardano.Mock.ChainSync.Server (
11
14
-- * server
12
15
forkServerThread ,
@@ -52,7 +55,7 @@ import qualified Network.Mux as Mux
52
55
import Ouroboros.Consensus.Block (CodecConfig , HasHeader , Point , StandardHash , castPoint )
53
56
import Ouroboros.Consensus.Config (TopLevelConfig , configCodec )
54
57
import Ouroboros.Consensus.Ledger.Query (BlockQuery , ShowQuery )
55
- import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr , GenTx )
58
+ import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr , GenTx , TxId )
56
59
import Ouroboros.Consensus.Ledger.SupportsProtocol (LedgerSupportsProtocol )
57
60
import Ouroboros.Consensus.Network.NodeToClient (Apps (.. ), Codecs' (.. ), DefaultCodecs )
58
61
import qualified Ouroboros.Consensus.Network.NodeToClient as NTC
@@ -82,9 +85,11 @@ import Ouroboros.Network.Block (
82
85
mkSerialised ,
83
86
)
84
87
import Network.TypedProtocol.Peer (Peer (.. ))
88
+ import qualified Network.TypedProtocol.Stateful.Peer as St
85
89
import Network.TypedProtocol.Stateful.Codec ()
86
90
import Ouroboros.Network.Channel (Channel )
87
91
import Ouroboros.Network.Driver.Simple (runPeer )
92
+ import qualified Ouroboros.Network.Driver.Stateful as St (runPeer )
88
93
import Ouroboros.Network.IOManager (IOManager )
89
94
import qualified Ouroboros.Network.IOManager as IOManager
90
95
import Ouroboros.Network.Magic (NetworkMagic )
@@ -100,9 +105,10 @@ import Ouroboros.Network.Protocol.ChainSync.Server (
100
105
chainSyncServerPeer ,
101
106
)
102
107
import Ouroboros.Network.Protocol.Handshake.Version (simpleSingletonVersions )
108
+ import qualified Ouroboros.Network.Protocol.LocalStateQuery.Type as LocalStateQuery
103
109
import Ouroboros.Network.Snocket (LocalAddress , LocalSnocket , LocalSocket (.. ))
104
110
import qualified Ouroboros.Network.Snocket as Snocket
105
- import Ouroboros.Network.Util.ShowProxy (Proxy (.. ), ShowProxy )
111
+ import Ouroboros.Network.Util.ShowProxy (Proxy (.. ), ShowProxy ( .. ) )
106
112
107
113
{- HLINT ignore "Use readTVarIO" -}
108
114
@@ -226,7 +232,7 @@ runLocalServer iom codecConfig netMagic localDomainSock chainProdState =
226
232
in simpleSingletonVersions
227
233
version
228
234
(NodeToClientVersionData netMagic False )
229
- (NTC. responder version $ mkApps state version blockVersion (NTC. defaultCodecs codecConfig blockVersion version))
235
+ (\ versionData -> NTC. responder version versionData $ mkApps state version blockVersion (NTC. defaultCodecs codecConfig blockVersion version))
230
236
231
237
mkApps ::
232
238
StrictTVar IO (ChainProducerState blk ) ->
@@ -270,11 +276,12 @@ runLocalServer iom codecConfig netMagic localDomainSock chainProdState =
270
276
Channel IO ByteString ->
271
277
IO (() , Maybe ByteString )
272
278
stateQueryServer _them channel =
273
- runPeer
279
+ St. runPeer
274
280
nullTracer
275
281
(cStateQueryCodec codecs)
276
282
channel
277
- (Effect (forever $ threadDelay 3_600_000_000 ))
283
+ LocalStateQuery. StateIdle
284
+ (St. Effect (forever $ threadDelay 3_600_000_000 ))
278
285
279
286
txMonitorServer ::
280
287
localPeer ->
@@ -283,10 +290,14 @@ runLocalServer iom codecConfig netMagic localDomainSock chainProdState =
283
290
txMonitorServer _them channel =
284
291
runPeer
285
292
nullTracer
286
- (cStateQueryCodec codecs)
293
+ (cTxMonitorCodec codecs)
287
294
channel
288
295
(Effect (forever $ threadDelay 3_600_000_000 ))
289
296
297
+ -- TODO: it should be defined somewhere in `ouroboros-consensus`
298
+ instance ShowProxy blk => ShowProxy (TxId (GenTx blk )) where
299
+ showProxy _ = " TxId (GenTx (" ++ showProxy (Proxy :: Proxy blk ) ++ " )"
300
+
290
301
chainSyncServer ::
291
302
forall blk m .
292
303
( HasHeader blk
0 commit comments