Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Commit

Permalink
Update malus
Browse files Browse the repository at this point in the history
  • Loading branch information
slumber committed Jun 22, 2022
1 parent 505852d commit cb21c13
Showing 1 changed file with 25 additions and 22 deletions.
47 changes: 25 additions & 22 deletions node/malus/src/variants/suggest_garbage_candidate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ use polkadot_cli::{
ProvideRuntimeApi, SpawnNamed,
},
};
use polkadot_node_core_candidate_validation::find_validation_data;
use polkadot_node_primitives::{AvailableData, BlockData, PoV};
use polkadot_primitives::v2::{CandidateDescriptor, CandidateHash};

Expand Down Expand Up @@ -84,7 +83,13 @@ where
) -> Option<FromOverseer<Self::Message>> {
match msg {
FromOverseer::Communication {
msg: CandidateBackingMessage::Second(relay_parent, candidate, _pov),
msg:
CandidateBackingMessage::Second(
relay_parent,
candidate,
persisted_validation_data,
_pov,
),
} => {
gum::debug!(
target: MALUS,
Expand All @@ -99,7 +104,7 @@ where
let mut new_sender = subsystem_sender.clone();
let _candidate = candidate.clone();
self.spawner.spawn_blocking(
"malus-get-validation-data",
"malus-get-n-validators",
Some("malus"),
Box::pin(async move {
gum::trace!(target: MALUS, "Requesting validators");
Expand All @@ -110,25 +115,16 @@ where
.unwrap()
.len();
gum::trace!(target: MALUS, "Validators {}", n_validators);
match find_validation_data(&mut new_sender, &_candidate.descriptor()).await
{
Ok(Some((validation_data, validation_code))) => {
sender
.send((validation_data, validation_code, n_validators))
.expect("channel is still open");
},
_ => {
panic!("Unable to fetch validation data");
},
}
sender.send(n_validators).expect("channel is still open");
}),
);

let (validation_data, validation_code, n_validators) = receiver.recv().unwrap();
let n_validators = receiver.recv().unwrap();

let validation_data_hash = validation_data.hash();
let validation_code_hash = validation_code.hash();
let validation_data_relay_parent_number = validation_data.relay_parent_number;
let validation_data_hash = persisted_validation_data.hash();
let validation_code_hash = candidate.descriptor.validation_code_hash;
let validation_data_relay_parent_number =
persisted_validation_data.relay_parent_number;

gum::trace!(
target: MALUS,
Expand All @@ -138,11 +134,13 @@ where
?validation_data_hash,
?validation_code_hash,
?validation_data_relay_parent_number,
"Fetched validation data."
"Fetched current validators set"
);

let malicious_available_data =
AvailableData { pov: Arc::new(pov.clone()), validation_data };
let malicious_available_data = AvailableData {
pov: Arc::new(pov.clone()),
validation_data: persisted_validation_data.clone(),
};

let pov_hash = pov.hash();
let erasure_root = {
Expand Down Expand Up @@ -205,7 +203,12 @@ where
.insert(malicious_candidate_hash, candidate.hash());

let message = FromOverseer::Communication {
msg: CandidateBackingMessage::Second(relay_parent, malicious_candidate, pov),
msg: CandidateBackingMessage::Second(
relay_parent,
malicious_candidate,
persisted_validation_data,
pov,
),
};

Some(message)
Expand Down

0 comments on commit cb21c13

Please sign in to comment.