This commit is contained in:
dapplion
2026-04-30 13:39:05 +02:00
parent bd8cfa35f4
commit 0b7397eb4e
16 changed files with 116 additions and 206 deletions

View File

@@ -33,9 +33,7 @@ use beacon_chain::block_verification_types::AsBlock;
use beacon_chain::data_availability_checker::{
AvailabilityCheckError, AvailabilityCheckErrorCategory,
};
use beacon_chain::{
AvailabilityProcessingStatus, BeaconChainTypes, BlockError, BlockOrEnvelopeError,
};
use beacon_chain::{AvailabilityProcessingStatus, BeaconChainTypes, BlockError};
pub use common::RequestState;
use fnv::FnvHashMap;
use lighthouse_network::service::api_types::SingleLookupReqId;
@@ -591,12 +589,8 @@ impl<T: BeaconChainTypes> BlockLookups<T> {
let action = match result {
BlockProcessingResult::Ok(AvailabilityProcessingStatus::Imported(_))
| BlockProcessingResult::Err(BlockOrEnvelopeError::BlockError(
BlockError::DuplicateFullyImported(..),
))
| BlockProcessingResult::Err(BlockOrEnvelopeError::BlockError(
BlockError::GenesisBlock,
)) => {
| BlockProcessingResult::Err(BlockError::DuplicateFullyImported(..))
| BlockProcessingResult::Err(BlockError::GenesisBlock) => {
// Successfully imported
request_state.on_processing_success()?;
Action::Continue
@@ -620,9 +614,7 @@ impl<T: BeaconChainTypes> BlockLookups<T> {
Action::Retry
}
}
BlockProcessingResult::Err(BlockOrEnvelopeError::BlockError(
BlockError::DuplicateImportStatusUnknown(..),
)) => {
BlockProcessingResult::Err(BlockError::DuplicateImportStatusUnknown(..)) => {
// This is unreachable because RPC blocks do not undergo gossip verification, and
// this error can *only* come from gossip verification.
error!(?block_root, "Single block lookup hit unreachable condition");
@@ -638,11 +630,6 @@ impl<T: BeaconChainTypes> BlockLookups<T> {
Action::Drop("Block processing ignored".to_owned())
}
BlockProcessingResult::Err(e) => {
let BlockOrEnvelopeError::BlockError(e) = e else {
// TODO(gloas): handle properly
return Err(LookupRequestError::Failed(format!("{e:?}")));
};
match e {
BlockError::BeaconChainError(e) => {
// Internal error

View File

@@ -50,8 +50,7 @@ use crate::sync::custody_backfill_sync::CustodyBackFillSync;
use crate::sync::network_context::{PeerGroup, RpcResponseResult};
use beacon_chain::block_verification_types::AsBlock;
use beacon_chain::{
AvailabilityProcessingStatus, BeaconChain, BeaconChainTypes, BlockError, BlockOrEnvelopeError,
EngineState,
AvailabilityProcessingStatus, BeaconChain, BeaconChainTypes, BlockError, EngineState,
};
use futures::StreamExt;
use lighthouse_network::SyncInfo;
@@ -207,7 +206,7 @@ impl BlockProcessType {
#[derive(Debug)]
pub enum BlockProcessingResult {
Ok(AvailabilityProcessingStatus),
Err(BlockOrEnvelopeError),
Err(BlockError),
Ignored,
}
@@ -1450,8 +1449,8 @@ impl<T: BeaconChainTypes> SyncManager<T> {
}
}
impl From<Result<AvailabilityProcessingStatus, BlockOrEnvelopeError>> for BlockProcessingResult {
fn from(result: Result<AvailabilityProcessingStatus, BlockOrEnvelopeError>) -> Self {
impl From<Result<AvailabilityProcessingStatus, BlockError>> for BlockProcessingResult {
fn from(result: Result<AvailabilityProcessingStatus, BlockError>) -> Self {
match result {
Ok(status) => BlockProcessingResult::Ok(status),
Err(e) => BlockProcessingResult::Err(e),
@@ -1459,14 +1458,8 @@ impl From<Result<AvailabilityProcessingStatus, BlockOrEnvelopeError>> for BlockP
}
}
impl From<BlockOrEnvelopeError> for BlockProcessingResult {
fn from(e: BlockOrEnvelopeError) -> Self {
impl From<BlockError> for BlockProcessingResult {
fn from(e: BlockError) -> Self {
BlockProcessingResult::Err(e)
}
}
impl From<BlockError> for BlockProcessingResult {
fn from(e: BlockError) -> Self {
BlockProcessingResult::Err(BlockOrEnvelopeError::BlockError(e))
}
}