Migrate to new SyncKeyGen API.

This commit is contained in:
Andreas Fackler 2018-10-28 16:10:26 +01:00 committed by Nick Sanders
parent 440e8c2da7
commit dd7f3fe01f
2 changed files with 17 additions and 12 deletions

View File

@ -14,7 +14,7 @@ use hbbft::{
crypto::{PublicKey, PublicKeySet},
dynamic_honey_badger::{ChangeState, JoinPlan, Message as DhbMessage, Change as DhbChange, Input as DhbInput},
// queueing_honey_badger::{Change as QhbChange, Input as QhbInput},
sync_key_gen::{Ack, Part, PartOutcome, SyncKeyGen},
sync_key_gen::{Ack, AckOutcome, Part, PartOutcome, SyncKeyGen},
DistAlgorithm, Target
};
use peer::Peers;
@ -193,11 +193,11 @@ impl<T: Contribution> Handler<T> {
ack_count: &mut usize,
) {
info!("KEY GENERATION: Handling ack from '{}'...", uid);
let fault_log = sync_key_gen.handle_ack(uid, ack.clone());
if !fault_log.is_empty() {
error!("Errors handling ack: '{:?}':\n{:?}", ack, fault_log);
let ack_outcome = sync_key_gen.handle_ack(uid, ack.clone()).expect("Failed to handle Ack.");
match ack_outcome {
AckOutcome::Invalid(fault) => error!("Error handling ack: '{:?}':\n{:?}", ack, fault),
AckOutcome::Valid => *ack_count += 1,
}
*ack_count += 1;
}
fn handle_queued_acks(
@ -234,16 +234,20 @@ impl<T: Contribution> Handler<T> {
let mut rng = rand::OsRng::new().expect("Creating OS Rng has failed");
let mut skg = sync_key_gen.as_mut().unwrap();
let ack = match skg.handle_part(&mut rng, src_uid, part) {
Some(PartOutcome::Valid(ack)) => ack,
Some(PartOutcome::Invalid(faults)) => panic!(
Ok(PartOutcome::Valid(Some(ack))) => ack,
Ok(PartOutcome::Invalid(faults)) => panic!(
"Invalid part \
(FIXME: handle): {:?}",
faults
),
None => {
Ok(PartOutcome::Valid(None)) => {
error!("`DynamicHoneyBadger::handle_part` returned `None`.");
return;
}
Err(err) => {
error!("Error handling Part: {:?}", err);
return;
}
};
*part_count += 1;

View File

@ -187,14 +187,15 @@ impl<T: Contribution> State<T> {
part = opt_part.expect("This node is not a validator (somehow)!");
info!("KEY GENERATION: Handling our own `Part`...");
ack = match sync_key_gen.handle_part(&mut rng, &local_uid, part.clone()) {
Some(PartOutcome::Valid(ack)) => ack,
Some(PartOutcome::Invalid(faults)) => panic!(
ack = match sync_key_gen.handle_part(&mut rng, &local_uid, part.clone())
.expect("Handling our own Part has failed") {
PartOutcome::Valid(Some(ack)) => ack,
PartOutcome::Invalid(faults) => panic!(
"Invalid part \
(FIXME: handle): {:?}",
faults
),
None => unimplemented!(),
PartOutcome::Valid(None) => panic!("No Ack produced when handling Part."),
};
info!("KEY GENERATION: Queueing our own `Ack`...");