diff --git a/crates/net/network/src/config.rs b/crates/net/network/src/config.rs
index f97f4004f949..5e229dbdbbd0 100644
--- a/crates/net/network/src/config.rs
+++ b/crates/net/network/src/config.rs
@@ -169,6 +169,9 @@ pub struct NetworkConfigBuilder {
head: Option
,
/// Whether tx gossip is disabled
tx_gossip_disabled: bool,
+ /// The block importer type
+ #[serde(skip)]
+ block_import: Option>,
/// Optimism Network Config Builder
#[cfg(feature = "optimism")]
optimism_network_config: OptimismNetworkConfigBuilder,
@@ -204,6 +207,7 @@ impl NetworkConfigBuilder {
extra_protocols: Default::default(),
head: None,
tx_gossip_disabled: false,
+ block_import: None,
#[cfg(feature = "optimism")]
optimism_network_config: OptimismNetworkConfigBuilder::default(),
}
@@ -396,6 +400,12 @@ impl NetworkConfigBuilder {
self
}
+ /// Sets the block import type.
+ pub fn block_import(mut self, block_import: Box) -> Self {
+ self.block_import = Some(block_import);
+ self
+ }
+
/// Sets the sequencer HTTP endpoint.
#[cfg(feature = "optimism")]
pub fn sequencer_endpoint(mut self, endpoint: Option) -> Self {
@@ -427,6 +437,7 @@ impl NetworkConfigBuilder {
extra_protocols,
head,
tx_gossip_disabled,
+ block_import,
#[cfg(feature = "optimism")]
optimism_network_config: OptimismNetworkConfigBuilder { sequencer_endpoint },
} = self;
@@ -473,7 +484,7 @@ impl NetworkConfigBuilder {
peers_config: peers_config.unwrap_or_default(),
sessions_config: sessions_config.unwrap_or_default(),
chain_spec,
- block_import: Box::::default(),
+ block_import: block_import.unwrap_or(Box::::default()),
network_mode,
executor: executor.unwrap_or_else(|| Box::::default()),
status,
diff --git a/crates/net/network/src/import.rs b/crates/net/network/src/import.rs
index f7564f977088..d127dab8fed7 100644
--- a/crates/net/network/src/import.rs
+++ b/crates/net/network/src/import.rs
@@ -1,3 +1,5 @@
+//! This module provides an abstraction over block import in the form of the `BlockImport` trait.
+
use crate::message::NewBlockMessage;
use reth_primitives::PeerId;
use std::task::{Context, Poll};
diff --git a/crates/net/network/src/lib.rs b/crates/net/network/src/lib.rs
index eec19ee1c127..4c102b78f40e 100644
--- a/crates/net/network/src/lib.rs
+++ b/crates/net/network/src/lib.rs
@@ -122,10 +122,10 @@ pub mod error;
pub mod eth_requests;
mod fetch;
mod flattened_response;
-mod import;
+pub mod import;
mod listener;
mod manager;
-mod message;
+pub mod message;
mod metrics;
mod network;
pub mod peers;
diff --git a/crates/net/network/src/message.rs b/crates/net/network/src/message.rs
index 3e9ba3c4df75..17d202733d18 100644
--- a/crates/net/network/src/message.rs
+++ b/crates/net/network/src/message.rs
@@ -158,11 +158,17 @@ impl PeerRequest {
/// Corresponding variant for [`PeerRequest`].
#[derive(Debug)]
+#[allow(missing_docs)]
pub enum PeerResponse {
+ /// Response to a [`GetBlockHeaders`] request.
BlockHeaders { response: oneshot::Receiver> },
+ /// Response to a [`GetBlockBodies`] request.
BlockBodies { response: oneshot::Receiver> },
+ /// Response to a [`GetPooledTransactions`] request.
PooledTransactions { response: oneshot::Receiver> },
+ /// Response to a [`GetNodeData`] request.
NodeData { response: oneshot::Receiver> },
+ /// Response to a [`GetReceipts`] request.
Receipts { response: oneshot::Receiver> },
}