mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-22 05:35:42 +00:00
enable disputes for known chains, except for polkadot (#4464)
* enable disputes, for all known chains but polkadot * chore: fmt * don't propagate disputes either * review * remove disputes feature * remove superfluous line * Update node/service/src/lib.rs Co-authored-by: Andronik Ordian <write@reusable.software> * fixup * allow being a dummy * rialto * add an enum, to make things work better * overseer * fix test * comments * move condition out * excess arg Co-authored-by: Andronik Ordian <write@reusable.software>
This commit is contained in:
committed by
GitHub
parent
fad55b95fa
commit
2457c26a08
@@ -161,11 +161,16 @@ where
|
||||
|
||||
/// Create a new [`SelectRelayChain`] wrapping the given chain backend
|
||||
/// and a handle to the overseer.
|
||||
pub fn new_disputes_aware(backend: Arc<B>, overseer: Handle, metrics: Metrics) -> Self {
|
||||
pub fn new_disputes_aware(
|
||||
backend: Arc<B>,
|
||||
overseer: Handle,
|
||||
metrics: Metrics,
|
||||
disputes_enabled: bool,
|
||||
) -> Self {
|
||||
tracing::debug!(
|
||||
target: LOG_TARGET,
|
||||
"Using {} chain selection algorithm",
|
||||
if cfg!(feature = "disputes") {
|
||||
if disputes_enabled {
|
||||
"dispute aware relay"
|
||||
} else {
|
||||
// no disputes are queried, that logic is disabled
|
||||
@@ -176,7 +181,10 @@ where
|
||||
SelectRelayChain {
|
||||
longest_chain: sc_consensus::LongestChain::new(backend.clone()),
|
||||
selection: IsDisputesAwareWithOverseer::Yes(SelectRelayChainInner::new(
|
||||
backend, overseer, metrics,
|
||||
backend,
|
||||
overseer,
|
||||
metrics,
|
||||
disputes_enabled,
|
||||
)),
|
||||
}
|
||||
}
|
||||
@@ -233,6 +241,7 @@ where
|
||||
pub struct SelectRelayChainInner<B, OH> {
|
||||
backend: Arc<B>,
|
||||
overseer: OH,
|
||||
disputes_enabled: bool,
|
||||
metrics: Metrics,
|
||||
}
|
||||
|
||||
@@ -243,8 +252,8 @@ where
|
||||
{
|
||||
/// Create a new [`SelectRelayChainInner`] wrapping the given chain backend
|
||||
/// and a handle to the overseer.
|
||||
pub fn new(backend: Arc<B>, overseer: OH, metrics: Metrics) -> Self {
|
||||
SelectRelayChainInner { backend, overseer, metrics }
|
||||
pub fn new(backend: Arc<B>, overseer: OH, metrics: Metrics, disputes_enabled: bool) -> Self {
|
||||
SelectRelayChainInner { backend, overseer, metrics, disputes_enabled }
|
||||
}
|
||||
|
||||
fn block_header(&self, hash: Hash) -> Result<PolkadotHeader, ConsensusError> {
|
||||
@@ -282,6 +291,7 @@ where
|
||||
backend: self.backend.clone(),
|
||||
overseer: self.overseer.clone(),
|
||||
metrics: self.metrics.clone(),
|
||||
disputes_enabled: self.disputes_enabled,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -371,7 +381,7 @@ where
|
||||
let mut overseer = self.overseer.clone();
|
||||
tracing::trace!(target: LOG_TARGET, ?best_leaf, "Longest chain");
|
||||
|
||||
let subchain_head = if cfg!(feature = "disputes") {
|
||||
let subchain_head = if self.disputes_enabled {
|
||||
let (tx, rx) = oneshot::channel();
|
||||
overseer
|
||||
.send_msg(
|
||||
@@ -476,7 +486,7 @@ where
|
||||
let lag = initial_leaf_number.saturating_sub(subchain_number);
|
||||
self.metrics.note_approval_checking_finality_lag(lag);
|
||||
|
||||
let (lag, subchain_head) = if cfg!(feature = "disputes") {
|
||||
let (lag, subchain_head) = if self.disputes_enabled {
|
||||
// Prevent sending flawed data to the dispute-coordinator.
|
||||
if Some(subchain_block_descriptions.len() as _) !=
|
||||
subchain_number.checked_sub(target_number)
|
||||
|
||||
Reference in New Issue
Block a user