diff --git a/chain/src/chain.rs b/chain/src/chain.rs index bef29cb90..d56ae6c45 100644 --- a/chain/src/chain.rs +++ b/chain/src/chain.rs @@ -348,23 +348,21 @@ impl Chain { &self, headers: &Vec<BlockHeader>, opts: Options, - ) -> Result<Tip, Error> { + ) -> Result<(), Error> { let mut batch = self.store.batch()?; let mut ctx = self.new_ctx(opts, &mut batch)?; - let res = pipe::sync_block_headers(headers, &mut ctx, &mut batch)?; + pipe::sync_block_headers(headers, &mut ctx, &mut batch)?; batch.commit()?; - Ok(res) + Ok(()) } fn new_ctx(&self, opts: Options, batch: &mut Batch) -> Result<pipe::BlockContext, Error> { let head = batch.head()?; let header_head = batch.get_header_head()?; - let sync_head = batch.get_sync_head()?; Ok(pipe::BlockContext { opts, head, header_head, - sync_head, pow_verifier: self.pow_verifier, block_hashes_cache: self.block_hashes_cache.clone(), txhashset: self.txhashset.clone(), diff --git a/chain/src/pipe.rs b/chain/src/pipe.rs index e0263b540..6c3f9d784 100644 --- a/chain/src/pipe.rs +++ b/chain/src/pipe.rs @@ -47,8 +47,6 @@ pub struct BlockContext { pub head: Tip, /// The header head pub header_head: Tip, - /// The sync head - pub sync_head: Tip, /// The POW verification function pub pow_verifier: fn(&BlockHeader, u8) -> Result<(), pow::Error>, /// MMR sum tree states @@ -206,7 +204,7 @@ pub fn sync_block_headers( headers: &Vec<BlockHeader>, ctx: &mut BlockContext, batch: &mut store::Batch, -) -> Result<Tip, Error> { +) -> Result<(), Error> { if let Some(header) = headers.first() { debug!( LOGGER, @@ -217,8 +215,6 @@ pub fn sync_block_headers( ); } - let mut sync_tip = batch.get_sync_head()?; - for header in headers { handle_block_header(header, ctx, batch)?; @@ -227,10 +223,9 @@ pub fn sync_block_headers( // and become the "most work" chain. // header_head and sync_head will diverge in this situation until we switch to // a single "most work" chain. - sync_tip = update_sync_head(header, ctx, batch)?; + update_sync_head(header, batch)?; } - - Ok(sync_tip) + Ok(()) } fn handle_block_header( @@ -660,18 +655,13 @@ fn block_has_more_work(header: &BlockHeader, tip: &Tip) -> bool { } /// Update the sync head so we can keep syncing from where we left off. -fn update_sync_head( - bh: &BlockHeader, - ctx: &mut BlockContext, - batch: &mut store::Batch, -) -> Result<Tip, Error> { +fn update_sync_head(bh: &BlockHeader, batch: &mut store::Batch) -> Result<(), Error> { let tip = Tip::from_block(bh); batch .save_sync_head(&tip) .map_err(|e| ErrorKind::StoreErr(e, "pipe save sync head".to_owned()))?; - ctx.sync_head = tip.clone(); debug!(LOGGER, "sync head {} @ {}", bh.hash(), bh.height); - Ok(tip) + Ok(()) } fn update_header_head(