diff options
| -rw-r--r-- | src/blocks.rs | 10 | ||||
| -rw-r--r-- | src/network.rs | 4 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/blocks.rs b/src/blocks.rs index 17e6d4f..67af3f1 100644 --- a/src/blocks.rs +++ b/src/blocks.rs @@ -17,7 +17,7 @@ pub trait CryptoDigest { pub struct Block { pub prev_hash: Vec<u8>, pub trans: Transaction, - pub pow: Vec<u8>, + pub pow: Option<u64>, } impl Block { @@ -27,7 +27,7 @@ impl Block { .unwrap_or(&[]) .to_vec(), // special blocks trans, - pow: Vec::default(), + pow: None, } } @@ -45,14 +45,14 @@ impl Block { }) } - fn calc_pow(&self) -> Vec<u8> { + fn calc_pow(&self) -> u64 { for i in 0.. { // reset every loop let mut hasher = Sha256::new(); Digest::update(&mut hasher, bincode::encode_to_vec((&self.prev_hash, &self.trans, i), bincode::config::standard()).unwrap()); let hashed = hasher.finalize(); if Self::pref_zeros(&hashed).is_ok() { - return hashed.to_vec(); + return i; } } unreachable!() @@ -65,7 +65,7 @@ impl Block { } pub fn calc_set_pow(&mut self) { - self.pow = self.calc_pow(); + self.pow = Some(self.calc_pow()); } } diff --git a/src/network.rs b/src/network.rs index c18ae07..197c997 100644 --- a/src/network.rs +++ b/src/network.rs @@ -225,7 +225,7 @@ impl Peer { Request::Block(mut block) => { if !block .pow - .is_empty() + .is_none() { if !block.verify_pow() { eprintln!("Rejecting remote block, POW verification failed"); // TODO: log remote IP @@ -274,7 +274,7 @@ impl Peer { .fold(true, |i, b| { if i { b.pow - .is_empty() + .is_none() } else { false } |
