Fixed tests and tweaked sync progress report

This commit is contained in:
arkpar 2016-01-22 15:58:52 +01:00
parent e5e0d3d136
commit b5f0a41265
4 changed files with 15 additions and 8 deletions

View File

@ -69,7 +69,7 @@ impl Informant {
let sync_info = sync.status(); let sync_info = sync.status();
if let (_, &Some(ref last_cache_info), &Some(ref last_report)) = (self.chain_info.read().unwrap().deref(), self.cache_info.read().unwrap().deref(), self.report.read().unwrap().deref()) { if let (_, &Some(ref last_cache_info), &Some(ref last_report)) = (self.chain_info.read().unwrap().deref(), self.cache_info.read().unwrap().deref(), self.report.read().unwrap().deref()) {
println!("[ {} {} ]---[ {} blk/s | {} tx/s | {} gas/s //··· {}/{} peers, {} downloaded, {} queued ···// {} ({}) bl {} ({}) ex ]", println!("[ {} {} ]---[ {} blk/s | {} tx/s | {} gas/s //··· {}/{} peers, {} downloaded, {}+{} queued ···// {} ({}) bl {} ({}) ex ]",
chain_info.best_block_number, chain_info.best_block_number,
chain_info.best_block_hash, chain_info.best_block_hash,
(report.blocks_imported - last_report.blocks_imported) / dur, (report.blocks_imported - last_report.blocks_imported) / dur,
@ -79,7 +79,8 @@ impl Informant {
sync_info.num_active_peers, sync_info.num_active_peers,
sync_info.num_peers, sync_info.num_peers,
sync_info.blocks_received, sync_info.blocks_received,
queue_info.queue_size, queue_info.unverified_queue_size,
queue_info.verified_queue_size,
cache_info.blocks, cache_info.blocks,
cache_info.blocks as isize - last_cache_info.blocks as isize, cache_info.blocks as isize - last_cache_info.blocks as isize,

View File

@ -15,8 +15,10 @@ use service::*;
pub struct BlockQueueInfo { pub struct BlockQueueInfo {
/// Indicates that queue is full /// Indicates that queue is full
pub full: bool, pub full: bool,
/// Number of queued blocks /// Number of queued blocks pending verification
pub queue_size: usize, pub unverified_queue_size: usize,
/// Number of verified queued blocks pending import
pub verified_queue_size: usize,
} }
/// A queue of blocks. Sits between network or other I/O and the BlockChain. /// A queue of blocks. Sits between network or other I/O and the BlockChain.
@ -235,9 +237,11 @@ impl BlockQueue {
/// Get queue status. /// Get queue status.
pub fn queue_info(&self) -> BlockQueueInfo { pub fn queue_info(&self) -> BlockQueueInfo {
let verification = self.verification.lock().unwrap();
BlockQueueInfo { BlockQueueInfo {
full: false, full: false,
queue_size: self.verification.lock().unwrap().unverified.len(), verified_queue_size: verification.verified.len(),
unverified_queue_size: verification.unverified.len(),
} }
} }
} }

View File

@ -17,7 +17,7 @@
/// fn main() { /// fn main() {
/// let mut service = NetworkService::start().unwrap(); /// let mut service = NetworkService::start().unwrap();
/// let dir = env::temp_dir(); /// let dir = env::temp_dir();
/// let client = Arc::new(Client::new(ethereum::new_frontier(), &dir).unwrap()); /// let client = Client::new(ethereum::new_frontier(), &dir, service.io().channel()).unwrap();
/// EthSync::register(&mut service, client); /// EthSync::register(&mut service, client);
/// } /// }
/// ``` /// ```

View File

@ -131,7 +131,8 @@ impl BlockChainClient for TestBlockChainClient {
} }
} }
} }
if number == self.numbers.read().unwrap().len() { let len = self.numbers.read().unwrap().len();
if number == len {
*self.difficulty.write().unwrap().deref_mut() += header.difficulty; *self.difficulty.write().unwrap().deref_mut() += header.difficulty;
mem::replace(self.last_hash.write().unwrap().deref_mut(), header.hash()); mem::replace(self.last_hash.write().unwrap().deref_mut(), header.hash());
self.blocks.write().unwrap().insert(header.hash(), b); self.blocks.write().unwrap().insert(header.hash(), b);
@ -155,7 +156,8 @@ impl BlockChainClient for TestBlockChainClient {
fn queue_info(&self) -> BlockQueueInfo { fn queue_info(&self) -> BlockQueueInfo {
BlockQueueInfo { BlockQueueInfo {
full: false, full: false,
queue_size: 0, verified_queue_size: 0,
unverified_queue_size: 0,
} }
} }