chore: typos, rm oudated todos (#2962)

This commit is contained in:
Matthias Seitz
2023-06-02 15:41:31 +02:00
committed by GitHub
parent 36528f1b38
commit f7a35f09b5
3 changed files with 60 additions and 63 deletions

View File

@ -341,7 +341,7 @@ impl<DB: Database, C: Consensus, EF: ExecutorFactory> BlockchainTree<DB, C, EF>
/// This tries to append the given block to the canonical chain. /// This tries to append the given block to the canonical chain.
/// ///
/// WARNING: this expects that the block is part of the canonical chain: The block's parent is /// WARNING: this expects that the block extends the canonical chain: The block's parent is
/// part of the canonical chain (e.g. the block's parent is the latest canonical hash). See also /// part of the canonical chain (e.g. the block's parent is the latest canonical hash). See also
/// [Self::is_block_hash_canonical]. /// [Self::is_block_hash_canonical].
#[instrument(skip_all, target = "blockchain_tree")] #[instrument(skip_all, target = "blockchain_tree")]
@ -357,65 +357,66 @@ impl<DB: Database, C: Consensus, EF: ExecutorFactory> BlockchainTree<DB, C, EF>
// TODO save pending block to database // TODO save pending block to database
// https://github.com/paradigmxyz/reth/issues/1713 // https://github.com/paradigmxyz/reth/issues/1713
let db = self.externals.database(); let (block_status, chain) = {
let provider = let db = self.externals.database();
db.provider().map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))?; let provider = db
.provider()
.map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))?;
// Validate that the block is post merge // Validate that the block is post merge
let parent_td = provider let parent_td = provider
.header_td(&block.parent_hash) .header_td(&block.parent_hash)
.map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))? .map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))?
.ok_or_else(|| { .ok_or_else(|| {
InsertBlockError::tree_error( InsertBlockError::tree_error(
BlockchainTreeError::CanonicalChain { block_hash: block.parent_hash }, BlockchainTreeError::CanonicalChain { block_hash: block.parent_hash },
block.block.clone(), block.block.clone(),
) )
})?; })?;
// Pass the parent total difficulty to short-circuit unnecessary calculations. // Pass the parent total difficulty to short-circuit unnecessary calculations.
if !self.externals.chain_spec.fork(Hardfork::Paris).active_at_ttd(parent_td, U256::ZERO) { if !self.externals.chain_spec.fork(Hardfork::Paris).active_at_ttd(parent_td, U256::ZERO)
return Err(InsertBlockError::execution_error( {
BlockExecutionError::BlockPreMerge { hash: block.hash }, return Err(InsertBlockError::execution_error(
block.block, BlockExecutionError::BlockPreMerge { hash: block.hash },
)) block.block,
} ))
}
let parent_header = provider let parent_header = provider
.header(&block.parent_hash) .header(&block.parent_hash)
.map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))? .map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))?
.ok_or_else(|| { .ok_or_else(|| {
InsertBlockError::tree_error( InsertBlockError::tree_error(
BlockchainTreeError::CanonicalChain { block_hash: block.parent_hash }, BlockchainTreeError::CanonicalChain { block_hash: block.parent_hash },
block.block.clone(), block.block.clone(),
) )
})? })?
.seal(block.parent_hash); .seal(block.parent_hash);
let canonical_chain = self.canonical_chain(); let canonical_chain = self.canonical_chain();
let (block_status, chain) = if block.parent_hash == canonical_chain.tip().hash { if block.parent_hash == canonical_chain.tip().hash {
let chain = AppendableChain::new_canonical_head_fork( let chain = AppendableChain::new_canonical_head_fork(
block, block,
&parent_header, &parent_header,
canonical_chain.inner(), canonical_chain.inner(),
parent, parent,
&self.externals, &self.externals,
)?; )?;
(BlockStatus::Valid, chain) (BlockStatus::Valid, chain)
} else { } else {
let chain = AppendableChain::new_canonical_fork( let chain = AppendableChain::new_canonical_fork(
block, block,
&parent_header, &parent_header,
canonical_chain.inner(), canonical_chain.inner(),
parent, parent,
&self.externals, &self.externals,
)?; )?;
(BlockStatus::Accepted, chain) (BlockStatus::Accepted, chain)
}
}; };
// let go of `db` immutable borrow
drop(provider);
self.insert_chain(chain); self.insert_chain(chain);
self.try_connect_buffered_blocks(block_num_hash); self.try_connect_buffered_blocks(block_num_hash);
Ok(block_status) Ok(block_status)

View File

@ -227,12 +227,10 @@ impl AppendableChain {
let (block, senders) = block.into_components(); let (block, senders) = block.into_components();
let block = block.unseal(); let block = block.unseal();
//get state provider. // get the state provider.
let db = externals.database(); let db = externals.database();
// TODO, small perf can check if caonical fork is the latest state.
let canonical_fork = post_state_data_provider.canonical_fork(); let canonical_fork = post_state_data_provider.canonical_fork();
let history_provider = db.history_by_block_number(canonical_fork.number)?; let state_provider = db.history_by_block_number(canonical_fork.number)?;
let state_provider = history_provider;
let provider = PostStateProvider::new(state_provider, post_state_data_provider); let provider = PostStateProvider::new(state_provider, post_state_data_provider);
@ -265,18 +263,16 @@ impl AppendableChain {
C: Consensus, C: Consensus,
EF: ExecutorFactory, EF: ExecutorFactory,
{ {
// some checks are done before blocks comes here. // ensure the block is a valid descendant of the parent, according to consensus rules
externals.consensus.validate_header_against_parent(&block, parent_block)?; externals.consensus.validate_header_against_parent(&block, parent_block)?;
let (block, senders) = block.into_components(); let (block, senders) = block.into_components();
let block = block.unseal(); let block = block.unseal();
//get state provider. // get the state provider.
let db = externals.database(); let db = externals.database();
// TODO, small perf can check if caonical fork is the latest state.
let canonical_fork = post_state_data_provider.canonical_fork(); let canonical_fork = post_state_data_provider.canonical_fork();
let history_provider = db.history_by_block_number(canonical_fork.number)?; let state_provider = db.history_by_block_number(canonical_fork.number)?;
let state_provider = history_provider;
let provider = PostStateProvider::new(state_provider, post_state_data_provider); let provider = PostStateProvider::new(state_provider, post_state_data_provider);

View File

@ -118,7 +118,7 @@ impl Default for Header {
} }
impl Header { impl Header {
/// Retuen paret block number and hash /// Returns the parent block's number and hash
pub fn parent_num_hash(&self) -> BlockNumHash { pub fn parent_num_hash(&self) -> BlockNumHash {
BlockNumHash { number: self.number.saturating_sub(1), hash: self.parent_hash } BlockNumHash { number: self.number.saturating_sub(1), hash: self.parent_hash }
} }