From d15e68de27f8b5e1a3130a0f8415dd132e5bbe58 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Tue, 21 Oct 2025 21:10:03 +0800 Subject: feat: display block and blockchain --- src/blocks.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/blocks.rs') diff --git a/src/blocks.rs b/src/blocks.rs index a058c3c..9908be6 100644 --- a/src/blocks.rs +++ b/src/blocks.rs @@ -1,6 +1,7 @@ use bincode::Encode; use sha2::{Digest, Sha256, digest::DynDigest}; use std::{ + fmt::Display, hash::{Hash, Hasher}, ops::Deref, }; @@ -13,7 +14,7 @@ pub trait CryptoDigest { fn digest(&self, state: &mut impl DynDigest); } -#[derive(Deserialize, Serialize, Clone, PartialEq, Encode)] +#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Encode)] pub struct Block { pub prev_hash: Vec, pub trans: Transaction, @@ -79,7 +80,7 @@ impl CryptoDigest for Block { } } -#[derive(Default, Deserialize, Serialize, Clone, PartialEq)] +#[derive(Debug, Default, Deserialize, Serialize, Clone, PartialEq)] pub struct BlockChain { pub blocks: Vec, } @@ -106,9 +107,13 @@ impl BlockChain { } pub fn store(&mut self, block: Block) { - // TODO: verify blocks - self.blocks - .push(block) + // TODO: check config + if (block.verify_pow()) { + self.blocks + .push(block) + } else { + eprint!("Err: Failed to store unverified block") + } } } -- cgit v1.2.3