Struct reth_node_builder::NodeConfig
source · pub struct NodeConfig {Show 13 fields
pub datadir: DatadirArgs,
pub config: Option<PathBuf>,
pub chain: Arc<ChainSpec>,
pub metrics: Option<SocketAddr>,
pub instance: u16,
pub network: NetworkArgs,
pub rpc: RpcServerArgs,
pub txpool: TxPoolArgs,
pub builder: PayloadBuilderArgs,
pub debug: DebugArgs,
pub db: DatabaseArgs,
pub dev: DevArgs,
pub pruning: PruningArgs,
}
Expand description
This includes all necessary configuration to launch the node. The individual configuration options can be overwritten before launching the node.
§Example
async fn t() {
let handle = Handle::current();
let manager = TaskManager::new(handle);
let executor = manager.executor();
// create the builder
let builder = NodeConfig::default();
// configure the rpc apis
let mut rpc = RpcServerArgs::default().with_http().with_ws();
rpc.http_api = Some(RpcModuleSelection::All);
let builder = builder.with_rpc(rpc);
}
This can also be used to launch a node with a temporary test database. This can be done with
the NodeConfig::test
method.
§Example
async fn t() {
let handle = Handle::current();
let manager = TaskManager::new(handle);
let executor = manager.executor();
// create the builder with a test database, using the `test` method
let builder = NodeConfig::test();
// configure the rpc apis
let mut rpc = RpcServerArgs::default().with_http().with_ws();
rpc.http_api = Some(RpcModuleSelection::All);
let builder = builder.with_rpc(rpc);
}
Fields§
§datadir: DatadirArgs
All data directory related arguments
config: Option<PathBuf>
The path to the configuration file to use.
chain: Arc<ChainSpec>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
metrics: Option<SocketAddr>
Enable Prometheus metrics.
The metrics will be served at the given interface and port.
instance: u16
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it’s not possible to have port numbers that conflict with each other.
Changes to the following port numbers:
DISCOVERY_PORT
: default +instance
- 1DISCOVERY_V5_PORT
: default +instance
- 1AUTH_PORT
: default +instance
* 100 - 100HTTP_RPC_PORT
: default -instance
+ 1WS_RPC_PORT
: default +instance
* 2 - 2
network: NetworkArgs
All networking related arguments
rpc: RpcServerArgs
All rpc related arguments
txpool: TxPoolArgs
All txpool related arguments with –txpool prefix
builder: PayloadBuilderArgs
All payload builder related arguments
debug: DebugArgs
All debug related arguments with –debug prefix
db: DatabaseArgs
All database related arguments
dev: DevArgs
All dev related arguments with –dev prefix
pruning: PruningArgs
All pruning related arguments
Implementations§
source§impl NodeConfig
impl NodeConfig
sourcepub fn test() -> NodeConfig
pub fn test() -> NodeConfig
Creates a testing NodeConfig
, causing the database to be launched ephemerally.
sourcepub const fn dev(self) -> NodeConfig
pub const fn dev(self) -> NodeConfig
Sets –dev mode for the node.
In addition to setting the --dev
flag, this also:
- disables discovery in
NetworkArgs
.
sourcepub const fn set_dev(self, dev: bool) -> NodeConfig
pub const fn set_dev(self, dev: bool) -> NodeConfig
Sets –dev mode for the node NodeConfig::dev
, if dev
is true.
sourcepub fn with_datadir_args(self, datadir_args: DatadirArgs) -> NodeConfig
pub fn with_datadir_args(self, datadir_args: DatadirArgs) -> NodeConfig
Set the data directory args for the node
sourcepub fn with_config(self, config: impl Into<PathBuf>) -> NodeConfig
pub fn with_config(self, config: impl Into<PathBuf>) -> NodeConfig
Set the config file for the node
sourcepub fn with_chain(self, chain: impl Into<Arc<ChainSpec>>) -> NodeConfig
pub fn with_chain(self, chain: impl Into<Arc<ChainSpec>>) -> NodeConfig
Set the ChainSpec
for the node
sourcepub const fn with_metrics(self, metrics: SocketAddr) -> NodeConfig
pub const fn with_metrics(self, metrics: SocketAddr) -> NodeConfig
Set the metrics address for the node
sourcepub const fn with_instance(self, instance: u16) -> NodeConfig
pub const fn with_instance(self, instance: u16) -> NodeConfig
Set the instance for the node
sourcepub fn with_network(self, network: NetworkArgs) -> NodeConfig
pub fn with_network(self, network: NetworkArgs) -> NodeConfig
Set the network args for the node
sourcepub fn with_rpc(self, rpc: RpcServerArgs) -> NodeConfig
pub fn with_rpc(self, rpc: RpcServerArgs) -> NodeConfig
Set the rpc args for the node
sourcepub fn with_txpool(self, txpool: TxPoolArgs) -> NodeConfig
pub fn with_txpool(self, txpool: TxPoolArgs) -> NodeConfig
Set the txpool args for the node
sourcepub fn with_payload_builder(self, builder: PayloadBuilderArgs) -> NodeConfig
pub fn with_payload_builder(self, builder: PayloadBuilderArgs) -> NodeConfig
Set the builder args for the node
sourcepub fn with_debug(self, debug: DebugArgs) -> NodeConfig
pub fn with_debug(self, debug: DebugArgs) -> NodeConfig
Set the debug args for the node
sourcepub const fn with_db(self, db: DatabaseArgs) -> NodeConfig
pub const fn with_db(self, db: DatabaseArgs) -> NodeConfig
Set the database args for the node
sourcepub const fn with_dev(self, dev: DevArgs) -> NodeConfig
pub const fn with_dev(self, dev: DevArgs) -> NodeConfig
Set the dev args for the node
sourcepub const fn with_pruning(self, pruning: PruningArgs) -> NodeConfig
pub const fn with_pruning(self, pruning: PruningArgs) -> NodeConfig
Set the pruning args for the node
sourcepub fn prune_config(&self) -> Option<PruneConfig>
pub fn prune_config(&self) -> Option<PruneConfig>
Returns pruning configuration.
sourcepub async fn max_block<Provider, Client>(
&self,
network_client: Client,
provider: Provider,
) -> Result<Option<u64>, Report>where
Provider: HeaderProvider,
Client: HeadersClient,
pub async fn max_block<Provider, Client>(
&self,
network_client: Client,
provider: Provider,
) -> Result<Option<u64>, Report>where
Provider: HeaderProvider,
Client: HeadersClient,
Returns the max block that the node should run to, looking it up from the network if necessary
sourcepub const fn kzg_settings(&self) -> Result<EnvKzgSettings, Report>
pub const fn kzg_settings(&self) -> Result<EnvKzgSettings, Report>
Loads ‘EnvKzgSettings::Default
’
sourcepub fn install_prometheus_recorder(&self) -> Result<PrometheusHandle, Report>
pub fn install_prometheus_recorder(&self) -> Result<PrometheusHandle, Report>
Installs the prometheus recorder.
sourcepub async fn start_metrics_endpoint<Metrics>(
&self,
prometheus_handle: PrometheusHandle,
db: Metrics,
static_file_provider: StaticFileProvider,
task_executor: TaskExecutor,
) -> Result<(), Report>
pub async fn start_metrics_endpoint<Metrics>( &self, prometheus_handle: PrometheusHandle, db: Metrics, static_file_provider: StaticFileProvider, task_executor: TaskExecutor, ) -> Result<(), Report>
Serves the prometheus endpoint over HTTP with the given database and prometheus handle.
sourcepub fn lookup_head<DB>(
&self,
factory: ProviderFactory<DB>,
) -> Result<Head, ProviderError>where
DB: Database,
pub fn lookup_head<DB>(
&self,
factory: ProviderFactory<DB>,
) -> Result<Head, ProviderError>where
DB: Database,
Fetches the head block from the database.
If the database is empty, returns the genesis block.
sourcepub async fn lookup_or_fetch_tip<Provider, Client>(
&self,
provider: Provider,
client: Client,
tip: FixedBytes<32>,
) -> Result<u64, ProviderError>where
Provider: HeaderProvider,
Client: HeadersClient,
pub async fn lookup_or_fetch_tip<Provider, Client>(
&self,
provider: Provider,
client: Client,
tip: FixedBytes<32>,
) -> Result<u64, ProviderError>where
Provider: HeaderProvider,
Client: HeadersClient,
Attempt to look up the block number for the tip hash in the database. If it doesn’t exist, download the header and return the block number.
NOTE: The download is attempted with infinite retries.
sourcepub async fn fetch_tip_from_network<Client>(
&self,
client: Client,
tip: BlockHashOrNumber,
) -> SealedHeaderwhere
Client: HeadersClient,
pub async fn fetch_tip_from_network<Client>(
&self,
client: Client,
tip: BlockHashOrNumber,
) -> SealedHeaderwhere
Client: HeadersClient,
Attempt to look up the block with the given number and return the header.
NOTE: The download is attempted with infinite retries.
sourcepub fn adjust_instance_ports(&mut self)
pub fn adjust_instance_ports(&mut self)
Change rpc port numbers based on the instance number, using the inner
RpcServerArgs::adjust_instance_ports
method.
sourcepub fn with_unused_ports(self) -> NodeConfig
pub fn with_unused_ports(self) -> NodeConfig
Sets networking and RPC ports to zero, causing the OS to choose random unused ports when sockets are bound.
sourcepub fn datadir(&self) -> ChainPath<DataDirPath>
pub fn datadir(&self) -> ChainPath<DataDirPath>
Resolve the final datadir path.
Trait Implementations§
source§impl Clone for NodeConfig
impl Clone for NodeConfig
source§fn clone(&self) -> NodeConfig
fn clone(&self) -> NodeConfig
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for NodeConfig
impl Debug for NodeConfig
source§impl Default for NodeConfig
impl Default for NodeConfig
source§fn default() -> NodeConfig
fn default() -> NodeConfig
Auto Trait Implementations§
impl Freeze for NodeConfig
impl !RefUnwindSafe for NodeConfig
impl Send for NodeConfig
impl Sync for NodeConfig
impl Unpin for NodeConfig
impl !UnwindSafe for NodeConfig
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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: 1264 bytes