From 1549a886189bb4dadfd144ace56e81ac81f7859b Mon Sep 17 00:00:00 2001 From: Boog900 <boog900@tutanota.com> Date: Sat, 8 Mar 2025 01:54:34 +0000 Subject: [PATCH] cuprated: Add fast sync (#389) * add specific method for context * add new statemachine for tx verification * fix consensus crates build * working builds * fix CI * add docs * fix CI * fix docs * fix clippy * cleanup * add docs to `blockchain_context` * fix doc tests * add output cache * new monero-serai * todo * todo * Revert "new monero-serai" This reverts commit fe3f6acc676fe59e794d5f92f07f76445db35199. * use indexmap to request outputs * clean up * fix typos * fix CI * fix cargo hack * fix reorgs * check if a block is already present before adding it to the alt block cache * fmt * update to new monero oxide API * fmt & fix cache * update config values * fix tests * add fast sync * fix start_height check * disable kill switch for now * add fast sync config options * add docs * wait for all blocks to download before starting the syncer again. * fix permit * typo * fix import order * fmt * add docs + order imports * fix clippy * review fixes * rename top -> stop --- Cargo.lock | 8 +- binaries/cuprated/src/blockchain.rs | 2 + .../cuprated/src/blockchain/chain_service.rs | 20 +- binaries/cuprated/src/blockchain/fast_sync.rs | 24 ++ .../blockchain/fast_sync/fast_sync_hashes.bin | Bin 0 -> 209344 bytes binaries/cuprated/src/blockchain/manager.rs | 8 +- .../src/blockchain/manager/handler.rs | 120 ++++-- binaries/cuprated/src/blockchain/syncer.rs | 28 +- binaries/cuprated/src/commands.rs | 8 + binaries/cuprated/src/config.rs | 2 + binaries/cuprated/src/config/args.rs | 8 + binaries/cuprated/src/main.rs | 11 + consensus/fast-sync/Cargo.toml | 10 +- consensus/fast-sync/src/create.rs | 61 ++- consensus/fast-sync/src/data/hashes_of_hashes | 12 - consensus/fast-sync/src/fast_sync.rs | 405 ++++++++---------- consensus/fast-sync/src/lib.rs | 8 +- consensus/fast-sync/src/util.rs | 8 - p2p/p2p/src/block_downloader.rs | 115 +++-- p2p/p2p/src/block_downloader/chain_tracker.rs | 106 +++-- p2p/p2p/src/block_downloader/request_chain.rs | 12 +- p2p/p2p/src/block_downloader/tests.rs | 11 +- p2p/p2p/src/constants.rs | 3 + p2p/p2p/src/lib.rs | 2 +- storage/blockchain/src/service/read.rs | 32 +- storage/blockchain/src/service/write.rs | 28 ++ types/src/blockchain.rs | 15 + 27 files changed, 653 insertions(+), 414 deletions(-) create mode 100644 binaries/cuprated/src/blockchain/fast_sync.rs create mode 100644 binaries/cuprated/src/blockchain/fast_sync/fast_sync_hashes.bin delete mode 100644 consensus/fast-sync/src/data/hashes_of_hashes delete mode 100644 consensus/fast-sync/src/util.rs diff --git a/Cargo.lock b/Cargo.lock index 2ad83bd3..4593984e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -774,18 +774,16 @@ dependencies = [ name = "cuprate-fast-sync" version = "0.1.0" dependencies = [ + "blake3", "clap", "cuprate-blockchain", "cuprate-consensus", "cuprate-consensus-context", - "cuprate-consensus-rules", - "cuprate-helper", + "cuprate-p2p", + "cuprate-p2p-core", "cuprate-types", "hex", - "hex-literal", "monero-serai", - "sha3", - "thiserror", "tokio", "tower 0.5.1", ] diff --git a/binaries/cuprated/src/blockchain.rs b/binaries/cuprated/src/blockchain.rs index 34317084..a196a9f2 100644 --- a/binaries/cuprated/src/blockchain.rs +++ b/binaries/cuprated/src/blockchain.rs @@ -20,11 +20,13 @@ use cuprate_types::{ use crate::constants::PANIC_CRITICAL_SERVICE_ERROR; mod chain_service; +mod fast_sync; pub mod interface; mod manager; mod syncer; mod types; +pub use fast_sync::set_fast_sync_hashes; pub use manager::init_blockchain_manager; pub use types::ConsensusBlockchainReadHandle; diff --git a/binaries/cuprated/src/blockchain/chain_service.rs b/binaries/cuprated/src/blockchain/chain_service.rs index af862d1d..4716ad4f 100644 --- a/binaries/cuprated/src/blockchain/chain_service.rs +++ b/binaries/cuprated/src/blockchain/chain_service.rs @@ -4,7 +4,9 @@ use futures::{future::BoxFuture, FutureExt, TryFutureExt}; use tower::Service; use cuprate_blockchain::service::BlockchainReadHandle; +use cuprate_fast_sync::validate_entries; use cuprate_p2p::block_downloader::{ChainSvcRequest, ChainSvcResponse}; +use cuprate_p2p_core::NetworkZone; use cuprate_types::blockchain::{BlockchainReadRequest, BlockchainResponse}; /// That service that allows retrieving the chain state to give to the P2P crates, so we can figure out @@ -14,8 +16,8 @@ use cuprate_types::blockchain::{BlockchainReadRequest, BlockchainResponse}; #[derive(Clone)] pub struct ChainService(pub BlockchainReadHandle); -impl Service<ChainSvcRequest> for ChainService { - type Response = ChainSvcResponse; +impl<N: NetworkZone> Service<ChainSvcRequest<N>> for ChainService { + type Response = ChainSvcResponse<N>; type Error = tower::BoxError; type Future = BoxFuture<'static, Result<Self::Response, Self::Error>>; @@ -23,7 +25,7 @@ impl Service<ChainSvcRequest> for ChainService { self.0.poll_ready(cx).map_err(Into::into) } - fn call(&mut self, req: ChainSvcRequest) -> Self::Future { + fn call(&mut self, req: ChainSvcRequest<N>) -> Self::Future { let map_res = |res: BlockchainResponse| match res { BlockchainResponse::CompactChainHistory { block_ids, @@ -67,6 +69,18 @@ impl Service<ChainSvcRequest> for ChainService { }) .map_err(Into::into) .boxed(), + ChainSvcRequest::ValidateEntries(entries, start_height) => { + let mut blockchain_read_handle = self.0.clone(); + + async move { + let (valid, unknown) = + validate_entries(entries, start_height, &mut blockchain_read_handle) + .await?; + + Ok(ChainSvcResponse::ValidateEntries { valid, unknown }) + } + .boxed() + } } } } diff --git a/binaries/cuprated/src/blockchain/fast_sync.rs b/binaries/cuprated/src/blockchain/fast_sync.rs new file mode 100644 index 00000000..63b11df4 --- /dev/null +++ b/binaries/cuprated/src/blockchain/fast_sync.rs @@ -0,0 +1,24 @@ +use std::slice; + +use cuprate_helper::network::Network; + +/// The hashes of the compiled in fast sync file. +static FAST_SYNC_HASHES: &[[u8; 32]] = { + let bytes = include_bytes!("./fast_sync/fast_sync_hashes.bin"); + + if bytes.len() % 32 == 0 { + // SAFETY: The file byte length must be perfectly divisible by 32, checked above. + unsafe { slice::from_raw_parts(bytes.as_ptr().cast::<[u8; 32]>(), bytes.len() / 32) } + } else { + panic!(); + } +}; + +/// Set the fast-sync hashes according to the provided values. +pub fn set_fast_sync_hashes(fast_sync: bool, network: Network) { + cuprate_fast_sync::set_fast_sync_hashes(if fast_sync && network == Network::Mainnet { + FAST_SYNC_HASHES + } else { + &[] + }); +} diff --git a/binaries/cuprated/src/blockchain/fast_sync/fast_sync_hashes.bin b/binaries/cuprated/src/blockchain/fast_sync/fast_sync_hashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..5d94b7d88e1a50d524d911be055c7d4f41b96065 GIT binary patch literal 209344 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/jzGxLmtgNc^rIhsH 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 KA$OSJUfKlFhw`KV literal 0 HcmV?d00001 diff --git a/binaries/cuprated/src/blockchain/manager.rs b/binaries/cuprated/src/blockchain/manager.rs index 8dde7ac5..782e6efe 100644 --- a/binaries/cuprated/src/blockchain/manager.rs +++ b/binaries/cuprated/src/blockchain/manager.rs @@ -2,7 +2,7 @@ use std::{collections::HashMap, sync::Arc}; use futures::StreamExt; use monero_serai::block::Block; -use tokio::sync::{mpsc, oneshot, Notify}; +use tokio::sync::{mpsc, oneshot, Notify, OwnedSemaphorePermit}; use tower::{BoxError, Service, ServiceExt}; use tracing::error; @@ -106,15 +106,17 @@ impl BlockchainManager { /// The [`BlockchainManager`] task. pub async fn run( mut self, - mut block_batch_rx: mpsc::Receiver<BlockBatch>, + mut block_batch_rx: mpsc::Receiver<(BlockBatch, Arc<OwnedSemaphorePermit>)>, mut command_rx: mpsc::Receiver<BlockchainManagerCommand>, ) { loop { tokio::select! { - Some(batch) = block_batch_rx.recv() => { + Some((batch, permit)) = block_batch_rx.recv() => { self.handle_incoming_block_batch( batch, ).await; + + drop(permit); } Some(incoming_command) = command_rx.recv() => { self.handle_command(incoming_command).await; diff --git a/binaries/cuprated/src/blockchain/manager/handler.rs b/binaries/cuprated/src/blockchain/manager/handler.rs index 0c8264bf..a6583844 100644 --- a/binaries/cuprated/src/blockchain/manager/handler.rs +++ b/binaries/cuprated/src/blockchain/manager/handler.rs @@ -1,4 +1,6 @@ //! The blockchain manager handler functions. +use std::{collections::HashMap, sync::Arc}; + use bytes::Bytes; use futures::{TryFutureExt, TryStreamExt}; use monero_serai::{ @@ -6,10 +8,8 @@ use monero_serai::{ transaction::{Input, Transaction}, }; use rayon::prelude::*; -use std::ops::ControlFlow; -use std::{collections::HashMap, sync::Arc}; use tower::{Service, ServiceExt}; -use tracing::{info, instrument}; +use tracing::{info, instrument, Span}; use cuprate_blockchain::service::{BlockchainReadHandle, BlockchainWriteHandle}; use cuprate_consensus::{ @@ -21,12 +21,13 @@ use cuprate_consensus::{ BlockChainContextRequest, BlockChainContextResponse, ExtendedConsensusError, }; use cuprate_consensus_context::NewBlockData; +use cuprate_fast_sync::{block_to_verified_block_information, fast_sync_stop_height}; use cuprate_helper::cast::usize_to_u64; use cuprate_p2p::{block_downloader::BlockBatch, constants::LONG_BAN, BroadcastRequest}; use cuprate_txpool::service::interface::TxpoolWriteRequest; use cuprate_types::{ blockchain::{BlockchainReadRequest, BlockchainResponse, BlockchainWriteRequest}, - AltBlockInformation, HardFork, TransactionVerificationData, VerifiedBlockInformation, + AltBlockInformation, Chain, HardFork, TransactionVerificationData, VerifiedBlockInformation, }; use crate::{ @@ -166,6 +167,11 @@ impl super::BlockchainManager { /// This function will panic if any internal service returns an unexpected error that we cannot /// recover from or if the incoming batch contains no blocks. async fn handle_incoming_block_batch_main_chain(&mut self, batch: BlockBatch) { + if batch.blocks.last().unwrap().0.number().unwrap() < fast_sync_stop_height() { + self.handle_incoming_block_batch_fast_sync(batch).await; + return; + } + let Ok((prepped_blocks, mut output_cache)) = batch_prepare_main_chain_blocks( batch.blocks, &mut self.blockchain_context_service, @@ -195,7 +201,32 @@ impl super::BlockchainManager { self.add_valid_block_to_main_chain(verified_block).await; } - info!("Successfully added block batch"); + info!(fast_sync = false, "Successfully added block batch"); + } + + /// Handles an incoming block batch while we are under the fast sync height. + /// + /// # Panics + /// + /// This function will panic if any internal service returns an unexpected error that we cannot + /// recover from. + async fn handle_incoming_block_batch_fast_sync(&mut self, batch: BlockBatch) { + let mut valid_blocks = Vec::with_capacity(batch.blocks.len()); + for (block, txs) in batch.blocks { + let block = block_to_verified_block_information( + block, + txs, + self.blockchain_context_service.blockchain_context(), + ); + self.add_valid_block_to_blockchain_cache(&block).await; + + valid_blocks.push(block); + } + + self.batch_add_valid_block_to_blockchain_database(valid_blocks) + .await; + + info!(fast_sync = true, "Successfully added block batch"); } /// Handles an incoming [`BlockBatch`] that does not follow the main-chain. @@ -212,7 +243,6 @@ impl super::BlockchainManager { /// recover from. async fn handle_incoming_block_batch_alt_chain(&mut self, mut batch: BlockBatch) { // TODO: this needs testing (this whole section does but alt-blocks specifically). - let mut blocks = batch.blocks.into_iter(); while let Some((block, txs)) = blocks.next() { @@ -248,6 +278,8 @@ impl super::BlockchainManager { Ok(AddAltBlock::Cached) => (), } } + + info!(alt_chain = true, "Successfully added block batch"); } /// Handles an incoming alt [`Block`]. @@ -284,9 +316,10 @@ impl super::BlockchainManager { unreachable!(); }; - if chain.is_some() { - // The block could also be in the main-chain here under some circumstances. - return Ok(AddAltBlock::Cached); + match chain { + Some((Chain::Alt(_), _)) => return Ok(AddAltBlock::Cached), + Some((Chain::Main, _)) => anyhow::bail!("Alt block already in main chain"), + None => (), } let alt_block_info = @@ -458,22 +491,8 @@ impl super::BlockchainManager { }) .collect::<Vec<[u8; 32]>>(); - self.blockchain_context_service - .ready() - .await - .expect(PANIC_CRITICAL_SERVICE_ERROR) - .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(PANIC_CRITICAL_SERVICE_ERROR); + self.add_valid_block_to_blockchain_cache(&verified_block) + .await; self.blockchain_write_handle .ready() @@ -491,11 +510,60 @@ impl super::BlockchainManager { .await .expect(PANIC_CRITICAL_SERVICE_ERROR); } + + /// Adds a [`VerifiedBlockInformation`] to the blockchain context cache. + /// + /// # Panics + /// + /// This function will panic if any internal service returns an unexpected error that we cannot + /// recover from. + async fn add_valid_block_to_blockchain_cache( + &mut self, + verified_block: &VerifiedBlockInformation, + ) { + self.blockchain_context_service + .ready() + .await + .expect(PANIC_CRITICAL_SERVICE_ERROR) + .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(PANIC_CRITICAL_SERVICE_ERROR); + } + + /// Batch writes the [`VerifiedBlockInformation`]s to the database. + /// + /// The blocks must be sequential. + /// + /// # Panics + /// + /// This function will panic if any internal service returns an unexpected error that we cannot + /// recover from. + async fn batch_add_valid_block_to_blockchain_database( + &mut self, + blocks: Vec<VerifiedBlockInformation>, + ) { + self.blockchain_write_handle + .ready() + .await + .expect(PANIC_CRITICAL_SERVICE_ERROR) + .call(BlockchainWriteRequest::BatchWriteBlocks(blocks)) + .await + .expect(PANIC_CRITICAL_SERVICE_ERROR); + } } /// The result from successfully adding an alt-block. enum AddAltBlock { - /// The alt-block was cached or was already present in the DB. + /// The alt-block was cached. Cached, /// The chain was reorged. Reorged, diff --git a/binaries/cuprated/src/blockchain/syncer.rs b/binaries/cuprated/src/blockchain/syncer.rs index 106c3eed..8a2c218f 100644 --- a/binaries/cuprated/src/blockchain/syncer.rs +++ b/binaries/cuprated/src/blockchain/syncer.rs @@ -3,7 +3,7 @@ use std::{sync::Arc, time::Duration}; use futures::StreamExt; use tokio::{ - sync::{mpsc, oneshot, Notify}, + sync::{mpsc, Notify, OwnedSemaphorePermit, Semaphore}, time::interval, }; use tower::{Service, ServiceExt}; @@ -15,7 +15,7 @@ use cuprate_p2p::{ block_downloader::{BlockBatch, BlockDownloaderConfig, ChainSvcRequest, ChainSvcResponse}, NetworkInterface, PeerSetRequest, PeerSetResponse, }; -use cuprate_p2p_core::ClearNet; +use cuprate_p2p_core::{ClearNet, NetworkZone}; const CHECK_SYNC_FREQUENCY: Duration = Duration::from_secs(30); @@ -30,17 +30,21 @@ pub enum SyncerError { /// The syncer tasks that makes sure we are fully synchronised with our connected peers. #[instrument(level = "debug", skip_all)] +#[expect(clippy::significant_drop_tightening)] pub async fn syncer<CN>( mut context_svc: BlockchainContextService, our_chain: CN, mut clearnet_interface: NetworkInterface<ClearNet>, - incoming_block_batch_tx: mpsc::Sender<BlockBatch>, + incoming_block_batch_tx: mpsc::Sender<(BlockBatch, Arc<OwnedSemaphorePermit>)>, stop_current_block_downloader: Arc<Notify>, block_downloader_config: BlockDownloaderConfig, ) -> Result<(), SyncerError> where - CN: Service<ChainSvcRequest, Response = ChainSvcResponse, Error = tower::BoxError> - + Clone + CN: Service< + ChainSvcRequest<ClearNet>, + Response = ChainSvcResponse<ClearNet>, + Error = tower::BoxError, + > + Clone + Send + 'static, CN::Future: Send + 'static, @@ -51,6 +55,9 @@ where tracing::debug!("Waiting for new sync info in top sync channel"); + let semaphore = Arc::new(Semaphore::new(1)); + + let mut sync_permit = Arc::new(Arc::clone(&semaphore).acquire_owned().await.unwrap()); loop { check_sync_interval.tick().await; @@ -72,10 +79,19 @@ where tokio::select! { () = stop_current_block_downloader.notified() => { tracing::info!("Received stop signal, stopping block downloader"); + + drop(sync_permit); + sync_permit = Arc::new(Arc::clone(&semaphore).acquire_owned().await.unwrap()); + break; } batch = block_batch_stream.next() => { let Some(batch) = batch else { + // Wait for all references to the permit have been dropped (which means all blocks in the queue + // have been handled before checking if we are synced. + drop(sync_permit); + sync_permit = Arc::new(Arc::clone(&semaphore).acquire_owned().await.unwrap()); + let blockchain_context = context_svc.blockchain_context(); if !check_behind_peers(blockchain_context, &mut clearnet_interface).await? { @@ -86,7 +102,7 @@ where }; tracing::debug!("Got batch, len: {}", batch.blocks.len()); - if incoming_block_batch_tx.send(batch).await.is_err() { + if incoming_block_batch_tx.send((batch, Arc::clone(&sync_permit))).await.is_err() { return Err(SyncerError::IncomingBlockChannelClosed); } } diff --git a/binaries/cuprated/src/commands.rs b/binaries/cuprated/src/commands.rs index e99282be..89e9cd71 100644 --- a/binaries/cuprated/src/commands.rs +++ b/binaries/cuprated/src/commands.rs @@ -47,6 +47,9 @@ pub enum Command { /// Print status information on `cuprated`. Status, + + /// Print the height of first block not contained in the fast sync hashes. + FastSyncStopHeight, } /// The log output target. @@ -123,6 +126,11 @@ pub async fn io_loop( println!("STATUS:\n uptime: {h}h {m}m {s}s,\n height: {height},\n top_hash: {top_hash}"); } + Command::FastSyncStopHeight => { + let stop_height = cuprate_fast_sync::fast_sync_stop_height(); + + println!("{stop_height}"); + } } } } diff --git a/binaries/cuprated/src/config.rs b/binaries/cuprated/src/config.rs index 99758bfb..84bfabf7 100644 --- a/binaries/cuprated/src/config.rs +++ b/binaries/cuprated/src/config.rs @@ -83,6 +83,8 @@ pub struct Config { /// The network we should run on. network: Network, + pub no_fast_sync: bool, + /// [`tracing`] config. pub tracing: TracingConfig, diff --git a/binaries/cuprated/src/config/args.rs b/binaries/cuprated/src/config/args.rs index 58c144d7..3c27ec3e 100644 --- a/binaries/cuprated/src/config/args.rs +++ b/binaries/cuprated/src/config/args.rs @@ -20,6 +20,13 @@ pub struct Args { )] pub network: Network, + /// Disable fast sync, all past blocks will undergo full verification when syncing. + /// + /// This significantly increases initial sync time. This provides no extra security, you just + /// have to trust the devs to insert the correct hashes (which are verifiable). + #[arg(long)] + no_fast_sync: bool, + /// The amount of outbound clear-net connections to maintain. #[arg(long)] pub outbound_connections: Option<usize>, @@ -64,6 +71,7 @@ impl Args { /// This may exit the program if a config value was set that requires an early exit. pub const fn apply_args(&self, mut config: Config) -> Config { config.network = self.network; + config.no_fast_sync = config.no_fast_sync || self.no_fast_sync; if let Some(outbound_connections) = self.outbound_connections { config.p2p.clear_net.general.outbound_connections = outbound_connections; diff --git a/binaries/cuprated/src/main.rs b/binaries/cuprated/src/main.rs index 9f607f32..6ac9a674 100644 --- a/binaries/cuprated/src/main.rs +++ b/binaries/cuprated/src/main.rs @@ -55,6 +55,8 @@ fn main() { let config = config::read_config_and_args(); + blockchain::set_fast_sync_hashes(!config.no_fast_sync, config.network()); + // Initialize logging. logging::init_logging(&config); @@ -82,6 +84,15 @@ fn main() { // Initialize async tasks. rt.block_on(async move { + // TODO: we could add an option for people to keep these like monerod? + blockchain_write_handle + .ready() + .await + .expect(PANIC_CRITICAL_SERVICE_ERROR) + .call(BlockchainWriteRequest::FlushAltBlocks) + .await + .expect(PANIC_CRITICAL_SERVICE_ERROR); + // Check add the genesis block to the blockchain. blockchain::check_add_genesis( &mut blockchain_read_handle, diff --git a/consensus/fast-sync/Cargo.toml b/consensus/fast-sync/Cargo.toml index 8e732a6f..4aa84e36 100644 --- a/consensus/fast-sync/Cargo.toml +++ b/consensus/fast-sync/Cargo.toml @@ -5,23 +5,21 @@ edition = "2021" license = "MIT" [[bin]] -name = "cuprate-fast-sync-create-hashes" +name = "create-fs-file" path = "src/create.rs" [dependencies] cuprate-blockchain = { workspace = true } cuprate-consensus = { workspace = true } -cuprate-consensus-rules = { workspace = true } cuprate-consensus-context = { workspace = true } cuprate-types = { workspace = true } -cuprate-helper = { workspace = true, features = ["cast"] } +cuprate-p2p = { workspace = true } +cuprate-p2p-core = { workspace = true } clap = { workspace = true, features = ["derive", "std"] } hex = { workspace = true } -hex-literal = { workspace = true } monero-serai = { workspace = true } -sha3 = { version = "0.10.8" } -thiserror = { workspace = true } +blake3 = { workspace = true } tokio = { workspace = true, features = ["full"] } tower = { workspace = true } diff --git a/consensus/fast-sync/src/create.rs b/consensus/fast-sync/src/create.rs index 9410f60a..349d6a29 100644 --- a/consensus/fast-sync/src/create.rs +++ b/consensus/fast-sync/src/create.rs @@ -3,7 +3,7 @@ reason = "binary shares same Cargo.toml as library" )] -use std::{fmt::Write, fs::write}; +use std::fs::write; use clap::Parser; use tower::{Service, ServiceExt}; @@ -16,48 +16,30 @@ use cuprate_types::{ Chain, }; -use cuprate_fast_sync::{hash_of_hashes, BlockId, HashOfHashes}; - -const BATCH_SIZE: usize = 512; +use cuprate_fast_sync::FAST_SYNC_BATCH_LEN; async fn read_batch( handle: &mut BlockchainReadHandle, height_from: usize, -) -> DbResult<Vec<BlockId>> { - let mut block_ids = Vec::<BlockId>::with_capacity(BATCH_SIZE); +) -> DbResult<Vec<[u8; 32]>> { + let request = BlockchainReadRequest::BlockHashInRange( + height_from..(height_from + FAST_SYNC_BATCH_LEN), + Chain::Main, + ); + let response_channel = handle.ready().await?.call(request); + let response = response_channel.await?; - for height in height_from..(height_from + BATCH_SIZE) { - let request = BlockchainReadRequest::BlockHash(height, Chain::Main); - let response_channel = handle.ready().await?.call(request); - let response = response_channel.await?; - - match response { - BlockchainResponse::BlockHash(block_id) => block_ids.push(block_id), - _ => unreachable!(), - } - } + let BlockchainResponse::BlockHashInRange(block_ids) = response else { + unreachable!() + }; Ok(block_ids) } -fn generate_hex(hashes: &[HashOfHashes]) -> String { - let mut s = String::new(); - - writeln!(&mut s, "[").unwrap(); - - for hash in hashes { - writeln!(&mut s, "\thex!(\"{}\"),", hex::encode(hash)).unwrap(); - } - - writeln!(&mut s, "]").unwrap(); - - s -} - #[derive(Parser)] #[command(version, about, long_about = None)] struct Args { - #[arg(short, long)] + #[arg(long)] height: usize, } @@ -74,7 +56,7 @@ async fn main() { let mut height = 0_usize; - while height < height_target { + while (height + FAST_SYNC_BATCH_LEN) < height_target { if let Ok(block_ids) = read_batch(&mut read_handle, height).await { let hash = hash_of_hashes(block_ids.as_slice()); hashes_of_hashes.push(hash); @@ -82,13 +64,22 @@ async fn main() { println!("Failed to read next batch from database"); break; } - height += BATCH_SIZE; + height += FAST_SYNC_BATCH_LEN; + + println!("height: {height}"); } drop(read_handle); - let generated = generate_hex(&hashes_of_hashes); - write("src/data/hashes_of_hashes", generated).expect("Could not write file"); + write( + "data/fast_sync_hashes.bin", + hashes_of_hashes.concat().as_slice(), + ) + .expect("Could not write file"); println!("Generated hashes up to block height {height}"); } + +pub fn hash_of_hashes(hashes: &[[u8; 32]]) -> [u8; 32] { + blake3::hash(hashes.concat().as_slice()).into() +} diff --git a/consensus/fast-sync/src/data/hashes_of_hashes b/consensus/fast-sync/src/data/hashes_of_hashes deleted file mode 100644 index 2e5e99aa..00000000 --- a/consensus/fast-sync/src/data/hashes_of_hashes +++ /dev/null @@ -1,12 +0,0 @@ -[ - hex_literal::hex!("1adffbaf832784406018009e07d3dc3a39da7edb6632523c119ed8acb32eb934"), - hex_literal::hex!("ae960265e3398d04f3cd4f949ed13c2689424887c71c1441a03d900a9d3a777f"), - hex_literal::hex!("938c72d267bbd3a17cdecbe02443d00012ee62d6e9f3524f5a914192110b1798"), - hex_literal::hex!("de0c82e51549b6514b42a591fd5440dddb5cc0118ec461459a99017bf06a0a0a"), - hex_literal::hex!("9a50f4586ec7e0fb58c6383048d3b334180235fd34bb714af20f1a3ebce4c911"), - hex_literal::hex!("5a3942f9bb318d65997bf57c40e045d62e7edbe35f3dae57499c2c5554896543"), - hex_literal::hex!("9dccee3b094cdd1b98e357c2c81bfcea798ea75efd94e67c6f5e86f428c5ec2c"), - hex_literal::hex!("620397540d44f21c3c57c20e9d47c6aaf0b1bf4302a4d43e75f2e33edd1a4032"), - hex_literal::hex!("ef6c612fb17bd70ac2ac69b2f85a421b138cc3a81daf622b077cb402dbf68377"), - hex_literal::hex!("6815ecb2bd73a3ba5f20558bfe1b714c30d6892b290e0d6f6cbf18237cedf75a"), -] diff --git a/consensus/fast-sync/src/fast_sync.rs b/consensus/fast-sync/src/fast_sync.rs index 6016bb0c..faacc2bd 100644 --- a/consensus/fast-sync/src/fast_sync.rs +++ b/consensus/fast-sync/src/fast_sync.rs @@ -1,225 +1,214 @@ use std::{ - cmp, - collections::HashMap, - future::Future, - pin::Pin, - task::{Context, Poll}, + cmp::min, + collections::{HashMap, VecDeque}, + sync::OnceLock, }; +use blake3::Hasher; use monero_serai::{ block::Block, transaction::{Input, Transaction}, }; -use tower::Service; +use tower::{Service, ServiceExt}; +use cuprate_blockchain::service::BlockchainReadHandle; use cuprate_consensus::transactions::new_tx_verification_data; -use cuprate_consensus_context::BlockchainContextService; -use cuprate_consensus_rules::{miner_tx::MinerTxError, ConsensusError}; -use cuprate_helper::cast::u64_to_usize; -use cuprate_types::{VerifiedBlockInformation, VerifiedTransactionInformation}; +use cuprate_consensus_context::BlockchainContext; +use cuprate_p2p::block_downloader::ChainEntry; +use cuprate_p2p_core::NetworkZone; +use cuprate_types::{ + blockchain::{BlockchainReadRequest, BlockchainResponse}, + Chain, VerifiedBlockInformation, VerifiedTransactionInformation, +}; -use crate::{hash_of_hashes, BlockId, HashOfHashes}; +/// A [`OnceLock`] representing the fast sync hashes. +static FAST_SYNC_HASHES: OnceLock<&[[u8; 32]]> = OnceLock::new(); -#[cfg(not(test))] -static HASHES_OF_HASHES: &[HashOfHashes] = &include!("./data/hashes_of_hashes"); +/// The size of a batch of block hashes to hash to create a fast sync hash. +pub const FAST_SYNC_BATCH_LEN: usize = 512; -#[cfg(not(test))] -const BATCH_SIZE: usize = 512; - -#[cfg(test)] -static HASHES_OF_HASHES: &[HashOfHashes] = &[ - hex_literal::hex!("3fdc9032c16d440f6c96be209c36d3d0e1aed61a2531490fe0ca475eb615c40a"), - hex_literal::hex!("0102030405060708010203040506070801020304050607080102030405060708"), - hex_literal::hex!("0102030405060708010203040506070801020304050607080102030405060708"), -]; - -#[cfg(test)] -const BATCH_SIZE: usize = 4; - -#[inline] -fn max_height() -> u64 { - (HASHES_OF_HASHES.len() * BATCH_SIZE) as u64 +/// Returns the height of the first block not included in the embedded hashes. +/// +/// # Panics +/// +/// This function will panic if [`set_fast_sync_hashes`] has not been called. +pub fn fast_sync_stop_height() -> usize { + FAST_SYNC_HASHES.get().unwrap().len() * FAST_SYNC_BATCH_LEN } -#[derive(Debug, PartialEq, Eq)] -pub struct ValidBlockId(BlockId); - -fn valid_block_ids(block_ids: &[BlockId]) -> Vec<ValidBlockId> { - block_ids.iter().map(|b| ValidBlockId(*b)).collect() +/// Sets the hashes to use for fast-sync. +/// +/// # Panics +/// +/// This will panic if this is called more than once. +pub fn set_fast_sync_hashes(hashes: &'static [[u8; 32]]) { + FAST_SYNC_HASHES.set(hashes).unwrap(); } -#[expect(clippy::large_enum_variant)] -pub enum FastSyncRequest { - ValidateHashes { - start_height: u64, - block_ids: Vec<BlockId>, - }, - ValidateBlock { - block: Block, - txs: HashMap<[u8; 32], Transaction>, - token: ValidBlockId, - }, -} - -#[expect(clippy::large_enum_variant)] -#[derive(Debug, PartialEq, Eq)] -pub enum FastSyncResponse { - ValidateHashes { - validated_hashes: Vec<ValidBlockId>, - unknown_hashes: Vec<BlockId>, - }, - ValidateBlock(VerifiedBlockInformation), -} - -#[derive(thiserror::Error, Debug, PartialEq, Eq)] -pub enum FastSyncError { - #[error("Block does not match its expected hash")] - BlockHashMismatch, - - #[error("Start height must be a multiple of the batch size")] - InvalidStartHeight, - - #[error("Hash of hashes mismatch")] - Mismatch, - - #[error("Given range too small for fast sync (less than one batch)")] - NothingToDo, - - #[error("Start height too high for fast sync")] - OutOfRange, - - #[error("Block does not have the expected height entry")] - BlockHeightMismatch, - - #[error("Block does not contain the expected transaction list")] - TxsIncludedWithBlockIncorrect, - - #[error(transparent)] - Consensus(#[from] ConsensusError), - - #[error(transparent)] - MinerTx(#[from] MinerTxError), - - #[error("Database error: {0}")] - DbErr(String), -} - -impl From<tower::BoxError> for FastSyncError { - fn from(error: tower::BoxError) -> Self { - Self::DbErr(error.to_string()) - } -} - -pub struct FastSyncService { - context_svc: BlockchainContextService, -} - -impl FastSyncService { - #[expect(dead_code)] - pub(crate) const fn new(context_svc: BlockchainContextService) -> Self { - Self { context_svc } - } -} - -impl Service<FastSyncRequest> for FastSyncService { - type Response = FastSyncResponse; - type Error = FastSyncError; - type Future = - Pin<Box<dyn Future<Output = Result<Self::Response, Self::Error>> + Send + 'static>>; - - fn poll_ready(&mut self, _: &mut Context<'_>) -> Poll<Result<(), Self::Error>> { - Poll::Ready(Ok(())) +/// Validates that the given [`ChainEntry`]s are in the fast-sync hashes. +/// +/// `entries` should be a list of sequential entries. +/// `start_height` should be the height of the first block in the first entry. +/// +/// Returns a tuple, the first element being the entries that are valid* the second +/// the entries we do not know are valid and should be passed in again when we have more entries. +/// +/// *once we are passed the fast sync blocks all entries will be returned as valid as +/// we can not check their validity here. +/// +/// There may be more entries returned than passed in as entries could be split. +/// +/// # Panics +/// +/// This will panic if [`set_fast_sync_hashes`] has not been called. +pub async fn validate_entries<N: NetworkZone>( + mut entries: VecDeque<ChainEntry<N>>, + start_height: usize, + blockchain_read_handle: &mut BlockchainReadHandle, +) -> Result<(VecDeque<ChainEntry<N>>, VecDeque<ChainEntry<N>>), tower::BoxError> { + // if we are past the top fast sync block return all entries as valid. + if start_height >= fast_sync_stop_height() { + return Ok((entries, VecDeque::new())); } - fn call(&mut self, req: FastSyncRequest) -> Self::Future { - let mut context_svc = self.context_svc.clone(); + /* + The algorithm used here needs to preserve which peer told us about which blocks, so we cannot + simply join all the hashes together return all the ones that can be validated and the ones that + can't, we need to keep the batches separate. - Box::pin(async move { - match req { - FastSyncRequest::ValidateHashes { - start_height, - block_ids, - } => validate_hashes(start_height, &block_ids), - FastSyncRequest::ValidateBlock { block, txs, token } => { - validate_block(&mut context_svc, block, txs, &token) - } - } - }) - } -} + The first step is to calculate how many hashes we need from the blockchain to make up the first + fast-sync hash. -fn validate_hashes( - start_height: u64, - block_ids: &[BlockId], -) -> Result<FastSyncResponse, FastSyncError> { - let start_height_usize = u64_to_usize(start_height); + Then will take out all the batches at the end for which we cannot make up a full fast-sync hash + for, we will split a batch if it can only be partially validated. - if start_height_usize % BATCH_SIZE != 0 { - return Err(FastSyncError::InvalidStartHeight); - } + With the remaining hashes from the blockchain and the hashes in the batches we can validate we + work on calculating the fast sync hashes and comparing them to the ones in [`FAST_SYNC_HASHES`]. + */ - if start_height >= max_height() { - return Err(FastSyncError::OutOfRange); - } + // First calculate the start and stop for this range of hashes. + let hashes_start_height = (start_height / FAST_SYNC_BATCH_LEN) * FAST_SYNC_BATCH_LEN; + let amount_of_hashes = entries.iter().map(|e| e.ids.len()).sum::<usize>(); + let last_height = amount_of_hashes + start_height; - let stop_height = start_height_usize + block_ids.len(); + let hashes_stop_height = min( + (last_height / FAST_SYNC_BATCH_LEN) * FAST_SYNC_BATCH_LEN, + fast_sync_stop_height(), + ); - let batch_from = start_height_usize / BATCH_SIZE; - let batch_to = cmp::min(stop_height / BATCH_SIZE, HASHES_OF_HASHES.len()); - let n_batches = batch_to - batch_from; + let mut hashes_stop_diff_last_height = last_height - hashes_stop_height; - if n_batches == 0 { - return Err(FastSyncError::NothingToDo); - } + let mut unknown = VecDeque::new(); - for i in 0..n_batches { - let batch = &block_ids[BATCH_SIZE * i..BATCH_SIZE * (i + 1)]; - let actual = hash_of_hashes(batch); - let expected = HASHES_OF_HASHES[batch_from + i]; + // start moving from the back of the batches taking enough hashes out so we are only left with hashes + // that can be verified. + while !entries.is_empty() && hashes_stop_diff_last_height != 0 { + let back = entries.back_mut().unwrap(); - if expected != actual { - return Err(FastSyncError::Mismatch); + if back.ids.len() >= hashes_stop_diff_last_height { + // This batch is partially valid so split it. + unknown.push_front(ChainEntry { + ids: back + .ids + .drain((back.ids.len() - hashes_stop_diff_last_height)..) + .collect(), + peer: back.peer, + handle: back.handle.clone(), + }); + + break; } + + // Add this batch to the front of the unknowns, we do not know its validity. + let back = entries.pop_back().unwrap(); + hashes_stop_diff_last_height -= back.ids.len(); + unknown.push_front(back); } - let validated_hashes = valid_block_ids(&block_ids[..n_batches * BATCH_SIZE]); - let unknown_hashes = block_ids[n_batches * BATCH_SIZE..].to_vec(); + // get the hashes we are missing to create the first fast-sync hash. + let BlockchainResponse::BlockHashInRange(hashes) = blockchain_read_handle + .ready() + .await? + .call(BlockchainReadRequest::BlockHashInRange( + hashes_start_height..start_height, + Chain::Main, + )) + .await? + else { + unreachable!() + }; - Ok(FastSyncResponse::ValidateHashes { - validated_hashes, - unknown_hashes, - }) + // Start verifying the hashes. + let mut hasher = Hasher::default(); + let mut last_i = 1; + for (i, hash) in hashes + .iter() + .chain(entries.iter().flat_map(|e| e.ids.iter())) + .enumerate() + { + hasher.update(hash); + + if (i + 1) % FAST_SYNC_BATCH_LEN == 0 { + let got_hash = hasher.finalize(); + + if got_hash + != FAST_SYNC_HASHES.get().unwrap() + [get_hash_index_for_height(hashes_start_height + i)] + { + return Err("Hashes do not match".into()); + } + hasher.reset(); + } + + last_i = i + 1; + } + // Make sure we actually checked all hashes. + assert_eq!(last_i % FAST_SYNC_BATCH_LEN, 0); + + Ok((entries, unknown)) } -fn validate_block( - context_svc: &mut BlockchainContextService, - block: Block, - mut txs: HashMap<[u8; 32], Transaction>, - token: &ValidBlockId, -) -> Result<FastSyncResponse, FastSyncError> { - let block_chain_ctx = context_svc.blockchain_context().clone(); +/// Get the index of the hash that contains this block in the fast sync hashes. +const fn get_hash_index_for_height(height: usize) -> usize { + height / FAST_SYNC_BATCH_LEN +} +/// Creates a [`VerifiedBlockInformation`] from a block known to be valid. +/// +/// # Panics +/// +/// This may panic if used on an invalid block. +pub fn block_to_verified_block_information( + block: Block, + txs: Vec<Transaction>, + blockchin_ctx: &BlockchainContext, +) -> VerifiedBlockInformation { let block_hash = block.hash(); - if block_hash != token.0 { - return Err(FastSyncError::BlockHashMismatch); - } let block_blob = block.serialize(); let Some(Input::Gen(height)) = block.miner_transaction.prefix().inputs.first() else { - return Err(FastSyncError::MinerTx(MinerTxError::InputNotOfTypeGen)); + panic!("fast sync block invalid"); }; - if *height != block_chain_ctx.chain_height { - return Err(FastSyncError::BlockHeightMismatch); - } + + assert_eq!( + *height, blockchin_ctx.chain_height, + "fast sync block invalid" + ); + + let mut txs = txs + .into_iter() + .map(|tx| { + let data = new_tx_verification_data(tx).expect("fast sync block invalid"); + + (data.tx_hash, data) + }) + .collect::<HashMap<_, _>>(); let mut verified_txs = Vec::with_capacity(txs.len()); for tx in &block.transactions { - let tx = txs - .remove(tx) - .ok_or(FastSyncError::TxsIncludedWithBlockIncorrect)?; + let data = txs.remove(tx).expect("fast sync block invalid"); - let data = new_tx_verification_data(tx)?; verified_txs.push(VerifiedTransactionInformation { tx_blob: data.tx_blob, tx_weight: data.tx_weight, @@ -243,68 +232,16 @@ fn validate_block( let weight = block.miner_transaction.weight() + verified_txs.iter().map(|tx| tx.tx_weight).sum::<usize>(); - Ok(FastSyncResponse::ValidateBlock(VerifiedBlockInformation { + VerifiedBlockInformation { block_blob, txs: verified_txs, block_hash, - pow_hash: [0_u8; 32], + pow_hash: [u8::MAX; 32], height: *height, generated_coins, weight, - long_term_weight: block_chain_ctx.next_block_long_term_weight(weight), - cumulative_difficulty: block_chain_ctx.cumulative_difficulty - + block_chain_ctx.next_difficulty, + long_term_weight: blockchin_ctx.next_block_long_term_weight(weight), + cumulative_difficulty: blockchin_ctx.cumulative_difficulty + blockchin_ctx.next_difficulty, block, - })) -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_validate_hashes_errors() { - let ids = [[1_u8; 32], [2_u8; 32], [3_u8; 32], [4_u8; 32], [5_u8; 32]]; - assert_eq!( - validate_hashes(3, &[]), - Err(FastSyncError::InvalidStartHeight) - ); - assert_eq!( - validate_hashes(3, &ids), - Err(FastSyncError::InvalidStartHeight) - ); - - assert_eq!(validate_hashes(20, &[]), Err(FastSyncError::OutOfRange)); - assert_eq!(validate_hashes(20, &ids), Err(FastSyncError::OutOfRange)); - - assert_eq!(validate_hashes(4, &[]), Err(FastSyncError::NothingToDo)); - assert_eq!( - validate_hashes(4, &ids[..3]), - Err(FastSyncError::NothingToDo) - ); - } - - #[test] - fn test_validate_hashes_success() { - let ids = [[1_u8; 32], [2_u8; 32], [3_u8; 32], [4_u8; 32], [5_u8; 32]]; - let validated_hashes = valid_block_ids(&ids[0..4]); - let unknown_hashes = ids[4..].to_vec(); - assert_eq!( - validate_hashes(0, &ids), - Ok(FastSyncResponse::ValidateHashes { - validated_hashes, - unknown_hashes - }) - ); - } - - #[test] - fn test_validate_hashes_mismatch() { - let ids = [ - [1_u8; 32], [2_u8; 32], [3_u8; 32], [5_u8; 32], [1_u8; 32], [2_u8; 32], [3_u8; 32], - [4_u8; 32], - ]; - assert_eq!(validate_hashes(0, &ids), Err(FastSyncError::Mismatch)); - assert_eq!(validate_hashes(4, &ids), Err(FastSyncError::Mismatch)); } } diff --git a/consensus/fast-sync/src/lib.rs b/consensus/fast-sync/src/lib.rs index 8dbdc649..c42ff4ca 100644 --- a/consensus/fast-sync/src/lib.rs +++ b/consensus/fast-sync/src/lib.rs @@ -4,7 +4,9 @@ use cuprate_blockchain as _; use hex as _; use tokio as _; -pub mod fast_sync; -pub mod util; +mod fast_sync; -pub use util::{hash_of_hashes, BlockId, HashOfHashes}; +pub use fast_sync::{ + block_to_verified_block_information, fast_sync_stop_height, set_fast_sync_hashes, + validate_entries, FAST_SYNC_BATCH_LEN, +}; diff --git a/consensus/fast-sync/src/util.rs b/consensus/fast-sync/src/util.rs deleted file mode 100644 index f8460f63..00000000 --- a/consensus/fast-sync/src/util.rs +++ /dev/null @@ -1,8 +0,0 @@ -use sha3::{Digest, Keccak256}; - -pub type BlockId = [u8; 32]; -pub type HashOfHashes = [u8; 32]; - -pub fn hash_of_hashes(hashes: &[BlockId]) -> HashOfHashes { - Keccak256::digest(hashes.concat().as_slice()).into() -} diff --git a/p2p/p2p/src/block_downloader.rs b/p2p/p2p/src/block_downloader.rs index db103000..ddfc2beb 100644 --- a/p2p/p2p/src/block_downloader.rs +++ b/p2p/p2p/src/block_downloader.rs @@ -7,7 +7,7 @@ //! The block downloader is started by [`download_blocks`]. use std::{ cmp::{max, min, Reverse}, - collections::{BTreeMap, BinaryHeap}, + collections::{BTreeMap, BinaryHeap, VecDeque}, time::Duration, }; @@ -28,9 +28,9 @@ use cuprate_pruning::PruningSeed; use crate::{ constants::{ BLOCK_DOWNLOADER_REQUEST_TIMEOUT, EMPTY_CHAIN_ENTRIES_BEFORE_TOP_ASSUMED, LONG_BAN, - MAX_BLOCK_BATCH_LEN, MAX_DOWNLOAD_FAILURES, + MAX_BLOCK_BATCH_LEN, MAX_DOWNLOAD_FAILURES, MOST_RECENT_BATCH_WEIGHTS_FOR_BATCH_SIZE, }, - peer_set::ClientDropGuard, + peer_set::{ClientDropGuard, PeerSetRequest, PeerSetResponse}, }; mod block_queue; @@ -40,9 +40,9 @@ mod request_chain; #[cfg(test)] mod tests; -use crate::peer_set::{PeerSetRequest, PeerSetResponse}; use block_queue::{BlockQueue, ReadyQueueBatch}; -use chain_tracker::{BlocksToRetrieve, ChainEntry, ChainTracker}; +pub use chain_tracker::ChainEntry; +use chain_tracker::{BlocksToRetrieve, ChainTracker}; use download_batch::download_batch_task; use request_chain::{initial_chain_search, request_chain_entry_from_peer}; @@ -95,17 +95,19 @@ pub(crate) enum BlockDownloadError { } /// The request type for the chain service. -pub enum ChainSvcRequest { +pub enum ChainSvcRequest<N: NetworkZone> { /// A request for the current chain history. CompactHistory, /// A request to find the first unknown block ID in a list of block IDs. FindFirstUnknown(Vec<[u8; 32]>), /// A request for our current cumulative difficulty. CumulativeDifficulty, + + ValidateEntries(VecDeque<ChainEntry<N>>, usize), } /// The response type for the chain service. -pub enum ChainSvcResponse { +pub enum ChainSvcResponse<N: NetworkZone> { /// The response for [`ChainSvcRequest::CompactHistory`]. CompactHistory { /// A list of blocks IDs in our chain, starting with the most recent block, all the way to the genesis block. @@ -123,6 +125,11 @@ pub enum ChainSvcResponse { /// /// The current cumulative difficulty of our chain. CumulativeDifficulty(u128), + + ValidateEntries { + valid: VecDeque<ChainEntry<N>>, + unknown: VecDeque<ChainEntry<N>>, + }, } /// This function starts the block downloader and returns a [`BufferStream`] that will produce @@ -140,7 +147,7 @@ pub fn download_blocks<N: NetworkZone, C>( config: BlockDownloaderConfig, ) -> BufferStream<BlockBatch> where - C: Service<ChainSvcRequest, Response = ChainSvcResponse, Error = tower::BoxError> + C: Service<ChainSvcRequest<N>, Response = ChainSvcResponse<N>, Error = tower::BoxError> + Send + 'static, C::Future: Send + 'static, @@ -191,10 +198,7 @@ struct BlockDownloader<N: NetworkZone, C> { /// The service that holds our current chain state. our_chain_svc: C, - /// The amount of blocks to request in the next batch. - amount_of_blocks_to_request: usize, - /// The height at which [`Self::amount_of_blocks_to_request`] was updated. - amount_of_blocks_to_request_updated_at: usize, + most_recent_batch_sizes: BinaryHeap<Reverse<(usize, BatchSizeInformation)>>, /// The amount of consecutive empty chain entries we received. /// @@ -227,7 +231,7 @@ struct BlockDownloader<N: NetworkZone, C> { impl<N: NetworkZone, C> BlockDownloader<N, C> where - C: Service<ChainSvcRequest, Response = ChainSvcResponse, Error = tower::BoxError> + C: Service<ChainSvcRequest<N>, Response = ChainSvcResponse<N>, Error = tower::BoxError> + Send + 'static, C::Future: Send + 'static, @@ -242,8 +246,7 @@ where Self { peer_set, our_chain_svc, - amount_of_blocks_to_request: config.initial_batch_len, - amount_of_blocks_to_request_updated_at: 0, + most_recent_batch_sizes: BinaryHeap::new(), amount_of_empty_chain_entries: 0, block_download_tasks: JoinSet::new(), chain_entry_task: JoinSet::new(), @@ -280,6 +283,28 @@ where } } + fn amount_of_blocks_to_request(&self) -> usize { + let biggest_batch = self + .most_recent_batch_sizes + .iter() + .max_by(|batch_1, batch_2| { + let av1 = batch_1.0 .1.byte_size / batch_1.0 .1.len; + let av2 = batch_2.0 .1.byte_size / batch_2.0 .1.len; + + av1.cmp(&av2) + }); + + let Some(biggest_batch) = biggest_batch else { + return self.config.initial_batch_len; + }; + + calculate_next_block_batch_size( + biggest_batch.0 .1.byte_size, + biggest_batch.0 .1.len, + self.config.target_batch_bytes, + ) + } + /// Attempts to send another request for an inflight batch /// /// This function will find the batch(es) that we are waiting on to clear our ready queue and sends another request @@ -387,9 +412,10 @@ where // No failed requests that we can handle, request some new blocks. - let Some(mut block_entry_to_get) = chain_tracker - .blocks_to_get(&client.info.pruning_seed, self.amount_of_blocks_to_request) - else { + let Some(mut block_entry_to_get) = chain_tracker.blocks_to_get( + &client.info.pruning_seed, + self.amount_of_blocks_to_request(), + ) else { return Some(client); }; @@ -428,7 +454,7 @@ where && self.amount_of_empty_chain_entries <= EMPTY_CHAIN_ENTRIES_BEFORE_TOP_ASSUMED // Check we have a big buffer of pending block IDs to retrieve, we don't want to be waiting around // for a chain entry. - && chain_tracker.block_requests_queued(self.amount_of_blocks_to_request) < 500 + && chain_tracker.block_requests_queued(self.amount_of_blocks_to_request()) < 500 // Make sure this peer actually has the chain. && chain_tracker.should_ask_for_next_chain_entry(&client.info.pruning_seed) { @@ -561,19 +587,25 @@ where // If the batch is higher than the last time we updated `amount_of_blocks_to_request`, update it // again. - if start_height > self.amount_of_blocks_to_request_updated_at { - self.amount_of_blocks_to_request = calculate_next_block_batch_size( - block_batch.size, - block_batch.blocks.len(), - self.config.target_batch_bytes, - ); + if start_height + > self + .most_recent_batch_sizes + .peek() + .map(|Reverse((height, _))| *height) + .unwrap_or_default() + { + self.most_recent_batch_sizes.push(Reverse(( + start_height, + BatchSizeInformation { + len: block_batch.blocks.len(), + byte_size: block_batch.size, + }, + ))); - tracing::debug!( - "Updating batch size of new batches, new size: {}", - self.amount_of_blocks_to_request - ); - - self.amount_of_blocks_to_request_updated_at = start_height; + if self.most_recent_batch_sizes.len() > MOST_RECENT_BATCH_WEIGHTS_FOR_BATCH_SIZE + { + self.most_recent_batch_sizes.pop(); + } } self.block_queue @@ -642,12 +674,15 @@ where Some(Ok(res)) = self.chain_entry_task.join_next() => { match res { Ok((client, entry)) => { - if chain_tracker.add_entry(entry).is_ok() { - tracing::debug!("Successfully added chain entry to chain tracker."); - self.amount_of_empty_chain_entries = 0; - } else { - tracing::debug!("Failed to add incoming chain entry to chain tracker."); - self.amount_of_empty_chain_entries += 1; + match chain_tracker.add_entry(entry, &mut self.our_chain_svc).await { + Ok(()) => { + tracing::debug!("Successfully added chain entry to chain tracker."); + self.amount_of_empty_chain_entries = 0; + } + Err(e) => { + tracing::debug!("Failed to add incoming chain entry to chain tracker: {e:?}"); + self.amount_of_empty_chain_entries += 1; + } } pending_peers @@ -683,6 +718,12 @@ const fn client_has_block_in_range( && pruning_seed.has_full_block(start_height + length, MAX_BLOCK_HEIGHT_USIZE) } +#[derive(Debug, Ord, PartialOrd, Eq, PartialEq)] +struct BatchSizeInformation { + len: usize, + byte_size: usize, +} + /// Calculates the next amount of blocks to request in a batch. /// /// Parameters: diff --git a/p2p/p2p/src/block_downloader/chain_tracker.rs b/p2p/p2p/src/block_downloader/chain_tracker.rs index df5aebb5..33f294f0 100644 --- a/p2p/p2p/src/block_downloader/chain_tracker.rs +++ b/p2p/p2p/src/block_downloader/chain_tracker.rs @@ -1,16 +1,20 @@ -use std::{cmp::min, collections::VecDeque}; +use std::{cmp::min, collections::VecDeque, mem}; use cuprate_fixed_bytes::ByteArrayVec; +use tower::{Service, ServiceExt}; use cuprate_constants::block::MAX_BLOCK_HEIGHT_USIZE; use cuprate_p2p_core::{client::InternalPeerID, handles::ConnectionHandle, NetworkZone}; use cuprate_pruning::PruningSeed; -use crate::constants::MEDIUM_BAN; +use crate::{ + block_downloader::{ChainSvcRequest, ChainSvcResponse}, + constants::MEDIUM_BAN, +}; /// A new chain entry to add to our chain tracker. #[derive(Debug)] -pub(crate) struct ChainEntry<N: NetworkZone> { +pub struct ChainEntry<N: NetworkZone> { /// A list of block IDs. pub ids: Vec<[u8; 32]>, /// The peer who told us about this chain entry. @@ -39,12 +43,15 @@ pub(crate) struct BlocksToRetrieve<N: NetworkZone> { } /// An error returned from the [`ChainTracker`]. -#[derive(Debug, Clone)] +#[derive(Debug)] pub(crate) enum ChainTrackerError { /// The new chain entry is invalid. NewEntryIsInvalid, + NewEntryIsEmpty, /// The new chain entry does not follow from the top of our chain tracker. NewEntryDoesNotFollowChain, + #[expect(dead_code)] // This is used for logging + ChainSvcError(tower::BoxError), } /// # Chain Tracker @@ -52,8 +59,10 @@ pub(crate) enum ChainTrackerError { /// This struct allows following a single chain. It takes in [`ChainEntry`]s and /// allows getting [`BlocksToRetrieve`]. pub(crate) struct ChainTracker<N: NetworkZone> { - /// A list of [`ChainEntry`]s, in order. - entries: VecDeque<ChainEntry<N>>, + /// A list of [`ChainEntry`]s, in order, that we should request. + valid_entries: VecDeque<ChainEntry<N>>, + /// A list of [`ChainEntry`]s that are pending more [`ChainEntry`]s to check validity. + unknown_entries: VecDeque<ChainEntry<N>>, /// The height of the first block, in the first entry in [`Self::entries`]. first_height: usize, /// The hash of the last block in the last entry. @@ -66,23 +75,39 @@ pub(crate) struct ChainTracker<N: NetworkZone> { impl<N: NetworkZone> ChainTracker<N> { /// Creates a new chain tracker. - pub(crate) fn new( + pub(crate) async fn new<C>( new_entry: ChainEntry<N>, first_height: usize, our_genesis: [u8; 32], previous_hash: [u8; 32], - ) -> Self { + our_chain_svc: &mut C, + ) -> Result<Self, ChainTrackerError> + where + C: Service<ChainSvcRequest<N>, Response = ChainSvcResponse<N>, Error = tower::BoxError>, + { let top_seen_hash = *new_entry.ids.last().unwrap(); let mut entries = VecDeque::with_capacity(1); entries.push_back(new_entry); - Self { - entries, + let ChainSvcResponse::ValidateEntries { valid, unknown } = our_chain_svc + .ready() + .await + .map_err(ChainTrackerError::ChainSvcError)? + .call(ChainSvcRequest::ValidateEntries(entries, first_height)) + .await + .map_err(ChainTrackerError::ChainSvcError)? + else { + unreachable!() + }; + + Ok(Self { + valid_entries: valid, + unknown_entries: unknown, first_height, top_seen_hash, previous_hash, our_genesis, - } + }) } /// Returns `true` if the peer is expected to have the next block after our highest seen block @@ -99,8 +124,9 @@ impl<N: NetworkZone> ChainTracker<N> { /// Returns the height of the highest block we are tracking. pub(crate) fn top_height(&self) -> usize { let top_block_idx = self - .entries + .valid_entries .iter() + .chain(self.unknown_entries.iter()) .map(|entry| entry.ids.len()) .sum::<usize>(); @@ -112,32 +138,32 @@ impl<N: NetworkZone> ChainTracker<N> { /// # Panics /// This function panics if `batch_size` is `0`. pub(crate) fn block_requests_queued(&self, batch_size: usize) -> usize { - self.entries + self.valid_entries .iter() .map(|entry| entry.ids.len().div_ceil(batch_size)) .sum() } /// Attempts to add an incoming [`ChainEntry`] to the chain tracker. - pub(crate) fn add_entry( + pub(crate) async fn add_entry<C>( &mut self, mut chain_entry: ChainEntry<N>, - ) -> Result<(), ChainTrackerError> { - if chain_entry.ids.is_empty() { + our_chain_svc: &mut C, + ) -> Result<(), ChainTrackerError> + where + C: Service<ChainSvcRequest<N>, Response = ChainSvcResponse<N>, Error = tower::BoxError>, + { + if chain_entry.ids.len() == 1 { + return Err(ChainTrackerError::NewEntryIsEmpty); + } + + let Some(first) = chain_entry.ids.first() else { // The peer must send at lest one overlapping block. chain_entry.handle.ban_peer(MEDIUM_BAN); return Err(ChainTrackerError::NewEntryIsInvalid); - } + }; - if chain_entry.ids.len() == 1 { - return Err(ChainTrackerError::NewEntryDoesNotFollowChain); - } - - if self - .entries - .back() - .is_some_and(|last_entry| last_entry.ids.last().unwrap() != &chain_entry.ids[0]) - { + if *first != self.top_seen_hash { return Err(ChainTrackerError::NewEntryDoesNotFollowChain); } @@ -150,7 +176,29 @@ impl<N: NetworkZone> ChainTracker<N> { self.top_seen_hash = *new_entry.ids.last().unwrap(); - self.entries.push_back(new_entry); + self.unknown_entries.push_back(new_entry); + + let ChainSvcResponse::ValidateEntries { mut valid, unknown } = our_chain_svc + .ready() + .await + .map_err(ChainTrackerError::ChainSvcError)? + .call(ChainSvcRequest::ValidateEntries( + mem::take(&mut self.unknown_entries), + self.first_height + + self + .valid_entries + .iter() + .map(|e| e.ids.len()) + .sum::<usize>(), + )) + .await + .map_err(ChainTrackerError::ChainSvcError)? + else { + unreachable!() + }; + + self.valid_entries.append(&mut valid); + self.unknown_entries = unknown; Ok(()) } @@ -167,7 +215,7 @@ impl<N: NetworkZone> ChainTracker<N> { return None; } - let entry = self.entries.front_mut()?; + let entry = self.valid_entries.front_mut()?; // Calculate the ending index for us to get in this batch, it will be one of these: // - smallest out of `max_blocks` @@ -204,7 +252,7 @@ impl<N: NetworkZone> ChainTracker<N> { self.previous_hash = blocks.ids[blocks.ids.len() - 1]; if entry.ids.is_empty() { - self.entries.pop_front(); + self.valid_entries.pop_front(); } Some(blocks) diff --git a/p2p/p2p/src/block_downloader/request_chain.rs b/p2p/p2p/src/block_downloader/request_chain.rs index 4e0f855b..9adbaaa8 100644 --- a/p2p/p2p/src/block_downloader/request_chain.rs +++ b/p2p/p2p/src/block_downloader/request_chain.rs @@ -84,7 +84,7 @@ pub async fn initial_chain_search<N: NetworkZone, C>( mut our_chain_svc: C, ) -> Result<ChainTracker<N>, BlockDownloadError> where - C: Service<ChainSvcRequest, Response = ChainSvcResponse, Error = tower::BoxError>, + C: Service<ChainSvcRequest<N>, Response = ChainSvcResponse<N>, Error = tower::BoxError>, { tracing::debug!("Getting our chain history"); // Get our history. @@ -214,7 +214,15 @@ where first_entry.ids.len() ); - let tracker = ChainTracker::new(first_entry, expected_height, our_genesis, previous_id); + let tracker = ChainTracker::new( + first_entry, + expected_height, + our_genesis, + previous_id, + &mut our_chain_svc, + ) + .await + .map_err(|_| BlockDownloadError::ChainInvalid)?; Ok(tracker) } diff --git a/p2p/p2p/src/block_downloader/tests.rs b/p2p/p2p/src/block_downloader/tests.rs index 707b858d..3d5808ed 100644 --- a/p2p/p2p/src/block_downloader/tests.rs +++ b/p2p/p2p/src/block_downloader/tests.rs @@ -1,4 +1,5 @@ use std::{ + collections::VecDeque, fmt::{Debug, Formatter}, future::Future, pin::Pin, @@ -269,8 +270,8 @@ struct OurChainSvc { genesis: [u8; 32], } -impl Service<ChainSvcRequest> for OurChainSvc { - type Response = ChainSvcResponse; +impl Service<ChainSvcRequest<ClearNet>> for OurChainSvc { + type Response = ChainSvcResponse<ClearNet>; type Error = tower::BoxError; type Future = Pin<Box<dyn Future<Output = Result<Self::Response, Self::Error>> + Send + 'static>>; @@ -279,7 +280,7 @@ impl Service<ChainSvcRequest> for OurChainSvc { Poll::Ready(Ok(())) } - fn call(&mut self, req: ChainSvcRequest) -> Self::Future { + fn call(&mut self, req: ChainSvcRequest<ClearNet>) -> Self::Future { let genesis = self.genesis; async move { @@ -292,6 +293,10 @@ impl Service<ChainSvcRequest> for OurChainSvc { ChainSvcResponse::FindFirstUnknown(Some((1, 1))) } ChainSvcRequest::CumulativeDifficulty => ChainSvcResponse::CumulativeDifficulty(1), + ChainSvcRequest::ValidateEntries(valid, _) => ChainSvcResponse::ValidateEntries { + valid, + unknown: VecDeque::new(), + }, }) } .boxed() diff --git a/p2p/p2p/src/constants.rs b/p2p/p2p/src/constants.rs index a81557c2..e37089f5 100644 --- a/p2p/p2p/src/constants.rs +++ b/p2p/p2p/src/constants.rs @@ -75,6 +75,9 @@ pub(crate) const MAX_DOWNLOAD_FAILURES: usize = 5; /// The amount of empty chain entries to receive before we assume we have found the top of the chain. pub(crate) const EMPTY_CHAIN_ENTRIES_BEFORE_TOP_ASSUMED: usize = 5; +/// The amount of most recent block batches we use to calculate batch size. +pub(crate) const MOST_RECENT_BATCH_WEIGHTS_FOR_BATCH_SIZE: usize = 100; + #[cfg(test)] mod tests { use super::*; diff --git a/p2p/p2p/src/lib.rs b/p2p/p2p/src/lib.rs index fb506582..e5bfc2cc 100644 --- a/p2p/p2p/src/lib.rs +++ b/p2p/p2p/src/lib.rs @@ -168,7 +168,7 @@ impl<N: NetworkZone> NetworkInterface<N> { config: BlockDownloaderConfig, ) -> BufferStream<BlockBatch> where - C: Service<ChainSvcRequest, Response = ChainSvcResponse, Error = tower::BoxError> + C: Service<ChainSvcRequest<N>, Response = ChainSvcResponse<N>, Error = tower::BoxError> + Send + 'static, C::Future: Send + 'static, diff --git a/storage/blockchain/src/service/read.rs b/storage/blockchain/src/service/read.rs index 9d88e66e..c922465c 100644 --- a/storage/blockchain/src/service/read.rs +++ b/storage/blockchain/src/service/read.rs @@ -12,6 +12,7 @@ use std::{ cmp::min, collections::{HashMap, HashSet}, + ops::Range, sync::Arc, }; @@ -107,6 +108,7 @@ fn map_request( R::BlockCompleteEntries(block_hashes) => block_complete_entries(env, block_hashes), R::BlockExtendedHeader(block) => block_extended_header(env, block), R::BlockHash(block, chain) => block_hash(env, block, chain), + R::BlockHashInRange(blocks, chain) => block_hash_in_range(env, blocks, chain), R::FindBlock(block_hash) => find_block(env, block_hash), R::FilterUnknownHashes(hashes) => filter_unknown_hashes(env, hashes), R::BlockExtendedHeaderInRange(range, chain) => { @@ -271,6 +273,34 @@ fn block_hash(env: &ConcreteEnv, block_height: BlockHeight, chain: Chain) -> Res Ok(BlockchainResponse::BlockHash(block_hash)) } +/// [`BlockchainReadRequest::BlockHashInRange`]. +#[inline] +fn block_hash_in_range(env: &ConcreteEnv, range: Range<usize>, chain: Chain) -> ResponseResult { + // Prepare tx/tables in `ThreadLocal`. + let env_inner = env.env_inner(); + let tx_ro = thread_local(env); + + let block_hash = range + .into_par_iter() + .map(|block_height| { + let tx_ro = tx_ro.get_or_try(|| env_inner.tx_ro())?; + + let table_block_infos = env_inner.open_db_ro::<BlockInfos>(tx_ro)?; + + let block_hash = match chain { + Chain::Main => get_block_info(&block_height, &table_block_infos)?.block_hash, + Chain::Alt(chain) => { + get_alt_block_hash(&block_height, chain, &env_inner.open_tables(tx_ro)?)? + } + }; + + Ok(block_hash) + }) + .collect::<Result<_, RuntimeError>>()?; + + Ok(BlockchainResponse::BlockHashInRange(block_hash)) +} + /// [`BlockchainReadRequest::FindBlock`] fn find_block(env: &ConcreteEnv, block_hash: BlockHash) -> ResponseResult { // Single-threaded, no `ThreadLocal` required. @@ -330,7 +360,7 @@ fn filter_unknown_hashes(env: &ConcreteEnv, mut hashes: HashSet<BlockHash>) -> R #[inline] fn block_extended_header_in_range( env: &ConcreteEnv, - range: std::ops::Range<BlockHeight>, + range: Range<BlockHeight>, chain: Chain, ) -> ResponseResult { // Prepare tx/tables in `ThreadLocal`. diff --git a/storage/blockchain/src/service/write.rs b/storage/blockchain/src/service/write.rs index 84c2538f..c1e857c4 100644 --- a/storage/blockchain/src/service/write.rs +++ b/storage/blockchain/src/service/write.rs @@ -39,6 +39,7 @@ fn handle_blockchain_request( ) -> DbResult<BlockchainResponse> { match req { BlockchainWriteRequest::WriteBlock(block) => write_block(env, block), + BlockchainWriteRequest::BatchWriteBlocks(blocks) => write_blocks(env, blocks), BlockchainWriteRequest::WriteAltBlock(alt_block) => write_alt_block(env, alt_block), BlockchainWriteRequest::PopBlocks(numb_blocks) => pop_blocks(env, *numb_blocks), BlockchainWriteRequest::ReverseReorg(old_main_chain_id) => { @@ -80,6 +81,33 @@ fn write_block(env: &ConcreteEnv, block: &VerifiedBlockInformation) -> ResponseR } } +/// [`BlockchainWriteRequest::BatchWriteBlocks`]. +#[inline] +fn write_blocks(env: &ConcreteEnv, block: &Vec<VerifiedBlockInformation>) -> ResponseResult { + let env_inner = env.env_inner(); + let tx_rw = env_inner.tx_rw()?; + + let result = { + let mut tables_mut = env_inner.open_tables_mut(&tx_rw)?; + for block in block { + crate::ops::block::add_block(block, &mut tables_mut)?; + } + + Ok(()) + }; + + match result { + Ok(()) => { + TxRw::commit(tx_rw)?; + Ok(BlockchainResponse::Ok) + } + Err(e) => { + TxRw::abort(tx_rw).expect(TX_RW_ABORT_FAIL); + Err(e) + } + } +} + /// [`BlockchainWriteRequest::WriteAltBlock`]. #[inline] fn write_alt_block(env: &ConcreteEnv, block: &AltBlockInformation) -> ResponseResult { diff --git a/types/src/blockchain.rs b/types/src/blockchain.rs index 370065c8..07cf925d 100644 --- a/types/src/blockchain.rs +++ b/types/src/blockchain.rs @@ -44,6 +44,11 @@ pub enum BlockchainReadRequest { /// The input is the block's height and the chain it is on. BlockHash(usize, Chain), + /// Request a range of block's hashes. + /// + /// The input is the range of block heights and the chain it is on. + BlockHashInRange(Range<usize>, Chain), + /// Request to check if we have a block and which [`Chain`] it is on. /// /// The input is the block's hash. @@ -173,6 +178,11 @@ pub enum BlockchainWriteRequest { /// Input is an already verified block. WriteBlock(VerifiedBlockInformation), + /// Request that a batch of blocks be written to the database. + /// + /// Input is an already verified batch of blocks. + BatchWriteBlocks(Vec<VerifiedBlockInformation>), + /// Write an alternative block to the database, /// /// Input is the alternative block. @@ -229,6 +239,11 @@ pub enum BlockchainResponse { /// Inner value is the hash of the requested block. BlockHash([u8; 32]), + /// Response to [`BlockchainReadRequest::BlockHashInRange`]. + /// + /// Inner value is the hashes of the requested blocks, in order. + BlockHashInRange(Vec<[u8; 32]>), + /// Response to [`BlockchainReadRequest::FindBlock`]. /// /// Inner value is the chain and height of the block if found.