From fa5033322237a0e8b83fef23e29c030ef2b58586 Mon Sep 17 00:00:00 2001 From: Christos Hadjiaslanis Date: Tue, 1 Oct 2024 12:01:48 +0100 Subject: [PATCH] Don't send chain updates for optimistic clients. --- linera-core/src/client/mod.rs | 3 ++- linera-core/src/updater.rs | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/linera-core/src/client/mod.rs b/linera-core/src/client/mod.rs index c25b21890efa..54b5bb734213 100644 --- a/linera-core/src/client/mod.rs +++ b/linera-core/src/client/mod.rs @@ -1030,7 +1030,8 @@ where local_node: local_node.clone(), }; let action = action.clone(); - Box::pin(async move { updater.send_chain_update(action).await }) + let is_optimistic = self.is_optimistic(); + Box::pin(async move { updater.send_chain_update(action, is_optimistic).await }) }, ) .await?; diff --git a/linera-core/src/updater.rs b/linera-core/src/updater.rs index ae3da99f3426..ea76f9d65c67 100644 --- a/linera-core/src/updater.rs +++ b/linera-core/src/updater.rs @@ -377,6 +377,7 @@ where pub async fn send_chain_update( &mut self, action: CommunicateAction, + optimistic_client: bool, ) -> Result { let (target_block_height, chain_id) = match &action { CommunicateAction::SubmitBlock { proposal, .. } => { @@ -391,10 +392,12 @@ where height, chain_id, .. } => (*height, *chain_id), }; - // Update the validator with missing information, if needed. - let delivery = CrossChainMessageDelivery::NonBlocking; - self.send_chain_information(chain_id, target_block_height, delivery) - .await?; + if !optimistic_client { + // Update the validator with missing information, if needed. + let delivery = CrossChainMessageDelivery::NonBlocking; + self.send_chain_information(chain_id, target_block_height, delivery) + .await?; + } // Send the block proposal, certificate or timeout request and return a vote. let vote = match action { CommunicateAction::SubmitBlock { proposal, blob_ids } => {