@@ -53,7 +53,7 @@ import Hydra.Ledger (Ledger)
53
53
import Hydra.Logging (Tracer , traceWith )
54
54
import Hydra.Network (Network (.. ), NetworkCallback (.. ))
55
55
import Hydra.Network.Authenticate (Authenticated (.. ))
56
- import Hydra.Network.Message (Message , NetworkEvent (.. ))
56
+ import Hydra.Network.Message (Message ( .. ) , NetworkEvent (.. ))
57
57
import Hydra.Node.Environment (Environment (.. ))
58
58
import Hydra.Node.InputQueue (InputQueue (.. ), Queued (.. ), createInputQueue )
59
59
import Hydra.Node.ParameterMismatch (ParamMismatch (.. ), ParameterMismatch (.. ))
@@ -230,14 +230,22 @@ wireClientInput node = enqueue . ClientInput
230
230
wireNetworkInput :: DraftHydraNode tx m -> NetworkCallback (Authenticated (Message tx )) m
231
231
wireNetworkInput node =
232
232
NetworkCallback
233
- { deliver = \ Authenticated {payload, party } ->
234
- enqueue $ NetworkInput defaultTTL $ ReceivedMessage { sender = party, msg = payload}
233
+ { deliver = \ Authenticated {party = sender, payload = msg } ->
234
+ enqueue $ mkNetworkInput sender msg
235
235
, onConnectivity =
236
- enqueue . NetworkInput defaultTTL . ConnectivityEvent
236
+ enqueue . NetworkInput 1 . ConnectivityEvent
237
237
}
238
238
where
239
239
DraftHydraNode {inputQueue = InputQueue {enqueue}} = node
240
240
241
+ -- | Create a network input with corresponding default ttl from given sender.
242
+ mkNetworkInput :: Party -> Message tx -> Input tx
243
+ mkNetworkInput sender msg =
244
+ case msg of
245
+ ReqTx {} -> NetworkInput defaultTxTTL $ ReceivedMessage {sender, msg}
246
+ ReqDec {} -> NetworkInput defaultTxTTL $ ReceivedMessage {sender, msg}
247
+ _ -> NetworkInput defaultTTL $ ReceivedMessage {sender, msg}
248
+
241
249
-- | Connect chain, network and API to a hydrated 'DraftHydraNode' to get a fully
242
250
-- connected 'HydraNode'.
243
251
connect ::
@@ -312,10 +320,16 @@ stepHydraNode node = do
312
320
313
321
HydraNode {tracer, inputQueue = InputQueue {dequeue, reenqueue}, env} = node
314
322
315
- -- | The maximum number of times to re-enqueue a 'Wait' outcome.
323
+ -- | The maximum number of times to re-enqueue a network messages upon 'Wait'.
324
+ -- outcome.
316
325
defaultTTL :: TTL
317
326
defaultTTL = 6000
318
327
328
+ -- | The maximum number of times to re-enqueue 'ReqTx' and 'ReqDec' network
329
+ -- messages upon 'Wait'.
330
+ defaultTxTTL :: TTL
331
+ defaultTxTTL = 5
332
+
319
333
-- | The time to wait between re-enqueuing a 'Wait' outcome.
320
334
waitDelay :: DiffTime
321
335
waitDelay = 0.1
0 commit comments