chore: simplify networkbuilder (#6580)

This commit is contained in:
Matthias Seitz
2024-02-13 15:35:17 +01:00
committed by GitHub
parent 271cbaa6f8
commit eb1cafa40d
2 changed files with 13 additions and 14 deletions

View File

@ -199,7 +199,7 @@ impl<DB: Database + DatabaseMetrics + DatabaseMetadata + 'static> NodeBuilderWit
self.config.build_and_spawn_txpool(&blockchain_db, head, &executor, &self.data_dir)?;
// build network
let (network_client, mut network_builder) = self
let mut network_builder = self
.config
.build_network(
&config,
@ -227,7 +227,7 @@ impl<DB: Database + DatabaseMetrics + DatabaseMetadata + 'static> NodeBuilderWit
network_builder,
&executor,
transaction_pool.clone(),
network_client,
provider_factory.clone(),
&self.data_dir,
);

View File

@ -44,7 +44,7 @@ use reth_primitives::{
BlockHashOrNumber, BlockNumber, ChainSpec, Head, SealedHeader, TxHash, B256, MAINNET,
};
use reth_provider::{
providers::BlockchainProvider, BlockHashReader, BlockReader,
providers::BlockchainProvider, BlockHashReader, BlockNumReader, BlockReader,
BlockchainTreePendingStateProvider, CanonStateSubscriptions, HeaderProvider, HeaderSyncMode,
ProviderFactory, StageCheckpointReader,
};
@ -384,32 +384,31 @@ impl NodeConfig {
}
/// Build a network and spawn it
pub async fn build_network<DB>(
pub async fn build_network<C>(
&self,
config: &Config,
provider_factory: ProviderFactory<DB>,
client: C,
executor: TaskExecutor,
head: Head,
data_dir: &ChainPath<DataDirPath>,
) -> eyre::Result<(ProviderFactory<DB>, NetworkBuilder<ProviderFactory<DB>, (), ()>)>
) -> eyre::Result<NetworkBuilder<C, (), ()>>
where
DB: Database + Unpin + Clone + 'static,
C: BlockNumReader,
{
info!(target: "reth::cli", "Connecting to P2P network");
let secret_key = self.network_secret(data_dir)?;
let default_peers_path = data_dir.known_peers_path();
let network_config = self.load_network_config(
config,
provider_factory,
client,
executor.clone(),
head,
secret_key,
default_peers_path.clone(),
);
let client = network_config.client.clone();
let builder = NetworkManager::builder(network_config).await?;
Ok((client, builder))
Ok(builder)
}
/// Build the blockchain tree
@ -719,15 +718,15 @@ impl NodeConfig {
}
/// Builds the [NetworkConfig] with the given [ProviderFactory].
pub fn load_network_config<DB: Database>(
pub fn load_network_config<C>(
&self,
config: &Config,
provider_factory: ProviderFactory<DB>,
client: C,
executor: TaskExecutor,
head: Head,
secret_key: SecretKey,
default_peers_path: PathBuf,
) -> NetworkConfig<ProviderFactory<DB>> {
) -> NetworkConfig<C> {
let cfg_builder = self
.network
.network_config(config, self.chain.clone(), secret_key, default_peers_path)
@ -752,7 +751,7 @@ impl NodeConfig {
.sequencer_endpoint(self.rollup.sequencer_http.clone())
.disable_tx_gossip(self.rollup.disable_txpool_gossip);
cfg_builder.build(provider_factory)
cfg_builder.build(client)
}
/// Builds the [Pipeline] with the given [ProviderFactory] and downloaders.