From f667fb48a98528ac399ec33963535321ca5bab47 Mon Sep 17 00:00:00 2001 From: Andre da Silva Date: Sat, 26 Oct 2024 05:23:13 -0300 Subject: [PATCH] Read from ChainManager's pending blobs when proposing block (#2716) --- linera-core/src/client/mod.rs | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/linera-core/src/client/mod.rs b/linera-core/src/client/mod.rs index 7e7fb89008d..57ea13ed2b0 100644 --- a/linera-core/src/client/mod.rs +++ b/linera-core/src/client/mod.rs @@ -1691,15 +1691,26 @@ where continue; } - blobs.push( - self.storage_client() - .read_blob(blob_id) - .await - .map_err(|_| LocalNodeError::CannotReadLocalBlob { - chain_id: self.chain_id, - blob_id, - })?, - ); + let maybe_blob = { + let chain_state_view = self.chain_state_view().await?; + chain_state_view + .manager + .get() + .pending_blobs + .get(&blob_id) + .cloned() + }; + + if let Some(blob) = maybe_blob { + self.client.local_node.cache_recent_blob(&blob).await; + blobs.push(blob); + continue; + } + + return Err(LocalNodeError::CannotReadLocalBlob { + chain_id: self.chain_id, + blob_id, + }); } Ok(blobs) }