pub struct RpcServerArgs {Show 32 fields
pub http: bool,
pub http_addr: IpAddr,
pub http_port: u16,
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_blocks_per_filter: ZeroAsNoneU64,
pub rpc_max_logs_per_response: ZeroAsNoneU64,
pub rpc_gas_cap: u64,
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: bool
Enable the HTTP-RPC server
http_addr: IpAddr
Http server address to listen on
http_port: u16
Http server port to listen on
http_api: Option<RpcModuleSelection>
Rpc Modules to be configured for the HTTP server
http_corsdomain: Option<String>
Http Corsdomain to allow request from
ws: bool
Enable the WS-RPC server
ws_addr: IpAddr
Ws server address to listen on
ws_port: u16
Ws 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: bool
Disable the IPC-RPC server
ipcpath: String
Filename for IPC socket/pipe within the datadir
auth_addr: IpAddr
Auth server address to listen on
auth_port: u16
Auth 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: bool
Enable auth engine API over IPC
auth_ipc_path: String
Filename 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: MaxU32
Set the maximum RPC request payload size for both HTTP and WS in megabytes.
rpc_max_response_size: MaxU32
Set the maximum RPC response payload size for both HTTP and WS in megabytes.
rpc_max_subscriptions_per_connection: MaxU32
Set the maximum concurrent subscriptions per connection.
rpc_max_connections: MaxU32
Maximum number of RPC server connections.
rpc_max_tracing_requests: usize
Maximum 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_blocks_per_filter: ZeroAsNoneU64
Maximum number of blocks that could be scanned per filter request. (0 = entire chain)
rpc_max_logs_per_response: ZeroAsNoneU64
Maximum number of logs that can be returned in a single response. (0 = no limit)
rpc_gas_cap: u64
Maximum gas limit for eth_call
and call tracing RPC methods.
rpc_max_simulate_blocks: u64
Maximum number of blocks for eth_simulateV1
call.
rpc_eth_proof_window: u64
The 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: usize
Maximum 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: RpcStateCacheArgs
State cache configuration.
gas_price_oracle: GasPriceOracleArgs
Gas 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: u16)
pub fn adjust_instance_ports(&mut self, instance: u16)
Change rpc port numbers based on the instance number.
- The
auth_port
is scaled by a factor ofinstance * 100
- The
http_port
is scaled by a factor of-instance
- The
ws_port
is scaled by a factor ofinstance * 2
- The
ipcpath
is 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:
instance
is 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<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> 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: 512 bytes