diff options
| -rw-r--r-- | src/blocks.rs | 16 | ||||
| -rw-r--r-- | src/network.rs | 2 |
2 files changed, 6 insertions, 12 deletions
diff --git a/src/blocks.rs b/src/blocks.rs index 758fe71..288e754 100644 --- a/src/blocks.rs +++ b/src/blocks.rs @@ -42,9 +42,9 @@ impl Block { unreachable!() } - pub fn verify_pow(&mut self, pow: u64) -> bool { + pub fn verify_pow(&mut self) -> bool { let mut hasher = DefaultHasher::new(); - (&self.prev_hash, &self.trans, pow).hash(&mut hasher); + self.hash(&mut hasher); hasher .finish() .to_string() @@ -66,15 +66,9 @@ impl Hash for Block { .hash(state); self.trans .hash(state); - if self - .pow - .is_none() - { - Self::calc_pow(self).hash(state); - } else { - self.pow - .hash(state); - } + self.pow + .expect("Cannot hash whole block with no PoW") + .hash(state); } } diff --git a/src/network.rs b/src/network.rs index f1ae17f..fd0362c 100644 --- a/src/network.rs +++ b/src/network.rs @@ -159,7 +159,7 @@ impl Peer { match req { Request::Block(mut block) => match block.pow { Some(pow) => { - if !block.verify_pow(pow) { + if !block.verify_pow() { eprintln!("Rejecting remote block, POW verification failed"); // TODO: log remote IP return; } |
