pub struct RpcConfig {Show 14 fields
pub enable_indexing: Option<bool>,
pub https_address: Option<SocketAddr>,
pub tls: Option<RpcTlsConfig>,
pub max_json_move_value_size: Option<usize>,
pub max_json_move_value_response_size: Option<usize>,
pub index_initialization: Option<RpcIndexInitConfig>,
pub ledger_history: Option<LedgerHistoryConfig>,
pub subscription_watermark_interval: Option<u32>,
pub subscription_max_subscribers: Option<usize>,
pub subscription_shards: Option<u32>,
pub display: Option<DisplayConfig>,
pub max_connection_age_secs: Option<u64>,
pub max_connection_age_grace_secs: Option<u64>,
pub grpc_timeout_ms: Option<u64>,
}Fields§
§enable_indexing: Option<bool>Enable indexing of transactions and objects
This enables indexing of transactions and objects which allows for a slightly richer rpc api. There are some APIs which will be disabled/enabled based on this config while others (eg GetTransaction) will still be enabled regardless of this config but may return slight less data (eg GetTransaction won’t return the checkpoint that includes the requested transaction).
Defaults to false, with indexing and APIs which require indexes being disabled
https_address: Option<SocketAddr>Configure the address to listen on for https
Defaults to 0.0.0.0:9443 if not specified.
tls: Option<RpcTlsConfig>TLS configuration to use for https.
If not provided then the node will not create an https service.
max_json_move_value_size: Option<usize>Maxumum budget for rendering a Move value into JSON.
This sets the numbers of bytes that we are willing to spend on rendering field names and values when rendering a Move value into a JSON value.
Defaults to 1MiB if not specified.
max_json_move_value_response_size: Option<usize>Aggregate budget for Move-value JSON rendering across a single response.
Endpoints that render many Move values in one response (e.g. GetCheckpoint
with a read_mask that selects every event’s json field) share this
budget across all per-item renders, so the response cannot multiply one
request into hundreds of MiB of materialized prost_types::Value.
Defaults to 16 MiB if not specified.
index_initialization: Option<RpcIndexInitConfig>Configuration for RPC index initialization and bulk loading
ledger_history: Option<LedgerHistoryConfig>Tunables for the ledger-history list APIs (list_transactions,
list_events, list_checkpoints). These scan the historical inverted
indexes, unlike the live object-set listings (list_owned_objects,
list_dynamic_fields), so they carry their own time and scan-cost bounds.
subscription_watermark_interval: Option<u32>Number of consecutive checkpoints a filtered subscription may go without producing an item before the server emits a progress-only frame, so sparse subscribers always learn their resume point. Defaults to 25 (~5 seconds at mainnet checkpoint cadence).
subscription_max_subscribers: Option<usize>Maximum number of concurrent RPC subscriptions. Defaults to 1024.
subscription_shards: Option<u32>Number of parallel shard tasks that evaluate subscription filters and deliver updates. Each subscriber lives on one shard; per-checkpoint filter evaluation parallelizes across shards. Defaults to the host’s available parallelism.
display: Option<DisplayConfig>Configuration for rendering Objects based on the Display standard
max_connection_age_secs: Option<u64>Maximum age of an RPC connection, in seconds. When a connection
reaches this age the server sends GOAWAY and stops accepting new
streams on it; in-flight requests are allowed to complete within
max-connection-age-grace-secs. Bounding connection lifetime is the
server-side backstop that reclaims streams wedged behind HTTP/2
flow-control windows that a stalled peer never reopens.
Defaults to 4 hours. Set to 0 to disable (connections then live
forever).
max_connection_age_grace_secs: Option<u64>Grace period, in seconds, that in-flight requests are given to
complete after a connection begins shutting down (its
max-connection-age-secs expired, or the node is stopping). When
the grace period expires the connection is closed even if streams
are still open. Set to 0 to close immediately at shutdown.
Defaults to 10 minutes. Has no effect while
max-connection-age-secs is disabled and the node is running.
grpc_timeout_ms: Option<u64>Server-side timeout for gRPC requests, in milliseconds. Requests
that carry a grpc-timeout header are bounded by the smaller of the
two values. The timeout covers a unary request’s full execution and
a streaming request’s time to first response; it does not bound the
lifetime of an established stream.
Defaults to 60 seconds. Set to 0 to disable.
Implementations§
Source§impl RpcConfig
impl RpcConfig
pub fn enable_indexing(&self) -> bool
pub fn https_address(&self) -> SocketAddr
pub fn tls_config(&self) -> Option<&RpcTlsConfig>
pub fn max_json_move_value_size(&self) -> usize
pub fn max_json_move_value_response_size(&self) -> usize
pub fn index_initialization_config(&self) -> Option<&RpcIndexInitConfig>
pub fn ledger_history(&self) -> &LedgerHistoryConfig
Sourcepub fn max_connection_age(&self) -> Option<Duration>
pub fn max_connection_age(&self) -> Option<Duration>
Maximum age of an RPC connection; None means unlimited.
Sourcepub fn max_connection_age_grace(&self) -> Duration
pub fn max_connection_age_grace(&self) -> Duration
Grace period for in-flight requests once a connection begins
shutting down; Duration::ZERO closes immediately.
Sourcepub fn grpc_timeout(&self) -> Option<Duration>
pub fn grpc_timeout(&self) -> Option<Duration>
Server-side default deadline for gRPC requests; None means no
server-imposed deadline (client grpc-timeout headers still apply).
Sourcepub fn validate(&self) -> Result<()>
pub fn validate(&self) -> Result<()>
Validate cross-field invariants. Call once at startup to fail fast on a misconfiguration rather than surfacing it per-request.
pub fn display(&self) -> &DisplayConfig
Trait Implementations§
Source§impl<'de> Deserialize<'de> for RpcConfig
impl<'de> Deserialize<'de> for RpcConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for RpcConfig
impl RefUnwindSafe for RpcConfig
impl Send for RpcConfig
impl Sync for RpcConfig
impl Unpin for RpcConfig
impl UnsafeUnpin for RpcConfig
impl UnwindSafe for RpcConfig
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<'de, T> FromBcs for Twhere
T: Deserialize<'de>,
impl<'de, T> FromBcs for Twhere
T: Deserialize<'de>,
fn from_bcs<'de>(bytes: &'de [u8]) -> Result<Self, Error>where
Self: Deserialize<'de>,
fn from_bcs_base64(base64: &str) -> Result<Self, Error>where
Self: DeserializeOwned,
§impl<T> InitializableFromZeroed for Twhere
T: Default,
impl<T> InitializableFromZeroed for Twhere
T: Default,
§unsafe fn initialize(place: *mut T)
unsafe fn initialize(place: *mut T)
§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> 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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a Request§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<Ok, Error>
§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.