Skip to content

Commit b679c45

Browse files
authored
Merge pull request #891 from input-output-hk/ensemble/852/immutable_signable_signer
add signable builder in signer
2 parents 0173a98 + 79a4128 commit b679c45

File tree

16 files changed

+71
-52
lines changed

16 files changed

+71
-52
lines changed

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mithril-aggregator/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mithril-aggregator"
3-
version = "0.3.9"
3+
version = "0.3.10"
44
description = "A Mithril Aggregator server"
55
authors = { workspace = true }
66
edition = { workspace = true }

mithril-aggregator/src/dependency_injection/builder.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use mithril_common::{
1616
adapters::{EraReaderAdapterBuilder, EraReaderDummyAdapter},
1717
EraChecker, EraMarker, EraReader, EraReaderAdapter, SupportedEra,
1818
},
19+
signable_builder::CardanoImmutableFilesFullSignableBuilder,
1920
store::adapter::{MemoryAdapter, SQLiteAdapter, StoreAdapter},
2021
BeaconProvider, BeaconProviderImpl,
2122
};
@@ -42,9 +43,7 @@ use crate::{
4243
},
4344
event_store::{EventMessage, EventStore, TransmitterService},
4445
http_server::routes::router,
45-
signable_builder::{
46-
ImmutableSignableBuilder, MithrilStakeDistributionSignableBuilder, SignableBuilderService,
47-
},
46+
signable_builder::{MithrilStakeDistributionSignableBuilder, SignableBuilderService},
4847
signer_registerer::SignerRecorder,
4948
stake_distribution_service::{MithrilStakeDistributionService, StakeDistributionService},
5049
ticker_service::{MithrilTickerService, TickerService},
@@ -877,8 +876,10 @@ impl DependenciesBuilder {
877876
let multi_signer = self.get_multi_signer().await?;
878877
let mithril_stake_distribution_builder =
879878
MithrilStakeDistributionSignableBuilder::new(multi_signer);
880-
let immutable_signable_builder =
881-
ImmutableSignableBuilder::new(self.get_immutable_digester().await?);
879+
let immutable_signable_builder = CardanoImmutableFilesFullSignableBuilder::new(
880+
self.get_immutable_digester().await?,
881+
self.get_logger().await?,
882+
);
882883
let signable_builder_service = Arc::new(SignableBuilderService::new(
883884
mithril_stake_distribution_builder,
884885
immutable_signable_builder,

mithril-aggregator/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ pub use crate::configuration::{
4040
};
4141
pub use crate::multi_signer::{MultiSigner, MultiSignerImpl, ProtocolError};
4242
pub use crate::signable_builder::{
43-
ImmutableSignableBuilder, MithrilStakeDistributionSignableBuilder, SignableBuilderService,
43+
MithrilStakeDistributionSignableBuilder, SignableBuilderService,
4444
};
4545
pub use crate::snapshot_stores::{LocalSnapshotStore, SnapshotStore};
4646
pub use command_args::MainOpts;
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
//! The module used for building signables
22
3-
mod immutable_signable_builder;
43
mod mithril_stake_distribution;
54
mod signable_builder_service;
65

7-
pub use immutable_signable_builder::*;
86
pub use mithril_stake_distribution::*;
97
pub use signable_builder_service::*;

mithril-aggregator/src/signable_builder/signable_builder_service.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,23 @@ use std::sync::Arc;
22

33
use mithril_common::{
44
entities::SignedEntityType,
5-
signable_builder::{Signable, SignableBuilder},
5+
signable_builder::{CardanoImmutableFilesFullSignableBuilder, Signable, SignableBuilder},
66
StdResult,
77
};
88

9-
use super::{ImmutableSignableBuilder, MithrilStakeDistributionSignableBuilder};
9+
use super::MithrilStakeDistributionSignableBuilder;
1010

1111
/// SignableBuilder Service
1212
pub struct SignableBuilderService {
1313
mithril_stake_distribution_builder: MithrilStakeDistributionSignableBuilder,
14-
immutable_signable_builder: ImmutableSignableBuilder,
14+
immutable_signable_builder: CardanoImmutableFilesFullSignableBuilder,
1515
}
1616

1717
impl SignableBuilderService {
1818
/// SignableBuilderService factory
1919
pub fn new(
2020
mithril_stake_distribution_builder: MithrilStakeDistributionSignableBuilder,
21-
immutable_signable_builder: ImmutableSignableBuilder,
21+
immutable_signable_builder: CardanoImmutableFilesFullSignableBuilder,
2222
) -> Self {
2323
Self {
2424
mithril_stake_distribution_builder,

mithril-common/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mithril-common"
3-
version = "0.2.45"
3+
version = "0.2.46"
44
authors = { workspace = true }
55
edition = { workspace = true }
66
documentation = { workspace = true }

mithril-common/src/digesters/cache/json_provider.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ mod tests {
261261

262262
#[tokio::test]
263263
async fn reset_clear_existing_values() {
264-
let file = get_test_dir("store_erase_existing_values").join("immutable-cache-store.json");
264+
let file = get_test_dir("reset_clear_existing_values").join("immutable-cache-store.json");
265265
let provider = JsonImmutableFileDigestCacheProvider::new(&file);
266266
let values_to_store = vec![
267267
("0.chunk".to_string(), "digest 0".to_string()),

mithril-aggregator/src/signable_builder/immutable_signable_builder.rs renamed to mithril-common/src/signable_builder/cardano_immutable_full_signable_builder.rs

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,36 @@
11
use std::sync::Arc;
22

3-
use async_trait::async_trait;
4-
use mithril_common::{
3+
use crate::{
54
digesters::ImmutableDigester,
65
entities::{Beacon, ProtocolMessage, ProtocolMessagePartKey},
76
signable_builder::SignableBuilder,
87
StdResult,
98
};
9+
use async_trait::async_trait;
10+
use slog::{debug, info, Logger};
1011

11-
/// A [SignableBuilder] for cardano immutable files.
12-
pub struct ImmutableSignableBuilder {
12+
/// This structure is responsible of calculating the message for Cardano immutable files snapshots.
13+
pub struct CardanoImmutableFilesFullSignableBuilder {
1314
immutable_digester: Arc<dyn ImmutableDigester>,
15+
logger: Logger,
1416
}
1517

16-
impl ImmutableSignableBuilder {
18+
impl CardanoImmutableFilesFullSignableBuilder {
1719
/// Constructor
18-
pub fn new(immutable_digester: Arc<dyn ImmutableDigester>) -> Self {
19-
Self { immutable_digester }
20+
pub fn new(immutable_digester: Arc<dyn ImmutableDigester>, logger: Logger) -> Self {
21+
Self {
22+
immutable_digester,
23+
logger,
24+
}
2025
}
2126
}
2227

2328
#[async_trait]
24-
impl SignableBuilder<Beacon, ProtocolMessage> for ImmutableSignableBuilder {
29+
impl SignableBuilder<Beacon, ProtocolMessage> for CardanoImmutableFilesFullSignableBuilder {
2530
async fn compute_signable(&self, beacon: Beacon) -> StdResult<ProtocolMessage> {
31+
debug!(self.logger, "SignableBuilder::compute_signable({beacon:?})");
2632
let digest = self.immutable_digester.compute_digest(&beacon).await?;
33+
info!(self.logger, "SignableBuilder: digest = '{digest}'.");
2734
let mut protocol_message = ProtocolMessage::new();
2835
protocol_message.set_message_part(ProtocolMessagePartKey::SnapshotDigest, digest);
2936

@@ -35,9 +42,10 @@ impl SignableBuilder<Beacon, ProtocolMessage> for ImmutableSignableBuilder {
3542
mod tests {
3643
use super::*;
3744

45+
use crate::digesters::{ImmutableDigester, ImmutableDigesterError};
46+
use crate::entities::Beacon;
3847
use async_trait::async_trait;
39-
use mithril_common::digesters::{ImmutableDigester, ImmutableDigesterError};
40-
use mithril_common::entities::Beacon;
48+
use slog::Drain;
4149

4250
#[derive(Default)]
4351
pub struct ImmutableDigesterImpl;
@@ -48,10 +56,18 @@ mod tests {
4856
Ok(format!("immutable {}", beacon.immutable_file_number))
4957
}
5058
}
59+
60+
fn create_logger() -> slog::Logger {
61+
let decorator = slog_term::PlainDecorator::new(slog_term::TestStdoutWriter);
62+
let drain = slog_term::CompactFormat::new(decorator).build().fuse();
63+
let drain = slog_async::Async::new(drain).build().fuse();
64+
slog::Logger::root(Arc::new(drain), slog::o!())
65+
}
5166
#[tokio::test]
5267
async fn compute_signable() {
5368
let digester = ImmutableDigesterImpl::default();
54-
let signable_builder = ImmutableSignableBuilder::new(Arc::new(digester));
69+
let signable_builder =
70+
CardanoImmutableFilesFullSignableBuilder::new(Arc::new(digester), create_logger());
5571
let protocol_message = signable_builder
5672
.compute_signable(Beacon::default())
5773
.await
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
//! The module used for building signables
22
3+
mod cardano_immutable_full_signable_builder;
34
mod dummy_signable;
45
mod interface;
56

7+
pub use cardano_immutable_full_signable_builder::*;
68
pub use dummy_signable::*;
79
pub use interface::*;

0 commit comments

Comments
 (0)