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
+7 -23
View File
@@ -150,12 +150,7 @@ pub enum Error {
/// Provisioner run arguments.
#[derive(Debug, Clone, Copy)]
pub struct ProvisionerConfig {
/// If enabled, dispute votes will be provided to `fn create_inherent`, otherwise not.
/// Long term we will obviously always want disputes to be enabled, this option exists for testing purposes
/// and will be removed in the near future.
pub disputes_enabled: bool,
}
pub struct ProvisionerConfig;
impl JobTrait for ProvisionerJob {
type ToJob = ProvisionerMessage;
@@ -170,7 +165,7 @@ impl JobTrait for ProvisionerJob {
// this function is in charge of creating and executing the job's main loop
fn run<S: SubsystemSender>(
leaf: ActivatedLeaf,
run_args: Self::RunArgs,
_: Self::RunArgs,
metrics: Self::Metrics,
receiver: mpsc::Receiver<ProvisionerMessage>,
mut sender: JobSender<S>,
@@ -179,12 +174,8 @@ impl JobTrait for ProvisionerJob {
async move {
let job = ProvisionerJob::new(leaf, metrics, receiver);
job.run_loop(
sender.subsystem_sender(),
run_args.disputes_enabled,
PerLeafSpan::new(span, "provisioner"),
)
.await
job.run_loop(sender.subsystem_sender(), PerLeafSpan::new(span, "provisioner"))
.await
}
.boxed()
}
@@ -210,7 +201,6 @@ impl ProvisionerJob {
async fn run_loop(
mut self,
sender: &mut impl SubsystemSender,
disputes_enabled: bool,
span: PerLeafSpan,
) -> Result<(), Error> {
loop {
@@ -221,7 +211,7 @@ impl ProvisionerJob {
let _timer = self.metrics.time_request_inherent_data();
if self.inherent_after.is_ready() {
self.send_inherent_data(sender, vec![return_sender], disputes_enabled).await;
self.send_inherent_data(sender, vec![return_sender]).await;
} else {
self.awaiting_inherent.push(return_sender);
}
@@ -238,7 +228,7 @@ impl ProvisionerJob {
let _span = span.child("send-inherent-data");
let return_senders = std::mem::take(&mut self.awaiting_inherent);
if !return_senders.is_empty() {
self.send_inherent_data(sender, return_senders, disputes_enabled).await;
self.send_inherent_data(sender, return_senders).await;
}
}
}
@@ -251,7 +241,6 @@ impl ProvisionerJob {
&mut self,
sender: &mut impl SubsystemSender,
return_senders: Vec<oneshot::Sender<ProvisionerInherentData>>,
disputes_enabled: bool,
) {
if let Err(err) = send_inherent_data(
&self.leaf,
@@ -259,7 +248,6 @@ impl ProvisionerJob {
&self.backed_candidates,
return_senders,
sender,
disputes_enabled,
&self.metrics,
)
.await
@@ -273,7 +261,6 @@ impl ProvisionerJob {
signed_bitfield_count = self.signed_bitfields.len(),
backed_candidates_count = self.backed_candidates.len(),
leaf_hash = ?self.leaf.hash,
disputes_enabled,
"inherent data sent successfully"
);
}
@@ -331,7 +318,6 @@ async fn send_inherent_data(
candidates: &[CandidateReceipt],
return_senders: Vec<oneshot::Sender<ProvisionerInherentData>>,
from_job: &mut impl SubsystemSender,
disputes_enabled: bool,
metrics: &Metrics,
) -> Result<(), Error> {
let availability_cores = request_availability_cores(leaf.hash, from_job)
@@ -339,8 +325,7 @@ async fn send_inherent_data(
.await
.map_err(|err| Error::CanceledAvailabilityCores(err))??;
let disputes =
if disputes_enabled { select_disputes(from_job, metrics).await? } else { vec![] };
let disputes = select_disputes(from_job, metrics).await?;
// Only include bitfields on fresh leaves. On chain reversions, we want to make sure that
// there will be at least one block, which cannot get disputed, so the chain can make progress.
@@ -354,7 +339,6 @@ async fn send_inherent_data(
gum::debug!(
target: LOG_TARGET,
disputes_enabled = disputes_enabled,
availability_cores_len = availability_cores.len(),
disputes_count = disputes.len(),
bitfields_count = bitfields.len(),