mirror of
https://github.com/sigp/lighthouse.git
synced 2026-06-29 10:54:24 +00:00
Avoid redundant allocations in blob verification (#6282)
* Avoid redundant allocations in blob verification
This commit is contained in:
@@ -339,16 +339,16 @@ impl<E: EthSpec> KzgVerifiedBlobList<E> {
|
|||||||
kzg: &Kzg,
|
kzg: &Kzg,
|
||||||
seen_timestamp: Duration,
|
seen_timestamp: Duration,
|
||||||
) -> Result<Self, KzgError> {
|
) -> Result<Self, KzgError> {
|
||||||
let blobs = blob_list.into_iter().collect::<Vec<_>>();
|
let blobs = blob_list
|
||||||
verify_kzg_for_blob_list(blobs.iter(), kzg)?;
|
.into_iter()
|
||||||
|
.map(|blob| KzgVerifiedBlob {
|
||||||
|
blob,
|
||||||
|
seen_timestamp,
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
verify_kzg_for_blob_list(blobs.iter().map(|b| &b.blob), kzg)?;
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
verified_blobs: blobs
|
verified_blobs: blobs,
|
||||||
.into_iter()
|
|
||||||
.map(|blob| KzgVerifiedBlob {
|
|
||||||
blob,
|
|
||||||
seen_timestamp,
|
|
||||||
})
|
|
||||||
.collect(),
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -570,8 +570,9 @@ pub fn validate_blob_sidecar_for_gossip<T: BeaconChainTypes>(
|
|||||||
.kzg
|
.kzg
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.ok_or(GossipBlobError::KzgNotInitialized)?;
|
.ok_or(GossipBlobError::KzgNotInitialized)?;
|
||||||
let kzg_verified_blob = KzgVerifiedBlob::new(blob_sidecar.clone(), kzg, seen_timestamp)
|
let kzg_verified_blob = KzgVerifiedBlob::new(blob_sidecar, kzg, seen_timestamp)
|
||||||
.map_err(GossipBlobError::KzgError)?;
|
.map_err(GossipBlobError::KzgError)?;
|
||||||
|
let blob_sidecar = &kzg_verified_blob.blob;
|
||||||
|
|
||||||
chain
|
chain
|
||||||
.observed_slashable
|
.observed_slashable
|
||||||
@@ -597,7 +598,7 @@ pub fn validate_blob_sidecar_for_gossip<T: BeaconChainTypes>(
|
|||||||
if chain
|
if chain
|
||||||
.observed_blob_sidecars
|
.observed_blob_sidecars
|
||||||
.write()
|
.write()
|
||||||
.observe_sidecar(&blob_sidecar)
|
.observe_sidecar(blob_sidecar)
|
||||||
.map_err(|e| GossipBlobError::BeaconChainError(e.into()))?
|
.map_err(|e| GossipBlobError::BeaconChainError(e.into()))?
|
||||||
{
|
{
|
||||||
return Err(GossipBlobError::RepeatBlob {
|
return Err(GossipBlobError::RepeatBlob {
|
||||||
|
|||||||
Reference in New Issue
Block a user