Finally, genesis block generation without channels

This commit is contained in:
Greg Fitzgerald
2018-03-04 14:30:39 -07:00
parent 7da8a5e2d1
commit 955f76baab
3 changed files with 39 additions and 53 deletions

View File

@@ -8,7 +8,7 @@
use std::collections::HashSet;
use std::sync::mpsc::{Receiver, SyncSender, TryRecvError};
use std::time::{Duration, Instant};
use log::{extend_and_hash, Entry, Sha256Hash};
use log::{create_entry_mut, Entry, Sha256Hash};
use event::{get_signature, verify_event, Event, Signature};
use serde::Serialize;
use std::fmt::Debug;
@@ -59,19 +59,10 @@ impl<T: Serialize + Clone + Debug> Logger<T> {
}
pub fn log_event(&mut self, event: Event<T>) -> Result<(), (Entry<T>, ExitReason)> {
if let Some(sig) = get_signature(&event) {
self.last_id = extend_and_hash(&self.last_id, &sig);
self.num_hashes += 1;
}
let entry = Entry {
id: self.last_id,
num_hashes: self.num_hashes,
event,
};
let entry = create_entry_mut(&mut self.last_id, &mut self.num_hashes, event);
if let Err(_) = self.sender.send(entry.clone()) {
return Err((entry, ExitReason::SendDisconnected));
}
self.num_hashes = 0;
Ok(())
}