Skip to content

Commit a6236e8

Browse files
committed
fix(dmq): gate code behind 'future_dmq' feature
1 parent e76268a commit a6236e8

File tree

7 files changed

+192
-80
lines changed

7 files changed

+192
-80
lines changed

mithril-relay/src/commands/aggregator.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
#[cfg(feature = "future_dmq")]
12
use std::path::PathBuf;
23

34
use clap::Parser;
45
use libp2p::Multiaddr;
56
use slog::error;
67

7-
use mithril_common::{CardanoNetwork, StdResult};
8+
#[cfg(feature = "future_dmq")]
9+
use mithril_common::CardanoNetwork;
10+
use mithril_common::StdResult;
811

912
use crate::AggregatorRelay;
1013

@@ -21,6 +24,7 @@ pub struct AggregatorCommand {
2124
dial_to: Option<Multiaddr>,
2225

2326
/// Path to the DMQ socket file
27+
#[cfg(feature = "future_dmq")]
2428
#[clap(
2529
long,
2630
env = "DMQ_NODE_SOCKET_PATH",
@@ -30,11 +34,13 @@ pub struct AggregatorCommand {
3034
dmq_node_socket_path: PathBuf,
3135

3236
/// Cardano network
37+
#[cfg(feature = "future_dmq")]
3338
#[clap(long, env = "NETWORK")]
3439
pub network: String,
3540

3641
/// Cardano Network Magic number
3742
/// useful for TestNet & DevNet
43+
#[cfg(feature = "future_dmq")]
3844
#[clap(long, env = "NETWORK_MAGIC")]
3945
pub network_magic: Option<u64>,
4046

@@ -50,12 +56,15 @@ impl AggregatorCommand {
5056
let dial_to = self.dial_to.to_owned();
5157
let addr: Multiaddr = format!("/ip4/0.0.0.0/tcp/{}", self.listen_port).parse()?;
5258
let aggregator_endpoint = self.aggregator_endpoint.to_owned();
59+
#[cfg(feature = "future_dmq")]
5360
let cardano_network =
5461
CardanoNetwork::from_code(self.network.to_owned(), self.network_magic)?;
5562

5663
let mut relay = AggregatorRelay::start(
5764
&addr,
65+
#[cfg(feature = "future_dmq")]
5866
&self.dmq_node_socket_path,
67+
#[cfg(feature = "future_dmq")]
5968
&cardano_network,
6069
&aggregator_endpoint,
6170
logger,

mithril-relay/src/commands/signer.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1-
use std::{path::PathBuf, time::Duration};
1+
#[cfg(feature = "future_dmq")]
2+
use std::path::PathBuf;
3+
use std::time::Duration;
24

35
use clap::Parser;
46
use libp2p::Multiaddr;
5-
use mithril_common::{CardanoNetwork, StdResult};
67
use slog::error;
78

8-
use super::CommandContext;
9+
#[cfg(feature = "future_dmq")]
10+
use mithril_common::CardanoNetwork;
11+
use mithril_common::StdResult;
12+
913
use crate::{SignerRelay, SignerRelayMode};
1014

15+
use super::CommandContext;
16+
1117
#[derive(Parser, Debug, Clone)]
1218
pub struct SignerCommand {
1319
/// HTTP Server listening port
@@ -23,6 +29,7 @@ pub struct SignerCommand {
2329
dial_to: Option<Multiaddr>,
2430

2531
/// Path to the DMQ socket file
32+
#[cfg(feature = "future_dmq")]
2633
#[clap(
2734
long,
2835
env = "DMQ_NODE_SOCKET_PATH",
@@ -32,11 +39,13 @@ pub struct SignerCommand {
3239
dmq_node_socket_path: PathBuf,
3340

3441
/// Cardano network
42+
#[cfg(feature = "future_dmq")]
3543
#[clap(long, env = "NETWORK")]
3644
pub network: String,
3745

3846
/// Cardano Network Magic number
3947
/// useful for TestNet & DevNet
48+
#[cfg(feature = "future_dmq")]
4049
#[clap(long, env = "NETWORK_MAGIC")]
4150
pub network_magic: Option<u64>,
4251

@@ -68,13 +77,16 @@ impl SignerCommand {
6877
let signature_registration_mode = &self.signature_registration_mode;
6978
let aggregator_endpoint = self.aggregator_endpoint.to_owned();
7079
let signer_repeater_delay = Duration::from_millis(self.signer_repeater_delay);
80+
#[cfg(feature = "future_dmq")]
7181
let cardano_network =
7282
CardanoNetwork::from_code(self.network.to_owned(), self.network_magic)?;
7383

7484
let mut relay = SignerRelay::start(
7585
&addr,
7686
&server_port,
87+
#[cfg(feature = "future_dmq")]
7788
&self.dmq_node_socket_path,
89+
#[cfg(feature = "future_dmq")]
7890
&cardano_network,
7991
signer_registration_mode,
8092
signature_registration_mode,

mithril-relay/src/p2p/peer.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use mithril_common::{
1414
logging::LoggerExtensions,
1515
messages::{RegisterSignatureMessageHttp, RegisterSignerMessage},
1616
};
17+
#[cfg(feature = "future_dmq")]
1718
use mithril_dmq::DmqMessage;
1819
use serde::{Deserialize, Serialize};
1920
use slog::{Logger, debug, info};
@@ -71,6 +72,7 @@ pub enum BroadcastMessage {
7172
RegisterSignatureHttp(RegisterSignatureMessageHttp),
7273

7374
/// A DMQ signature registration message received from the Gossip sub
75+
#[cfg(feature = "future_dmq")]
7476
RegisterSignatureDmq(DmqMessage),
7577
}
7678

@@ -237,6 +239,7 @@ impl Peer {
237239
}
238240

239241
/// Publish a DMQ signature on the P2P pubsub
242+
#[cfg(feature = "future_dmq")]
240243
pub fn publish_signature_dmq(
241244
&mut self,
242245
message: &DmqMessage,

mithril-relay/src/relay/aggregator.rs

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
1+
#[cfg(feature = "future_dmq")]
12
use std::{path::Path, sync::Arc};
23

34
use anyhow::anyhow;
45
use libp2p::Multiaddr;
6+
#[cfg(feature = "future_dmq")]
57
use mithril_dmq::{DmqConsumerServer, DmqConsumerServerPallas, DmqMessage};
68
use reqwest::StatusCode;
79
use slog::{Logger, error, info};
10+
#[cfg(feature = "future_dmq")]
811
use tokio::sync::{
912
mpsc::{UnboundedReceiver, UnboundedSender, unbounded_channel},
1013
watch::{self, Receiver},
1114
};
1215

16+
#[cfg(feature = "future_dmq")]
17+
use mithril_common::CardanoNetwork;
1318
use mithril_common::{
14-
CardanoNetwork, StdResult,
19+
StdResult,
1520
logging::LoggerExtensions,
1621
messages::{RegisterSignatureMessageHttp, RegisterSignerMessage},
1722
};
@@ -22,6 +27,7 @@ use crate::p2p::{BroadcastMessage, Peer, PeerEvent};
2227
pub struct AggregatorRelay {
2328
aggregator_endpoint: String,
2429
peer: Peer,
30+
#[cfg(feature = "future_dmq")]
2531
signature_dmq_tx: UnboundedSender<DmqMessage>,
2632
logger: Logger,
2733
}
@@ -30,30 +36,43 @@ impl AggregatorRelay {
3036
/// Start a relay for a Mithril aggregator
3137
pub async fn start(
3238
addr: &Multiaddr,
33-
dmq_node_socket_path: &Path,
34-
cardano_network: &CardanoNetwork,
39+
#[cfg(feature = "future_dmq")] dmq_node_socket_path: &Path,
40+
#[cfg(feature = "future_dmq")] cardano_network: &CardanoNetwork,
3541
aggregator_endpoint: &str,
3642
logger: &Logger,
3743
) -> StdResult<Self> {
38-
let (_stop_tx, stop_rx) = watch::channel(());
39-
let (signature_dmq_tx, signature_dmq_rx) = unbounded_channel::<DmqMessage>();
40-
let _dmq_consumer_server = Self::start_dmq_consumer_server(
41-
dmq_node_socket_path,
42-
cardano_network,
43-
signature_dmq_rx,
44-
stop_rx,
45-
logger.clone(),
46-
)
47-
.await?;
44+
let peer = Peer::new(addr).with_logger(logger).start().await?;
45+
let logger = logger.new_with_component_name::<Self>();
46+
#[cfg(feature = "future_dmq")]
47+
{
48+
let (_stop_tx, stop_rx) = watch::channel(());
49+
let (signature_dmq_tx, signature_dmq_rx) = unbounded_channel::<DmqMessage>();
50+
#[cfg(unix)]
51+
let _dmq_consumer_server = Self::start_dmq_consumer_server(
52+
dmq_node_socket_path,
53+
cardano_network,
54+
signature_dmq_rx,
55+
stop_rx,
56+
logger.clone(),
57+
)
58+
.await?;
4859

60+
Ok(Self {
61+
aggregator_endpoint: aggregator_endpoint.to_owned(),
62+
peer,
63+
signature_dmq_tx,
64+
logger,
65+
})
66+
}
67+
#[cfg(not(feature = "future_dmq"))]
4968
Ok(Self {
5069
aggregator_endpoint: aggregator_endpoint.to_owned(),
51-
peer: Peer::new(addr).with_logger(logger).start().await?,
52-
signature_dmq_tx,
53-
logger: logger.new_with_component_name::<Self>(),
70+
peer,
71+
logger,
5472
})
5573
}
5674

75+
#[cfg(feature = "future_dmq")]
5776
async fn start_dmq_consumer_server(
5877
socket: &Path,
5978
cardano_network: &CardanoNetwork,
@@ -174,6 +193,7 @@ impl AggregatorRelay {
174193
}
175194
}
176195
}
196+
#[cfg(feature = "future_dmq")]
177197
Ok(Some(BroadcastMessage::RegisterSignatureDmq(signature_message_received))) => {
178198
self.signature_dmq_tx.send(signature_message_received).map_err(|e| {
179199
anyhow!("Failed to send signature message to DMQ consumer server: {e}")
@@ -234,7 +254,9 @@ mod tests {
234254
let addr: Multiaddr = "/ip4/0.0.0.0/tcp/0".parse().unwrap();
235255
let relay = AggregatorRelay::start(
236256
&addr,
257+
#[cfg(feature = "future_dmq")]
237258
&Path::new("test"),
259+
#[cfg(feature = "future_dmq")]
238260
&CardanoNetwork::TestNet(123),
239261
&server.url(""),
240262
&TestLogger::stdout(),

mithril-relay/src/relay/passive.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ impl PassiveRelay {
3838
Ok(Some(BroadcastMessage::RegisterSignatureHttp(signature_message_received))) => {
3939
info!(self.logger, "Received HTTP signature message from P2P network"; "signature_message" => #?signature_message_received);
4040
}
41+
#[cfg(feature = "future_dmq")]
4142
Ok(Some(BroadcastMessage::RegisterSignatureDmq(signature_message_received))) => {
4243
info!(self.logger, "Received DMQ signature message from P2P network"; "signature_message" => #?signature_message_received);
4344
}

0 commit comments

Comments
 (0)