Refactor finality relay helpers (#1220)

* refactor finality relay helper definitions

* add missing doc

* removed commented code

* fmt

* disable rustfmt for macro

* move best_finalized method const to relay chain def
This commit is contained in:
Svyatoslav Nikolsky
2021-12-03 14:43:33 +03:00
committed by Bastian Köcher
parent f84590817b
commit e675b13042
37 changed files with 475 additions and 823 deletions
@@ -121,18 +121,22 @@ impl RelayHeaders {
let target_client = self.target.to_client::<Target>().await?;
let target_transactions_mortality = self.target_sign.target_transactions_mortality;
let target_sign = self.target_sign.to_keypair::<Target>()?;
let metrics_params = Finality::customize_metrics(self.prometheus_params.into())?;
let metrics_params: relay_utils::metrics::MetricsParams = self.prometheus_params.into();
GlobalMetrics::new()?.register_and_spawn(&metrics_params.registry)?;
let finality = Finality::new(target_client.clone(), target_sign);
finality.start_relay_guards();
let target_transactions_params =
substrate_relay_helper::finality_pipeline::TransactionParams {
transactions_signer: target_sign,
transactions_mortality: target_transactions_mortality,
};
Finality::start_relay_guards(&target_client, &target_transactions_params);
substrate_relay_helper::finality_pipeline::run(
finality,
substrate_relay_helper::finality_pipeline::run::<Finality>(
source_client,
target_client,
self.only_mandatory_headers,
target_transactions_mortality,
target_transactions_params,
metrics_params,
)
.await
@@ -489,25 +489,35 @@ impl RelayHeadersAndMessages {
}
// start on-demand header relays
let left_to_right_finality =
LeftToRightFinality::new(right_client.clone(), right_sign.clone());
let right_to_left_finality =
RightToLeftFinality::new(left_client.clone(), left_sign.clone());
left_to_right_finality.start_relay_guards();
right_to_left_finality.start_relay_guards();
let left_to_right_on_demand_headers = OnDemandHeadersRelay::new(
let left_to_right_transaction_params =
substrate_relay_helper::finality_pipeline::TransactionParams {
transactions_mortality: right_transactions_mortality,
transactions_signer: right_sign.clone(),
};
let right_to_left_transaction_params =
substrate_relay_helper::finality_pipeline::TransactionParams {
transactions_mortality: left_transactions_mortality,
transactions_signer: left_sign.clone(),
};
LeftToRightFinality::start_relay_guards(
&right_client,
&left_to_right_transaction_params,
);
RightToLeftFinality::start_relay_guards(
&left_client,
&right_to_left_transaction_params,
);
let left_to_right_on_demand_headers = OnDemandHeadersRelay::new::<LeftToRightFinality>(
left_client.clone(),
right_client.clone(),
right_transactions_mortality,
left_to_right_finality,
left_to_right_transaction_params,
MAX_MISSING_LEFT_HEADERS_AT_RIGHT,
params.shared.only_mandatory_headers,
);
let right_to_left_on_demand_headers = OnDemandHeadersRelay::new(
let right_to_left_on_demand_headers = OnDemandHeadersRelay::new::<RightToLeftFinality>(
right_client.clone(),
left_client.clone(),
left_transactions_mortality,
right_to_left_finality,
right_to_left_transaction_params,
MAX_MISSING_RIGHT_HEADERS_AT_LEFT,
params.shared.only_mandatory_headers,
);