chore!: rename blockchainprovider2 (#13727)

This commit is contained in:
Matthias Seitz
2025-01-08 13:52:17 +01:00
committed by GitHub
parent 052a730e3c
commit a3f8a9d38b
23 changed files with 112 additions and 114 deletions

View File

@ -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<C: ChainSpecParser<ChainSpec = ChainSpec>> Command<C> {
.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 =

View File

@ -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::<EthereumNode, BlockchainProvider2<_>>()
.with_types_and_provider::<EthereumNode, BlockchainProvider<_>>()
.with_components(EthereumNode::components())
.with_add_ons(EthereumAddOns::default())
.launch_with_fn(|builder| {

View File

@ -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<N>(
is_dev: bool,
attributes_generator: impl Fn(u64) -> <<N as NodeTypesWithEngine>::Engine as PayloadTypes>::PayloadBuilderAttributes + Copy + 'static,
) -> eyre::Result<(
Vec<NodeHelperType<N, BlockchainProvider2<NodeTypesWithDBAdapter<N, TmpDB>>>>,
Vec<NodeHelperType<N, BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>>>,
TaskManager,
Wallet,
)>
where
N: Default
+ Node<TmpNodeAdapter<N, BlockchainProvider2<NodeTypesWithDBAdapter<N, TmpDB>>>>
+ Node<TmpNodeAdapter<N, BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>>>
+ NodeTypesWithEngine
+ NodeTypesForProvider,
N::ComponentsBuilder: NodeComponentsBuilder<
TmpNodeAdapter<N, BlockchainProvider2<NodeTypesWithDBAdapter<N, TmpDB>>>,
TmpNodeAdapter<N, BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>>,
Components: NodeComponents<
TmpNodeAdapter<N, BlockchainProvider2<NodeTypesWithDBAdapter<N, TmpDB>>>,
TmpNodeAdapter<N, BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>>,
Network: PeersHandleProvider,
>,
>,
N::AddOns: RethRpcAddOns<Adapter<N, BlockchainProvider2<NodeTypesWithDBAdapter<N, TmpDB>>>>
+ EngineValidatorAddOn<Adapter<N, BlockchainProvider2<NodeTypesWithDBAdapter<N, TmpDB>>>>,
N::AddOns: RethRpcAddOns<Adapter<N, BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>>>
+ EngineValidatorAddOn<Adapter<N, BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>>>,
LocalPayloadAttributesBuilder<N::ChainSpec>: PayloadAttributesBuilder<
<<N as NodeTypesWithEngine>::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::<N, BlockchainProvider2<_>>()
.with_types_and_provider::<N, BlockchainProvider<_>>()
.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<TempDatabase<DatabaseEnv>>;
type TmpNodeAdapter<N, Provider = BlockchainProvider2<NodeTypesWithDBAdapter<N, TmpDB>>> =
type TmpNodeAdapter<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> =
FullNodeTypesAdapter<N, TmpDB, Provider>;
/// Type alias for a `NodeAdapter`
pub type Adapter<N, Provider = BlockchainProvider2<NodeTypesWithDBAdapter<N, TmpDB>>> = NodeAdapter<
pub type Adapter<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> = NodeAdapter<
TmpNodeAdapter<N, Provider>,
<<N as Node<TmpNodeAdapter<N, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<
TmpNodeAdapter<N, Provider>,
@ -216,5 +216,5 @@ pub type Adapter<N, Provider = BlockchainProvider2<NodeTypesWithDBAdapter<N, Tmp
>;
/// Type alias for a type of `NodeHelper`
pub type NodeHelperType<N, Provider = BlockchainProvider2<NodeTypesWithDBAdapter<N, TmpDB>>> =
pub type NodeHelperType<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> =
NodeTestContext<Adapter<N, Provider>, <N as Node<TmpNodeAdapter<N, Provider>>>::AddOns>;

View File

@ -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<dyn FullConsensus<N::Primitives, Error = ConsensusError>>,
executor_factory: impl BlockExecutorProvider<Primitives = N::Primitives>,
provider: ProviderFactory<N>,
blockchain_db: BlockchainProvider2<N>,
blockchain_db: BlockchainProvider<N>,
pruner: PrunerWithFactory<ProviderFactory<N>>,
payload_builder: PayloadBuilderHandle<N::Engine>,
payload_validator: V,

View File

@ -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<N>,
pipeline_task_spawner: Box<dyn TaskSpawner>,
provider: ProviderFactory<N>,
blockchain_db: BlockchainProvider2<N>,
blockchain_db: BlockchainProvider<N>,
pruner: PrunerWithFactory<ProviderFactory<N>>,
payload_builder: PayloadBuilderHandle<N::Engine>,
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);

View File

@ -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::<EthereumNode, BlockchainProvider2<_>>()
.with_types_and_provider::<EthereumNode, BlockchainProvider<_>>()
.with_components(EthereumNode::components())
.with_add_ons(EthereumAddOns::default())
.launch_with_fn(|builder| {

View File

@ -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::<EthereumNode, BlockchainProvider2<
.with_types_and_provider::<EthereumNode, BlockchainProvider<
NodeTypesWithDBAdapter<EthereumNode, Arc<TempDatabase<DatabaseEnv>>>,
>>()
.with_components(EthereumNode::components())

View File

@ -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)?;

View File

@ -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) =

View File

@ -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();

View File

@ -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,

View File

@ -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<NodeTypesWithDBAdapter<TestNode, TmpDB>>,
BlockchainProvider<NodeTypesWithDBAdapter<TestNode, TmpDB>>,
>,
>>::ComponentsBuilder as NodeComponentsBuilder<RethFullAdapter<TmpDB, TestNode>>>::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()))

View File

@ -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<DB, Types> =
FullNodeTypesAdapter<Types, DB, BlockchainProvider2<NodeTypesWithDBAdapter<Types, DB>>>;
FullNodeTypesAdapter<Types, DB, BlockchainProvider<NodeTypesWithDBAdapter<Types, DB>>>;
#[allow(clippy::doc_markdown)]
#[cfg_attr(doc, aquamarine::aquamarine)]

View File

@ -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<NodeTypesWithDBAdapter<Types, DB>>,
Provider = BlockchainProvider<NodeTypesWithDBAdapter<Types, DB>>,
>,
CB: NodeComponentsBuilder<T>,
AO: RethRpcAddOns<NodeAdapter<T, CB::Components>>
@ -127,7 +127,7 @@ where
// passing FullNodeTypes as type parameter here so that we can build
// later the components.
.with_blockchain_db::<T, _>(move |provider_factory| {
Ok(BlockchainProvider2::new(provider_factory)?)
Ok(BlockchainProvider::new(provider_factory)?)
})?
.with_components(components_builder, on_component_initialized).await?;

View File

@ -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::<OpNode, BlockchainProvider2<_>>()
.with_types_and_provider::<OpNode, BlockchainProvider<_>>()
.with_components(op_node.components())
.with_add_ons(op_node.add_ons())
.launch_with_fn(|builder| {

View File

@ -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<OtherOpNode, BlockchainProvider2<NodeTypesWithDBAdapter<OtherOpNode, TmpDB>>>;
NodeHelperType<OtherOpNode, BlockchainProvider<NodeTypesWithDBAdapter<OtherOpNode, TmpDB>>>;
/// Creates the initial setup with `num_nodes` of the node config, started and connected.
pub async fn setup(num_nodes: usize) -> eyre::Result<(Vec<OpNode>, TaskManager, Wallet)> {

View File

@ -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::<OpNode, BlockchainProvider2<NodeTypesWithDBAdapter<OpNode, _>>>()
.with_types_and_provider::<OpNode, BlockchainProvider<NodeTypesWithDBAdapter<OpNode, _>>>()
.with_components(op_node.components())
.with_add_ons(op_node.add_ons())
.on_component_initialized(move |ctx| {

View File

@ -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::<OpNode, BlockchainProvider2<_>>()
.with_types_and_provider::<OpNode, BlockchainProvider<_>>()
.with_components(build_components(config.chain.chain_id()))
.with_add_ons(OpAddOns::default())
.launch_with_fn(|builder| {

View File

@ -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

View File

@ -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<N: NodeTypesWithDB> {
pub struct BlockchainProvider<N: NodeTypesWithDB> {
/// Provider factory used to access the database.
pub(crate) database: ProviderFactory<N>,
/// Tracks the chain info wrt forkchoice updates and in memory canonical
@ -67,7 +65,7 @@ pub struct BlockchainProvider2<N: NodeTypesWithDB> {
pub(crate) canonical_in_memory_state: CanonicalInMemoryState<N::Primitives>,
}
impl<N: NodeTypesWithDB> Clone for BlockchainProvider2<N> {
impl<N: NodeTypesWithDB> Clone for BlockchainProvider<N> {
fn clone(&self) -> Self {
Self {
database: self.database.clone(),
@ -76,8 +74,8 @@ impl<N: NodeTypesWithDB> Clone for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> BlockchainProvider2<N> {
/// Create a new [`BlockchainProvider2`] using only the storage, fetching the latest
impl<N: ProviderNodeTypes> BlockchainProvider<N> {
/// Create a new [`BlockchainProvider`] using only the storage, fetching the latest
/// header from the database to initialize the provider.
pub fn new(storage: ProviderFactory<N>) -> ProviderResult<Self> {
let provider = storage.provider()?;
@ -160,11 +158,11 @@ impl<N: ProviderNodeTypes> BlockchainProvider2<N> {
}
}
impl<N: NodeTypesWithDB> NodePrimitivesProvider for BlockchainProvider2<N> {
impl<N: NodeTypesWithDB> NodePrimitivesProvider for BlockchainProvider<N> {
type Primitives = N::Primitives;
}
impl<N: ProviderNodeTypes> DatabaseProviderFactory for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> DatabaseProviderFactory for BlockchainProvider<N> {
type DB = N::DB;
type Provider = <ProviderFactory<N> as DatabaseProviderFactory>::Provider;
type ProviderRW = <ProviderFactory<N> as DatabaseProviderFactory>::ProviderRW;
@ -178,17 +176,17 @@ impl<N: ProviderNodeTypes> DatabaseProviderFactory for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> StateCommitmentProvider for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> StateCommitmentProvider for BlockchainProvider<N> {
type StateCommitment = N::StateCommitment;
}
impl<N: ProviderNodeTypes> StaticFileProviderFactory for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> StaticFileProviderFactory for BlockchainProvider<N> {
fn static_file_provider(&self) -> StaticFileProvider<Self::Primitives> {
self.database.static_file_provider()
}
}
impl<N: ProviderNodeTypes> HeaderProvider for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> HeaderProvider for BlockchainProvider<N> {
type Header = HeaderTy<N>;
fn header(&self, block_hash: &BlockHash) -> ProviderResult<Option<Self::Header>> {
@ -237,7 +235,7 @@ impl<N: ProviderNodeTypes> HeaderProvider for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> BlockHashReader for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> BlockHashReader for BlockchainProvider<N> {
fn block_hash(&self, number: u64) -> ProviderResult<Option<B256>> {
self.consistent_provider()?.block_hash(number)
}
@ -251,7 +249,7 @@ impl<N: ProviderNodeTypes> BlockHashReader for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> BlockNumReader for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> BlockNumReader for BlockchainProvider<N> {
fn chain_info(&self) -> ProviderResult<ChainInfo> {
Ok(self.canonical_in_memory_state.chain_info())
}
@ -269,7 +267,7 @@ impl<N: ProviderNodeTypes> BlockNumReader for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> BlockIdReader for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> BlockIdReader for BlockchainProvider<N> {
fn pending_block_num_hash(&self) -> ProviderResult<Option<BlockNumHash>> {
Ok(self.canonical_in_memory_state.pending_block_num_hash())
}
@ -283,7 +281,7 @@ impl<N: ProviderNodeTypes> BlockIdReader for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> BlockReader for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> BlockReader for BlockchainProvider<N> {
type Block = BlockTy<N>;
fn find_block_by_hash(
@ -355,7 +353,7 @@ impl<N: ProviderNodeTypes> BlockReader for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> TransactionsProvider for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> TransactionsProvider for BlockchainProvider<N> {
type Transaction = TxTy<N>;
fn transaction_id(&self, tx_hash: TxHash) -> ProviderResult<Option<TxNumber>> {
@ -421,7 +419,7 @@ impl<N: ProviderNodeTypes> TransactionsProvider for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> ReceiptProvider for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> ReceiptProvider for BlockchainProvider<N> {
type Receipt = ReceiptTy<N>;
fn receipt(&self, id: TxNumber) -> ProviderResult<Option<Self::Receipt>> {
@ -447,13 +445,13 @@ impl<N: ProviderNodeTypes> ReceiptProvider for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> ReceiptProviderIdExt for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> ReceiptProviderIdExt for BlockchainProvider<N> {
fn receipts_by_block_id(&self, block: BlockId) -> ProviderResult<Option<Vec<Self::Receipt>>> {
self.consistent_provider()?.receipts_by_block_id(block)
}
}
impl<N: ProviderNodeTypes> WithdrawalsProvider for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> WithdrawalsProvider for BlockchainProvider<N> {
fn withdrawals_by_block(
&self,
id: BlockHashOrNumber,
@ -463,13 +461,13 @@ impl<N: ProviderNodeTypes> WithdrawalsProvider for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> OmmersProvider for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> OmmersProvider for BlockchainProvider<N> {
fn ommers(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Vec<Self::Header>>> {
self.consistent_provider()?.ommers(id)
}
}
impl<N: ProviderNodeTypes> BlockBodyIndicesProvider for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> BlockBodyIndicesProvider for BlockchainProvider<N> {
fn block_body_indices(
&self,
number: BlockNumber,
@ -478,7 +476,7 @@ impl<N: ProviderNodeTypes> BlockBodyIndicesProvider for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> StageCheckpointReader for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> StageCheckpointReader for BlockchainProvider<N> {
fn get_stage_checkpoint(&self, id: StageId) -> ProviderResult<Option<StageCheckpoint>> {
self.consistent_provider()?.get_stage_checkpoint(id)
}
@ -492,7 +490,7 @@ impl<N: ProviderNodeTypes> StageCheckpointReader for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> PruneCheckpointReader for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> PruneCheckpointReader for BlockchainProvider<N> {
fn get_prune_checkpoint(
&self,
segment: PruneSegment,
@ -505,7 +503,7 @@ impl<N: ProviderNodeTypes> PruneCheckpointReader for BlockchainProvider2<N> {
}
}
impl<N: NodeTypesWithDB> ChainSpecProvider for BlockchainProvider2<N> {
impl<N: NodeTypesWithDB> ChainSpecProvider for BlockchainProvider<N> {
type ChainSpec = N::ChainSpec;
fn chain_spec(&self) -> Arc<N::ChainSpec> {
@ -513,7 +511,7 @@ impl<N: NodeTypesWithDB> ChainSpecProvider for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> StateProviderFactory for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> StateProviderFactory for BlockchainProvider<N> {
/// Storage provider for latest block
fn latest(&self) -> ProviderResult<StateProviderBox> {
trace!(target: "providers::blockchain", "Getting latest block state provider");
@ -622,7 +620,7 @@ impl<N: ProviderNodeTypes> StateProviderFactory for BlockchainProvider2<N> {
}
}
impl<N: NodeTypesWithDB> HashedPostStateProvider for BlockchainProvider2<N> {
impl<N: NodeTypesWithDB> HashedPostStateProvider for BlockchainProvider<N> {
fn hashed_post_state(&self, bundle_state: &BundleState) -> HashedPostState {
HashedPostState::from_bundle_state::<<N::StateCommitment as StateCommitment>::KeyHasher>(
bundle_state.state(),
@ -630,7 +628,7 @@ impl<N: NodeTypesWithDB> HashedPostStateProvider for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> CanonChainTracker for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> CanonChainTracker for BlockchainProvider<N> {
type Header = HeaderTy<N>;
fn on_forkchoice_update_received(&self, _update: &ForkchoiceState) {
@ -663,7 +661,7 @@ impl<N: ProviderNodeTypes> CanonChainTracker for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> BlockReaderIdExt for BlockchainProvider2<N>
impl<N: ProviderNodeTypes> BlockReaderIdExt for BlockchainProvider<N>
where
Self: ReceiptProviderIdExt,
{
@ -701,13 +699,13 @@ where
}
}
impl<N: ProviderNodeTypes> CanonStateSubscriptions for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> CanonStateSubscriptions for BlockchainProvider<N> {
fn subscribe_to_canonical_state(&self) -> CanonStateNotifications<Self::Primitives> {
self.canonical_in_memory_state.subscribe_canon_state()
}
}
impl<N: ProviderNodeTypes> ForkChoiceSubscriptions for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> ForkChoiceSubscriptions for BlockchainProvider<N> {
type Header = HeaderTy<N>;
fn subscribe_safe_block(&self) -> ForkChoiceNotifications<Self::Header> {
@ -721,7 +719,7 @@ impl<N: ProviderNodeTypes> ForkChoiceSubscriptions for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> StorageChangeSetReader for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> StorageChangeSetReader for BlockchainProvider<N> {
fn storage_changeset(
&self,
block_number: BlockNumber,
@ -730,7 +728,7 @@ impl<N: ProviderNodeTypes> StorageChangeSetReader for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> ChangeSetReader for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> ChangeSetReader for BlockchainProvider<N> {
fn account_block_changeset(
&self,
block_number: BlockNumber,
@ -739,14 +737,14 @@ impl<N: ProviderNodeTypes> ChangeSetReader for BlockchainProvider2<N> {
}
}
impl<N: ProviderNodeTypes> AccountReader for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> AccountReader for BlockchainProvider<N> {
/// Get basic account information.
fn basic_account(&self, address: &Address) -> ProviderResult<Option<Account>> {
self.consistent_provider()?.basic_account(address)
}
}
impl<N: ProviderNodeTypes> StateReader for BlockchainProvider2<N> {
impl<N: ProviderNodeTypes> StateReader for BlockchainProvider<N> {
type Receipt = ReceiptTy<N>;
/// Re-constructs the [`ExecutionOutcome`] from in-memory and database state, if necessary.
@ -769,7 +767,7 @@ impl<N: ProviderNodeTypes> StateReader for BlockchainProvider2<N> {
#[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<MockNodeTypesWithDB>,
BlockchainProvider<MockNodeTypesWithDB>,
Vec<SealedBlock>,
Vec<SealedBlock>,
Vec<Vec<Receipt>>,
@ -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<MockNodeTypesWithDB>,
BlockchainProvider<MockNodeTypesWithDB>,
Vec<SealedBlock>,
Vec<SealedBlock>,
Vec<Vec<Receipt>>,
@ -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<MockNodeTypesWithDB>,
provider: BlockchainProvider<MockNodeTypesWithDB>,
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 {

View File

@ -1444,7 +1444,7 @@ impl<N: ProviderNodeTypes> StateReader for ConsistentProvider<N> {
#[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 {

View File

@ -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;

View File

@ -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())