Struct reth::args::RpcServerArgs

source ·
pub struct RpcServerArgs {
Show 29 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_eth_proof_window: u64, 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.

§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_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_state_cache: RpcStateCacheArgs

State cache configuration.

§gas_price_oracle: GasPriceOracleArgs

Gas price oracle configuration.

Implementations§

source§

impl RpcServerArgs

source

pub const fn with_http(self) -> RpcServerArgs

Enables the HTTP-RPC server.

source

pub const fn with_ws(self) -> RpcServerArgs

Enables the WS-RPC server.

source

pub const fn with_auth_ipc(self) -> RpcServerArgs

Enables the Auth IPC

source

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 of instance * 100
  • The http_port is scaled by a factor of -instance
  • The ws_port is scaled by a factor of instance * 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 than 655 (scaling would overflow u16)
  • self.auth_port / 100 + (instance - 1) would overflow u16

In release mode, this will silently wrap around.

source

pub const fn with_http_unused_port(self) -> RpcServerArgs

Set the http port to zero, to allow the OS to assign a random unused port when the rpc server binds to a socket.

source

pub const fn with_ws_unused_port(self) -> RpcServerArgs

Set the ws port to zero, to allow the OS to assign a random unused port when the rpc server binds to a socket.

source

pub const fn with_auth_unused_port(self) -> RpcServerArgs

Set the auth port to zero, to allow the OS to assign a random unused port when the rpc server binds to a socket.

source

pub fn with_ipc_random_path(self) -> RpcServerArgs

Append a random string to the ipc path, to prevent possible collisions when multiple nodes are being run on the same machine.

source

pub fn with_unused_ports(self) -> RpcServerArgs

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

source§

fn group_id() -> Option<Id>

Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
source§

fn augment_args<'b>(__clap_app: Command) -> Command

Append to [Command] so it can instantiate Self. Read more
source§

fn augment_args_for_update<'b>(__clap_app: Command) -> Command

Append to [Command] so it can update self. Read more
source§

impl Clone for RpcServerArgs

source§

fn clone(&self) -> RpcServerArgs

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RpcServerArgs

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for RpcServerArgs

source§

fn default() -> RpcServerArgs

Returns the “default value” for a type. Read more
source§

impl FromArgMatches for RpcServerArgs

source§

fn from_arg_matches( __clap_arg_matches: &ArgMatches, ) -> Result<RpcServerArgs, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<RpcServerArgs, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
source§

fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
source§

impl PartialEq for RpcServerArgs

source§

fn eq(&self, other: &RpcServerArgs) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl RethRpcServerConfig for RpcServerArgs

§

fn is_ipc_enabled(&self) -> bool

Returns whether ipc is enabled.
§

fn ipc_path(&self) -> &str

Returns the path to the target ipc socket if enabled.
§

fn eth_config(&self) -> EthConfig

The configured ethereum RPC settings.
§

fn state_cache_config(&self) -> EthStateCacheConfig

Returns state cache configuration.
§

fn rpc_max_request_size_bytes(&self) -> u32

Returns the max request size in bytes.
§

fn rpc_max_response_size_bytes(&self) -> u32

Returns the max response size in bytes.
§

fn gas_price_oracle_config(&self) -> GasPriceOracleConfig

Extracts the gas price oracle config from the args.
§

fn transport_rpc_module_config(&self) -> TransportRpcModuleConfig

Creates the TransportRpcModuleConfig from cli args. Read more
§

fn http_ws_server_builder(&self) -> Builder<Identity, Identity>

Returns the default server builder for http/ws
§

fn ipc_server_builder(&self) -> Builder<Identity, Identity>

Returns the default ipc server builder
§

fn rpc_server_config(&self) -> RpcServerConfig

Creates the RpcServerConfig from cli args.
§

fn auth_server_config( &self, jwt_secret: JwtSecret, ) -> Result<AuthServerConfig, RpcError>

Creates the AuthServerConfig from cli args.
§

fn auth_jwt_secret( &self, default_jwt_path: PathBuf, ) -> Result<JwtSecret, JwtError>

The execution layer and consensus layer clients SHOULD accept a configuration parameter: jwt-secret, which designates a file containing the hex-encoded 256 bit secret key to be used for verifying/generating JWT tokens. Read more
§

fn rpc_secret_key(&self) -> Option<JwtSecret>

Returns the configured jwt secret key for the regular rpc servers, if any. Read more
source§

impl Eq for RpcServerArgs

source§

impl StructuralPartialEq for RpcServerArgs

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit #126799)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows 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) -> R
where R: 'a,

Mutably borrows 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
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryClone for T
where T: Clone,

§

fn try_clone(&self) -> Result<T, Error>

Clones self, possibly returning an error.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeDebug for T
where T: Debug,

§

impl<T> MaybeSend for T
where 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: 448 bytes