From a3f8a9d38bd5d5c0fb3952e7e1d727f28de78755 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Wed, 8 Jan 2025 13:52:17 +0100 Subject: [PATCH] chore!: rename blockchainprovider2 (#13727) --- .../src/commands/debug_cmd/build_block.rs | 4 +- bin/reth/src/main.rs | 4 +- crates/e2e-test-utils/src/lib.rs | 22 ++--- crates/engine/local/src/service.rs | 4 +- crates/engine/service/src/service.rs | 8 +- crates/ethereum/node/tests/e2e/dev.rs | 4 +- crates/ethereum/node/tests/it/builder.rs | 4 +- crates/exex/exex/src/backfill/job.rs | 6 +- crates/exex/exex/src/backfill/stream.rs | 6 +- crates/exex/exex/src/manager.rs | 12 +-- crates/exex/exex/src/notifications.rs | 10 +-- crates/exex/test-utils/src/lib.rs | 6 +- crates/node/builder/src/builder/mod.rs | 4 +- crates/node/builder/src/launch/engine.rs | 6 +- crates/optimism/bin/src/main.rs | 4 +- crates/optimism/node/src/utils.rs | 4 +- crates/optimism/node/tests/it/builder.rs | 4 +- crates/optimism/node/tests/it/priority.rs | 4 +- crates/prune/prune/src/segments/mod.rs | 10 +-- .../src/providers/blockchain_provider.rs | 86 +++++++++---------- .../provider/src/providers/consistent.rs | 8 +- crates/storage/provider/src/providers/mod.rs | 2 +- examples/rpc-db/src/main.rs | 4 +- 23 files changed, 112 insertions(+), 114 deletions(-) diff --git a/bin/reth/src/commands/debug_cmd/build_block.rs b/bin/reth/src/commands/debug_cmd/build_block.rs index f4ab8150e..7507e8bf1 100644 --- a/bin/reth/src/commands/debug_cmd/build_block.rs +++ b/bin/reth/src/commands/debug_cmd/build_block.rs @@ -29,7 +29,7 @@ use reth_primitives::{ TransactionSigned, }; use reth_provider::{ - providers::{BlockchainProvider2, ProviderNodeTypes}, + providers::{BlockchainProvider, ProviderNodeTypes}, BlockHashReader, BlockReader, BlockWriter, ChainSpecProvider, ProviderFactory, StageCheckpointReader, StateProviderFactory, }; @@ -132,7 +132,7 @@ impl> Command { .lookup_best_block(provider_factory.clone()) .wrap_err("the head block is missing")?; - let blockchain_db = BlockchainProvider2::new(provider_factory.clone())?; + let blockchain_db = BlockchainProvider::new(provider_factory.clone())?; let blob_store = InMemoryBlobStore::default(); let validator = diff --git a/bin/reth/src/main.rs b/bin/reth/src/main.rs index f1f0a7d68..5daaa93ee 100644 --- a/bin/reth/src/main.rs +++ b/bin/reth/src/main.rs @@ -13,7 +13,7 @@ use reth_node_builder::{ EngineNodeLauncher, }; use reth_node_ethereum::{node::EthereumAddOns, EthereumNode}; -use reth_provider::providers::BlockchainProvider2; +use reth_provider::providers::BlockchainProvider; use reth_tracing::tracing::warn; use tracing::info; @@ -79,7 +79,7 @@ fn main() { .with_memory_block_buffer_target(engine_args.memory_block_buffer_target) .with_state_root_task(engine_args.state_root_task_enabled); let handle = builder - .with_types_and_provider::>() + .with_types_and_provider::>() .with_components(EthereumNode::components()) .with_add_ons(EthereumAddOns::default()) .launch_with_fn(|builder| { diff --git a/crates/e2e-test-utils/src/lib.rs b/crates/e2e-test-utils/src/lib.rs index 8378cbbd7..091e87184 100644 --- a/crates/e2e-test-utils/src/lib.rs +++ b/crates/e2e-test-utils/src/lib.rs @@ -13,7 +13,7 @@ use reth_node_builder::{ PayloadTypes, }; use reth_node_core::args::{DiscoveryArgs, NetworkArgs, RpcServerArgs}; -use reth_provider::providers::{BlockchainProvider2, NodeTypesForProvider, NodeTypesForTree}; +use reth_provider::providers::{BlockchainProvider, NodeTypesForProvider, NodeTypesForTree}; use reth_rpc_server_types::RpcModuleSelection; use reth_tasks::TaskManager; use std::sync::Arc; @@ -114,24 +114,24 @@ pub async fn setup_engine( is_dev: bool, attributes_generator: impl Fn(u64) -> <::Engine as PayloadTypes>::PayloadBuilderAttributes + Copy + 'static, ) -> eyre::Result<( - Vec>>>, + Vec>>>, TaskManager, Wallet, )> where N: Default - + Node>>> + + Node>>> + NodeTypesWithEngine + NodeTypesForProvider, N::ComponentsBuilder: NodeComponentsBuilder< - TmpNodeAdapter>>, + TmpNodeAdapter>>, Components: NodeComponents< - TmpNodeAdapter>>, + TmpNodeAdapter>>, Network: PeersHandleProvider, >, >, - N::AddOns: RethRpcAddOns>>> - + EngineValidatorAddOn>>>, + N::AddOns: RethRpcAddOns>>> + + EngineValidatorAddOn>>>, LocalPayloadAttributesBuilder: PayloadAttributesBuilder< <::Engine as PayloadTypes>::PayloadAttributes, >, @@ -164,7 +164,7 @@ where let node = N::default(); let NodeHandle { node, node_exit_future: _ } = NodeBuilder::new(node_config.clone()) .testing_node(exec.clone()) - .with_types_and_provider::>() + .with_types_and_provider::>() .with_components(node.components_builder()) .with_add_ons(node.add_ons()) .launch_with_fn(|builder| { @@ -204,11 +204,11 @@ where /// Testing database pub type TmpDB = Arc>; -type TmpNodeAdapter>> = +type TmpNodeAdapter>> = FullNodeTypesAdapter; /// Type alias for a `NodeAdapter` -pub type Adapter>> = NodeAdapter< +pub type Adapter>> = NodeAdapter< TmpNodeAdapter, <>>::ComponentsBuilder as NodeComponentsBuilder< TmpNodeAdapter, @@ -216,5 +216,5 @@ pub type Adapter; /// Type alias for a type of `NodeHelper` -pub type NodeHelperType>> = +pub type NodeHelperType>> = NodeTestContext, >>::AddOns>; diff --git a/crates/engine/local/src/service.rs b/crates/engine/local/src/service.rs index 1b2888cee..77b61c822 100644 --- a/crates/engine/local/src/service.rs +++ b/crates/engine/local/src/service.rs @@ -34,7 +34,7 @@ use reth_node_types::BlockTy; use reth_payload_builder::PayloadBuilderHandle; use reth_payload_primitives::{PayloadAttributesBuilder, PayloadTypes}; use reth_provider::{ - providers::{BlockchainProvider2, EngineNodeTypes}, + providers::{BlockchainProvider, EngineNodeTypes}, ChainSpecProvider, ProviderFactory, }; use reth_prune::PrunerWithFactory; @@ -69,7 +69,7 @@ where consensus: Arc>, executor_factory: impl BlockExecutorProvider, provider: ProviderFactory, - blockchain_db: BlockchainProvider2, + blockchain_db: BlockchainProvider, pruner: PrunerWithFactory>, payload_builder: PayloadBuilderHandle, payload_validator: V, diff --git a/crates/engine/service/src/service.rs b/crates/engine/service/src/service.rs index 9ce69220b..b099e56ae 100644 --- a/crates/engine/service/src/service.rs +++ b/crates/engine/service/src/service.rs @@ -20,7 +20,7 @@ use reth_node_types::{BlockTy, BodyTy, HeaderTy, NodeTypes, NodeTypesWithEngine} use reth_payload_builder::PayloadBuilderHandle; use reth_primitives::EthPrimitives; use reth_provider::{ - providers::{BlockchainProvider2, EngineNodeTypes}, + providers::{BlockchainProvider, EngineNodeTypes}, ProviderFactory, }; use reth_prune::PrunerWithFactory; @@ -79,7 +79,7 @@ where pipeline: Pipeline, pipeline_task_spawner: Box, provider: ProviderFactory, - blockchain_db: BlockchainProvider2, + blockchain_db: BlockchainProvider, pruner: PrunerWithFactory>, payload_builder: PayloadBuilderHandle, payload_validator: V, @@ -162,7 +162,7 @@ mod tests { use reth_network_p2p::test_utils::TestFullBlockClient; use reth_primitives::SealedHeader; use reth_provider::{ - providers::BlockchainProvider2, test_utils::create_test_provider_factory_with_chain_spec, + providers::BlockchainProvider, test_utils::create_test_provider_factory_with_chain_spec, }; use reth_prune::Pruner; use reth_tasks::TokioTaskExecutor; @@ -192,7 +192,7 @@ mod tests { let executor_factory = EthExecutorProvider::ethereum(chain_spec.clone()); let blockchain_db = - BlockchainProvider2::with_latest(provider_factory.clone(), SealedHeader::default()) + BlockchainProvider::with_latest(provider_factory.clone(), SealedHeader::default()) .unwrap(); let engine_payload_validator = EthereumEngineValidator::new(chain_spec.clone()); let (_tx, rx) = watch::channel(FinishedExExHeight::NoExExs); diff --git a/crates/ethereum/node/tests/e2e/dev.rs b/crates/ethereum/node/tests/e2e/dev.rs index 325575998..cb8eb1556 100644 --- a/crates/ethereum/node/tests/e2e/dev.rs +++ b/crates/ethereum/node/tests/e2e/dev.rs @@ -9,7 +9,7 @@ use reth_node_builder::{ }; use reth_node_core::args::DevArgs; use reth_node_ethereum::{node::EthereumAddOns, EthereumNode}; -use reth_provider::{providers::BlockchainProvider2, CanonStateSubscriptions}; +use reth_provider::{providers::BlockchainProvider, CanonStateSubscriptions}; use reth_rpc_eth_api::helpers::EthTransactions; use reth_tasks::TaskManager; use std::sync::Arc; @@ -25,7 +25,7 @@ async fn can_run_dev_node() -> eyre::Result<()> { .with_dev(DevArgs { dev: true, ..Default::default() }); let NodeHandle { node, .. } = NodeBuilder::new(node_config.clone()) .testing_node(exec.clone()) - .with_types_and_provider::>() + .with_types_and_provider::>() .with_components(EthereumNode::components()) .with_add_ons(EthereumAddOns::default()) .launch_with_fn(|builder| { diff --git a/crates/ethereum/node/tests/it/builder.rs b/crates/ethereum/node/tests/it/builder.rs index 218839fbe..e3d78182e 100644 --- a/crates/ethereum/node/tests/it/builder.rs +++ b/crates/ethereum/node/tests/it/builder.rs @@ -9,7 +9,7 @@ use reth_db::{ use reth_node_api::NodeTypesWithDBAdapter; use reth_node_builder::{EngineNodeLauncher, FullNodeComponents, NodeBuilder, NodeConfig}; use reth_node_ethereum::node::{EthereumAddOns, EthereumNode}; -use reth_provider::providers::BlockchainProvider2; +use reth_provider::providers::BlockchainProvider; use reth_tasks::TaskManager; #[test] @@ -50,7 +50,7 @@ async fn test_eth_launcher() { let _builder = NodeBuilder::new(config) .with_database(db) - .with_types_and_provider::>>, >>() .with_components(EthereumNode::components()) diff --git a/crates/exex/exex/src/backfill/job.rs b/crates/exex/exex/src/backfill/job.rs index fca2cb9a2..161253d2b 100644 --- a/crates/exex/exex/src/backfill/job.rs +++ b/crates/exex/exex/src/backfill/job.rs @@ -235,7 +235,7 @@ mod tests { use reth_evm_ethereum::execute::EthExecutorProvider; use reth_primitives_traits::crypto::secp256k1::public_key_to_address; use reth_provider::{ - providers::BlockchainProvider2, test_utils::create_test_provider_factory_with_chain_spec, + providers::BlockchainProvider, test_utils::create_test_provider_factory_with_chain_spec, }; use reth_testing_utils::generators; use secp256k1::Keypair; @@ -253,7 +253,7 @@ mod tests { let executor = EthExecutorProvider::ethereum(chain_spec.clone()); let provider_factory = create_test_provider_factory_with_chain_spec(chain_spec.clone()); init_genesis(&provider_factory)?; - let blockchain_db = BlockchainProvider2::new(provider_factory.clone())?; + let blockchain_db = BlockchainProvider::new(provider_factory.clone())?; let blocks_and_execution_outputs = blocks_and_execution_outputs(provider_factory, chain_spec, key_pair)?; @@ -289,7 +289,7 @@ mod tests { let executor = EthExecutorProvider::ethereum(chain_spec.clone()); let provider_factory = create_test_provider_factory_with_chain_spec(chain_spec.clone()); init_genesis(&provider_factory)?; - let blockchain_db = BlockchainProvider2::new(provider_factory.clone())?; + let blockchain_db = BlockchainProvider::new(provider_factory.clone())?; let blocks_and_execution_outcomes = blocks_and_execution_outputs(provider_factory, chain_spec, key_pair)?; diff --git a/crates/exex/exex/src/backfill/stream.rs b/crates/exex/exex/src/backfill/stream.rs index 6111ae8fe..2fef2dd57 100644 --- a/crates/exex/exex/src/backfill/stream.rs +++ b/crates/exex/exex/src/backfill/stream.rs @@ -246,7 +246,7 @@ mod tests { use reth_evm_ethereum::execute::EthExecutorProvider; use reth_primitives_traits::crypto::secp256k1::public_key_to_address; use reth_provider::{ - providers::BlockchainProvider2, test_utils::create_test_provider_factory_with_chain_spec, + providers::BlockchainProvider, test_utils::create_test_provider_factory_with_chain_spec, }; use reth_stages_api::ExecutionStageThresholds; use reth_testing_utils::generators; @@ -265,7 +265,7 @@ mod tests { let executor = EthExecutorProvider::ethereum(chain_spec.clone()); let provider_factory = create_test_provider_factory_with_chain_spec(chain_spec.clone()); init_genesis(&provider_factory)?; - let blockchain_db = BlockchainProvider2::new(provider_factory.clone())?; + let blockchain_db = BlockchainProvider::new(provider_factory.clone())?; // Create first 2 blocks let blocks_and_execution_outcomes = @@ -303,7 +303,7 @@ mod tests { let executor = EthExecutorProvider::ethereum(chain_spec.clone()); let provider_factory = create_test_provider_factory_with_chain_spec(chain_spec.clone()); init_genesis(&provider_factory)?; - let blockchain_db = BlockchainProvider2::new(provider_factory.clone())?; + let blockchain_db = BlockchainProvider::new(provider_factory.clone())?; // Create first 2 blocks let (blocks, execution_outcome) = diff --git a/crates/exex/exex/src/manager.rs b/crates/exex/exex/src/manager.rs index 32944bd28..165ae8b7b 100644 --- a/crates/exex/exex/src/manager.rs +++ b/crates/exex/exex/src/manager.rs @@ -666,7 +666,7 @@ mod tests { use reth_evm_ethereum::execute::EthExecutorProvider; use reth_primitives::SealedBlockWithSenders; use reth_provider::{ - providers::BlockchainProvider2, test_utils::create_test_provider_factory, BlockReader, + providers::BlockchainProvider, test_utils::create_test_provider_factory, BlockReader, BlockWriter, Chain, DatabaseProviderFactory, StorageLocation, TransactionVariant, }; use reth_testing_utils::generators::{self, random_block, BlockParams}; @@ -1098,7 +1098,7 @@ mod tests { async fn exex_handle_new() { let provider_factory = create_test_provider_factory(); init_genesis(&provider_factory).unwrap(); - let provider = BlockchainProvider2::new(provider_factory).unwrap(); + let provider = BlockchainProvider::new(provider_factory).unwrap(); let temp_dir = tempfile::tempdir().unwrap(); let wal = Wal::new(temp_dir.path()).unwrap(); @@ -1153,7 +1153,7 @@ mod tests { async fn test_notification_if_finished_height_gt_chain_tip() { let provider_factory = create_test_provider_factory(); init_genesis(&provider_factory).unwrap(); - let provider = BlockchainProvider2::new(provider_factory).unwrap(); + let provider = BlockchainProvider::new(provider_factory).unwrap(); let temp_dir = tempfile::tempdir().unwrap(); let wal = Wal::new(temp_dir.path()).unwrap(); @@ -1203,7 +1203,7 @@ mod tests { async fn test_sends_chain_reorged_notification() { let provider_factory = create_test_provider_factory(); init_genesis(&provider_factory).unwrap(); - let provider = BlockchainProvider2::new(provider_factory).unwrap(); + let provider = BlockchainProvider::new(provider_factory).unwrap(); let temp_dir = tempfile::tempdir().unwrap(); let wal = Wal::new(temp_dir.path()).unwrap(); @@ -1246,7 +1246,7 @@ mod tests { async fn test_sends_chain_reverted_notification() { let provider_factory = create_test_provider_factory(); init_genesis(&provider_factory).unwrap(); - let provider = BlockchainProvider2::new(provider_factory).unwrap(); + let provider = BlockchainProvider::new(provider_factory).unwrap(); let temp_dir = tempfile::tempdir().unwrap(); let wal = Wal::new(temp_dir.path()).unwrap(); @@ -1306,7 +1306,7 @@ mod tests { provider_rw.insert_block(block.clone(), StorageLocation::Database).unwrap(); provider_rw.commit().unwrap(); - let provider = BlockchainProvider2::new(provider_factory).unwrap(); + let provider = BlockchainProvider::new(provider_factory).unwrap(); let temp_dir = tempfile::tempdir().unwrap(); let wal = Wal::new(temp_dir.path()).unwrap(); diff --git a/crates/exex/exex/src/notifications.rs b/crates/exex/exex/src/notifications.rs index 05892e2f9..0d361de30 100644 --- a/crates/exex/exex/src/notifications.rs +++ b/crates/exex/exex/src/notifications.rs @@ -446,7 +446,7 @@ mod tests { use reth_evm_ethereum::execute::EthExecutorProvider; use reth_primitives::{Block, BlockExt}; use reth_provider::{ - providers::BlockchainProvider2, test_utils::create_test_provider_factory, BlockWriter, + providers::BlockchainProvider, test_utils::create_test_provider_factory, BlockWriter, Chain, DatabaseProviderFactory, StorageLocation, }; use reth_testing_utils::generators::{self, random_block, BlockParams}; @@ -465,7 +465,7 @@ mod tests { .block(genesis_hash.into())? .ok_or_else(|| eyre::eyre!("genesis block not found"))?; - let provider = BlockchainProvider2::new(provider_factory.clone())?; + let provider = BlockchainProvider::new(provider_factory.clone())?; let node_head_block = random_block( &mut rng, @@ -547,7 +547,7 @@ mod tests { .block(genesis_hash.into())? .ok_or_else(|| eyre::eyre!("genesis block not found"))?; - let provider = BlockchainProvider2::new(provider_factory)?; + let provider = BlockchainProvider::new(provider_factory)?; let node_head = Head { number: genesis_block.number, hash: genesis_hash, ..Default::default() }; @@ -604,7 +604,7 @@ mod tests { .block(genesis_hash.into())? .ok_or_else(|| eyre::eyre!("genesis block not found"))?; - let provider = BlockchainProvider2::new(provider_factory)?; + let provider = BlockchainProvider::new(provider_factory)?; let node_head_block = random_block( &mut rng, @@ -704,7 +704,7 @@ mod tests { .block(genesis_hash.into())? .ok_or_else(|| eyre::eyre!("genesis block not found"))?; - let provider = BlockchainProvider2::new(provider_factory)?; + let provider = BlockchainProvider::new(provider_factory)?; let exex_head_block = random_block( &mut rng, diff --git a/crates/exex/test-utils/src/lib.rs b/crates/exex/test-utils/src/lib.rs index 471b0c5b2..bbb8c6710 100644 --- a/crates/exex/test-utils/src/lib.rs +++ b/crates/exex/test-utils/src/lib.rs @@ -50,7 +50,7 @@ use reth_provider::{providers::StaticFileProvider, BlockReader, EthStorage, Prov use reth_tasks::TaskManager; use reth_transaction_pool::test_utils::{testing_pool, TestPool}; -use reth_provider::providers::BlockchainProvider2; +use reth_provider::providers::BlockchainProvider; use tempfile::TempDir; use thiserror::Error; use tokio::sync::mpsc::{Sender, UnboundedReceiver}; @@ -174,7 +174,7 @@ pub type Adapter = NodeAdapter< FullNodeTypesAdapter< TestNode, TmpDB, - BlockchainProvider2>, + BlockchainProvider>, >, >>::ComponentsBuilder as NodeComponentsBuilder>>::Components, >; @@ -271,7 +271,7 @@ pub async fn test_exex_context_with_chain_spec( ); let genesis_hash = init_genesis(&provider_factory)?; - let provider = BlockchainProvider2::new(provider_factory.clone())?; + let provider = BlockchainProvider::new(provider_factory.clone())?; let network_manager = NetworkManager::new( NetworkConfigBuilder::new(SecretKey::new(&mut rand::thread_rng())) diff --git a/crates/node/builder/src/builder/mod.rs b/crates/node/builder/src/builder/mod.rs index a30797573..82e81209a 100644 --- a/crates/node/builder/src/builder/mod.rs +++ b/crates/node/builder/src/builder/mod.rs @@ -33,7 +33,7 @@ use reth_node_core::{ primitives::Head, }; use reth_provider::{ - providers::{BlockchainProvider2, NodeTypesForProvider, NodeTypesForTree}, + providers::{BlockchainProvider, NodeTypesForProvider, NodeTypesForTree}, ChainSpecProvider, FullProvider, }; use reth_tasks::TaskExecutor; @@ -50,7 +50,7 @@ pub use states::*; /// The adapter type for a reth node with the builtin provider type // Note: we need to hardcode this because custom components might depend on it in associated types. pub type RethFullAdapter = - FullNodeTypesAdapter>>; + FullNodeTypesAdapter>>; #[allow(clippy::doc_markdown)] #[cfg_attr(doc, aquamarine::aquamarine)] diff --git a/crates/node/builder/src/launch/engine.rs b/crates/node/builder/src/launch/engine.rs index 6a6cab80c..31968197d 100644 --- a/crates/node/builder/src/launch/engine.rs +++ b/crates/node/builder/src/launch/engine.rs @@ -29,7 +29,7 @@ use reth_node_core::{ }; use reth_node_events::{cl::ConsensusLayerHealthEvents, node}; use reth_primitives::EthereumHardforks; -use reth_provider::providers::{BlockchainProvider2, NodeTypesForProvider}; +use reth_provider::providers::{BlockchainProvider, NodeTypesForProvider}; use reth_tasks::TaskExecutor; use reth_tokio_util::EventSender; use reth_tracing::tracing::{debug, error, info}; @@ -75,7 +75,7 @@ where T: FullNodeTypes< Types = Types, DB = DB, - Provider = BlockchainProvider2>, + Provider = BlockchainProvider>, >, CB: NodeComponentsBuilder, AO: RethRpcAddOns> @@ -127,7 +127,7 @@ where // passing FullNodeTypes as type parameter here so that we can build // later the components. .with_blockchain_db::(move |provider_factory| { - Ok(BlockchainProvider2::new(provider_factory)?) + Ok(BlockchainProvider::new(provider_factory)?) })? .with_components(components_builder, on_component_initialized).await?; diff --git a/crates/optimism/bin/src/main.rs b/crates/optimism/bin/src/main.rs index db4fd9ec0..55eb92347 100644 --- a/crates/optimism/bin/src/main.rs +++ b/crates/optimism/bin/src/main.rs @@ -6,7 +6,7 @@ use clap::Parser; use reth_node_builder::{engine_tree_config::TreeConfig, EngineNodeLauncher, Node}; use reth_optimism_cli::{chainspec::OpChainSpecParser, Cli}; use reth_optimism_node::{args::RollupArgs, OpNode}; -use reth_provider::providers::BlockchainProvider2; +use reth_provider::providers::BlockchainProvider; use tracing as _; @@ -29,7 +29,7 @@ fn main() { let op_node = OpNode::new(rollup_args.clone()); let handle = builder - .with_types_and_provider::>() + .with_types_and_provider::>() .with_components(op_node.components()) .with_add_ons(op_node.add_ons()) .launch_with_fn(|builder| { diff --git a/crates/optimism/node/src/utils.rs b/crates/optimism/node/src/utils.rs index c7482288f..95875a767 100644 --- a/crates/optimism/node/src/utils.rs +++ b/crates/optimism/node/src/utils.rs @@ -8,14 +8,14 @@ use reth_e2e_test_utils::{ use reth_node_api::NodeTypesWithDBAdapter; use reth_optimism_chainspec::OpChainSpecBuilder; use reth_payload_builder::EthPayloadBuilderAttributes; -use reth_provider::providers::BlockchainProvider2; +use reth_provider::providers::BlockchainProvider; use reth_tasks::TaskManager; use std::sync::Arc; use tokio::sync::Mutex; /// Optimism Node Helper type pub(crate) type OpNode = - NodeHelperType>>; + NodeHelperType>>; /// Creates the initial setup with `num_nodes` of the node config, started and connected. pub async fn setup(num_nodes: usize) -> eyre::Result<(Vec, TaskManager, Wallet)> { diff --git a/crates/optimism/node/tests/it/builder.rs b/crates/optimism/node/tests/it/builder.rs index fc0016fbc..eba2aed42 100644 --- a/crates/optimism/node/tests/it/builder.rs +++ b/crates/optimism/node/tests/it/builder.rs @@ -5,7 +5,7 @@ use reth_node_api::{FullNodeComponents, NodeTypesWithDBAdapter}; use reth_node_builder::{Node, NodeBuilder, NodeConfig}; use reth_optimism_chainspec::BASE_MAINNET; use reth_optimism_node::{args::RollupArgs, OpNode}; -use reth_provider::providers::BlockchainProvider2; +use reth_provider::providers::BlockchainProvider; #[test] fn test_basic_setup() { @@ -16,7 +16,7 @@ fn test_basic_setup() { let op_node = OpNode::new(args); let _builder = NodeBuilder::new(config) .with_database(db) - .with_types_and_provider::>>() + .with_types_and_provider::>>() .with_components(op_node.components()) .with_add_ons(op_node.add_ons()) .on_component_initialized(move |ctx| { diff --git a/crates/optimism/node/tests/it/priority.rs b/crates/optimism/node/tests/it/priority.rs index d34dac483..defce4466 100644 --- a/crates/optimism/node/tests/it/priority.rs +++ b/crates/optimism/node/tests/it/priority.rs @@ -29,7 +29,7 @@ use reth_optimism_payload_builder::builder::OpPayloadTransactions; use reth_optimism_primitives::{OpPrimitives, OpTransactionSigned}; use reth_payload_util::{PayloadTransactions, PayloadTransactionsChain, PayloadTransactionsFixed}; use reth_primitives::RecoveredTx; -use reth_provider::providers::BlockchainProvider2; +use reth_provider::providers::BlockchainProvider; use reth_tasks::TaskManager; use reth_transaction_pool::{pool::BestPayloadTransactions, PoolTransaction}; use std::sync::Arc; @@ -148,7 +148,7 @@ async fn test_custom_block_priority_config() { let tasks = TaskManager::current(); let node_handle = NodeBuilder::new(config.clone()) .with_database(db) - .with_types_and_provider::>() + .with_types_and_provider::>() .with_components(build_components(config.chain.chain_id())) .with_add_ons(OpAddOns::default()) .launch_with_fn(|builder| { diff --git a/crates/prune/prune/src/segments/mod.rs b/crates/prune/prune/src/segments/mod.rs index 9f9e989dc..c1e23063f 100644 --- a/crates/prune/prune/src/segments/mod.rs +++ b/crates/prune/prune/src/segments/mod.rs @@ -147,7 +147,7 @@ mod tests { use super::*; use alloy_primitives::B256; use reth_provider::{ - providers::BlockchainProvider2, + providers::BlockchainProvider, test_utils::{create_test_provider_factory, MockEthProvider}, }; use reth_testing_utils::generators::{self, random_block_range, BlockRangeParams}; @@ -198,7 +198,7 @@ mod tests { provider_rw.commit().expect("failed to commit"); // Create a new provider - let provider = BlockchainProvider2::new(factory).unwrap(); + let provider = BlockchainProvider::new(factory).unwrap(); // Since there are no transactions, expected None let range = input.get_next_tx_num_range(&provider).expect("Expected range"); @@ -236,7 +236,7 @@ mod tests { provider_rw.commit().expect("failed to commit"); // Create a new provider - let provider = BlockchainProvider2::new(factory).unwrap(); + let provider = BlockchainProvider::new(factory).unwrap(); // Get the next tx number range let range = input.get_next_tx_num_range(&provider).expect("Expected range").unwrap(); @@ -282,7 +282,7 @@ mod tests { provider_rw.commit().expect("failed to commit"); // Create a new provider - let provider = BlockchainProvider2::new(factory).unwrap(); + let provider = BlockchainProvider::new(factory).unwrap(); // Fetch the range and check if it is correct let range = input.get_next_tx_num_range(&provider).expect("Expected range").unwrap(); @@ -318,7 +318,7 @@ mod tests { provider_rw.commit().expect("failed to commit"); // Create a new provider - let provider = BlockchainProvider2::new(factory).unwrap(); + let provider = BlockchainProvider::new(factory).unwrap(); // Get the last tx number // Calculate the total number of transactions diff --git a/crates/storage/provider/src/providers/blockchain_provider.rs b/crates/storage/provider/src/providers/blockchain_provider.rs index 818e224d6..9d1d7abc0 100644 --- a/crates/storage/provider/src/providers/blockchain_provider.rs +++ b/crates/storage/provider/src/providers/blockchain_provider.rs @@ -1,6 +1,6 @@ #![allow(unused)] use crate::{ - providers::{ConsistentProvider, StaticFileProvider}, + providers::{ConsistentProvider, ProviderNodeTypes, StaticFileProvider}, AccountReader, BlockHashReader, BlockIdReader, BlockNumReader, BlockReader, BlockReaderIdExt, BlockSource, CanonChainTracker, CanonStateNotifications, CanonStateSubscriptions, ChainSpecProvider, ChainStateBlockReader, ChangeSetReader, DatabaseProvider, @@ -51,15 +51,13 @@ use std::{ }; use tracing::trace; -use crate::providers::ProviderNodeTypes; - /// The main type for interacting with the blockchain. /// /// This type serves as the main entry point for interacting with the blockchain and provides data /// from database storage and from the blockchain tree (pending state etc.) It is a simple wrapper /// type that holds an instance of the database and the blockchain tree. #[derive(Debug)] -pub struct BlockchainProvider2 { +pub struct BlockchainProvider { /// Provider factory used to access the database. pub(crate) database: ProviderFactory, /// Tracks the chain info wrt forkchoice updates and in memory canonical @@ -67,7 +65,7 @@ pub struct BlockchainProvider2 { pub(crate) canonical_in_memory_state: CanonicalInMemoryState, } -impl Clone for BlockchainProvider2 { +impl Clone for BlockchainProvider { fn clone(&self) -> Self { Self { database: self.database.clone(), @@ -76,8 +74,8 @@ impl Clone for BlockchainProvider2 { } } -impl BlockchainProvider2 { - /// Create a new [`BlockchainProvider2`] using only the storage, fetching the latest +impl BlockchainProvider { + /// Create a new [`BlockchainProvider`] using only the storage, fetching the latest /// header from the database to initialize the provider. pub fn new(storage: ProviderFactory) -> ProviderResult { let provider = storage.provider()?; @@ -160,11 +158,11 @@ impl BlockchainProvider2 { } } -impl NodePrimitivesProvider for BlockchainProvider2 { +impl NodePrimitivesProvider for BlockchainProvider { type Primitives = N::Primitives; } -impl DatabaseProviderFactory for BlockchainProvider2 { +impl DatabaseProviderFactory for BlockchainProvider { type DB = N::DB; type Provider = as DatabaseProviderFactory>::Provider; type ProviderRW = as DatabaseProviderFactory>::ProviderRW; @@ -178,17 +176,17 @@ impl DatabaseProviderFactory for BlockchainProvider2 { } } -impl StateCommitmentProvider for BlockchainProvider2 { +impl StateCommitmentProvider for BlockchainProvider { type StateCommitment = N::StateCommitment; } -impl StaticFileProviderFactory for BlockchainProvider2 { +impl StaticFileProviderFactory for BlockchainProvider { fn static_file_provider(&self) -> StaticFileProvider { self.database.static_file_provider() } } -impl HeaderProvider for BlockchainProvider2 { +impl HeaderProvider for BlockchainProvider { type Header = HeaderTy; fn header(&self, block_hash: &BlockHash) -> ProviderResult> { @@ -237,7 +235,7 @@ impl HeaderProvider for BlockchainProvider2 { } } -impl BlockHashReader for BlockchainProvider2 { +impl BlockHashReader for BlockchainProvider { fn block_hash(&self, number: u64) -> ProviderResult> { self.consistent_provider()?.block_hash(number) } @@ -251,7 +249,7 @@ impl BlockHashReader for BlockchainProvider2 { } } -impl BlockNumReader for BlockchainProvider2 { +impl BlockNumReader for BlockchainProvider { fn chain_info(&self) -> ProviderResult { Ok(self.canonical_in_memory_state.chain_info()) } @@ -269,7 +267,7 @@ impl BlockNumReader for BlockchainProvider2 { } } -impl BlockIdReader for BlockchainProvider2 { +impl BlockIdReader for BlockchainProvider { fn pending_block_num_hash(&self) -> ProviderResult> { Ok(self.canonical_in_memory_state.pending_block_num_hash()) } @@ -283,7 +281,7 @@ impl BlockIdReader for BlockchainProvider2 { } } -impl BlockReader for BlockchainProvider2 { +impl BlockReader for BlockchainProvider { type Block = BlockTy; fn find_block_by_hash( @@ -355,7 +353,7 @@ impl BlockReader for BlockchainProvider2 { } } -impl TransactionsProvider for BlockchainProvider2 { +impl TransactionsProvider for BlockchainProvider { type Transaction = TxTy; fn transaction_id(&self, tx_hash: TxHash) -> ProviderResult> { @@ -421,7 +419,7 @@ impl TransactionsProvider for BlockchainProvider2 { } } -impl ReceiptProvider for BlockchainProvider2 { +impl ReceiptProvider for BlockchainProvider { type Receipt = ReceiptTy; fn receipt(&self, id: TxNumber) -> ProviderResult> { @@ -447,13 +445,13 @@ impl ReceiptProvider for BlockchainProvider2 { } } -impl ReceiptProviderIdExt for BlockchainProvider2 { +impl ReceiptProviderIdExt for BlockchainProvider { fn receipts_by_block_id(&self, block: BlockId) -> ProviderResult>> { self.consistent_provider()?.receipts_by_block_id(block) } } -impl WithdrawalsProvider for BlockchainProvider2 { +impl WithdrawalsProvider for BlockchainProvider { fn withdrawals_by_block( &self, id: BlockHashOrNumber, @@ -463,13 +461,13 @@ impl WithdrawalsProvider for BlockchainProvider2 { } } -impl OmmersProvider for BlockchainProvider2 { +impl OmmersProvider for BlockchainProvider { fn ommers(&self, id: BlockHashOrNumber) -> ProviderResult>> { self.consistent_provider()?.ommers(id) } } -impl BlockBodyIndicesProvider for BlockchainProvider2 { +impl BlockBodyIndicesProvider for BlockchainProvider { fn block_body_indices( &self, number: BlockNumber, @@ -478,7 +476,7 @@ impl BlockBodyIndicesProvider for BlockchainProvider2 { } } -impl StageCheckpointReader for BlockchainProvider2 { +impl StageCheckpointReader for BlockchainProvider { fn get_stage_checkpoint(&self, id: StageId) -> ProviderResult> { self.consistent_provider()?.get_stage_checkpoint(id) } @@ -492,7 +490,7 @@ impl StageCheckpointReader for BlockchainProvider2 { } } -impl PruneCheckpointReader for BlockchainProvider2 { +impl PruneCheckpointReader for BlockchainProvider { fn get_prune_checkpoint( &self, segment: PruneSegment, @@ -505,7 +503,7 @@ impl PruneCheckpointReader for BlockchainProvider2 { } } -impl ChainSpecProvider for BlockchainProvider2 { +impl ChainSpecProvider for BlockchainProvider { type ChainSpec = N::ChainSpec; fn chain_spec(&self) -> Arc { @@ -513,7 +511,7 @@ impl ChainSpecProvider for BlockchainProvider2 { } } -impl StateProviderFactory for BlockchainProvider2 { +impl StateProviderFactory for BlockchainProvider { /// Storage provider for latest block fn latest(&self) -> ProviderResult { trace!(target: "providers::blockchain", "Getting latest block state provider"); @@ -622,7 +620,7 @@ impl StateProviderFactory for BlockchainProvider2 { } } -impl HashedPostStateProvider for BlockchainProvider2 { +impl HashedPostStateProvider for BlockchainProvider { fn hashed_post_state(&self, bundle_state: &BundleState) -> HashedPostState { HashedPostState::from_bundle_state::<::KeyHasher>( bundle_state.state(), @@ -630,7 +628,7 @@ impl HashedPostStateProvider for BlockchainProvider2 { } } -impl CanonChainTracker for BlockchainProvider2 { +impl CanonChainTracker for BlockchainProvider { type Header = HeaderTy; fn on_forkchoice_update_received(&self, _update: &ForkchoiceState) { @@ -663,7 +661,7 @@ impl CanonChainTracker for BlockchainProvider2 { } } -impl BlockReaderIdExt for BlockchainProvider2 +impl BlockReaderIdExt for BlockchainProvider where Self: ReceiptProviderIdExt, { @@ -701,13 +699,13 @@ where } } -impl CanonStateSubscriptions for BlockchainProvider2 { +impl CanonStateSubscriptions for BlockchainProvider { fn subscribe_to_canonical_state(&self) -> CanonStateNotifications { self.canonical_in_memory_state.subscribe_canon_state() } } -impl ForkChoiceSubscriptions for BlockchainProvider2 { +impl ForkChoiceSubscriptions for BlockchainProvider { type Header = HeaderTy; fn subscribe_safe_block(&self) -> ForkChoiceNotifications { @@ -721,7 +719,7 @@ impl ForkChoiceSubscriptions for BlockchainProvider2 { } } -impl StorageChangeSetReader for BlockchainProvider2 { +impl StorageChangeSetReader for BlockchainProvider { fn storage_changeset( &self, block_number: BlockNumber, @@ -730,7 +728,7 @@ impl StorageChangeSetReader for BlockchainProvider2 { } } -impl ChangeSetReader for BlockchainProvider2 { +impl ChangeSetReader for BlockchainProvider { fn account_block_changeset( &self, block_number: BlockNumber, @@ -739,14 +737,14 @@ impl ChangeSetReader for BlockchainProvider2 { } } -impl AccountReader for BlockchainProvider2 { +impl AccountReader for BlockchainProvider { /// Get basic account information. fn basic_account(&self, address: &Address) -> ProviderResult> { self.consistent_provider()?.basic_account(address) } } -impl StateReader for BlockchainProvider2 { +impl StateReader for BlockchainProvider { type Receipt = ReceiptTy; /// Re-constructs the [`ExecutionOutcome`] from in-memory and database state, if necessary. @@ -769,7 +767,7 @@ impl StateReader for BlockchainProvider2 { #[cfg(test)] mod tests { use crate::{ - providers::BlockchainProvider2, + providers::BlockchainProvider, test_utils::{ create_test_provider_factory, create_test_provider_factory_with_chain_spec, MockNodeTypesWithDB, @@ -860,7 +858,7 @@ mod tests { in_memory_blocks: usize, block_range_params: BlockRangeParams, ) -> eyre::Result<( - BlockchainProvider2, + BlockchainProvider, Vec, Vec, Vec>, @@ -916,7 +914,7 @@ mod tests { // Commit to both storages: database and static files UnifiedStorageWriter::commit(provider_rw)?; - let provider = BlockchainProvider2::new(factory)?; + let provider = BlockchainProvider::new(factory)?; // Insert the rest of the blocks and receipts into the in-memory state let chain = NewCanonicalChain::Commit { @@ -962,7 +960,7 @@ mod tests { in_memory_blocks: usize, block_range_params: BlockRangeParams, ) -> eyre::Result<( - BlockchainProvider2, + BlockchainProvider, Vec, Vec, Vec>, @@ -982,7 +980,7 @@ mod tests { /// This simulates a RPC method having a different view than when its database transaction was /// created. fn persist_block_after_db_tx_creation( - provider: BlockchainProvider2, + provider: BlockchainProvider, block_number: BlockNumber, ) { let hook_provider = provider.clone(); @@ -1035,7 +1033,7 @@ mod tests { provider_rw.commit()?; // Create a new provider - let provider = BlockchainProvider2::new(factory)?; + let provider = BlockchainProvider::new(factory)?; // Useful blocks let first_db_block = database_blocks.first().unwrap(); @@ -1133,7 +1131,7 @@ mod tests { provider_rw.commit()?; // Create a new provider - let provider = BlockchainProvider2::new(factory)?; + let provider = BlockchainProvider::new(factory)?; // First in memory block let first_in_mem_block = in_memory_blocks.first().unwrap(); @@ -1397,7 +1395,7 @@ mod tests { provider_rw.insert_historical_block(block_1)?; provider_rw.commit()?; - let provider = BlockchainProvider2::new(factory)?; + let provider = BlockchainProvider::new(factory)?; // Subscribe twice for canonical state updates. let in_memory_state = provider.canonical_in_memory_state(); @@ -1833,7 +1831,7 @@ mod tests { )?; provider_rw.commit()?; - let provider = BlockchainProvider2::new(factory)?; + let provider = BlockchainProvider::new(factory)?; let in_memory_changesets = in_memory_changesets.into_iter().next().unwrap(); let chain = NewCanonicalChain::Commit { diff --git a/crates/storage/provider/src/providers/consistent.rs b/crates/storage/provider/src/providers/consistent.rs index e0022a61d..9ac33e347 100644 --- a/crates/storage/provider/src/providers/consistent.rs +++ b/crates/storage/provider/src/providers/consistent.rs @@ -1444,7 +1444,7 @@ impl StateReader for ConsistentProvider { #[cfg(test)] mod tests { use crate::{ - providers::blockchain_provider::BlockchainProvider2, + providers::blockchain_provider::BlockchainProvider, test_utils::create_test_provider_factory, BlockWriter, }; use alloy_eips::BlockHashOrNumber; @@ -1524,7 +1524,7 @@ mod tests { provider_rw.commit()?; // Create a new provider - let provider = BlockchainProvider2::new(factory)?; + let provider = BlockchainProvider::new(factory)?; let consistent_provider = provider.consistent_provider()?; // Useful blocks @@ -1635,7 +1635,7 @@ mod tests { provider_rw.commit()?; // Create a new provider - let provider = BlockchainProvider2::new(factory)?; + let provider = BlockchainProvider::new(factory)?; let consistent_provider = provider.consistent_provider()?; // First in memory block @@ -1753,7 +1753,7 @@ mod tests { )?; provider_rw.commit()?; - let provider = BlockchainProvider2::new(factory)?; + let provider = BlockchainProvider::new(factory)?; let in_memory_changesets = in_memory_changesets.into_iter().next().unwrap(); let chain = NewCanonicalChain::Commit { diff --git a/crates/storage/provider/src/providers/mod.rs b/crates/storage/provider/src/providers/mod.rs index 6ff53e4af..7ac5bde40 100644 --- a/crates/storage/provider/src/providers/mod.rs +++ b/crates/storage/provider/src/providers/mod.rs @@ -27,7 +27,7 @@ mod consistent_view; pub use consistent_view::{ConsistentDbView, ConsistentViewError}; mod blockchain_provider; -pub use blockchain_provider::BlockchainProvider2; +pub use blockchain_provider::BlockchainProvider; mod consistent; pub use consistent::ConsistentProvider; diff --git a/examples/rpc-db/src/main.rs b/examples/rpc-db/src/main.rs index 1af1d3e5e..19c108e5e 100644 --- a/examples/rpc-db/src/main.rs +++ b/examples/rpc-db/src/main.rs @@ -18,7 +18,7 @@ use reth::{ api::NodeTypesWithDBAdapter, beacon_consensus::EthBeaconConsensus, providers::{ - providers::{BlockchainProvider2, StaticFileProvider}, + providers::{BlockchainProvider, StaticFileProvider}, ProviderFactory, }, rpc::eth::EthApi, @@ -61,7 +61,7 @@ async fn main() -> eyre::Result<()> { // 2. Setup the blockchain provider using only the database provider and a noop for the tree to // satisfy trait bounds. Tree is not used in this example since we are only operating on the // disk and don't handle new blocks/live sync etc, which is done by the blockchain tree. - let provider = BlockchainProvider2::new(factory)?; + let provider = BlockchainProvider::new(factory)?; let rpc_builder = RpcModuleBuilder::default() .with_provider(provider.clone())