Skip to content

Conversation

@coot
Copy link
Collaborator

@coot coot commented Aug 8, 2025

Description

  • node-to-node application
  • configuration / CLI
  • very basic loggin system

Checklist

Quality

  • Commit sequence makes sense and have useful messages, see ref.
  • New tests are added and existing tests are updated.
  • Self-reviewed the PR.

Maintenance

  • Linked an issue or added the PR to the current sprint of ouroboros-network project.
  • Added labels.
  • Updated changelog files.
  • The documentation has been properly updated, see ref.

@coot coot requested a review from a team as a code owner August 8, 2025 09:54
@github-project-automation github-project-automation bot moved this to In Progress in Ouroboros Network Aug 8, 2025
@coot coot added the mithril Things related to Mithril. label Aug 8, 2025
@coot coot changed the title DMQ: developement DMQ: node-to-node application Aug 8, 2025
@coot coot self-assigned this Aug 8, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a node-to-node application for a Decentralized Message Queue (DMQ) system built on top of the Ouroboros network stack. The implementation includes protocol definitions, versioning, configuration, and basic logging infrastructure.

  • Added DMQ-specific protocols and types, including a signature submission protocol based on TxSubmission2
  • Refactored mempool implementation with a new simple mempool module and updated type signatures
  • Renamed several fields across peer selection and churn modules for better consistency

Reviewed Changes

Copilot reviewed 64 out of 64 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
decentralized-message-queue/src/DMQ/*.hs Core DMQ implementation with node-to-node/client protocols, signature submission, tracer infrastructure
ouroboros-network/src/Ouroboros/Network/TxSubmission/Mempool/Simple.hs New simple mempool implementation module
ouroboros-network/testlib/Test/Ouroboros/Network/TxSubmission/Types.hs Updated to use new mempool types and removed custom implementation
ouroboros-network/orphan-instances/Ouroboros/Network/OrphanInstances.hs Extensive JSON serialization instances for tracing and monitoring
Various test and configuration files Updated type signatures, field renames, and test improvements

@coot coot moved this from In Progress to In Review in Ouroboros Network Aug 8, 2025
coot added 10 commits August 8, 2025 12:05
* `getOriginalPeerSelectionTargets` -> `pcaPeerSelectionTargets`
* `genesisPeerTargets` -> `genesisPeerSelectionTargets` for
  * `Cardano.Network.Diffusion.Types.CardanoNodeArguments`
  * `Cardano.Network.Diffusion.Types.ExtraPeerSelectionActions`
  * `Cardano.Network.PeerSelection.Churn.ExtraArguments`
  * `Cardano.Network.PeerSelection.Governor.PeerSelectionActions.ExtraPeerSelectionActions`
Re-use the mempool implemented in the test, but make it slighly more
general so it can be re-used by the DMQ.
The `SingI blocking` instance can be provided by `MsgRequestTxIds`
constructor.
We don't need polymorphic bytes in the `App` type. Consensus is using
it for testing purposes, which we do differently.
@coot coot force-pushed the coot/dmq-node-to-node branch from 0274efd to e8a2667 Compare August 8, 2025 10:20
Copy link
Contributor

@crocodile-dentist crocodile-dentist left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some build failures but that shouldn't be too hard to fix. I've mostly skimmed the contents with looking closer at a few more interesting bits, and overall lgtm.

@coot coot force-pushed the coot/dmq-node-to-node branch from e8a2667 to c55b67c Compare August 8, 2025 12:03
@coot coot requested a review from a team as a code owner August 8, 2025 12:28
coot added 15 commits August 8, 2025 15:44
* Added `localRootPeersGroupToJSON`, `localRootPeersGroupsToJSON`,
`networkToplogogyToJSON` to `Ouroboros.Network.OrphanInstances`
* Added `localRootPeersGroupFromJSON`, localRootPeersGroupsFromJSON`,
  `networkTopologyFromJSON to `Ouroboros.Network.OrphanInstances`
* Addded `ToJSON` and `FromJSON` instances for `NetworkTopology
  UseBootstrapPeers PeerTrustable` to `Cardano.Network.OrphanInstances`
Use `Configuration` for both config file & CLI options.
Added `IPv4`, `IPv6` & `PortNumber` to `Configuration`.
Interpret ledger snapshot file path relatively to topology file.
Very often the original instances where using `ToObject` type class
rather than `ToJSON`.  So getting rid of them in `cardano-node` will
require manual inspection, which instances are not needed any more.
Using JSON output.
…t}` modules

We will need to imprt `Configuration` module into `NodeTo{Node,Client}`
modules to configure tracers.  This will be done in subsequent commits
where protocol tracers are added.
@coot coot force-pushed the coot/dmq-node-to-node branch 2 times, most recently from b7499ea to b3961a4 Compare August 8, 2025 14:36
@coot coot force-pushed the coot/dmq-node-to-node branch 2 times, most recently from cf10ee9 to 6fc67a3 Compare August 8, 2025 15:21
* `decentralised-message-queue:dmq-test` heap size limit
* `hls-2.11`
@coot coot force-pushed the coot/dmq-node-to-node branch from b65b2e1 to 25c3b96 Compare August 8, 2025 15:32
@coot coot added this pull request to the merge queue Aug 8, 2025
Merged via the queue into main with commit 39e9260 Aug 8, 2025
12 checks passed
@coot coot deleted the coot/dmq-node-to-node branch August 8, 2025 16:27
@github-project-automation github-project-automation bot moved this from In Review to Done in Ouroboros Network Aug 8, 2025
@coot coot added the dmq-node Issues / PRs related to DMQ Node label Sep 10, 2025
@coot coot changed the title DMQ: node-to-node application dmq: node-to-node application Sep 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dmq-node Issues / PRs related to DMQ Node mithril Things related to Mithril.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants