From 97bffd03d0bf41972e5c80707bf4b582f75d6083 Mon Sep 17 00:00:00 2001 From: qu0b Date: Mon, 24 Jul 2023 15:12:48 +0200 Subject: [PATCH] handle empty blocks gracefully --- beacon_node/beacon_chain/src/beacon_chain.rs | 14 +++++++++++++- beacon_node/http_api/src/block_id.rs | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/beacon_node/beacon_chain/src/beacon_chain.rs b/beacon_node/beacon_chain/src/beacon_chain.rs index d136188b67..d8cbd52c2d 100644 --- a/beacon_node/beacon_chain/src/beacon_chain.rs +++ b/beacon_node/beacon_chain/src/beacon_chain.rs @@ -1189,7 +1189,19 @@ impl BeaconChain { &self, block_root: &Hash256, ) -> Result>, Error> { - Ok(self.store.get_blobs(block_root)?) + + let blobs = self.store.get_blobs(block_root)?; + match Some(blobs) { + Some(blobs) => Ok(blobs), + None => { + // if there are no blobs, but a block exists return an empty list + if let Some(_) = self.store.try_get_full_block(block_root)? { + return Ok(Some(BlobSidecarList::default())) + } + // if there is no blob and no block return none. + Ok(None) + } + } } pub fn get_blinded_block( diff --git a/beacon_node/http_api/src/block_id.rs b/beacon_node/http_api/src/block_id.rs index fa99ea5b4f..981b782cd2 100644 --- a/beacon_node/http_api/src/block_id.rs +++ b/beacon_node/http_api/src/block_id.rs @@ -261,7 +261,7 @@ impl BlockId { match chain.get_blobs(&root) { Ok(Some(blob_sidecar_list)) => Ok(blob_sidecar_list), Ok(None) => Err(warp_utils::reject::custom_not_found(format!( - "No blobs with block root {} found in the store", + "Block not found {} in the store", root ))), Err(e) => Err(warp_utils::reject::beacon_chain_error(e)),