Skip to content

Commit 6a63b5f

Browse files
authored
Start version guards for the ED loop (#2678)
1 parent 896b9a9 commit 6a63b5f

15 files changed

Lines changed: 33 additions & 145 deletions

relays/bin-substrate/src/bridges/kusama_polkadot/kusama_headers_to_bridge_hub_polkadot.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
2121
};
2222

2323
use async_trait::async_trait;
24-
use relay_substrate_client::{AccountKeyPairOf, Client};
2524
use substrate_relay_helper::{
2625
equivocation::SubstrateEquivocationDetectionPipeline,
2726
finality::SubstrateFinalitySyncPipeline,
2827
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
29-
TransactionParams,
3028
};
3129

3230
/// Description of Kusama -> PolkadotBridgeHub finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for KusamaFinalityToBridgeHubPolkadot {
5856
#[async_trait]
5957
impl SubstrateFinalitySyncPipeline for KusamaFinalityToBridgeHubPolkadot {
6058
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
61-
62-
async fn start_relay_guards(
63-
target_client: &Client<Self::TargetChain>,
64-
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
65-
enable_version_guard: bool,
66-
) -> relay_substrate_client::Result<()> {
67-
if enable_version_guard {
68-
relay_substrate_client::guard::abort_on_spec_version_change(
69-
target_client.clone(),
70-
target_client.simple_runtime_version().await?.spec_version,
71-
);
72-
}
73-
Ok(())
74-
}
7559
}
7660

7761
#[async_trait]

relays/bin-substrate/src/bridges/kusama_polkadot/polkadot_headers_to_bridge_hub_kusama.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
2121
};
2222

2323
use async_trait::async_trait;
24-
use relay_substrate_client::{AccountKeyPairOf, Client};
2524
use substrate_relay_helper::{
2625
equivocation::SubstrateEquivocationDetectionPipeline,
2726
finality::SubstrateFinalitySyncPipeline,
2827
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
29-
TransactionParams,
3028
};
3129

3230
/// Description of Polkadot -> KusamaBridgeHub finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for PolkadotFinalityToBridgeHubKusama {
5856
#[async_trait]
5957
impl SubstrateFinalitySyncPipeline for PolkadotFinalityToBridgeHubKusama {
6058
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
61-
62-
async fn start_relay_guards(
63-
target_client: &Client<Self::TargetChain>,
64-
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
65-
enable_version_guard: bool,
66-
) -> relay_substrate_client::Result<()> {
67-
if enable_version_guard {
68-
relay_substrate_client::guard::abort_on_spec_version_change(
69-
target_client.clone(),
70-
target_client.simple_runtime_version().await?.spec_version,
71-
);
72-
}
73-
Ok(())
74-
}
7559
}
7660

7761
#[async_trait]

relays/bin-substrate/src/bridges/polkadot_bulletin/polkadot_bulletin_headers_to_bridge_hub_polkadot.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,10 @@ use crate::cli::bridge::{
2222
};
2323

2424
use async_trait::async_trait;
25-
use relay_substrate_client::{AccountKeyPairOf, Client};
2625
use substrate_relay_helper::{
2726
equivocation::SubstrateEquivocationDetectionPipeline,
2827
finality::SubstrateFinalitySyncPipeline,
2928
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
30-
TransactionParams,
3129
};
3230

3331
/// Description of `PolkadotBulletin` -> `PolkadotBridgeHub` finalized headers bridge.
@@ -59,20 +57,6 @@ impl SubstrateFinalityPipeline for PolkadotBulletinFinalityToBridgeHubPolkadot {
5957
#[async_trait]
6058
impl SubstrateFinalitySyncPipeline for PolkadotBulletinFinalityToBridgeHubPolkadot {
6159
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
62-
63-
async fn start_relay_guards(
64-
target_client: &Client<Self::TargetChain>,
65-
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
66-
enable_version_guard: bool,
67-
) -> relay_substrate_client::Result<()> {
68-
if enable_version_guard {
69-
relay_substrate_client::guard::abort_on_spec_version_change(
70-
target_client.clone(),
71-
target_client.simple_runtime_version().await?.spec_version,
72-
);
73-
}
74-
Ok(())
75-
}
7660
}
7761

7862
#[async_trait]

relays/bin-substrate/src/bridges/polkadot_bulletin/polkadot_headers_to_polkadot_bulletin.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
2121
};
2222

2323
use async_trait::async_trait;
24-
use relay_substrate_client::{AccountKeyPairOf, Client};
2524
use substrate_relay_helper::{
2625
equivocation::SubstrateEquivocationDetectionPipeline,
2726
finality::SubstrateFinalitySyncPipeline,
2827
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
29-
TransactionParams,
3028
};
3129

3230
/// Description of Polkadot -> `PolkadotBulletin` finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for PolkadotFinalityToPolkadotBulletin {
5856
#[async_trait]
5957
impl SubstrateFinalitySyncPipeline for PolkadotFinalityToPolkadotBulletin {
6058
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
61-
62-
async fn start_relay_guards(
63-
target_client: &Client<Self::TargetChain>,
64-
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
65-
enable_version_guard: bool,
66-
) -> relay_substrate_client::Result<()> {
67-
if enable_version_guard {
68-
relay_substrate_client::guard::abort_on_spec_version_change(
69-
target_client.clone(),
70-
target_client.simple_runtime_version().await?.spec_version,
71-
);
72-
}
73-
Ok(())
74-
}
7559
}
7660

7761
#[async_trait]

relays/bin-substrate/src/bridges/rococo_westend/rococo_headers_to_bridge_hub_westend.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
2121
};
2222

2323
use async_trait::async_trait;
24-
use relay_substrate_client::{AccountKeyPairOf, Client};
2524
use substrate_relay_helper::{
2625
equivocation::SubstrateEquivocationDetectionPipeline,
2726
finality::SubstrateFinalitySyncPipeline,
2827
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
29-
TransactionParams,
3028
};
3129

3230
/// Description of Rococo -> Westend finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for RococoFinalityToBridgeHubWestend {
5856
#[async_trait]
5957
impl SubstrateFinalitySyncPipeline for RococoFinalityToBridgeHubWestend {
6058
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
61-
62-
async fn start_relay_guards(
63-
target_client: &Client<Self::TargetChain>,
64-
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
65-
enable_version_guard: bool,
66-
) -> relay_substrate_client::Result<()> {
67-
if enable_version_guard {
68-
relay_substrate_client::guard::abort_on_spec_version_change(
69-
target_client.clone(),
70-
target_client.simple_runtime_version().await?.spec_version,
71-
);
72-
}
73-
Ok(())
74-
}
7559
}
7660

7761
#[async_trait]

relays/bin-substrate/src/bridges/rococo_westend/westend_headers_to_bridge_hub_rococo.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
2121
};
2222

2323
use async_trait::async_trait;
24-
use relay_substrate_client::{AccountKeyPairOf, Client};
2524
use substrate_relay_helper::{
2625
equivocation::SubstrateEquivocationDetectionPipeline,
2726
finality::SubstrateFinalitySyncPipeline,
2827
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
29-
TransactionParams,
3028
};
3129

3230
/// Description of Westend -> Rococo finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for WestendFinalityToBridgeHubRococo {
5856
#[async_trait]
5957
impl SubstrateFinalitySyncPipeline for WestendFinalityToBridgeHubRococo {
6058
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
61-
62-
async fn start_relay_guards(
63-
target_client: &Client<Self::TargetChain>,
64-
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
65-
enable_version_guard: bool,
66-
) -> relay_substrate_client::Result<()> {
67-
if enable_version_guard {
68-
relay_substrate_client::guard::abort_on_spec_version_change(
69-
target_client.clone(),
70-
target_client.simple_runtime_version().await?.spec_version,
71-
);
72-
}
73-
Ok(())
74-
}
7559
}
7660

7761
#[async_trait]

relays/bin-substrate/src/bridges/rococo_wococo/rococo_headers_to_bridge_hub_wococo.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
2121
};
2222

2323
use async_trait::async_trait;
24-
use relay_substrate_client::{AccountKeyPairOf, Client};
2524
use substrate_relay_helper::{
2625
equivocation::SubstrateEquivocationDetectionPipeline,
2726
finality::SubstrateFinalitySyncPipeline,
2827
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
29-
TransactionParams,
3028
};
3129

3230
/// Description of Rococo -> Wococo finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for RococoFinalityToBridgeHubWococo {
5856
#[async_trait]
5957
impl SubstrateFinalitySyncPipeline for RococoFinalityToBridgeHubWococo {
6058
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
61-
62-
async fn start_relay_guards(
63-
target_client: &Client<Self::TargetChain>,
64-
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
65-
enable_version_guard: bool,
66-
) -> relay_substrate_client::Result<()> {
67-
if enable_version_guard {
68-
relay_substrate_client::guard::abort_on_spec_version_change(
69-
target_client.clone(),
70-
target_client.simple_runtime_version().await?.spec_version,
71-
);
72-
}
73-
Ok(())
74-
}
7559
}
7660

7761
#[async_trait]

relays/bin-substrate/src/bridges/rococo_wococo/wococo_headers_to_bridge_hub_rococo.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
2121
};
2222

2323
use async_trait::async_trait;
24-
use relay_substrate_client::{AccountKeyPairOf, Client};
2524
use substrate_relay_helper::{
2625
equivocation::SubstrateEquivocationDetectionPipeline,
2726
finality::SubstrateFinalitySyncPipeline,
2827
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
29-
TransactionParams,
3028
};
3129

3230
/// Description of Wococo -> Rococo finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for WococoFinalityToBridgeHubRococo {
5856
#[async_trait]
5957
impl SubstrateFinalitySyncPipeline for WococoFinalityToBridgeHubRococo {
6058
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
61-
62-
async fn start_relay_guards(
63-
target_client: &Client<Self::TargetChain>,
64-
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
65-
enable_version_guard: bool,
66-
) -> relay_substrate_client::Result<()> {
67-
if enable_version_guard {
68-
relay_substrate_client::guard::abort_on_spec_version_change(
69-
target_client.clone(),
70-
target_client.simple_runtime_version().await?.spec_version,
71-
);
72-
}
73-
Ok(())
74-
}
7559
}
7660

7761
#[async_trait]

relays/bin-substrate/src/cli/detect_equivocations.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use async_trait::async_trait;
3737
use relay_substrate_client::ChainWithTransactions;
3838
use structopt::StructOpt;
3939
use strum::{EnumString, EnumVariantNames, VariantNames};
40-
use substrate_relay_helper::equivocation;
40+
use substrate_relay_helper::{equivocation, equivocation::SubstrateEquivocationDetectionPipeline};
4141

4242
/// Start equivocation detection loop.
4343
#[derive(StructOpt)]
@@ -73,8 +73,15 @@ where
7373
Self::Source: ChainWithTransactions,
7474
{
7575
async fn start(data: DetectEquivocations) -> anyhow::Result<()> {
76+
let source_client = data.source.into_client::<Self::Source>().await?;
77+
Self::Equivocation::start_relay_guards(
78+
&source_client,
79+
source_client.can_start_version_guard(),
80+
)
81+
.await?;
82+
7683
equivocation::run::<Self::Equivocation>(
77-
data.source.into_client::<Self::Source>().await?,
84+
source_client,
7885
data.target.into_client::<Self::Target>().await?,
7986
data.source_sign.transaction_params::<Self::Source>()?,
8087
data.prometheus_params.into_metrics_params()?,

relays/bin-substrate/src/cli/relay_headers.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,8 @@ trait HeadersRelayer: RelayToRelayHeadersCliBridge {
9696
signer: target_sign,
9797
mortality: target_transactions_mortality,
9898
};
99-
Self::Finality::start_relay_guards(
100-
&target_client,
101-
&target_transactions_params,
102-
target_client.can_start_version_guard(),
103-
)
104-
.await?;
99+
Self::Finality::start_relay_guards(&target_client, target_client.can_start_version_guard())
100+
.await?;
105101

106102
substrate_relay_helper::finality::run::<Self::Finality>(
107103
source_client,

0 commit comments

Comments
 (0)