Fix bug of early termination of batch send
This commit is contained in:
parent
caad492d48
commit
74bca46fc2
@ -972,7 +972,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
||||
}
|
||||
Ok((
|
||||
self.get_block(block_root).await?.map(Arc::new),
|
||||
self.get_blobs(block_root).await?.map(Arc::new),
|
||||
self.get_blobs(block_root).ok().flatten().map(Arc::new),
|
||||
))
|
||||
}
|
||||
|
||||
@ -1048,7 +1048,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
||||
/// ## Errors
|
||||
///
|
||||
/// May return a database error.
|
||||
pub async fn get_blobs(
|
||||
pub fn get_blobs(
|
||||
&self,
|
||||
block_root: &Hash256,
|
||||
) -> Result<Option<BlobsSidecar<T::EthSpec>>, Error> {
|
||||
@ -1060,7 +1060,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
||||
|
||||
if expected_kzg_commitments.len() > 0 {
|
||||
Err(Error::DBInconsistent(format!(
|
||||
"expected kzg_commitments but no blobs stored for block_root {}",
|
||||
"Expected kzg commitments but no blobs stored for block root {}",
|
||||
block_root
|
||||
)))
|
||||
} else {
|
||||
|
@ -658,25 +658,22 @@ impl<T: BeaconChainTypes> Worker<T> {
|
||||
let send_response = true;
|
||||
|
||||
for root in block_roots {
|
||||
match self.chain.store.get_blobs(&root) {
|
||||
Ok(Some(blob)) => {
|
||||
let response_data = if blob.blobs.len() > 0 {
|
||||
Some(Arc::new(blob))
|
||||
} else {
|
||||
None
|
||||
};
|
||||
blobs_sent += 1;
|
||||
self.send_network_message(NetworkMessage::SendResponse {
|
||||
peer_id,
|
||||
response: Response::BlobsByRange(response_data),
|
||||
id: request_id,
|
||||
});
|
||||
match self.chain.get_blobs(&root) {
|
||||
Ok(Some(blobs)) => {
|
||||
if blobs.blobs.len() > 0 {
|
||||
blobs_sent += 1;
|
||||
self.send_network_message(NetworkMessage::SendResponse {
|
||||
peer_id,
|
||||
response: Response::BlobsByRange(Some(Arc::new(blobs))),
|
||||
id: request_id,
|
||||
});
|
||||
}
|
||||
}
|
||||
Ok(None) => {
|
||||
error!(
|
||||
self.log,
|
||||
"Blob in the chain is not in the store";
|
||||
"request_root" => ?root
|
||||
"No blobs or block in the store for block root";
|
||||
"block_root" => ?root
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user