Skip to content

Commit 5d469d9

Browse files
authored
Merge pull request #5203 from IntersectMBO/coot/dmq-ntc-socket
dmq-node: various dmq improvements for a mithril e2e test
2 parents 7337851 + b7c38b3 commit 5d469d9

File tree

76 files changed

+1481
-493
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1481
-493
lines changed

acts-generic/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# acts-generic changelog
22

3+
<!-- scriv-insert-here -->
34
<!-- scriv-end-here -->
45

56
## 0.1.0.0 -- YYYY-mm-dd

acts-generic/changelog.d/scriv.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ insert_marker = Changelog entries
44
md_header_level = 2
55
version = literal: acts-generic.cabal: version
66
categories = Breaking, Non-Breaking
7+
start_marker = scriv-insert-here
78
end_marker = scriv-end-here
89
fragment_directory = changelog.d
910
ghrel_template = {{body}}

cabal.project

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,6 @@ allow-newer: quickcheck-instances:QuickCheck
6464
source-repository-package
6565
type: git
6666
location: https://github.com/input-output-hk/kes-agent
67-
tag: ebf8c0e480adf7b3ccd68bc7dd5b57f781f369ea
68-
--sha256: sha256-QIb6qgcwtO7aB9PUhZTHyKw50GV3ViXOakQvnR3HFIY=
67+
tag: 6d0f51fba415d3c641a8a8da37130e7adfc3ea01
68+
--sha256: sha256-qM8RgmKOGBMlizPtXw2YOboYIzM6T3kvG9/Rp1F+bYQ=
6969
subdir: kes-agent-crypto

cardano-client/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# cardano-client changelog
22

3+
<!-- scriv-insert-here -->
34
<!-- scriv-end-here -->
45

56
## 0.6.1.0 -- 2025-09-10

cardano-client/changelog.d/scriv.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ insert_marker = Changelog entries
44
md_header_level = 2
55
version = literal: cardano-client.cabal: version
66
categories = Breaking, Non-Breaking
7+
start_marker = scriv-insert-here
78
end_marker = scriv-end-here
89
fragment_directory = changelog.d
910
ghrel_template = {{body}}

cardano-ping/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# cardano-ping changelog
22

3+
<!-- scriv-insert-here -->
34
<!-- scriv-end-here -->
45

56
## 0.9.0.0 -- 2026-06-28

cardano-ping/changelog.d/scriv.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ insert_marker = Changelog entries
44
md_header_level = 2
55
version = literal: cardano-ping.cabal: version
66
categories = Breaking, Non-Breaking
7+
start_marker = scriv-insert-here
78
end_marker = scriv-end-here
89
fragment_directory = changelog.d
910
ghrel_template = {{body}}

dmq-node/CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# dmq-node changelog
22

3+
<!-- scriv-insert-here -->
4+
5+
<a id='changelog-0.2.0.0'></a>
6+
## 0.2.0.0 -- 2025-09-29
7+
8+
### Breaking
9+
10+
- Added a way to configure a unix socket for node to client communication. It
11+
can either be specified in the configuration file or a the command line switch
12+
`--local-address`.
313
<!-- scriv-end-here -->
414

515
## 0.1.0.0 -- YYYY-mm-dd

dmq-node/app/Main.hs

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
1+
{-# LANGUAGE MultiWayIf #-}
2+
{-# LANGUAGE OverloadedStrings #-}
13
{-# LANGUAGE ScopedTypeVariables #-}
4+
{-# LANGUAGE TemplateHaskell #-}
25
{-# LANGUAGE TypeApplications #-}
36

47
module Main where
58

6-
import Control.Monad (void)
9+
import Control.Monad (void, when)
710
import Control.Tracer (Tracer (..), nullTracer, traceWith)
811

912
import Data.Act
1013
import Data.Aeson (ToJSON)
1114
import Data.Functor.Contravariant ((>$<))
15+
import Data.Maybe (maybeToList)
16+
import Data.Text qualified as Text
17+
import Data.Text.IO qualified as Text
18+
import Data.Version (showVersion)
1219
import Data.Void (Void)
1320
import Options.Applicative
21+
import System.Exit (exitSuccess)
1422
import System.Random (newStdGen, split)
1523

24+
import Cardano.Git.Rev (gitRev)
1625
import Cardano.KESAgent.Protocols.StandardCrypto (StandardCrypto)
1726

1827
import DMQ.Configuration
@@ -21,6 +30,7 @@ import DMQ.Configuration.Topology (readTopologyFileOrError)
2130
import DMQ.Diffusion.Applications (diffusionApplications)
2231
import DMQ.Diffusion.Arguments
2332
import DMQ.Diffusion.NodeKernel (mempool, withNodeKernel)
33+
import DMQ.Handlers.TopLevel (toplevelExceptionHandler)
2434
import DMQ.NodeToClient qualified as NtC
2535
import DMQ.NodeToNode (dmqCodecs, dmqLimitsAndTimeouts, ntnApps)
2636
import DMQ.Protocol.LocalMsgSubmission.Codec
@@ -33,8 +43,10 @@ import Ouroboros.Network.PeerSelection.PeerSharing.Codec (decodeRemoteAddress,
3343
encodeRemoteAddress)
3444
import Ouroboros.Network.TxSubmission.Mempool.Simple qualified as Mempool
3545

46+
import Paths_dmq_node qualified as Meta
47+
3648
main :: IO ()
37-
main = void . runDMQ =<< execParser opts
49+
main = toplevelExceptionHandler $ void . runDMQ =<< execParser opts
3850
where
3951
opts = info (parseCLIOptions <**> helper)
4052
( fullDesc
@@ -56,21 +68,40 @@ runDMQ commandLineConfig = do
5668
dmqcPrettyLog = I prettyLog,
5769
dmqcTopologyFile = I topologyFile,
5870
dmqcHandshakeTracer = I handshakeTracer,
59-
dmqcLocalHandshakeTracer = I localHandshakeTracer
71+
dmqcLocalHandshakeTracer = I localHandshakeTracer,
72+
dmqcVersion = I version
6073
} = config' <> commandLineConfig
6174
`act`
6275
defaultConfiguration
6376
let tracer :: ToJSON ev => Tracer IO (WithEventType ev)
6477
tracer = dmqTracer prettyLog
6578

79+
when version $ do
80+
let gitrev = $(gitRev)
81+
cleanGitRev = if | Text.take 6 (Text.drop 7 gitrev) == "-dirty"
82+
-- short dirty revision
83+
-> Just $ Text.take (6 + 7) gitrev
84+
| Text.all (== '0') gitrev
85+
-- no git revision available
86+
-> Nothing
87+
| otherwise
88+
-> Just gitrev
89+
Text.putStr $ Text.unlines $
90+
[ "dmq-node version: " <> Text.pack (showVersion Meta.version) ]
91+
++
92+
[ "git revision: " <> rev
93+
| rev <- maybeToList cleanGitRev
94+
]
95+
exitSuccess
96+
6697
traceWith tracer (WithEventType "Configuration" dmqConfig)
6798
nt <- readTopologyFileOrError topologyFile
6899
traceWith tracer (WithEventType "NetworkTopology" nt)
69100

70101
stdGen <- newStdGen
71102
let (psRng, policyRng) = split stdGen
72103

73-
withNodeKernel @StandardCrypto psRng $ \nodeKernel -> do
104+
withNodeKernel @StandardCrypto tracer dmqConfig psRng $ \nodeKernel -> do
74105
dmqDiffusionConfiguration <- mkDiffusionConfiguration dmqConfig nt
75106

76107
let dmqNtNApps =
@@ -92,7 +123,8 @@ runDMQ commandLineConfig = do
92123
(\_ _ -> Right () :: Either Void ())
93124
(\_ -> True)
94125
(mempool nodeKernel)
95-
in NtC.ntcApps mempoolReader mempoolWriter maxMsgs
126+
in NtC.ntcApps tracer dmqConfig
127+
mempoolReader mempoolWriter maxMsgs
96128
(NtC.dmqCodecs encodeReject decodeReject)
97129
dmqDiffusionArguments =
98130
diffusionArguments (if handshakeTracer

0 commit comments

Comments
 (0)