pub struct NodeConfig<ChainSpec> {Show 17 fields
pub datadir: DatadirArgs,
pub config: Option<PathBuf>,
pub chain: Arc<ChainSpec>,
pub metrics: MetricArgs,
pub instance: Option<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,
pub engine: EngineArgs,
pub era: EraArgs,
pub static_files: StaticFilesArgs,
pub storage: StorageArgs,
}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() {
// 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() {
// 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);
}All data directory related arguments
The path to the configuration file to use.
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Enable to configure metrics export to endpoints
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 - 2IPC_PATH: default +instance
All networking related arguments
All rpc related arguments
All txpool related arguments with –txpool prefix
All payload builder related arguments
All debug related arguments with –debug prefix
All database related arguments
All dev related arguments with –dev prefix
All pruning related arguments
All engine related arguments
All ERA import related arguments with –era prefix
All static files related arguments
All storage related arguments with –storage prefix
Source§
Source
Creates a testing NodeConfig, causing the database to be launched ephemerally.
Source§
Source
Creates a new config with given chain spec, setting all fields to default values.
Source
Sets –dev mode for the node.
In addition to setting the --dev flag, this also:
- disables discovery in
NetworkArgs.
Source
Apply a function to the config.
Source
Applies a fallible function to the config.
Source
Set the data directory args for the node
Source
Set the config file for the node
Source
Set the metrics address for the node
Source
Set the instance for the node
Source
Returns the instance value, defaulting to 1 if not set.
Source
Set the network args for the node
Source
Set the rpc args for the node
Source
Set the txpool args for the node
Source
Set the builder args for the node
Source
Set the debug args for the node
Source
Set the database args for the node
Source
Set the dev args for the node
Source
Set the dev block time for the node.
This sets the interval at which the dev miner produces new blocks.
Source
Set the pruning args for the node
Source
Set the storage args for the node
Source
Returns pruning configuration.
Source
Returns the effective storage settings for this node.
Determined by the --storage.v2 flag (defaults to true).
Existing databases retain whatever settings are persisted in their
metadata (checked during genesis init).
Source
Returns the max block that the node should run to, looking it up from the network if necessary
Source
Fetches the head block from the database.
If the database is empty, returns the genesis block.
Source
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.
Source
Attempt to look up the block with the given number and return the header.
NOTE: The download is attempted with infinite retries.
Source
Sets networking and RPC ports to zero, causing the OS to choose random unused ports when sockets are bound.
Source
Disables all discovery services for the node.
Source
Effectively disables the RPC state cache by setting the cache sizes to 0.
By setting the cache sizes to 0, caching of newly executed or fetched blocks will be effectively disabled.
Source
Resolve the final datadir path.
Source
Load an application configuration from a specified path.
A new configuration file is created with default values if none exists.
Source
Returns the [MiningMode] intended for –dev mode.
§
§
Causes self to use its Binary implementation when Debug-formatted.
§
Causes self to use its Display implementation when
Debug-formatted.
§
Causes self to use its LowerExp implementation when
Debug-formatted.
§
Causes self to use its LowerHex implementation when
Debug-formatted.
§
Causes self to use its Octal implementation when Debug-formatted.
§
Causes self to use its Pointer implementation when
Debug-formatted.
§
Causes self to use its UpperExp implementation when
Debug-formatted.
§
Causes self to use its UpperHex implementation when
Debug-formatted.
§
§
Available on crate feature propagate-header only.
Propagate a header from the request to the response. Read more
§
Available on crate feature add-extension only.
§
Available on crate feature map-request-body only.
Apply a transformation to the request body. Read more
§
Available on crate feature map-response-body only.
Apply a transformation to the response body. Read more
§
Available on crate features compression-br or compression-deflate or compression-gzip or compression-zstd only.
Compresses response bodies. Read more
§
Available on crate features decompression-br or decompression-deflate or decompression-gzip or decompression-zstd only.
Decompress response bodies. Read more
§
Available on crate feature trace only.
High level tracing that classifies responses using HTTP status codes. Read more
§
Available on crate feature trace only.
High level tracing that classifies responses using gRPC headers. Read more
§
Available on crate feature follow-redirect only.
Available on crate feature sensitive-headers only.
Available on crate feature sensitive-headers only.
Available on crate feature sensitive-headers only.
Available on crate feature set-header only.
Insert a header into the request, if the header is not already present. Read more
Available on crate feature set-header only.
Insert a header into the response, if the header is not already present. Read more
§
Available on crate feature request-id only.
Add request id header and extension, using x-request-id as the header name. Read more
§
Available on crate feature request-id only.
Propgate request ids from requests to responses. Read more
§
Available on crate feature request-id only.
Propgate request ids from requests to responses, using x-request-id as the header name. Read more
§
Available on crate feature catch-panic only.
Catch panics and convert them into 500 Internal Server responses. Read more
§
§
Calls .tap() only in debug builds, and is erased in release builds.
§
Calls .tap_mut() only in debug builds, and is erased in release
builds.
§
Calls .tap_borrow() only in debug builds, and is erased in release
builds.
§
Calls .tap_borrow_mut() only in debug builds, and is erased in release
builds.
§
Calls .tap_ref() only in debug builds, and is erased in release
builds.
§
Calls .tap_ref_mut() only in debug builds, and is erased in release
builds.
§
Calls .tap_deref() only in debug builds, and is erased in release
builds.
§
Calls .tap_deref_mut() only in debug builds, and is erased in release
builds.
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: 2944 bytes