From 01a3065cc837a23ae76c31a9b756d5a3ea3bb706 Mon Sep 17 00:00:00 2001 From: Boog900 <54e72d8a-345f-4599-bd90-c6b9bc7d0ec5@aleeas.com> Date: Thu, 12 Sep 2024 22:17:44 +0100 Subject: [PATCH] clean up handler code --- binaries/cuprated/src/blockchain.rs | 6 +- binaries/cuprated/src/blockchain/manager.rs | 115 ++--- .../src/blockchain/manager/batch_handler.rs | 121 ----- .../src/blockchain/manager/handler.rs | 419 ++++++++++++------ binaries/cuprated/src/main.rs | 3 +- binaries/cuprated/src/signals.rs | 3 + p2p/address-book/src/lib.rs | 12 +- p2p_state.bin | Bin 162918 -> 172430 bytes storage/blockchain/src/service/read.rs | 2 +- 9 files changed, 332 insertions(+), 349 deletions(-) delete mode 100644 binaries/cuprated/src/blockchain/manager/batch_handler.rs create mode 100644 binaries/cuprated/src/signals.rs diff --git a/binaries/cuprated/src/blockchain.rs b/binaries/cuprated/src/blockchain.rs index e1f5765b..eb23224e 100644 --- a/binaries/cuprated/src/blockchain.rs +++ b/binaries/cuprated/src/blockchain.rs @@ -1,6 +1,8 @@ //! Blockchain //! //! Will contain the chain manager and syncer. + +use futures::FutureExt; use tokio::sync::mpsc; use tower::{Service, ServiceExt}; @@ -95,7 +97,7 @@ pub async fn init_consensus( } /// Initializes the blockchain manager task and syncer. -pub fn init_blockchain_manager( +pub async fn init_blockchain_manager( clearnet_interface: NetworkInterface, blockchain_write_handle: BlockchainWriteHandle, blockchain_read_handle: BlockchainReadHandle, @@ -118,7 +120,7 @@ pub fn init_blockchain_manager( blockchain_read_handle, blockchain_context_service, block_verifier_service, - ); + ).await; tokio::spawn(manager.run(batch_rx)); } diff --git a/binaries/cuprated/src/blockchain/manager.rs b/binaries/cuprated/src/blockchain/manager.rs index eaf8669f..e1e78d46 100644 --- a/binaries/cuprated/src/blockchain/manager.rs +++ b/binaries/cuprated/src/blockchain/manager.rs @@ -1,6 +1,6 @@ -mod batch_handler; mod handler; +use std::collections::HashMap; use crate::blockchain::types::ConsensusBlockchainReadHandle; use cuprate_blockchain::service::{BlockchainReadHandle, BlockchainWriteHandle}; use cuprate_consensus::context::RawBlockChainContext; @@ -11,12 +11,20 @@ use cuprate_consensus::{ }; use cuprate_p2p::block_downloader::BlockBatch; use cuprate_types::blockchain::{BlockchainReadRequest, BlockchainResponse}; -use cuprate_types::Chain; +use cuprate_types::{Chain, TransactionVerificationData}; use futures::StreamExt; -use tokio::sync::mpsc::Receiver; +use monero_serai::block::Block; +use tokio::sync::mpsc; +use tokio::sync::{Notify, oneshot}; use tower::{Service, ServiceExt}; use tracing::error; +pub struct IncomingBlock { + block: Block, + prepped_txs: HashMap<[u8; 32], TransactionVerificationData>, + response_tx: oneshot::Sender>, +} + pub struct BlockchainManager { blockchain_write_handle: BlockchainWriteHandle, blockchain_read_handle: BlockchainReadHandle, @@ -27,105 +35,58 @@ pub struct BlockchainManager { TxVerifierService, ConsensusBlockchainReadHandle, >, + + // TODO: stop_current_block_downloader: Notify, } impl BlockchainManager { - pub const fn new( + pub async fn new( blockchain_write_handle: BlockchainWriteHandle, blockchain_read_handle: BlockchainReadHandle, - blockchain_context_service: BlockChainContextService, + mut blockchain_context_service: BlockChainContextService, block_verifier_service: BlockVerifierService< BlockChainContextService, TxVerifierService, ConsensusBlockchainReadHandle, >, ) -> Self { + let BlockChainContextResponse::Context(blockchain_context) = blockchain_context_service + .ready() + .await + .expect("TODO") + .call(BlockChainContextRequest::GetContext) + .await + .expect("TODO") else { + panic!("Blockchain context service returned wrong response!"); + }; + Self { blockchain_write_handle, blockchain_read_handle, blockchain_context_service, - cached_blockchain_context: todo!(), + cached_blockchain_context: blockchain_context.unchecked_blockchain_context().clone(), block_verifier_service, } } - async fn handle_incoming_main_chain_batch( - &mut self, - batch: BlockBatch, - ) -> Result<(), anyhow::Error> { - let VerifyBlockResponse::MainChainBatchPrepped(prepped) = self - .block_verifier_service - .ready() - .await - .expect("TODO") - .call(VerifyBlockRequest::MainChainBatchPrepareBlocks { - blocks: batch.blocks, - }) - .await? - else { - panic!("Incorrect response!"); - }; - - for (block, txs) in prepped { - let VerifyBlockResponse::MainChain(verified_block) = block_verifier_service - .ready() - .await - .expect("TODO") - .call(VerifyBlockRequest::MainChainPrepped { block, txs }) - .await - .unwrap() - else { - panic!("Incorrect response!"); - }; - - blockchain_context_service - .ready() - .await - .expect("TODO") - .call(BlockChainContextRequest::Update(NewBlockData { - block_hash: verified_block.block_hash, - height: verified_block.height, - timestamp: verified_block.block.header.timestamp, - weight: verified_block.weight, - long_term_weight: verified_block.long_term_weight, - generated_coins: verified_block.generated_coins, - vote: HardFork::from_vote(verified_block.block.header.hardfork_signal), - cumulative_difficulty: verified_block.cumulative_difficulty, - })) - .await - .expect("TODO"); - - blockchain_write_handle - .ready() - .await - .expect("TODO") - .call(BlockchainWriteRequest::WriteBlock(verified_block)) - .await - .expect("TODO"); - } - } - - async fn handle_incoming_block_batch(&mut self, batch: BlockBatch) { - let (first_block, _) = batch - .blocks - .first() - .expect("Block batch should not be empty"); - - if first_block.header.previous == self.cached_blockchain_context.top_hash { - todo!("Main chain") - } else { - todo!("Alt chain") - } - } - - pub async fn run(mut self, mut batch_rx: Receiver) { + pub async fn run(mut self, mut block_batch_rx: mpsc::Receiver, mut block_single_rx: mpsc::Receiver) { loop { tokio::select! { - Some(batch) = batch_rx.recv() => { + Some(batch) = block_batch_rx.recv() => { self.handle_incoming_block_batch( batch, ).await; } + Some(incoming_block) = block_single_rx.recv() => { + let IncomingBlock { + block, + prepped_txs, + response_tx + } = incoming_block; + + let res = self.handle_incoming_block(block, prepped_txs).await; + let _ = response_tx.send(res); + } else => { todo!("TODO: exit the BC manager") } diff --git a/binaries/cuprated/src/blockchain/manager/batch_handler.rs b/binaries/cuprated/src/blockchain/manager/batch_handler.rs deleted file mode 100644 index ea08af42..00000000 --- a/binaries/cuprated/src/blockchain/manager/batch_handler.rs +++ /dev/null @@ -1,121 +0,0 @@ -//! Block batch handling functions. - -use crate::blockchain::types::ConsensusBlockchainReadHandle; -use cuprate_blockchain::service::{BlockchainReadHandle, BlockchainWriteHandle}; -use cuprate_consensus::context::NewBlockData; -use cuprate_consensus::transactions::new_tx_verification_data; -use cuprate_consensus::{ - BlockChainContextRequest, BlockChainContextResponse, BlockChainContextService, - BlockVerifierService, BlockchainReadRequest, BlockchainResponse, ExtendedConsensusError, - VerifyBlockRequest, VerifyBlockResponse, VerifyTxRequest, VerifyTxResponse, -}; -use cuprate_p2p::block_downloader::BlockBatch; -use cuprate_types::blockchain::BlockchainWriteRequest; -use cuprate_types::{Chain, HardFork}; -use rayon::prelude::*; -use tower::{Service, ServiceExt}; -use tracing::{debug, error, info}; - -async fn handle_incoming_block_batch_main_chain( - batch: BlockBatch, - block_verifier_service: &mut BlockVerifierService, - blockchain_context_service: &mut C, - blockchain_write_handle: &mut BlockchainWriteHandle, -) -> Result<(), anyhow::Error> -where - C: Service< - BlockChainContextRequest, - Response = BlockChainContextResponse, - Error = tower::BoxError, - > + Clone - + Send - + 'static, - C::Future: Send + 'static, - - TxV: Service - + Clone - + Send - + 'static, - TxV::Future: Send + 'static, -{ - info!( - "Handling batch to main chain height: {}", - batch.blocks.first().unwrap().0.number().unwrap() - ); - - let VerifyBlockResponse::MainChainBatchPrepped(prepped) = block_verifier_service - .ready() - .await - .expect("TODO") - .call(VerifyBlockRequest::MainChainBatchPrepareBlocks { - blocks: batch.blocks, - }) - .await? - else { - panic!("Incorrect response!"); - }; - - for (block, txs) in prepped { - let VerifyBlockResponse::MainChain(verified_block) = block_verifier_service - .ready() - .await - .expect("TODO") - .call(VerifyBlockRequest::MainChainPrepped { block, txs }) - .await? - else { - panic!("Incorrect response!"); - }; - - blockchain_context_service - .ready() - .await - .expect("TODO") - .call(BlockChainContextRequest::Update(NewBlockData { - block_hash: verified_block.block_hash, - height: verified_block.height, - timestamp: verified_block.block.header.timestamp, - weight: verified_block.weight, - long_term_weight: verified_block.long_term_weight, - generated_coins: verified_block.generated_coins, - vote: HardFork::from_vote(verified_block.block.header.hardfork_signal), - cumulative_difficulty: verified_block.cumulative_difficulty, - })) - .await - .expect("TODO"); - - blockchain_write_handle - .ready() - .await - .expect("TODO") - .call(BlockchainWriteRequest::WriteBlock(verified_block)) - .await - .expect("TODO"); - } -} - -async fn handle_incoming_block_batch_alt_chain( - batch: BlockBatch, - block_verifier_service: &mut BlockVerifierService, - blockchain_context_service: &mut C, - blockchain_write_handle: &mut BlockchainWriteHandle, -) -> Result<(), anyhow::Error> -where - C: Service< - BlockChainContextRequest, - Response = BlockChainContextResponse, - Error = tower::BoxError, - > + Clone - + Send - + 'static, - C::Future: Send + 'static, - - TxV: Service - + Clone - + Send - + 'static, - TxV::Future: Send + 'static, -{ - for (block, txs) in batch.blocks { - alt_block_info.cumulative_difficulty - } -} diff --git a/binaries/cuprated/src/blockchain/manager/handler.rs b/binaries/cuprated/src/blockchain/manager/handler.rs index 221acb81..6dcffef7 100644 --- a/binaries/cuprated/src/blockchain/manager/handler.rs +++ b/binaries/cuprated/src/blockchain/manager/handler.rs @@ -1,5 +1,8 @@ use crate::blockchain::types::ConsensusBlockchainReadHandle; +use crate::signals::REORG_LOCK; use cuprate_blockchain::service::{BlockchainReadHandle, BlockchainWriteHandle}; +use cuprate_consensus::block::PreparedBlock; +use cuprate_consensus::context::NewBlockData; use cuprate_consensus::transactions::new_tx_verification_data; use cuprate_consensus::{ BlockChainContextRequest, BlockChainContextResponse, BlockVerifierService, @@ -10,154 +13,292 @@ use cuprate_p2p::block_downloader::BlockBatch; use cuprate_types::blockchain::{ BlockchainReadRequest, BlockchainResponse, BlockchainWriteRequest, }; -use cuprate_types::AltBlockInformation; +use cuprate_types::{ + AltBlockInformation, HardFork, TransactionVerificationData, VerifiedBlockInformation, +}; +use futures::{TryFutureExt, TryStreamExt}; use monero_serai::block::Block; use monero_serai::transaction::Transaction; use rayon::prelude::*; +use std::collections::HashMap; +use std::sync::Arc; use tower::{Service, ServiceExt}; +use tracing::info; -async fn handle_incoming_alt_block( - block: Block, - txs: Vec, - current_cumulative_difficulty: u128, - block_verifier_service: &mut BlockVerifierService, - blockchain_context_service: &mut C, - blockchain_write_handle: &mut BlockchainWriteHandle, -) -> Result<(), anyhow::Error> -where - C: Service< - BlockChainContextRequest, - Response = BlockChainContextResponse, - Error = tower::BoxError, - > + Clone - + Send - + 'static, - C::Future: Send + 'static, +impl super::BlockchainManager { + pub async fn handle_incoming_block( + &mut self, + block: Block, + prepared_txs: HashMap<[u8; 32], TransactionVerificationData>, + ) -> Result<(), anyhow::Error> { + if block.header.previous != self.cached_blockchain_context.top_hash { + self.handle_incoming_alt_block(block, prepared_txs).await?; - TxV: Service - + Clone - + Send - + 'static, - TxV::Future: Send + 'static, -{ - let prepared_txs = txs - .into_par_iter() - .map(|tx| { - let tx = new_tx_verification_data(tx)?; - (tx.tx_hash, tx) - }) - .collect::>()?; + return Ok(()); + } - let VerifyBlockResponse::AltChain(alt_block_info) = block_verifier_service - .ready() - .await - .expect("TODO") - .call(VerifyBlockRequest::AltChain { - block, - prepared_txs, - }) - .await? - else { - panic!("Incorrect response!"); - }; + let VerifyBlockResponse::MainChain(verified_block) = self + .block_verifier_service + .ready() + .await + .expect("TODO") + .call(VerifyBlockRequest::MainChain { + block, + prepared_txs, + }) + .await? + else { + panic!("Incorrect response!"); + }; - if alt_block_info.cumulative_difficulty > current_cumulative_difficulty { - todo!("do re-org"); + self.add_valid_block_to_main_chain(verified_block).await; + + Ok(()) } - blockchain_write_handle - .ready() - .await - .expect("TODO") - .call(BlockchainWriteRequest::WriteAltBlock(alt_block_info))?; + pub async fn handle_incoming_block_batch(&mut self, batch: BlockBatch) { + let (first_block, _) = batch + .blocks + .first() + .expect("Block batch should not be empty"); - Ok(()) -} - -async fn try_do_reorg( - top_alt_block: AltBlockInformation, - chain_height: usize, - block_verifier_service: &mut BlockVerifierService, - blockchain_context_service: &mut C, - blockchain_write_handle: &mut BlockchainWriteHandle, - blockchain_read_handle: &mut BlockchainReadHandle, -) -> Result<(), anyhow::Error> -where - C: Service< - BlockChainContextRequest, - Response = BlockChainContextResponse, - Error = tower::BoxError, - > + Clone - + Send - + 'static, - C::Future: Send + 'static, - - TxV: Service - + Clone - + Send - + 'static, - TxV::Future: Send + 'static, -{ - let BlockchainResponse::AltBlocksInChain(mut alt_blocks) = blockchain_read_handle - .ready() - .await - .expect("TODO") - .call(BlockchainReadRequest::AltBlocksInChain( - top_alt_block.chain_id, - )) - .await? - else { - panic!("Incorrect response!"); - }; - - alt_blocks.push(top_alt_block); - - let split_height = alt_blocks[0].height; - - let BlockchainResponse::PopBlocks(old_main_chain_id) = blockchain_write_handle - .ready() - .await - .expect("TODO") - .call(BlockchainWriteRequest::PopBlocks( - chain_height - split_height + 1, - )) - .await? - else { - panic!("Incorrect response!"); - }; - - todo!() -} - -async fn verify_add_alt_blocks_to_main_chain( - alt_blocks: Vec, - block_verifier_service: &mut BlockVerifierService, - blockchain_context_service: &mut C, - blockchain_write_handle: &mut BlockchainWriteHandle, -) -> Result<(), anyhow::Error> -where - C: Service< - BlockChainContextRequest, - Response = BlockChainContextResponse, - Error = tower::BoxError, - > + Clone - + Send - + 'static, - C::Future: Send + 'static, - - TxV: Service - + Clone - + Send - + 'static, - TxV::Future: Send + 'static, -{ - let VerifyBlockResponse::AltChain(alt_block_info) = block_verifier_service - .ready() - .await - .expect("TODO") - .call(VerifyBlockRequest::MainChainPrepped { block, txs }) - .await? - else { - panic!("Incorrect response!"); - }; + if first_block.header.previous == self.cached_blockchain_context.top_hash { + self.handle_incoming_block_batch_main_chain(batch).await.expect("TODO"); + } else { + self.handle_incoming_block_batch_alt_chain(batch).await.expect("TODO"); + } + } + + async fn handle_incoming_block_batch_main_chain( + &mut self, + batch: BlockBatch, + ) -> Result<(), anyhow::Error> { + info!( + "Handling batch to main chain height: {}", + batch.blocks.first().unwrap().0.number().unwrap() + ); + + let VerifyBlockResponse::MainChainBatchPrepped(prepped) = self + .block_verifier_service + .ready() + .await + .expect("TODO") + .call(VerifyBlockRequest::MainChainBatchPrepareBlocks { + blocks: batch.blocks, + }) + .await? + else { + panic!("Incorrect response!"); + }; + + for (block, txs) in prepped { + let VerifyBlockResponse::MainChain(verified_block) = self + .block_verifier_service + .ready() + .await + .expect("TODO") + .call(VerifyBlockRequest::MainChainPrepped { block, txs }) + .await? + else { + panic!("Incorrect response!"); + }; + + self.add_valid_block_to_main_chain(verified_block).await; + } + + Ok(()) + } + + async fn handle_incoming_block_batch_alt_chain( + &mut self, + batch: BlockBatch, + ) -> Result<(), anyhow::Error> { + for (block, txs) in batch.blocks { + let txs = txs + .into_par_iter() + .map(|tx| { + let tx = new_tx_verification_data(tx)?; + Ok((tx.tx_hash, tx)) + }) + .collect::>()?; + + self.handle_incoming_alt_block(block, txs).await?; + } + + Ok(()) + } + + pub async fn handle_incoming_alt_block( + &mut self, + block: Block, + prepared_txs: HashMap<[u8; 32], TransactionVerificationData>, + ) -> Result<(), anyhow::Error> { + let VerifyBlockResponse::AltChain(alt_block_info) = self + .block_verifier_service + .ready() + .await + .expect("TODO") + .call(VerifyBlockRequest::AltChain { + block, + prepared_txs, + }) + .await? + else { + panic!("Incorrect response!"); + }; + + // TODO: check in consensus crate if alt block already exists. + + if alt_block_info.cumulative_difficulty + > self.cached_blockchain_context.cumulative_difficulty + { + self.try_do_reorg(alt_block_info).await?; + // TODO: ban the peer if the reorg failed. + + return Ok(()); + } + + self.blockchain_write_handle + .ready() + .await + .expect("TODO") + .call(BlockchainWriteRequest::WriteAltBlock(alt_block_info)) + .await?; + + Ok(()) + } + + async fn try_do_reorg( + &mut self, + top_alt_block: AltBlockInformation, + ) -> Result<(), anyhow::Error> { + let _guard = REORG_LOCK.write().await; + + let BlockchainResponse::AltBlocksInChain(mut alt_blocks) = self + .blockchain_read_handle + .ready() + .await + .expect("TODO") + .call(BlockchainReadRequest::AltBlocksInChain( + top_alt_block.chain_id, + )) + .await? + else { + panic!("Incorrect response!"); + }; + + alt_blocks.push(top_alt_block); + + let split_height = alt_blocks[0].height; + let current_main_chain_height = self.cached_blockchain_context.chain_height; + + let BlockchainResponse::PopBlocks(old_main_chain_id) = self + .blockchain_write_handle + .ready() + .await + .expect("TODO") + .call(BlockchainWriteRequest::PopBlocks( + current_main_chain_height - split_height + 1, + )) + .await + .expect("TODO") + else { + panic!("Incorrect response!"); + }; + + self.blockchain_context_service + .ready() + .await + .expect("TODO") + .call(BlockChainContextRequest::PopBlocks { + numb_blocks: current_main_chain_height - split_height + 1, + }) + .await + .expect("TODO"); + + let reorg_res = self.verify_add_alt_blocks_to_main_chain(alt_blocks).await; + + match reorg_res { + Ok(()) => Ok(()), + Err(e) => { + todo!("Reverse reorg") + } + } + } + + async fn verify_add_alt_blocks_to_main_chain( + &mut self, + alt_blocks: Vec, + ) -> Result<(), anyhow::Error> { + for mut alt_block in alt_blocks { + let prepped_txs = alt_block + .txs + .drain(..) + .map(|tx| Ok(Arc::new(tx.try_into()?))) + .collect::>()?; + + let prepped_block = PreparedBlock::new_alt_block(alt_block)?; + + let VerifyBlockResponse::MainChain(verified_block) = self + .block_verifier_service + .ready() + .await + .expect("TODO") + .call(VerifyBlockRequest::MainChainPrepped { + block: prepped_block, + txs: prepped_txs, + }) + .await? + else { + panic!("Incorrect response!"); + }; + + self.add_valid_block_to_main_chain(verified_block).await; + } + + Ok(()) + } + + pub async fn add_valid_block_to_main_chain( + &mut self, + verified_block: VerifiedBlockInformation, + ) { + self.blockchain_context_service + .ready() + .await + .expect("TODO") + .call(BlockChainContextRequest::Update(NewBlockData { + block_hash: verified_block.block_hash, + height: verified_block.height, + timestamp: verified_block.block.header.timestamp, + weight: verified_block.weight, + long_term_weight: verified_block.long_term_weight, + generated_coins: verified_block.generated_coins, + vote: HardFork::from_vote(verified_block.block.header.hardfork_signal), + cumulative_difficulty: verified_block.cumulative_difficulty, + })) + .await + .expect("TODO"); + + self.blockchain_write_handle + .ready() + .await + .expect("TODO") + .call(BlockchainWriteRequest::WriteBlock(verified_block)) + .await + .expect("TODO"); + + let BlockChainContextResponse::Context(blockchain_context) = self + .blockchain_context_service + .ready() + .await + .expect("TODO") + .call(BlockChainContextRequest::GetContext) + .await + .expect("TODO") else { + panic!("Incorrect response!"); + }; + + self.cached_blockchain_context = blockchain_context.unchecked_blockchain_context().clone(); + } } diff --git a/binaries/cuprated/src/main.rs b/binaries/cuprated/src/main.rs index 0e706b93..0a885363 100644 --- a/binaries/cuprated/src/main.rs +++ b/binaries/cuprated/src/main.rs @@ -18,6 +18,7 @@ mod blockchain; mod config; mod p2p; mod rpc; +mod signals; mod txpool; use blockchain::check_add_genesis; @@ -58,7 +59,7 @@ fn main() { context_svc, block_verifier, config.block_downloader_config(), - ); + ).await; // TODO: this can be removed as long as the main thread does not exit, so when command handling // is added diff --git a/binaries/cuprated/src/signals.rs b/binaries/cuprated/src/signals.rs new file mode 100644 index 00000000..cafd8cdb --- /dev/null +++ b/binaries/cuprated/src/signals.rs @@ -0,0 +1,3 @@ +use tokio::sync::RwLock; + +pub static REORG_LOCK: RwLock<()> = RwLock::const_new(()); diff --git a/p2p/address-book/src/lib.rs b/p2p/address-book/src/lib.rs index 8c531e75..ae35a1bb 100644 --- a/p2p/address-book/src/lib.rs +++ b/p2p/address-book/src/lib.rs @@ -88,19 +88,15 @@ mod sealed { /// An internal trait for the address book for a [`NetworkZone`] that adds the requirement of [`borsh`] traits /// onto the network address. - pub trait BorshNetworkZone: - NetworkZone< - Addr: NetZoneAddress - + borsh::BorshDeserialize - + borsh::BorshSerialize, - > - { + pub trait BorshNetworkZone: NetworkZone { + type BorshAddr: NetZoneAddress + borsh::BorshDeserialize + borsh::BorshSerialize; } impl BorshNetworkZone for T where T::Addr: borsh::BorshDeserialize + borsh::BorshSerialize, - ::BanID: borsh::BorshDeserialize + borsh::BorshSerialize, { + type BorshAddr = T::Addr; } + } diff --git a/p2p_state.bin b/p2p_state.bin index bf2d673dd8c3bca6473f8a64e5c96f5145cd2331..281771cac6fd217c1d42942fc5489e431caa63a0 100644 GIT binary patch delta 72123 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 AKmY&$ delta 62066 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 CT8b0^ diff --git a/storage/blockchain/src/service/read.rs b/storage/blockchain/src/service/read.rs index 07fa8253..e502c9f1 100644 --- a/storage/blockchain/src/service/read.rs +++ b/storage/blockchain/src/service/read.rs @@ -628,7 +628,7 @@ fn next_missing_chain_entry(env: &ConcreteEnv, block_hashes: Vec<[u8; 32]>) -> R let block_hashes: Vec<_> = table_block_infos .get_range(start_height..end_height)? .map(|block_info| Ok(block_info?.block_hash)) - .collect::>()?; + .collect::>()?; let first_missing_block = if block_hashes.len() > 1 { let table_block_blobs = env_inner.open_db_ro::(&tx_ro)?;