-
Notifications
You must be signed in to change notification settings - Fork 45
feat: add DMQ publisher/consumer in signer/aggregator #2599
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
Conversation
Test Results 3 files ± 0 105 suites +3 17m 59s ⏱️ +31s Results for commit 36f6e67. ± Comparison against base commit 06a9beb. This pull request removes 2 and adds 20 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
12ea76a
to
c2f2a24
Compare
c2f2a24
to
1e4cf90
Compare
1e4cf90
to
b849730
Compare
b849730
to
2db69f2
Compare
There was a problem hiding this 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 adds support for publishing and consuming signatures over a Decentralized Message Queue (DMQ) in both the signer and aggregator nodes, wiring the new DMQ-based publishers/consumers through configuration and dependency injection.
- Introduce DMQ-based
SignaturePublisher
andSignatureConsumer
implementations with full serialization, deserialization, and tests - Extend common message definitions (
RegisterSignatureMessageDmq
) andSignedEntityType
with byte-codec support and golden tests - Update configuration, DI builders, and runtime wiring to conditionally enable DMQ paths when
dmq_node_socket_path
is set
Reviewed Changes
Copilot reviewed 49 out of 51 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
mithril-signer/src/services/signature_publisher/dmq.rs | New DMQ-based SignaturePublisher implementation |
mithril-aggregator/src/services/signature_consumer/dmq.rs | New DMQ-based SignatureConsumer implementation |
mithril-common/src/messages/register_signature.rs | Added RegisterSignatureMessageDmq type and (de)serialization |
mithril-signer/src/dependency_injection/builder.rs | Wired DMQ publisher into signer DI builder |
mithril-aggregator/src/dependency_injection/builder/enablers/misc.rs | Wired DMQ consumer into aggregator DI builder |
mithril-signer/src/configuration.rs & mithril-aggregator/src/configuration.rs | Added dmq_node_socket_path to configuration schemas |
Comments suppressed due to low confidence (4)
mithril-signer/src/services/signature_publisher/dmq.rs:15
- [nitpick] Use the uppercase acronym
DMQ
instead ofDmq
in the doc comment to match the rest of the codebase.
/// Dmq implementation of the [SignaturePublisher] trait.
mithril-aggregator/src/dependency_injection/builder/enablers/misc.rs:81
- Consider adding unit tests for
build_signature_consumer
to cover both the DMQ branch (whendmq_node_socket_path
is set) and the Noop branch.
if let Some(dmq_node_socket_path) = self.configuration.dmq_node_socket_path() {
mithril-signer/src/dependency_injection/builder.rs:397
- Add tests for the signer DI builder to ensure that the DMQ-based
SignaturePublisher
is instantiated whendmq_node_socket_path
is provided and fallback Noop otherwise.
let kes_signer = match (
mithril-signer/src/dependency_injection/builder.rs:397
- [nitpick] The DMQ publisher setup block is similar between signer and aggregator builders; consider extracting a shared helper to avoid duplication.
let kes_signer = match (
2db69f2
to
74bdcf3
Compare
74bdcf3
to
0126b02
Compare
Co-authored-by: DJO <[email protected]>
* mithril-dmq from `0.1.0` to `0.1.1` * mithril-aggregator from `0.7.69` to `0.7.70` * mithril-common from `0.6.3` to `0.6.4` * mithril-signer from `0.2.256` to `0.2.257`
e61ee88
to
36f6e67
Compare
Content
This PR includes the implementation of the signature publisher and consumers based on the Pallas DMQ implementation of the
n2c Local Message Submission
andn2c Local Message Notification
in the signer and aggregator:mithril-dmq-node
internal crate to support the publication and notification of generic messages through the DMQ networkPre-submit checklist
Issue(s)
Closes #2539 and #2540