Attribute invalid column proof error to correct peer (#6377)

* Attribute invalid column proof error to correct peer

* Update beacon_node/beacon_chain/src/data_availability_checker.rs

Co-authored-by: Pawan Dhananjay <pawandhananjay@gmail.com>

* fix conflicts
This commit is contained in:
Lion - dapplion
2024-09-23 14:49:26 -04:00
committed by GitHub
parent 012e7e7bfa
commit d84df5799c
6 changed files with 76 additions and 28 deletions

View File

@@ -1,10 +1,11 @@
use kzg::{Error as KzgError, KzgCommitment};
use types::{BeaconStateError, Hash256};
use types::{BeaconStateError, ColumnIndex, Hash256};
#[derive(Debug)]
pub enum Error {
Kzg(KzgError),
KzgVerificationFailed,
InvalidBlobs(KzgError),
InvalidColumn(ColumnIndex, KzgError),
ReconstructColumnsError(KzgError),
KzgCommitmentMismatch {
blob_commitment: KzgCommitment,
block_commitment: KzgCommitment,
@@ -46,11 +47,12 @@ impl Error {
| Error::UnableToDetermineImportRequirement
| Error::RebuildingStateCaches(_)
| Error::SlotClockError => ErrorCategory::Internal,
Error::Kzg(_)
Error::InvalidBlobs { .. }
| Error::InvalidColumn { .. }
| Error::ReconstructColumnsError { .. }
| Error::BlobIndexInvalid(_)
| Error::DataColumnIndexInvalid(_)
| Error::KzgCommitmentMismatch { .. }
| Error::KzgVerificationFailed => ErrorCategory::Malicious,
| Error::KzgCommitmentMismatch { .. } => ErrorCategory::Malicious,
}
}
}
@@ -78,9 +80,3 @@ impl From<state_processing::BlockReplayError> for Error {
Self::BlockReplayError(value)
}
}
impl From<KzgError> for Error {
fn from(value: KzgError) -> Self {
Self::Kzg(value)
}
}

View File

@@ -555,7 +555,8 @@ impl<T: BeaconChainTypes> DataAvailabilityCheckerInner<T> {
kzg,
pending_components.verified_data_columns.as_slice(),
&self.spec,
)?;
)
.map_err(AvailabilityCheckError::ReconstructColumnsError)?;
let data_columns_to_publish = all_data_columns
.iter()