enable disputes on all chains (#5182)

* enable disputes on all chains

* fmt
This commit is contained in:
asynchronous rob
2022-03-23 11:42:10 -06:00
committed by GitHub
parent b1f9fb2aaa
commit 7a1a3886ee
5 changed files with 23 additions and 83 deletions
@@ -164,30 +164,13 @@ 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,
disputes_enabled: bool,
) -> Self {
gum::debug!(
target: LOG_TARGET,
"Using {} chain selection algorithm",
if disputes_enabled {
"dispute aware relay"
} else {
// no disputes are queried, that logic is disabled
// in `fn finality_target_with_longest_chain`.
"short-circuited relay"
}
);
pub fn new_with_overseer(backend: Arc<B>, overseer: Handle, metrics: Metrics) -> Self {
gum::debug!(target: LOG_TARGET, "Using dispute aware relay-chain selection algorithm",);
SelectRelayChain {
longest_chain: sc_consensus::LongestChain::new(backend.clone()),
selection: IsDisputesAwareWithOverseer::Yes(SelectRelayChainInner::new(
backend,
overseer,
metrics,
disputes_enabled,
backend, overseer, metrics,
)),
}
}
@@ -244,7 +227,6 @@ where
pub struct SelectRelayChainInner<B, OH> {
backend: Arc<B>,
overseer: OH,
disputes_enabled: bool,
metrics: Metrics,
}
@@ -255,8 +237,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, disputes_enabled: bool) -> Self {
SelectRelayChainInner { backend, overseer, metrics, disputes_enabled }
pub fn new(backend: Arc<B>, overseer: OH, metrics: Metrics) -> Self {
SelectRelayChainInner { backend, overseer, metrics }
}
fn block_header(&self, hash: Hash) -> Result<PolkadotHeader, ConsensusError> {
@@ -294,7 +276,6 @@ where
backend: self.backend.clone(),
overseer: self.overseer.clone(),
metrics: self.metrics.clone(),
disputes_enabled: self.disputes_enabled,
}
}
}
@@ -392,7 +373,7 @@ where
let mut overseer = self.overseer.clone();
gum::trace!(target: LOG_TARGET, ?best_leaf, "Longest chain");
let subchain_head = if self.disputes_enabled {
let subchain_head = {
let (tx, rx) = oneshot::channel();
overseer
.send_msg(
@@ -413,13 +394,6 @@ where
None => return Ok(target_hash),
Some(best) => best,
}
} else {
gum::trace!(target: LOG_TARGET, ?best_leaf, "Dummy disputes active");
if best_leaf == target_hash {
return Ok(target_hash)
} else {
best_leaf
}
};
let target_number = self.block_number(target_hash)?;
@@ -493,7 +467,7 @@ where
let lag = initial_leaf_number.saturating_sub(subchain_number);
self.metrics.note_approval_checking_finality_lag(lag);
let (lag, subchain_head) = if self.disputes_enabled {
let (lag, subchain_head) = {
// Prevent sending flawed data to the dispute-coordinator.
if Some(subchain_block_descriptions.len() as _) !=
subchain_number.checked_sub(target_number)
@@ -545,8 +519,6 @@ where
},
};
(lag, subchain_head)
} else {
(lag, subchain_head)
};
gum::trace!(