mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 07:31:02 +00:00
Fix multiple parachain headers submission for single message delivery (#1916)
* switch off parachains relay when we don't need to relay parachains (temp solution) * parachains relay now only works with single parachain * fix usages of parachains relay * revert hacky fix * fixes * fixed Westmint parachain ID * fixed metrics * fixed compilation * fmt * clippy * call -> typed_state_call
This commit is contained in:
committed by
Bastian Köcher
parent
ba155f990f
commit
e7f5560951
@@ -16,7 +16,7 @@
|
||||
|
||||
use std::fmt::Debug;
|
||||
|
||||
use relay_substrate_client::Chain;
|
||||
use relay_substrate_client::{Chain, Parachain};
|
||||
|
||||
pub mod parachains_loop;
|
||||
pub mod parachains_loop_metrics;
|
||||
@@ -24,7 +24,9 @@ pub mod parachains_loop_metrics;
|
||||
/// Finality proofs synchronization pipeline.
|
||||
pub trait ParachainsPipeline: 'static + Clone + Debug + Send + Sync {
|
||||
/// Relay chain which is storing parachain heads in its `paras` module.
|
||||
type SourceChain: Chain;
|
||||
type SourceRelayChain: Chain;
|
||||
/// Parachain which headers we are syncing here.
|
||||
type SourceParachain: Parachain;
|
||||
/// Target chain (either relay or para) which wants to know about new parachain heads.
|
||||
type TargetChain: Chain;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -16,7 +16,7 @@
|
||||
|
||||
use bp_polkadot_core::parachains::ParaId;
|
||||
use relay_utils::{
|
||||
metrics::{metric_name, register, GaugeVec, Metric, Opts, PrometheusError, Registry, U64},
|
||||
metrics::{metric_name, register, Gauge, Metric, PrometheusError, Registry, U64},
|
||||
UniqueSaturatedInto,
|
||||
};
|
||||
|
||||
@@ -24,28 +24,22 @@ use relay_utils::{
|
||||
#[derive(Clone)]
|
||||
pub struct ParachainsLoopMetrics {
|
||||
/// Best parachains header numbers at the source.
|
||||
best_source_block_numbers: GaugeVec<U64>,
|
||||
best_source_block_numbers: Gauge<U64>,
|
||||
/// Best parachains header numbers at the target.
|
||||
best_target_block_numbers: GaugeVec<U64>,
|
||||
best_target_block_numbers: Gauge<U64>,
|
||||
}
|
||||
|
||||
impl ParachainsLoopMetrics {
|
||||
/// Create and register parachains loop metrics.
|
||||
pub fn new(prefix: Option<&str>) -> Result<Self, PrometheusError> {
|
||||
Ok(ParachainsLoopMetrics {
|
||||
best_source_block_numbers: GaugeVec::new(
|
||||
Opts::new(
|
||||
metric_name(prefix, "best_parachain_block_number_at_source"),
|
||||
"Best parachain block numbers at the source relay chain".to_string(),
|
||||
),
|
||||
&["parachain"],
|
||||
best_source_block_numbers: Gauge::new(
|
||||
metric_name(prefix, "best_parachain_block_number_at_source"),
|
||||
"Best parachain block numbers at the source relay chain".to_string(),
|
||||
)?,
|
||||
best_target_block_numbers: GaugeVec::new(
|
||||
Opts::new(
|
||||
metric_name(prefix, "best_parachain_block_number_at_target"),
|
||||
"Best parachain block numbers at the target chain".to_string(),
|
||||
),
|
||||
&["parachain"],
|
||||
best_target_block_numbers: Gauge::new(
|
||||
metric_name(prefix, "best_parachain_block_number_at_target"),
|
||||
"Best parachain block numbers at the target chain".to_string(),
|
||||
)?,
|
||||
})
|
||||
}
|
||||
@@ -57,14 +51,13 @@ impl ParachainsLoopMetrics {
|
||||
block_number: Number,
|
||||
) {
|
||||
let block_number = block_number.unique_saturated_into();
|
||||
let label = parachain_label(¶chain);
|
||||
log::trace!(
|
||||
target: "bridge-metrics",
|
||||
"Updated value of metric 'best_parachain_block_number_at_source[{}]': {:?}",
|
||||
label,
|
||||
"Updated value of metric 'best_parachain_block_number_at_source[{:?}]': {:?}",
|
||||
parachain,
|
||||
block_number,
|
||||
);
|
||||
self.best_source_block_numbers.with_label_values(&[&label]).set(block_number);
|
||||
self.best_source_block_numbers.set(block_number);
|
||||
}
|
||||
|
||||
/// Update best block number at target.
|
||||
@@ -74,14 +67,13 @@ impl ParachainsLoopMetrics {
|
||||
block_number: Number,
|
||||
) {
|
||||
let block_number = block_number.unique_saturated_into();
|
||||
let label = parachain_label(¶chain);
|
||||
log::trace!(
|
||||
target: "bridge-metrics",
|
||||
"Updated value of metric 'best_parachain_block_number_at_target[{}]': {:?}",
|
||||
label,
|
||||
"Updated value of metric 'best_parachain_block_number_at_target[{:?}]': {:?}",
|
||||
parachain,
|
||||
block_number,
|
||||
);
|
||||
self.best_target_block_numbers.with_label_values(&[&label]).set(block_number);
|
||||
self.best_target_block_numbers.set(block_number);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,8 +84,3 @@ impl Metric for ParachainsLoopMetrics {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
/// Return metric label for the parachain.
|
||||
fn parachain_label(parachain: &ParaId) -> String {
|
||||
format!("para_{}", parachain.0)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user