Struct reth::network::NetworkConfigBuilder
pub struct NetworkConfigBuilder { /* private fields */ }
Expand description
Builder for NetworkConfig
.
Implementations§
§impl NetworkConfigBuilder
impl NetworkConfigBuilder
pub fn with_rng_secret_key() -> NetworkConfigBuilder
pub fn with_rng_secret_key() -> NetworkConfigBuilder
Create a new builder instance with a random secret key.
pub fn new(secret_key: SecretKey) -> NetworkConfigBuilder
pub fn new(secret_key: SecretKey) -> NetworkConfigBuilder
Create a new builder instance with the given secret key.
pub fn apply<F>(self, f: F) -> NetworkConfigBuilder
pub fn apply<F>(self, f: F) -> NetworkConfigBuilder
Apply a function to the builder.
pub fn get_peer_id(&self) -> FixedBytes<64>
pub fn get_peer_id(&self) -> FixedBytes<64>
Returns the configured [PeerId
]
pub const fn secret_key(&self) -> &SecretKey
pub const fn secret_key(&self) -> &SecretKey
Returns the configured SecretKey
, from which the node’s identity is derived.
pub fn chain_spec(self, chain_spec: Arc<ChainSpec>) -> NetworkConfigBuilder
pub fn chain_spec(self, chain_spec: Arc<ChainSpec>) -> NetworkConfigBuilder
Sets the chain spec.
pub const fn network_mode(
self,
network_mode: NetworkMode,
) -> NetworkConfigBuilder
pub const fn network_mode( self, network_mode: NetworkMode, ) -> NetworkConfigBuilder
Sets the NetworkMode
.
pub const fn set_head(self, head: Head) -> NetworkConfigBuilder
pub const fn set_head(self, head: Head) -> NetworkConfigBuilder
Sets the highest synced block.
This is used to construct the appropriate ForkFilter
and Status
message.
If not set, this defaults to the genesis specified by the current chain specification.
pub fn hello_message(
self,
hello_message: HelloMessageWithProtocols,
) -> NetworkConfigBuilder
pub fn hello_message( self, hello_message: HelloMessageWithProtocols, ) -> NetworkConfigBuilder
Sets the HelloMessage
to send when connecting to peers.
let peer_id = builder.get_peer_id();
builder.hello_message(HelloMessage::builder(peer_id).build());
pub fn peer_config(self, config: PeersConfig) -> NetworkConfigBuilder
pub fn peer_config(self, config: PeersConfig) -> NetworkConfigBuilder
Set a custom peer config for how peers are handled
pub fn with_task_executor(
self,
executor: Box<dyn TaskSpawner>,
) -> NetworkConfigBuilder
pub fn with_task_executor( self, executor: Box<dyn TaskSpawner>, ) -> NetworkConfigBuilder
Sets the executor to use for spawning tasks.
If None
, then [tokio::spawn
] is used for spawning tasks.
pub const fn sessions_config(
self,
config: SessionsConfig,
) -> NetworkConfigBuilder
pub const fn sessions_config( self, config: SessionsConfig, ) -> NetworkConfigBuilder
Sets a custom config for how sessions are handled.
pub const fn transactions_manager_config(
self,
config: TransactionsManagerConfig,
) -> NetworkConfigBuilder
pub const fn transactions_manager_config( self, config: TransactionsManagerConfig, ) -> NetworkConfigBuilder
Configures the transactions manager with the given config.
pub const fn set_addrs(self, addr: SocketAddr) -> NetworkConfigBuilder
pub const fn set_addrs(self, addr: SocketAddr) -> NetworkConfigBuilder
Sets the discovery and listener address
This is a convenience function for both NetworkConfigBuilder::listener_addr
and
NetworkConfigBuilder::discovery_addr
.
By default, both are on the same port:
DEFAULT_DISCOVERY_PORT
pub const fn listener_addr(
self,
listener_addr: SocketAddr,
) -> NetworkConfigBuilder
pub const fn listener_addr( self, listener_addr: SocketAddr, ) -> NetworkConfigBuilder
Sets the socket address the network will listen on.
By default, this is DEFAULT_DISCOVERY_ADDRESS
pub fn listener_port(self, port: u16) -> NetworkConfigBuilder
pub fn listener_port(self, port: u16) -> NetworkConfigBuilder
Sets the port of the address the network will listen on.
By default, this is DEFAULT_DISCOVERY_PORT
pub const fn discovery_addr(
self,
discovery_addr: SocketAddr,
) -> NetworkConfigBuilder
pub const fn discovery_addr( self, discovery_addr: SocketAddr, ) -> NetworkConfigBuilder
Sets the socket address the discovery network will listen on
pub fn discovery_port(self, port: u16) -> NetworkConfigBuilder
pub fn discovery_port(self, port: u16) -> NetworkConfigBuilder
Sets the port of the address the discovery network will listen on.
By default, this is DEFAULT_DISCOVERY_PORT
pub fn external_ip_resolver(self, resolver: NatResolver) -> NetworkConfigBuilder
pub fn external_ip_resolver(self, resolver: NatResolver) -> NetworkConfigBuilder
Sets the external ip resolver to use for discovery v4.
If no Discv4ConfigBuilder
is set via Self::discovery
, this will create a new one.
This is a convenience function for setting the external ip resolver on the default
Discv4Config
config.
pub fn discovery(self, builder: Discv4ConfigBuilder) -> NetworkConfigBuilder
pub fn discovery(self, builder: Discv4ConfigBuilder) -> NetworkConfigBuilder
Sets the discv4 config to use.
pub fn discovery_v5(self, builder: ConfigBuilder) -> NetworkConfigBuilder
pub fn discovery_v5(self, builder: ConfigBuilder) -> NetworkConfigBuilder
Sets the discv5 config to use.
pub fn dns_discovery(self, config: DnsDiscoveryConfig) -> NetworkConfigBuilder
pub fn dns_discovery(self, config: DnsDiscoveryConfig) -> NetworkConfigBuilder
Sets the dns discovery config to use.
pub fn mainnet_boot_nodes(self) -> NetworkConfigBuilder
pub fn mainnet_boot_nodes(self) -> NetworkConfigBuilder
Convenience function for setting Self::boot_nodes
to the mainnet boot nodes.
pub fn sepolia_boot_nodes(self) -> NetworkConfigBuilder
pub fn sepolia_boot_nodes(self) -> NetworkConfigBuilder
Convenience function for setting Self::boot_nodes
to the sepolia boot nodes.
pub fn boot_nodes<T>(
self,
nodes: impl IntoIterator<Item = T>,
) -> NetworkConfigBuilderwhere
T: Into<TrustedPeer>,
pub fn boot_nodes<T>(
self,
nodes: impl IntoIterator<Item = T>,
) -> NetworkConfigBuilderwhere
T: Into<TrustedPeer>,
Sets the boot nodes.
pub fn disable_dns_discovery(self) -> NetworkConfigBuilder
pub fn disable_dns_discovery(self) -> NetworkConfigBuilder
Disable the DNS discovery.
pub fn disable_discovery(self) -> NetworkConfigBuilder
pub fn disable_discovery(self) -> NetworkConfigBuilder
Disables all discovery.
pub fn disable_discovery_if(self, disable: bool) -> NetworkConfigBuilder
pub fn disable_discovery_if(self, disable: bool) -> NetworkConfigBuilder
Disables all discovery if the given condition is true.
pub fn disable_discv4_discovery(self) -> NetworkConfigBuilder
pub fn disable_discv4_discovery(self) -> NetworkConfigBuilder
Disable the Discv4 discovery.
pub fn disable_dns_discovery_if(self, disable: bool) -> NetworkConfigBuilder
pub fn disable_dns_discovery_if(self, disable: bool) -> NetworkConfigBuilder
Disable the DNS discovery if the given condition is true.
pub fn disable_discv4_discovery_if(self, disable: bool) -> NetworkConfigBuilder
pub fn disable_discv4_discovery_if(self, disable: bool) -> NetworkConfigBuilder
Disable the Discv4 discovery if the given condition is true.
pub fn add_rlpx_sub_protocol(
self,
protocol: impl IntoRlpxSubProtocol,
) -> NetworkConfigBuilder
pub fn add_rlpx_sub_protocol( self, protocol: impl IntoRlpxSubProtocol, ) -> NetworkConfigBuilder
Adds a new additional protocol to the RLPx
sub-protocol list.
pub const fn disable_tx_gossip(
self,
disable_tx_gossip: bool,
) -> NetworkConfigBuilder
pub const fn disable_tx_gossip( self, disable_tx_gossip: bool, ) -> NetworkConfigBuilder
Sets whether tx gossip is disabled.
pub fn block_import(
self,
block_import: Box<dyn BlockImport>,
) -> NetworkConfigBuilder
pub fn block_import( self, block_import: Box<dyn BlockImport>, ) -> NetworkConfigBuilder
Sets the block import type.
pub fn build_with_noop_provider(self) -> NetworkConfig<NoopBlockReader>
pub fn build_with_noop_provider(self) -> NetworkConfig<NoopBlockReader>
Convenience function for creating a NetworkConfig
with a noop provider that does
nothing.
pub fn build<C>(self, client: C) -> NetworkConfig<C>
pub fn build<C>(self, client: C) -> NetworkConfig<C>
Consumes the type and creates the actual NetworkConfig
for the given client type that can interact with the chain.
The given client is to be used for interacting with the chain, for example fetching the corresponding block for a given block hash we receive from a peer in the status message when establishing a connection.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for NetworkConfigBuilder
impl !RefUnwindSafe for NetworkConfigBuilder
impl Send for NetworkConfigBuilder
impl Sync for NetworkConfigBuilder
impl Unpin for NetworkConfigBuilder
impl !UnwindSafe for NetworkConfigBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSendSync for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 2224 bytes