Skip to content

Commit f9c1623

Browse files
committed
Split SignableBuilderService in signer and aggregator
1 parent ba15522 commit f9c1623

File tree

15 files changed

+129
-109
lines changed

15 files changed

+129
-109
lines changed

mithril-aggregator/src/dependency.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ use mithril_common::{
66
digesters::{ImmutableDigester, ImmutableFileObserver},
77
entities::{Certificate, Epoch, ProtocolParameters, SignerWithStake, StakeDistribution},
88
era::{EraChecker, EraReader},
9-
signable_builder::SignableBuilderService,
109
store::StakeStorer,
1110
BeaconProvider,
1211
};
@@ -17,10 +16,10 @@ use tokio::sync::{Mutex, RwLock};
1716

1817
use crate::{
1918
artifact_builder::ArtifactBuilderService, configuration::*, database::provider::StakePoolStore,
20-
signer_registerer::SignerRecorder, CertificatePendingStore, CertificateStore,
21-
ProtocolParametersStore, ProtocolParametersStorer, SignerRegisterer,
22-
SignerRegistrationRoundOpener, SingleSignatureStore, Snapshotter, VerificationKeyStore,
23-
VerificationKeyStorer,
19+
signable_builder::SignableBuilderService, signer_registerer::SignerRecorder,
20+
CertificatePendingStore, CertificateStore, ProtocolParametersStore, ProtocolParametersStorer,
21+
SignerRegisterer, SignerRegistrationRoundOpener, SingleSignatureStore, Snapshotter,
22+
VerificationKeyStore, VerificationKeyStorer,
2423
};
2524
use crate::{event_store::EventMessage, snapshot_stores::SnapshotStore};
2625
use crate::{event_store::TransmitterService, multi_signer::MultiSigner};

mithril-aggregator/src/dependency_injection/builder.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use mithril_common::{
1919
adapters::{EraReaderAdapterBuilder, EraReaderDummyAdapter},
2020
EraChecker, EraMarker, EraReader, EraReaderAdapter, SupportedEra,
2121
},
22-
signable_builder::{DummySignableBuilder, SignableBuilderService},
22+
signable_builder::DummySignableBuilder,
2323
store::adapter::{MemoryAdapter, SQLiteAdapter, StoreAdapter},
2424
BeaconProvider, BeaconProviderImpl,
2525
};
@@ -44,6 +44,7 @@ use crate::{
4444
},
4545
event_store::{EventMessage, EventStore, TransmitterService},
4646
http_server::routes::router,
47+
signable_builder::SignableBuilderService,
4748
signer_registerer::SignerRecorder,
4849
stake_distribution_service::{MithrilStakeDistributionService, StakeDistributionService},
4950
ticker_service::{MithrilTickerService, TickerService},

mithril-aggregator/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ mod http_server;
2323
mod message_adapters;
2424
mod multi_signer;
2525
mod runtime;
26+
mod signable_builder;
2627
mod signer_registerer;
2728
mod snapshot_stores;
2829
mod snapshot_uploaders;
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
//! The module used for building signables
2+
3+
mod signable_builder_service;
4+
5+
pub use signable_builder_service::*;
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
use std::sync::Arc;
2+
3+
use mithril_common::{
4+
entities::SignedEntityType,
5+
signable_builder::{DummyBeacon, DummySignableBuilder, Signable, SignableBuilder},
6+
StdResult,
7+
};
8+
9+
/// SignableBuilder Service
10+
// TODO: temporary implementation
11+
pub struct SignableBuilderService {
12+
dummy_signable_builder: DummySignableBuilder,
13+
}
14+
15+
impl SignableBuilderService {
16+
/// SignableBuilderService factory
17+
pub fn new(dummy_signable_builder: DummySignableBuilder) -> Self {
18+
Self {
19+
dummy_signable_builder,
20+
}
21+
}
22+
}
23+
24+
impl SignableBuilderService {
25+
#[allow(dead_code)]
26+
async fn compute_signable(
27+
&self,
28+
signed_entity_type: SignedEntityType,
29+
) -> StdResult<Arc<dyn Signable>> {
30+
let signable: Arc<dyn Signable> = match signed_entity_type {
31+
SignedEntityType::MithrilStakeDistribution(e) => Arc::new(
32+
self.dummy_signable_builder
33+
.compute_signable(DummyBeacon { epoch: e })
34+
.await?,
35+
),
36+
_ => todo!(),
37+
};
38+
39+
Ok(signable)
40+
}
41+
}
42+
43+
#[cfg(test)]
44+
mod tests {}

mithril-common/src/entities/epoch.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ use std::{
55
};
66
use thiserror::Error;
77

8+
use crate::signable_builder::Beacon as SignableBeacon;
9+
810
/// Epoch represents a Cardano epoch
911
#[derive(
1012
Debug, Copy, Clone, Default, PartialEq, Serialize, Deserialize, Hash, Eq, PartialOrd, Ord,
@@ -141,6 +143,8 @@ impl Display for Epoch {
141143
}
142144
}
143145

146+
impl SignableBeacon for Epoch {}
147+
144148
/// EpochError is an error triggerred by an [Epoch]
145149
#[derive(Error, Debug)]
146150
pub enum EpochError {

mithril-common/src/entities/protocol_message.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ use serde::{Deserialize, Serialize};
22
use sha2::{Digest, Sha256};
33
use std::{collections::BTreeMap, fmt::Display};
44

5+
use crate::{signable_builder::Signable, StdResult};
6+
57
/// The key of a ProtocolMessage
68
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
79
pub enum ProtocolMessagePartKey {
@@ -73,6 +75,12 @@ impl ProtocolMessage {
7375
}
7476
}
7577

78+
impl Signable for ProtocolMessage {
79+
fn compute_protocol_message(&self) -> StdResult<ProtocolMessage> {
80+
Ok(self.clone())
81+
}
82+
}
83+
7684
#[cfg(test)]
7785
mod tests {
7886
use super::*;

mithril-common/src/signable_builder/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
33
mod dummy_signable;
44
mod interface;
5-
mod signable_builder_service;
65

76
pub use dummy_signable::*;
87
pub use interface::*;
9-
pub use signable_builder_service::*;

mithril-common/src/signable_builder/signable_builder_service.rs

Lines changed: 0 additions & 91 deletions
This file was deleted.

mithril-signer/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ mod configuration;
1111
mod message_adapters;
1212
mod protocol_initializer_store;
1313
mod runtime;
14+
mod signable_builder;
1415
mod single_signer;
1516

1617
#[cfg(test)]
@@ -22,4 +23,5 @@ pub use message_adapters::{
2223
};
2324
pub use protocol_initializer_store::{ProtocolInitializerStore, ProtocolInitializerStorer};
2425
pub use runtime::*;
26+
pub use signable_builder::SignableBuilderService;
2527
pub use single_signer::*;

0 commit comments

Comments
 (0)