mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-19 21:04:41 +00:00
Merge branch 'deneb-free-blobs' of https://github.com/sigp/lighthouse into partial-processing
This commit is contained in:
@@ -983,12 +983,23 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
||||
Ok(self.get_block(block_root).await?.map(Arc::new))
|
||||
}
|
||||
|
||||
pub async fn get_block_and_blobs_checking_early_attester_cache(
|
||||
pub async fn get_blobs_checking_early_attester_cache(
|
||||
&self,
|
||||
_block_root: &Hash256,
|
||||
) -> Result<Option<()>, Error> {
|
||||
//TODO(sean) use the rpc blobs cache and revert this to the current block cache logic
|
||||
Ok(Some(()))
|
||||
block_root: &Hash256,
|
||||
) -> Result<Option<BlobSidecarList<T::EthSpec>>, Error> {
|
||||
// If there is no data availability boundary, the Eip4844 fork is disabled.
|
||||
if let Some(finalized_data_availability_boundary) =
|
||||
self.finalized_data_availability_boundary()
|
||||
{
|
||||
self.early_attester_cache
|
||||
.get_blobs(*block_root)
|
||||
.map_or_else(
|
||||
|| self.get_blobs(block_root, finalized_data_availability_boundary),
|
||||
|blobs| Ok(Some(blobs)),
|
||||
)
|
||||
} else {
|
||||
Ok(None)
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns the block at the given root, if any.
|
||||
@@ -3101,12 +3112,14 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
||||
// margin, or younger (of higher epoch number).
|
||||
if block_epoch >= import_boundary {
|
||||
if let Some(blobs) = blobs {
|
||||
//FIXME(sean) using this for debugging for now
|
||||
info!(
|
||||
self.log, "Writing blobs to store";
|
||||
"block_root" => ?block_root
|
||||
);
|
||||
ops.push(StoreOp::PutBlobs(block_root, blobs));
|
||||
if !blobs.is_empty() {
|
||||
//FIXME(sean) using this for debugging for now
|
||||
info!(
|
||||
self.log, "Writing blobs to store";
|
||||
"block_root" => ?block_root
|
||||
);
|
||||
ops.push(StoreOp::PutBlobs(block_root, blobs));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4860,7 +4873,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
||||
)
|
||||
.map_err(BlockProductionError::KzgError)?;
|
||||
|
||||
let blob_sidecars = VariableList::from(
|
||||
let blob_sidecars = BlobSidecarList::from(
|
||||
blobs
|
||||
.into_iter()
|
||||
.enumerate()
|
||||
@@ -4873,7 +4886,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
||||
.get(blob_index)
|
||||
.expect("KZG proof should exist for blob");
|
||||
|
||||
Ok(BlobSidecar {
|
||||
Ok(Arc::new(BlobSidecar {
|
||||
block_root: beacon_block_root,
|
||||
index: blob_index as u64,
|
||||
slot,
|
||||
@@ -4882,9 +4895,9 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
||||
blob,
|
||||
kzg_commitment: *kzg_commitment,
|
||||
kzg_proof: *kzg_proof,
|
||||
})
|
||||
}))
|
||||
})
|
||||
.collect::<Result<Vec<BlobSidecar<T::EthSpec>>, BlockProductionError>>()?,
|
||||
.collect::<Result<Vec<_>, BlockProductionError>>()?,
|
||||
);
|
||||
|
||||
self.proposal_blob_cache
|
||||
|
||||
Reference in New Issue
Block a user