diff --git a/beacon_node/beacon_chain/src/beacon_chain.rs b/beacon_node/beacon_chain/src/beacon_chain.rs index 793fe29789..05923539d2 100644 --- a/beacon_node/beacon_chain/src/beacon_chain.rs +++ b/beacon_node/beacon_chain/src/beacon_chain.rs @@ -2390,7 +2390,7 @@ impl BeaconChain { let _fork_choice_block_timer = metrics::start_timer(&metrics::FORK_CHOICE_PROCESS_BLOCK_TIMES); fork_choice - .on_block(current_slot, &block, block_root, &state, &self.spec) + .on_block(current_slot, &block, block_root, &state) .map_err(|e| BlockError::BeaconChainError(e.into()))?; } diff --git a/beacon_node/beacon_chain/src/fork_revert.rs b/beacon_node/beacon_chain/src/fork_revert.rs index 8d0545c58c..31678580a0 100644 --- a/beacon_node/beacon_chain/src/fork_revert.rs +++ b/beacon_node/beacon_chain/src/fork_revert.rs @@ -166,7 +166,7 @@ pub fn reset_fork_choice_to_finalization, Cold: It let (block, _) = block.deconstruct(); fork_choice - .on_block(block.slot(), &block, block.canonical_root(), &state, spec) + .on_block(block.slot(), &block, block.canonical_root(), &state) .map_err(|e| format!("Error applying replayed block to fork choice: {:?}", e))?; } diff --git a/consensus/fork_choice/Cargo.toml b/consensus/fork_choice/Cargo.toml index a365a25cc6..5d8c6e11ae 100644 --- a/consensus/fork_choice/Cargo.toml +++ b/consensus/fork_choice/Cargo.toml @@ -8,7 +8,6 @@ edition = "2018" [dependencies] types = { path = "../types" } -state_processing = { path = "../state_processing" } proto_array = { path = "../proto_array" } eth2_ssz = "0.4.0" eth2_ssz_derive = "0.3.0" diff --git a/consensus/fork_choice/src/fork_choice.rs b/consensus/fork_choice/src/fork_choice.rs index f2169d0ab7..03633c024f 100644 --- a/consensus/fork_choice/src/fork_choice.rs +++ b/consensus/fork_choice/src/fork_choice.rs @@ -2,11 +2,9 @@ use std::marker::PhantomData; use proto_array::{Block as ProtoBlock, ProtoArrayForkChoice}; use ssz_derive::{Decode, Encode}; -use state_processing::per_block_processing::is_merge_block; use types::{ - AttestationShufflingId, BeaconBlock, BeaconState, BeaconStateError, ChainSpec, Checkpoint, - Epoch, EthSpec, Hash256, IndexedAttestation, PowBlock, RelativeEpoch, SignedBeaconBlock, Slot, - Uint256, + AttestationShufflingId, BeaconBlock, BeaconState, BeaconStateError, Checkpoint, Epoch, EthSpec, + Hash256, IndexedAttestation, RelativeEpoch, SignedBeaconBlock, Slot, }; use crate::ForkChoiceStore; @@ -68,10 +66,6 @@ pub enum InvalidBlock { finalized_root: Hash256, block_ancestor: Option, }, - InvalidTerminalPowBlock { - block_total_difficulty: Uint256, - parent_total_difficulty: Uint256, - }, } #[derive(Debug)] @@ -243,14 +237,6 @@ where } } -/// https://github.com/ethereum/consensus-specs/blob/dev/specs/merge/fork-choice.md#is_valid_terminal_pow_block -fn is_valid_terminal_pow_block(block: &PowBlock, parent: &PowBlock, spec: &ChainSpec) -> bool { - let is_total_difficulty_reached = block.total_difficulty >= spec.terminal_total_difficulty; - let is_parent_total_difficulty_valid = parent.total_difficulty < spec.terminal_total_difficulty; - - is_total_difficulty_reached && is_parent_total_difficulty_valid -} - impl ForkChoice where T: ForkChoiceStore, @@ -464,7 +450,6 @@ where block: &BeaconBlock, block_root: Hash256, state: &BeaconState, - spec: &ChainSpec, ) -> Result<(), Error> { let current_slot = self.update_time(current_slot)?; @@ -515,19 +500,6 @@ where })); } - // https://github.com/ethereum/consensus-specs/blob/dev/specs/merge/fork-choice.md#on_block - if is_merge_block(state, block.body()) { - // TODO: get POW blocks from eth1 chain here as indicated in the merge spec link ^ - let pow_block = PowBlock::default(); - let pow_parent = PowBlock::default(); - if !is_valid_terminal_pow_block(&pow_block, &pow_parent, spec) { - return Err(Error::InvalidBlock(InvalidBlock::InvalidTerminalPowBlock { - block_total_difficulty: pow_block.total_difficulty, - parent_total_difficulty: pow_parent.total_difficulty, - })); - } - } - // Update justified checkpoint. if state.current_justified_checkpoint().epoch > self.fc_store.justified_checkpoint().epoch { if state.current_justified_checkpoint().epoch diff --git a/consensus/fork_choice/tests/tests.rs b/consensus/fork_choice/tests/tests.rs index e6b4fc1c61..f299de1b6f 100644 --- a/consensus/fork_choice/tests/tests.rs +++ b/consensus/fork_choice/tests/tests.rs @@ -273,13 +273,7 @@ impl ForkChoiceTest { .chain .fork_choice .write() - .on_block( - current_slot, - &block, - block.canonical_root(), - &state, - &self.harness.chain.spec, - ) + .on_block(current_slot, &block, block.canonical_root(), &state) .unwrap(); self } @@ -314,13 +308,7 @@ impl ForkChoiceTest { .chain .fork_choice .write() - .on_block( - current_slot, - &block, - block.canonical_root(), - &state, - &self.harness.chain.spec, - ) + .on_block(current_slot, &block, block.canonical_root(), &state) .err() .expect("on_block did not return an error"); comparison_func(err);