From 37e7c1d5c7c8862b542eb362fd41d95262fcc927 Mon Sep 17 00:00:00 2001 From: realbigsean Date: Fri, 27 Jan 2023 17:59:40 +0100 Subject: [PATCH] keep verification of payloads pre 4844 --- beacon_node/beacon_chain/src/beacon_chain.rs | 27 +++++++++---------- .../work_reprocessing_queue.rs | 3 +-- consensus/types/src/execution_block_header.rs | 7 ++--- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/beacon_node/beacon_chain/src/beacon_chain.rs b/beacon_node/beacon_chain/src/beacon_chain.rs index 95d2b7922f..042c98afe3 100644 --- a/beacon_node/beacon_chain/src/beacon_chain.rs +++ b/beacon_node/beacon_chain/src/beacon_chain.rs @@ -1026,22 +1026,19 @@ impl BeaconChain { //FIXME(sean) avoid the clone by comparing refs to headers (`as_execution_payload_header` method ?) let full_payload: FullPayload = execution_payload.clone().into(); - // Verify payload integrity. - let header_from_payload = full_payload.to_execution_payload_header(); - if header_from_payload != execution_payload_header { - for txn in execution_payload.transactions() { - debug!( - self.log, - "Reconstructed txn"; - "bytes" => format!("0x{}", hex::encode(&**txn)), - ); - } + //FIXME(sean) we're not decoding blobs txs correctly yet + if !matches!(execution_payload, ExecutionPayload::Eip4844(_)) { + // Verify payload integrity. + let header_from_payload = full_payload.to_execution_payload_header(); + if header_from_payload != execution_payload_header { + for txn in execution_payload.transactions() { + debug!( + self.log, + "Reconstructed txn"; + "bytes" => format!("0x{}", hex::encode(&**txn)), + ); + } - if execution_payload_header.transactions_root() - != header_from_payload.transactions_root() - { - //FIXME(sean) we're not decoding blobs txs correctly yet - } else { return Err(Error::InconsistentPayloadReconstructed { slot: blinded_block.slot(), exec_block_hash, diff --git a/beacon_node/network/src/beacon_processor/work_reprocessing_queue.rs b/beacon_node/network/src/beacon_processor/work_reprocessing_queue.rs index d7cede9ee7..4d0bdc0027 100644 --- a/beacon_node/network/src/beacon_processor/work_reprocessing_queue.rs +++ b/beacon_node/network/src/beacon_processor/work_reprocessing_queue.rs @@ -31,8 +31,7 @@ use tokio::sync::mpsc::{self, Receiver, Sender}; use tokio::time::error::Error as TimeError; use tokio_util::time::delay_queue::{DelayQueue, Key as DelayKey}; use types::{ - Attestation, EthSpec, Hash256, LightClientOptimisticUpdate, SignedAggregateAndProof, - SubnetId, + Attestation, EthSpec, Hash256, LightClientOptimisticUpdate, SignedAggregateAndProof, SubnetId, }; const TASK_NAME: &str = "beacon_processor_reprocess_queue"; diff --git a/consensus/types/src/execution_block_header.rs b/consensus/types/src/execution_block_header.rs index 9c01d9a597..c0c08795e8 100644 --- a/consensus/types/src/execution_block_header.rs +++ b/consensus/types/src/execution_block_header.rs @@ -24,9 +24,10 @@ use metastruct::metastruct; /// /// Credit to Reth for the type definition. #[derive(Debug, Clone, PartialEq, Eq, Hash)] -#[metastruct(mappings( - map_execution_block_header_fields_except_withdrawals(exclude(withdrawals_root, excess_data_gas)), -))] +#[metastruct(mappings(map_execution_block_header_fields_except_withdrawals(exclude( + withdrawals_root, + excess_data_gas +)),))] pub struct ExecutionBlockHeader { pub parent_hash: Hash256, pub ommers_hash: Hash256,