From f7a35f09b57c2a85889e8ead43d422653c9b24db Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Fri, 2 Jun 2023 15:41:31 +0200 Subject: [PATCH] chore: typos, rm oudated todos (#2962) --- crates/blockchain-tree/src/blockchain_tree.rs | 107 +++++++++--------- crates/blockchain-tree/src/chain.rs | 14 +-- crates/primitives/src/header.rs | 2 +- 3 files changed, 60 insertions(+), 63 deletions(-) diff --git a/crates/blockchain-tree/src/blockchain_tree.rs b/crates/blockchain-tree/src/blockchain_tree.rs index f3efbaecb7..5140f0ef81 100644 --- a/crates/blockchain-tree/src/blockchain_tree.rs +++ b/crates/blockchain-tree/src/blockchain_tree.rs @@ -341,7 +341,7 @@ impl BlockchainTree /// 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 /// [Self::is_block_hash_canonical]. #[instrument(skip_all, target = "blockchain_tree")] @@ -357,65 +357,66 @@ impl BlockchainTree // TODO save pending block to database // https://github.com/paradigmxyz/reth/issues/1713 - let db = self.externals.database(); - let provider = - db.provider().map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))?; + let (block_status, chain) = { + let db = self.externals.database(); + let provider = db + .provider() + .map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))?; - // Validate that the block is post merge - let parent_td = provider - .header_td(&block.parent_hash) - .map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))? - .ok_or_else(|| { - InsertBlockError::tree_error( - BlockchainTreeError::CanonicalChain { block_hash: block.parent_hash }, - block.block.clone(), - ) - })?; + // Validate that the block is post merge + let parent_td = provider + .header_td(&block.parent_hash) + .map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))? + .ok_or_else(|| { + InsertBlockError::tree_error( + BlockchainTreeError::CanonicalChain { block_hash: block.parent_hash }, + block.block.clone(), + ) + })?; - // 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) { - return Err(InsertBlockError::execution_error( - BlockExecutionError::BlockPreMerge { hash: block.hash }, - block.block, - )) - } + // 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) + { + return Err(InsertBlockError::execution_error( + BlockExecutionError::BlockPreMerge { hash: block.hash }, + block.block, + )) + } - let parent_header = provider - .header(&block.parent_hash) - .map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))? - .ok_or_else(|| { - InsertBlockError::tree_error( - BlockchainTreeError::CanonicalChain { block_hash: block.parent_hash }, - block.block.clone(), - ) - })? - .seal(block.parent_hash); + let parent_header = provider + .header(&block.parent_hash) + .map_err(|err| InsertBlockError::new(block.block.clone(), err.into()))? + .ok_or_else(|| { + InsertBlockError::tree_error( + BlockchainTreeError::CanonicalChain { block_hash: block.parent_hash }, + block.block.clone(), + ) + })? + .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 { - let chain = AppendableChain::new_canonical_head_fork( - block, - &parent_header, - canonical_chain.inner(), - parent, - &self.externals, - )?; - (BlockStatus::Valid, chain) - } else { - let chain = AppendableChain::new_canonical_fork( - block, - &parent_header, - canonical_chain.inner(), - parent, - &self.externals, - )?; - (BlockStatus::Accepted, chain) + if block.parent_hash == canonical_chain.tip().hash { + let chain = AppendableChain::new_canonical_head_fork( + block, + &parent_header, + canonical_chain.inner(), + parent, + &self.externals, + )?; + (BlockStatus::Valid, chain) + } else { + let chain = AppendableChain::new_canonical_fork( + block, + &parent_header, + canonical_chain.inner(), + parent, + &self.externals, + )?; + (BlockStatus::Accepted, chain) + } }; - // let go of `db` immutable borrow - drop(provider); - self.insert_chain(chain); self.try_connect_buffered_blocks(block_num_hash); Ok(block_status) diff --git a/crates/blockchain-tree/src/chain.rs b/crates/blockchain-tree/src/chain.rs index 1e03ef8526..7159462b76 100644 --- a/crates/blockchain-tree/src/chain.rs +++ b/crates/blockchain-tree/src/chain.rs @@ -227,12 +227,10 @@ impl AppendableChain { let (block, senders) = block.into_components(); let block = block.unseal(); - //get state provider. + // get the state provider. 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 history_provider = db.history_by_block_number(canonical_fork.number)?; - let state_provider = history_provider; + let state_provider = db.history_by_block_number(canonical_fork.number)?; let provider = PostStateProvider::new(state_provider, post_state_data_provider); @@ -265,18 +263,16 @@ impl AppendableChain { C: Consensus, 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)?; let (block, senders) = block.into_components(); let block = block.unseal(); - //get state provider. + // get the state provider. 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 history_provider = db.history_by_block_number(canonical_fork.number)?; - let state_provider = history_provider; + let state_provider = db.history_by_block_number(canonical_fork.number)?; let provider = PostStateProvider::new(state_provider, post_state_data_provider); diff --git a/crates/primitives/src/header.rs b/crates/primitives/src/header.rs index 9b4dde1544..d8778de70c 100644 --- a/crates/primitives/src/header.rs +++ b/crates/primitives/src/header.rs @@ -118,7 +118,7 @@ impl Default for Header { } impl Header { - /// Retuen paret block number and hash + /// Returns the parent block's number and hash pub fn parent_num_hash(&self) -> BlockNumHash { BlockNumHash { number: self.number.saturating_sub(1), hash: self.parent_hash } }