Add RialtoParachain <> Millau bridge to test deployments (#1412)

* add RialtoParachain <> Millau bridge to test deployments

* flush (still not working, but possible fix in comments)

* proper fix

* fixed on-demand parachains relay case: if better relay header is delivered, then we must select para header that may be proved using this relay header

* dashboards

* fmt

* removing debugging code

* more cleanup
This commit is contained in:
Svyatoslav Nikolsky
2022-05-27 17:32:00 +03:00
committed by Bastian Köcher
parent 0a3f8ace26
commit 4001cfb758
4 changed files with 24 additions and 22 deletions
@@ -187,6 +187,8 @@ impl<C: Chain> Client<C> {
params.host,
params.port,
);
log::info!(target: "bridge", "Connecting to {} node at {}", C::NAME, uri);
let client = tokio
.spawn(async move {
RpcClientBuilder::default()
@@ -95,9 +95,9 @@ impl<SourceChain: Chain> OnDemandRelay<BlockNumberOf<SourceChain>>
if required_header > *required_header_number {
log::trace!(
target: "bridge",
"More {} headers required in {} relay. Going to sync up to the {}",
SourceChain::NAME,
"[{}] More {} headers required. Going to sync up to the {}",
self.relay_task_name,
SourceChain::NAME,
required_header,
);
@@ -184,7 +184,7 @@ async fn background_task<P: SubstrateFinalitySyncPipeline>(
log::trace!(
target: "bridge",
"Mandatory headers scan range in {}: ({:?}, {:?}, {:?}) -> {:?}",
"[{}] Mandatory headers scan range: ({:?}, {:?}, {:?}) -> {:?}",
relay_task_name,
required_header_number_value,
best_finalized_source_header_at_source_fmt,
@@ -213,18 +213,18 @@ async fn background_task<P: SubstrateFinalitySyncPipeline>(
log::trace!(
target: "bridge",
"No mandatory {} headers in the range {:?} of {} relay",
"[{}] No mandatory {} headers in the range {:?}",
relay_task_name,
P::SourceChain::NAME,
mandatory_scan_range,
relay_task_name,
);
},
Err(e) => {
log::warn!(
target: "bridge",
"Failed to scan mandatory {} headers range in {} relay (range: {:?}): {:?}",
P::SourceChain::NAME,
"[{}] Failed to scan mandatory {} headers range ({:?}): {:?}",
relay_task_name,
P::SourceChain::NAME,
mandatory_scan_range,
e,
);
@@ -253,7 +253,7 @@ async fn background_task<P: SubstrateFinalitySyncPipeline>(
log::info!(
target: "bridge",
"Starting {} relay\n\t\
"[{}] Starting on-demand relay task\n\t\
Only mandatory headers: {}\n\t\
Tx mortality: {:?} (~{}m)\n\t\
Stall timeout: {:?}",
@@ -347,9 +347,9 @@ async fn relay_mandatory_header_from_range<P: SubstrateFinalitySyncPipeline>(
log::trace!(
target: "bridge",
"Too many {} headers missing at target in {} relay ({} vs {}). Going to sync up to the mandatory {}",
P::SourceChain::NAME,
"[{}] Too many {} headers missing at target ({} vs {}). Going to sync up to the mandatory {}",
relay_task_name,
P::SourceChain::NAME,
best_finalized_source_header_at_target,
range.1,
mandatory_source_header_number,
@@ -369,7 +369,7 @@ async fn best_finalized_source_header_at_source<P: SubstrateFinalitySyncPipeline
finality_source.on_chain_best_finalized_block_number().await.map_err(|error| {
log::error!(
target: "bridge",
"Failed to read best finalized source header from source in {} relay: {:?}",
"[{}] Failed to read best finalized source header from source: {:?}",
relay_task_name,
error,
);
@@ -396,7 +396,7 @@ where
.map_err(|error| {
log::error!(
target: "bridge",
"Failed to read best finalized source header from target in {} relay: {:?}",
"[{}] Failed to read best finalized source header from target: {:?}",
relay_task_name,
error,
);
@@ -429,7 +429,7 @@ async fn find_mandatory_header_in_range<P: SubstrateFinalitySyncPipeline>(
/// On-demand headers relay task name.
fn on_demand_headers_relay_name<SourceChain: Chain, TargetChain: Chain>() -> String {
format!("on-demand-{}-to-{}", SourceChain::NAME, TargetChain::NAME)
format!("{}-to-{}-on-demand-headers", SourceChain::NAME, TargetChain::NAME)
}
#[cfg(test)]
@@ -111,10 +111,10 @@ where
if let Err(e) = self.required_header_number_sender.send(required_header).await {
log::trace!(
target: "bridge",
"Failed to request {} header {:?} in {:?}: {:?}",
"[{}] Failed to request {} header {:?}: {:?}",
self.relay_task_name,
SourceParachain::NAME,
required_header,
self.relay_task_name,
e,
);
}
@@ -164,7 +164,7 @@ async fn background_task<P: SubstrateParachainsPipeline>(
Err(e) => {
log::error!(
target: "bridge",
"Background task of {} has exited with error: {:?}",
"[{}] Background task has exited with error: {:?}",
relay_task_name,
e,
);
@@ -223,7 +223,7 @@ async fn background_task<P: SubstrateParachainsPipeline>(
relay_state = select_headers_to_relay(&relay_data, relay_state);
log::trace!(
target: "bridge",
"Selected new relay state in {}: {:?} using old state {:?} and data {:?}",
"[{}] Selected new relay state: {:?} using old state {:?} and data {:?}",
relay_task_name,
relay_state,
prev_relay_state,
@@ -266,7 +266,7 @@ async fn background_task<P: SubstrateParachainsPipeline>(
log::info!(
target: "bridge",
"Starting {} relay\n\t\
"[{}] Starting on-demand-relay task\n\t\
Tx mortality: {:?} (~{}m)\n\t\
Stall timeout: {:?}",
relay_task_name,
@@ -297,7 +297,7 @@ async fn background_task<P: SubstrateParachainsPipeline>(
/// On-demand parachains relay task name.
fn on_demand_parachains_relay_name<SourceChain: Chain, TargetChain: Chain>() -> String {
format!("on-demand-{}-to-{}", SourceChain::NAME, TargetChain::NAME)
format!("{}-to-{}-on-demand-parachain", SourceChain::NAME, TargetChain::NAME)
}
/// On-demand relay state.
@@ -349,7 +349,7 @@ where
let map_target_err = |e| {
log::error!(
target: "bridge",
"Failed to read {} relay data from {} client: {:?}",
"[{}] Failed to read relay data from {} client: {:?}",
on_demand_parachains_relay_name::<P::SourceParachain, P::TargetChain>(),
P::TargetChain::NAME,
e,
@@ -359,7 +359,7 @@ where
let map_source_err = |e| {
log::error!(
target: "bridge",
"Failed to read {} relay data from {} client: {:?}",
"[{}] Failed to read relay data from {} client: {:?}",
on_demand_parachains_relay_name::<P::SourceParachain, P::TargetChain>(),
P::SourceRelayChain::NAME,
e,
@@ -121,7 +121,7 @@ pub trait TargetClient<P: ParachainsPipeline>: RelayClient {
/// Return prefix that will be used by default to expose Prometheus metrics of the parachains
/// sync loop.
pub fn metrics_prefix<P: ParachainsPipeline>() -> String {
format!("{}_to_{}_Sync", P::SourceChain::NAME, P::TargetChain::NAME)
format!("{}_to_{}_Parachains", P::SourceChain::NAME, P::TargetChain::NAME)
}
/// Run parachain heads synchronization.