Skip to content

feat: implement fake DMQ node #2635

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 31 commits into
base: main
Choose a base branch
from

Conversation

jpraynaud
Copy link
Member

Content

Note

This is a work in progress

This PR includes...

Pre-submit checklist

  • Branch
    • Tests are provided (if possible)
    • Crates versions are updated (if relevant)
    • CHANGELOG file is updated (if relevant)
    • Commit sequence broadly makes sense
    • Key commits have useful messages
  • PR
    • All check jobs of the CI have succeeded
    • Self-reviewed the diff
    • Useful pull request description
    • Reviewer requested
  • Documentation
    • Update README file (if relevant)
    • Update documentation website (if relevant)
    • Add dev blog post (if relevant)
    • Add ADR blog post or Dev ADR entry (if relevant)
    • No new TODOs introduced

Issue(s)

Closes #2627

@jpraynaud jpraynaud self-assigned this Jul 8, 2025
Copy link

github-actions bot commented Jul 8, 2025

Test Results

    3 files   -     1    105 suites   - 49   13m 28s ⏱️ - 9m 18s
2 128 tests +   10  2 127 ✅ +    9  0 💤 ±0  1 ❌ +1 
4 374 runs   - 2 092  4 371 ✅  - 2 095  0 💤 ±0  3 ❌ +3 

For more details on these failures, see this check.

Results for commit 57452a5. ± Comparison against base commit b76f911.

This pull request removes 6 and adds 16 tests. Note that renamed tests count towards both.
mithril-dmq ‑ consumer::pallas::tests::pallas_dmq_consumer_client_is_dropped_when_returning_error
mithril-dmq ‑ consumer::pallas::tests::pallas_dmq_consumer_publisher_blocks_when_no_message_available
mithril-dmq ‑ consumer::pallas::tests::pallas_dmq_consumer_publisher_succeeds_when_messages_are_available
mithril-dmq ‑ message::tests::test_build_dmq_message
mithril-dmq ‑ publisher::pallas::tests::pallas_dmq_signature_publisher_fails
mithril-dmq ‑ publisher::pallas::tests::pallas_dmq_signature_publisher_success
mithril-dmq ‑ consumer::client::pallas::tests::pallas_dmq_consumer_client_is_dropped_when_returning_error
mithril-dmq ‑ consumer::client::pallas::tests::pallas_dmq_consumer_publisher_blocks_when_no_message_available
mithril-dmq ‑ consumer::client::pallas::tests::pallas_dmq_consumer_publisher_succeeds_when_messages_are_available
mithril-dmq ‑ consumer::server::pallas::tests::pallas_dmq_consumer_server_blocking_blocks_when_no_message_available
mithril-dmq ‑ consumer::server::pallas::tests::pallas_dmq_consumer_server_blocking_success
mithril-dmq ‑ consumer::server::pallas::tests::pallas_dmq_consumer_server_non_blocking_success
mithril-dmq ‑ consumer::server::queue::tests::dequeue_blocking_blocks_when_no_message_available
mithril-dmq ‑ consumer::server::queue::tests::enqueue_and_dequeue_blocking_no_limit
mithril-dmq ‑ consumer::server::queue::tests::enqueue_and_dequeue_blocking_with_limit
mithril-dmq ‑ consumer::server::queue::tests::enqueue_and_dequeue_non_blocking_no_limit
…

♻️ This comment has been updated with latest results.

@jpraynaud jpraynaud requested a review from Copilot July 8, 2025 16:03
Copy link

@Copilot 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

Adds support for a Decentralized Message Queue (DMQ) node across end-to-end tests, relay components, signers, aggregators, and the mithril-dmq crate.

  • Introduce DMQ_NODE_SOCKET_PATH env var and socket setup in end-to-end signer and aggregator.
  • Extend relay components and CLI commands to accept DMQ socket path and Cardano network settings.
  • Refactor mithril-dmq crate to split client/server interfaces and enable future_dmq by default.

Reviewed Changes

Copilot reviewed 42 out of 43 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
mithril-test-lab/.../src/mithril/signer.rs Insert DMQ_NODE_SOCKET_PATH setup in Signer
mithril-test-lab/.../src/mithril/relay_signer.rs Add DMQ socket and network env in RelaySigner
mithril-test-lab/.../src/mithril/relay_aggregator.rs Add DMQ socket and network env in RelayAggregator
mithril-test-lab/.../src/mithril/aggregator.rs Insert DMQ socket env in end-to-end Aggregator
mithril-relay/src/relay/signer.rs Wire up DMQ publisher server in SignerRelay
mithril-relay/src/relay/aggregator.rs Wire up DMQ consumer server in AggregatorRelay
internal/mithril-dmq/src/publisher/client/pallas.rs Rename to client interface and update implementations
Comments suppressed due to low confidence (1)

mithril-test-lab/mithril-end-to-end/src/mithril/signer.rs:99

  • [nitpick] End-to-end tests don’t currently cover the DMQ_NODE_SOCKET_PATH setup. Add tests that exercise DMQ-based workflows to verify this new configuration is applied correctly.
        // TODO: make this configurable

@jpraynaud jpraynaud force-pushed the jpraynaud/2627-fake-dmq-node-in-relay branch from 730ee75 to 3761142 Compare July 15, 2025 16:46
@jpraynaud jpraynaud force-pushed the jpraynaud/2627-fake-dmq-node-in-relay branch 2 times, most recently from 14815a4 to ac101c4 Compare July 16, 2025 10:52
@jpraynaud jpraynaud force-pushed the jpraynaud/2627-fake-dmq-node-in-relay branch from ac101c4 to 054bcb5 Compare July 16, 2025 12:43
@jpraynaud jpraynaud force-pushed the jpraynaud/2627-fake-dmq-node-in-relay branch from b603cb0 to 59f3dc6 Compare July 16, 2025 13:44
@jpraynaud jpraynaud temporarily deployed to testing-preview July 16, 2025 13:57 — with GitHub Actions Inactive
@jpraynaud jpraynaud temporarily deployed to dev-follower-preview July 16, 2025 14:41 — with GitHub Actions Inactive
@jpraynaud jpraynaud force-pushed the jpraynaud/2627-fake-dmq-node-in-relay branch from 59f3dc6 to 57452a5 Compare July 22, 2025 13:48
Comment on lines +82 to +83
let bytes =
bincode::serde::encode_to_vec(self, bincode::config::standard()).map_err(|e| e.into());

Check warning

Code scanning / clippy

returning the result of a let binding from a block Warning

returning the result of a let binding from a block
Comment on lines +82 to +83
let bytes =
bincode::serde::encode_to_vec(self, bincode::config::standard()).map_err(|e| e.into());

Check warning

Code scanning / clippy

returning the result of a let binding from a block Warning

returning the result of a let binding from a block
let bytes =
bincode::serde::encode_to_vec(self, bincode::config::standard()).map_err(|e| e.into());

bytes

Check warning

Code scanning / clippy

returning the result of a let binding from a block Warning

returning the result of a let binding from a block
let bytes =
bincode::serde::encode_to_vec(self, bincode::config::standard()).map_err(|e| e.into());

bytes

Check warning

Code scanning / clippy

returning the result of a let binding from a block Warning

returning the result of a let binding from a block
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement a fake DMQ node with Mithril relay
1 participant