diff --git a/Cargo.lock b/Cargo.lock index 68f42ab3264..93d8b60421d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3870,7 +3870,7 @@ dependencies = [ [[package]] name = "mithril-end-to-end" -version = "0.4.67" +version = "0.4.68" dependencies = [ "anyhow", "async-recursion", diff --git a/mithril-test-lab/mithril-end-to-end/Cargo.toml b/mithril-test-lab/mithril-end-to-end/Cargo.toml index 415a9779217..3c9d4ce8773 100644 --- a/mithril-test-lab/mithril-end-to-end/Cargo.toml +++ b/mithril-test-lab/mithril-end-to-end/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mithril-end-to-end" -version = "0.4.67" +version = "0.4.68" authors = { workspace = true } edition = { workspace = true } documentation = { workspace = true } diff --git a/mithril-test-lab/mithril-end-to-end/src/bin/load-aggregator/main.rs b/mithril-test-lab/mithril-end-to-end/src/bin/load-aggregator/main.rs index 279c79b2063..880c526dd96 100644 --- a/mithril-test-lab/mithril-end-to-end/src/bin/load-aggregator/main.rs +++ b/mithril-test-lab/mithril-end-to-end/src/bin/load-aggregator/main.rs @@ -5,7 +5,7 @@ use tokio::sync::oneshot; use mithril_common::{ digesters::{DummyCardanoDb, DummyCardanoDbBuilder}, - entities::{CardanoDbBeacon, Epoch, ProtocolParameters, SignedEntityType, SingleSignatures}, + entities::{CardanoDbBeacon, Epoch, ProtocolParameters, SignedEntityType}, test_utils::MithrilFixture, StdResult, }; @@ -51,13 +51,6 @@ async fn main() -> StdResult<()> { let signers_fixture = payload_builder::generate_signer_data(opts.num_signers, protocol_parameters); - let mithril_stake_distribution_signatures = - payload_builder::precompute_mithril_stake_distribution_signatures( - &signers_fixture, - Duration::from_secs(180), - ) - .await?; - let aggregator = aggregator_helpers::bootstrap_aggregator( &aggregator_parameters, &signers_fixture, @@ -73,7 +66,6 @@ async fn main() -> StdResult<()> { signers_fixture, cardano_db, reporter, - precomputed_mithril_stake_distribution_signatures: mithril_stake_distribution_signatures, }; let scenario_counters = ScenarioCounters { @@ -122,7 +114,6 @@ struct ScenarioParameters { aggregator_parameters: AggregatorParameters, signers_fixture: MithrilFixture, cardano_db: DummyCardanoDb, - precomputed_mithril_stake_distribution_signatures: Vec, reporter: Reporter, } @@ -189,6 +180,16 @@ async fn main_scenario( ) .await?; + info!(">> Compute the mithril stake distribution signature"); + let mithril_stake_distribution_signatures = + payload_builder::compute_mithril_stake_distribution_signatures( + current_epoch, + ¶meters.signers_fixture, + Duration::from_secs(180), + ) + .await + .unwrap(); + info!( ">> Send the Signer Signatures payloads for MithrilStakeDistribution({:?})", current_epoch @@ -196,7 +197,7 @@ async fn main_scenario( parameters.reporter.start("signatures registration"); let errors = fake_signer::register_signatures_to_aggregator( ¶meters.aggregator, - ¶meters.precomputed_mithril_stake_distribution_signatures, + &mithril_stake_distribution_signatures, SignedEntityType::MithrilStakeDistribution(current_epoch), ) .await?; @@ -238,7 +239,7 @@ async fn main_scenario( ¶meters.cardano_db, current_epoch, ¶meters.signers_fixture, - Duration::from_secs(60), + Duration::from_secs(180), ) .await .unwrap(); diff --git a/mithril-test-lab/mithril-end-to-end/src/main.rs b/mithril-test-lab/mithril-end-to-end/src/main.rs index 1637862fd5c..8c585be3b0a 100644 --- a/mithril-test-lab/mithril-end-to-end/src/main.rs +++ b/mithril-test-lab/mithril-end-to-end/src/main.rs @@ -76,7 +76,7 @@ pub struct Args { mithril_run_interval: u32, /// Mithril era to run - #[clap(long, default_value = "thales")] + #[clap(long, default_value = "pythagoras")] mithril_era: String, /// Mithril next era to run diff --git a/mithril-test-lab/mithril-end-to-end/src/stress_test/entities.rs b/mithril-test-lab/mithril-end-to-end/src/stress_test/entities.rs index 73ba2e293c9..52e2cb281ba 100644 --- a/mithril-test-lab/mithril-end-to-end/src/stress_test/entities.rs +++ b/mithril-test-lab/mithril-end-to-end/src/stress_test/entities.rs @@ -34,7 +34,7 @@ pub struct MainOpts { pub num_clients: usize, /// Mithril technical Era - #[arg(long, default_value = "thales")] + #[arg(long, default_value = "pythagoras")] pub mithril_era: String, /// Aggregator HTTP port diff --git a/mithril-test-lab/mithril-end-to-end/src/stress_test/payload_builder.rs b/mithril-test-lab/mithril-end-to-end/src/stress_test/payload_builder.rs index af389d42397..51ca16330fc 100644 --- a/mithril-test-lab/mithril-end-to-end/src/stress_test/payload_builder.rs +++ b/mithril-test-lab/mithril-end-to-end/src/stress_test/payload_builder.rs @@ -63,8 +63,9 @@ pub fn generate_register_signature_message( .collect::>() } -/// Precompute all signers single signatures for the given fixture -pub async fn precompute_mithril_stake_distribution_signatures( +/// Compute all signers single signatures for mithril stake distribution for the given fixture +pub async fn compute_mithril_stake_distribution_signatures( + epoch: Epoch, signers_fixture: &MithrilFixture, timeout: Duration, ) -> StdResult> { @@ -75,9 +76,17 @@ pub async fn precompute_mithril_stake_distribution_signatures( let mithril_stake_distribution_message = { let mut message = ProtocolMessage::new(); message.set_message_part( - mithril_common::entities::ProtocolMessagePartKey::NextAggregateVerificationKey, - signers_fixture.compute_and_encode_avk(), - ); + mithril_common::entities::ProtocolMessagePartKey::NextAggregateVerificationKey, + signers_fixture.compute_and_encode_avk(), + ); + message.set_message_part( + mithril_common::entities::ProtocolMessagePartKey::NextProtocolParameters, + signers_fixture.protocol_parameters().compute_hash(), + ); + message.set_message_part( + mithril_common::entities::ProtocolMessagePartKey::CurrentEpoch, + epoch.to_string(), + ); message }; @@ -89,12 +98,12 @@ pub async fn precompute_mithril_stake_distribution_signatures( Ok(signatures) }, timeout, - format!("Precompute signatures for MithrilStakeDistribution signed entity"), - format!("Precomputing signatures timeout after {timeout:?}") + format!("Compute signatures for MithrilStakeDistribution signed entity"), + format!("Computing signatures timeout after {timeout:?}") ) } -/// Compute all signers single signatures for the given fixture +/// Compute all signers single signatures for immutable files full for the given fixture pub async fn compute_immutable_files_signatures( cardano_db: &DummyCardanoDb, epoch: Epoch, @@ -122,25 +131,33 @@ pub async fn compute_immutable_files_signatures( let signers_fixture = signers_fixture.clone(); let signatures = tokio::task::spawn_blocking(move || -> Vec { - let mithril_stake_distribution_message = { + let cardano_immutable_files_full_message = { let mut message = ProtocolMessage::new(); message.set_message_part(ProtocolMessagePartKey::SnapshotDigest, digest); message.set_message_part( ProtocolMessagePartKey::NextAggregateVerificationKey, signers_fixture.compute_and_encode_avk(), ); + message.set_message_part( + mithril_common::entities::ProtocolMessagePartKey::NextProtocolParameters, + signers_fixture.protocol_parameters().compute_hash(), + ); + message.set_message_part( + mithril_common::entities::ProtocolMessagePartKey::CurrentEpoch, + epoch.to_string(), + ); message }; - signers_fixture.sign_all(&mithril_stake_distribution_message) + signers_fixture.sign_all(&cardano_immutable_files_full_message) }) .await?; Ok((beacon, signatures)) }, timeout, - format!("Precompute signatures for CardanoImmutableFiles signed entity"), - format!("Precomputing signatures timeout after {timeout:?}") + format!("Compute signatures for CardanoImmutableFiles signed entity"), + format!("Computing signatures timeout after {timeout:?}") ) }