mirror of
https://github.com/Revertron/Alfis
synced 2024-11-03 15:40:19 +00:00
Fixed wait for signing mode in miner.
This commit is contained in:
parent
85c2a7e668
commit
d8ac1e3c32
@ -13,7 +13,7 @@ use crate::blockchain::enums::BlockQuality::*;
|
||||
use crate::blockchain::hash_utils::*;
|
||||
use crate::settings::Settings;
|
||||
use crate::keys::check_public_key_strength;
|
||||
use std::cmp::min;
|
||||
use std::cmp::{min, max};
|
||||
|
||||
const DB_NAME: &str = "blockchain.db";
|
||||
const SQL_CREATE_TABLES: &str = "CREATE TABLE blocks (
|
||||
@ -329,6 +329,19 @@ impl Chain {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn next_minable_block(&self) -> u64 {
|
||||
match self.last_full_block {
|
||||
None => { self.height() + 1 }
|
||||
Some(ref block) => {
|
||||
if block.index < LOCKER_BLOCK_START {
|
||||
self.height() + 1
|
||||
} else {
|
||||
max(block.index, self.height()) + LOCKER_BLOCK_SIGNS
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn max_height(&self) -> u64 {
|
||||
self.max_height
|
||||
}
|
||||
|
12
src/miner.rs
12
src/miner.rs
@ -209,14 +209,10 @@ fn find_hash(context: Arc<Mutex<Context>>, digest: &mut dyn Digest, mut block: B
|
||||
loop {
|
||||
block.random = rand::random();
|
||||
block.index = context.lock().unwrap().chain.height() + 1;
|
||||
if let Some(last_block) = context.lock().unwrap().chain.last_block() {
|
||||
block.prev_block_hash = last_block.hash;
|
||||
if block.transaction.is_some() && last_block.transaction.is_some() {
|
||||
// We can't mine our domain block over a block with domain
|
||||
// TODO make a method in Chain to get next available to mine block index
|
||||
thread::sleep(Duration::from_millis(1000));
|
||||
continue;
|
||||
}
|
||||
if context.lock().unwrap().chain.next_minable_block() > block.index {
|
||||
// We can't mine now, as we need to wait for block to be signed
|
||||
thread::sleep(Duration::from_millis(1000));
|
||||
continue;
|
||||
}
|
||||
debug!("Mining block {}", serde_json::to_string(&block).unwrap());
|
||||
for nonce in 0..std::u64::MAX {
|
||||
|
Loading…
Reference in New Issue
Block a user