feat: add providerfactory builder to OpNode (#14322)

This commit is contained in:
Matthias Seitz
2025-02-08 08:09:27 +01:00
committed by GitHub
parent 44985c3272
commit 7603b74890
2 changed files with 37 additions and 3 deletions

View File

@ -87,10 +87,10 @@ impl EthereumNode {
/// use reth_db::open_db_read_only; /// use reth_db::open_db_read_only;
/// use reth_node_ethereum::EthereumNode; /// use reth_node_ethereum::EthereumNode;
/// use reth_provider::providers::StaticFileProvider; /// use reth_provider::providers::StaticFileProvider;
/// use std::{path::Path, sync::Arc}; /// use std::sync::Arc;
/// ///
/// let factory = EthereumNode::provider_factory_builder() /// let factory = EthereumNode::provider_factory_builder()
/// .db(Arc::new(open_db_read_only(Path::new("db"), Default::default()).unwrap())) /// .db(Arc::new(open_db_read_only("db", Default::default()).unwrap()))
/// .chainspec(ChainSpecBuilder::mainnet().build().into()) /// .chainspec(ChainSpecBuilder::mainnet().build().into())
/// .static_file(StaticFileProvider::read_only("db/static_files", false).unwrap()) /// .static_file(StaticFileProvider::read_only("db/static_files", false).unwrap())
/// .build_provider_factory(); /// .build_provider_factory();

View File

@ -38,7 +38,7 @@ use reth_optimism_rpc::{
witness::{DebugExecutionWitnessApiServer, OpDebugWitnessApi}, witness::{DebugExecutionWitnessApiServer, OpDebugWitnessApi},
OpEthApi, OpEthApiError, SequencerClient, OpEthApi, OpEthApiError, SequencerClient,
}; };
use reth_provider::{CanonStateSubscriptions, EthStorage}; use reth_provider::{providers::ProviderFactoryBuilder, CanonStateSubscriptions, EthStorage};
use reth_rpc_eth_types::error::FromEvmError; use reth_rpc_eth_types::error::FromEvmError;
use reth_rpc_server_types::RethRpcModule; use reth_rpc_server_types::RethRpcModule;
use reth_tracing::tracing::{debug, info}; use reth_tracing::tracing::{debug, info};
@ -115,6 +115,40 @@ impl OpNode {
.executor(OpExecutorBuilder::default()) .executor(OpExecutorBuilder::default())
.consensus(OpConsensusBuilder::default()) .consensus(OpConsensusBuilder::default())
} }
/// Instantiates the [`ProviderFactoryBuilder`] for an opstack node.
///
/// # Open a Providerfactory in read-only mode from a datadir
///
/// See also: [`ProviderFactoryBuilder`] and
/// [`ReadOnlyConfig`](reth_provider::providers::ReadOnlyConfig).
///
/// ```no_run
/// use reth_optimism_chainspec::BASE_MAINNET;
/// use reth_optimism_node::OpNode;
///
/// let factory =
/// OpNode::provider_factory_builder().open_read_only(BASE_MAINNET.clone(), "datadir").unwrap();
/// ```
///
/// # Open a Providerfactory manually with with all required components
///
/// ```no_run
/// use reth_db::open_db_read_only;
/// use reth_optimism_chainspec::OpChainSpecBuilder;
/// use reth_optimism_node::OpNode;
/// use reth_provider::providers::StaticFileProvider;
/// use std::sync::Arc;
///
/// let factory = OpNode::provider_factory_builder()
/// .db(Arc::new(open_db_read_only("db", Default::default()).unwrap()))
/// .chainspec(OpChainSpecBuilder::base_mainnet().build().into())
/// .static_file(StaticFileProvider::read_only("db/static_files", false).unwrap())
/// .build_provider_factory();
/// ```
pub fn provider_factory_builder() -> ProviderFactoryBuilder<Self> {
ProviderFactoryBuilder::default()
}
} }
impl<N> Node<N> for OpNode impl<N> Node<N> for OpNode