From 12c70621fb4ecb8c9ce0e193d91e950cea7e9b59 Mon Sep 17 00:00:00 2001 From: Liu-Cheng Xu Date: Tue, 13 Jun 2023 17:03:59 +0800 Subject: [PATCH] Finalize domain block only when the new finalized block is higher than last finalized Ref https://github.com/paritytech/substrate/issues/14347 --- .../src/domain_block_processor.rs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/domains/client/domain-executor/src/domain_block_processor.rs b/domains/client/domain-executor/src/domain_block_processor.rs index d0d71af37f..935ae1b635 100644 --- a/domains/client/domain-executor/src/domain_block_processor.rs +++ b/domains/client/domain-executor/src/domain_block_processor.rs @@ -236,17 +236,17 @@ where if let Some(to_finalize_block_number) = header_number.checked_sub(&self.domain_confirmation_depth) { - let to_finalize_block_hash = - self.client.hash(to_finalize_block_number)?.ok_or_else(|| { - sp_blockchain::Error::Backend(format!( - "Header for #{to_finalize_block_number} not found" - )) - })?; - self.client - .finalize_block(to_finalize_block_hash, None, true)?; - tracing::debug!( - "Successfully finalized block: #{to_finalize_block_number},{to_finalize_block_hash}" - ); + if to_finalize_block_number > self.client.info().finalized_number { + let to_finalize_block_hash = + self.client.hash(to_finalize_block_number)?.ok_or_else(|| { + sp_blockchain::Error::Backend(format!( + "Header for #{to_finalize_block_number} not found" + )) + })?; + self.client + .finalize_block(to_finalize_block_hash, None, true)?; + tracing::debug!("Successfully finalized block: #{to_finalize_block_number},{to_finalize_block_hash}"); + } } let mut roots = self.client.runtime_api().intermediate_roots(header_hash)?;