pub struct RpcServerArgs {Show 35 fields
pub http: bool,
pub http_addr: IpAddr,
pub http_port: u16,
pub http_disable_compression: bool,
pub http_api: Option<RpcModuleSelection>,
pub http_corsdomain: Option<String>,
pub ws: bool,
pub ws_addr: IpAddr,
pub ws_port: u16,
pub ws_allowed_origins: Option<String>,
pub ws_api: Option<RpcModuleSelection>,
pub ipcdisable: bool,
pub ipcpath: String,
pub auth_addr: IpAddr,
pub auth_port: u16,
pub auth_jwtsecret: Option<PathBuf>,
pub auth_ipc: bool,
pub auth_ipc_path: String,
pub rpc_jwtsecret: Option<JwtSecret>,
pub rpc_max_request_size: MaxU32,
pub rpc_max_response_size: MaxU32,
pub rpc_max_subscriptions_per_connection: MaxU32,
pub rpc_max_connections: MaxU32,
pub rpc_max_tracing_requests: usize,
pub rpc_max_trace_filter_blocks: u64,
pub rpc_max_blocks_per_filter: ZeroAsNoneU64,
pub rpc_max_logs_per_response: ZeroAsNoneU64,
pub rpc_gas_cap: u64,
pub rpc_tx_fee_cap: u128,
pub rpc_max_simulate_blocks: u64,
pub rpc_eth_proof_window: u64,
pub rpc_proof_permits: usize,
pub builder_disallow: Option<HashSet<Address>>,
pub rpc_state_cache: RpcStateCacheArgs,
pub gas_price_oracle: GasPriceOracleArgs,
}Expand description
Parameters for configuring the rpc more granularity via CLI
Fields§
§http: boolEnable the HTTP-RPC server
http_addr: IpAddrHttp server address to listen on
http_port: u16Http server port to listen on
http_disable_compression: boolDisable compression for HTTP responses
http_api: Option<RpcModuleSelection>Rpc Modules to be configured for the HTTP server
http_corsdomain: Option<String>Http Corsdomain to allow request from
ws: boolEnable the WS-RPC server
ws_addr: IpAddrWs server address to listen on
ws_port: u16Ws server port to listen on
ws_allowed_origins: Option<String>Origins from which to accept WebSocket requests
ws_api: Option<RpcModuleSelection>Rpc Modules to be configured for the WS server
ipcdisable: boolDisable the IPC-RPC server
ipcpath: StringFilename for IPC socket/pipe within the datadir
auth_addr: IpAddrAuth server address to listen on
auth_port: u16Auth server port to listen on
auth_jwtsecret: Option<PathBuf>Path to a JWT secret to use for the authenticated engine-API RPC server.
This will enforce JWT authentication for all requests coming from the consensus layer.
If no path is provided, a secret will be generated and stored in the datadir under
<DIR>/<CHAIN_ID>/jwt.hex. For mainnet this would be ~/.reth/mainnet/jwt.hex by default.
auth_ipc: boolEnable auth engine API over IPC
auth_ipc_path: StringFilename for auth IPC socket/pipe within the datadir
rpc_jwtsecret: Option<JwtSecret>Hex encoded JWT secret to authenticate the regular RPC server(s), see --http.api and
--ws.api.
This is not used for the authenticated engine-API RPC server, see
--authrpc.jwtsecret.
rpc_max_request_size: MaxU32Set the maximum RPC request payload size for both HTTP and WS in megabytes.
rpc_max_response_size: MaxU32Set the maximum RPC response payload size for both HTTP and WS in megabytes.
rpc_max_subscriptions_per_connection: MaxU32Set the maximum concurrent subscriptions per connection.
rpc_max_connections: MaxU32Maximum number of RPC server connections.
rpc_max_tracing_requests: usizeMaximum number of concurrent tracing requests.
By default this chooses a sensible value based on the number of available cores. Tracing requests are generally CPU bound. Choosing a value that is higher than the available CPU cores can have a negative impact on the performance of the node and affect the node’s ability to maintain sync.
rpc_max_trace_filter_blocks: u64Maximum number of blocks for trace_filter requests.
rpc_max_blocks_per_filter: ZeroAsNoneU64Maximum number of blocks that could be scanned per filter request. (0 = entire chain)
rpc_max_logs_per_response: ZeroAsNoneU64Maximum number of logs that can be returned in a single response. (0 = no limit)
rpc_gas_cap: u64Maximum gas limit for eth_call and call tracing RPC methods.
rpc_tx_fee_cap: u128Maximum eth transaction fee (in ether) that can be sent via the RPC APIs (0 = no cap)
rpc_max_simulate_blocks: u64Maximum number of blocks for eth_simulateV1 call.
rpc_eth_proof_window: u64The maximum proof window for historical proof generation.
This value allows for generating historical proofs up to
configured number of blocks from current tip (up to tip - window).
rpc_proof_permits: usizeMaximum number of concurrent getproof requests.
builder_disallow: Option<HashSet<Address>>Path to file containing disallowed addresses, json-encoded list of strings. Block validation API will reject blocks containing transactions from these addresses.
rpc_state_cache: RpcStateCacheArgsState cache configuration.
gas_price_oracle: GasPriceOracleArgsGas price oracle configuration.
Implementations§
Source§impl RpcServerArgs
impl RpcServerArgs
Sourcepub fn with_http_api(self, http_api: RpcModuleSelection) -> Self
pub fn with_http_api(self, http_api: RpcModuleSelection) -> Self
Configures modules for the HTTP-RPC server.
Sourcepub const fn with_auth_ipc(self) -> Self
pub const fn with_auth_ipc(self) -> Self
Enables the Auth IPC
Sourcepub fn adjust_instance_ports(&mut self, instance: Option<u16>)
pub fn adjust_instance_ports(&mut self, instance: Option<u16>)
Change rpc port numbers based on the instance number, if provided.
- The
auth_portis scaled by a factor ofinstance * 100 - The
http_portis scaled by a factor of-instance - The
ws_portis scaled by a factor ofinstance * 2 - The
ipcpathis appended with the instance number:/tmp/reth.ipc-<instance>
§Panics
Warning: if instance is zero in debug mode, this will panic.
This will also panic in debug mode if either:
instanceis greater than655(scaling would overflowu16)self.auth_port / 100 + (instance - 1)would overflowu16
In release mode, this will silently wrap around.
Sourcepub const fn with_http_unused_port(self) -> Self
pub const fn with_http_unused_port(self) -> Self
Set the http port to zero, to allow the OS to assign a random unused port when the rpc server binds to a socket.
Sourcepub const fn with_ws_unused_port(self) -> Self
pub const fn with_ws_unused_port(self) -> Self
Set the ws port to zero, to allow the OS to assign a random unused port when the rpc server binds to a socket.
Sourcepub const fn with_auth_unused_port(self) -> Self
pub const fn with_auth_unused_port(self) -> Self
Set the auth port to zero, to allow the OS to assign a random unused port when the rpc server binds to a socket.
Sourcepub fn with_ipc_random_path(self) -> Self
pub fn with_ipc_random_path(self) -> Self
Append a random string to the ipc path, to prevent possible collisions when multiple nodes are being run on the same machine.
Sourcepub fn with_unused_ports(self) -> Self
pub fn with_unused_ports(self) -> Self
Configure all ports to be set to a random unused port when bound, and set the IPC path to a random path.
Trait Implementations§
Source§impl Args for RpcServerArgs
impl Args for RpcServerArgs
Source§fn group_id() -> Option<Id>
fn group_id() -> Option<Id>
ArgGroup::id][crate::ArgGroup::id] for this set of argumentsSource§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command] so it can instantiate self via
[FromArgMatches::update_from_arg_matches_mut] Read moreSource§impl Clone for RpcServerArgs
impl Clone for RpcServerArgs
Source§fn clone(&self) -> RpcServerArgs
fn clone(&self) -> RpcServerArgs
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RpcServerArgs
impl Debug for RpcServerArgs
Source§impl Default for RpcServerArgs
impl Default for RpcServerArgs
Source§impl FromArgMatches for RpcServerArgs
impl FromArgMatches for RpcServerArgs
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl PartialEq for RpcServerArgs
impl PartialEq for RpcServerArgs
impl Eq for RpcServerArgs
impl StructuralPartialEq for RpcServerArgs
Auto Trait Implementations§
impl Freeze for RpcServerArgs
impl RefUnwindSafe for RpcServerArgs
impl Send for RpcServerArgs
impl Sync for RpcServerArgs
impl Unpin for RpcServerArgs
impl UnwindSafe for RpcServerArgs
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
§fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
TxEnv from a transaction and a sender address.§impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
§fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
TxEnv from a transaction, its sender, and encoded transaction bytes.§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> 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> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSend for Twhere
T: Send,
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: 544 bytes