This commit is contained in:
Ignotus Peverell 2017-10-22 10:40:24 +00:00
parent fd08c34474
commit 2d105deea7
No known key found for this signature in database
GPG key ID: 99CD25F39F8F8211
3 changed files with 60 additions and 50 deletions

View file

@ -76,7 +76,7 @@ impl NetAdapter for NetToChainAdapter {
match res { match res {
Ok(_) => self.syncer.borrow().block_received(bhash), Ok(_) => self.syncer.borrow().block_received(bhash),
Err(chain::Error::Unfit(_)) => self.syncer.borrow().block_received(bhash), Err(chain::Error::Unfit(_)) => self.syncer.borrow().block_received(bhash),
Err(_) => {}, Err(_) => {}
} }
} }
} }

View file

@ -132,7 +132,7 @@ impl Server {
Seeding::WebStatic => { Seeding::WebStatic => {
seed.connect_and_monitor(evt_handle.clone(), seed::web_seeds(evt_handle.clone())); seed.connect_and_monitor(evt_handle.clone(), seed::web_seeds(evt_handle.clone()));
} }
_ => {}, _ => {}
} }
if config.seeding_type != Seeding::None { if config.seeding_type != Seeding::None {

View file

@ -93,7 +93,12 @@ impl Syncer {
let tip = self.chain.get_header_head()?; let tip = self.chain.get_header_head()?;
// TODO do something better (like trying to get more) if we lose peers // TODO do something better (like trying to get more) if we lose peers
let peer = self.p2p.most_work_peer().unwrap(); let peer = self.p2p.most_work_peer().unwrap();
debug!(LOGGER, "Sync: peer {} vs us {}", peer.info.total_difficulty, tip.total_difficulty); debug!(
LOGGER,
"Sync: peer {} vs us {}",
peer.info.total_difficulty,
tip.total_difficulty
);
let more_headers = peer.info.total_difficulty > tip.total_difficulty; let more_headers = peer.info.total_difficulty > tip.total_difficulty;
let more_bodies = { let more_bodies = {
@ -167,7 +172,12 @@ impl Syncer {
panic!("Failed to download required block {}", download.hash); panic!("Failed to download required block {}", download.hash);
} }
if download.retries < (elapsed / 5) as u8 { if download.retries < (elapsed / 5) as u8 {
debug!(LOGGER, "Retry {} on block {}", download.retries, download.hash); debug!(
LOGGER,
"Retry {} on block {}",
download.retries,
download.hash
);
self.request_block(download.hash); self.request_block(download.hash);
download.retries += 1; download.retries += 1;
} }
@ -180,11 +190,10 @@ impl Syncer {
let h = blocks_to_download.pop().unwrap(); let h = blocks_to_download.pop().unwrap();
self.request_block(h); self.request_block(h);
count += 1; count += 1;
blocks_downloading.push( blocks_downloading.push(BlockDownload {
BlockDownload {
hash: h, hash: h,
start_time: Instant::now(), start_time: Instant::now(),
retries: 0 retries: 0,
}); });
} }
debug!( debug!(
@ -200,7 +209,9 @@ impl Syncer {
pub fn block_received(&self, bh: Hash) { pub fn block_received(&self, bh: Hash) {
// just clean up the downloading list // just clean up the downloading list
let mut bds = self.blocks_downloading.lock().unwrap(); let mut bds = self.blocks_downloading.lock().unwrap();
bds.iter().position(|ref h| h.hash == bh).map(|n| bds.remove(n)); bds.iter().position(|ref h| h.hash == bh).map(
|n| bds.remove(n),
);
} }
/// Request some block headers from a peer to advance us /// Request some block headers from a peer to advance us
@ -283,5 +294,4 @@ impl Syncer {
debug!(LOGGER, "Error requesting block: {:?}", e); debug!(LOGGER, "Error requesting block: {:?}", e);
} }
} }
} }