From a308fff56322726fa2c7b88b0cdf1ed8af121efe Mon Sep 17 00:00:00 2001 From: qh11 <qh11@illinois.edu> Date: Sun, 13 Feb 2022 15:39:32 -0600 Subject: [PATCH] Update worker.rs --- src/miner/worker.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/miner/worker.rs b/src/miner/worker.rs index ffaf26e..452439c 100644 --- a/src/miner/worker.rs +++ b/src/miner/worker.rs @@ -3,21 +3,26 @@ use log::{debug, info}; use crate::types::block::Block; use crate::network::server::Handle as ServerHandle; use std::thread; +use std::sync::{Arc, Mutex}; +use crate::Blockchain; #[derive(Clone)] pub struct Worker { server: ServerHandle, finished_block_chan: Receiver<Block>, + blockchain:Arc<Mutex<Blockchain>> } impl Worker { pub fn new( server: &ServerHandle, finished_block_chan: Receiver<Block>, + blockchain: &Arc<Mutex<Blockchain>> ) -> Self { Self { server: server.clone(), finished_block_chan, + blockchain: Arc::clone(blockchain) } } @@ -35,6 +40,8 @@ impl Worker { loop { let _block = self.finished_block_chan.recv().expect("Receive finished block error"); // TODO for student: insert this finished block to blockchain, and broadcast this block hash + let mut new_blockchain = self.blockchain.lock().unwrap(); + new_blockchain.insert(&_block); } } } -- GitLab