pub struct NodeConfig {Show 46 fields
pub authority_key_pair: AuthorityKeyPairWithPath,
pub protocol_key_pair: KeyPairWithPath,
pub account_key_pair: KeyPairWithPath,
pub network_key_pair: KeyPairWithPath,
pub db_path: PathBuf,
pub network_address: Multiaddr,
pub json_rpc_address: SocketAddr,
pub metrics_address: SocketAddr,
pub admin_interface_address: SocketAddr,
pub consensus_config: Option<ConsensusConfig>,
pub enable_index_processing: bool,
pub jsonrpc_server_type: Option<ServerType>,
pub grpc_load_shed: Option<bool>,
pub grpc_concurrency_limit: Option<usize>,
pub p2p_config: P2pConfig,
pub genesis: Genesis,
pub migration_tx_data_path: Option<PathBuf>,
pub authority_store_pruning_config: AuthorityStorePruningConfig,
pub end_of_epoch_broadcast_channel_capacity: usize,
pub checkpoint_executor_config: CheckpointExecutorConfig,
pub metrics: Option<MetricsConfig>,
pub supported_protocol_versions: Option<SupportedProtocolVersions>,
pub db_checkpoint_config: DBCheckpointConfig,
pub expensive_safety_check_config: ExpensiveSafetyCheckConfig,
pub transaction_deny_config: TransactionDenyConfig,
pub certificate_deny_config: CertificateDenyConfig,
pub state_debug_dump_config: StateDebugDumpConfig,
pub state_archive_write_config: StateArchiveConfig,
pub state_archive_read_config: Vec<StateArchiveConfig>,
pub state_snapshot_write_config: StateSnapshotConfig,
pub indexer_max_subscriptions: Option<usize>,
pub transaction_kv_store_read_config: TransactionKeyValueStoreReadConfig,
pub transaction_kv_store_write_config: Option<TransactionKeyValueStoreWriteConfig>,
pub authority_overload_config: AuthorityOverloadConfig,
pub run_with_range: Option<RunWithRange>,
pub policy_config: Option<PolicyConfig>,
pub firewall_config: Option<RemoteFirewallConfig>,
pub execution_cache_config: ExecutionCacheConfig,
pub enable_validator_tx_finalizer: bool,
pub verifier_signing_config: VerifierSigningConfig,
pub enable_db_write_stall: Option<bool>,
pub iota_names_config: Option<IotaNamesConfig>,
pub enable_grpc_api: bool,
pub grpc_api_config: Option<GrpcApiConfig>,
pub chain_override_for_testing: Option<Chain>,
pub validator_client_monitor_config: Option<ValidatorClientMonitorConfig>,
}Fields§
The public key bytes corresponding to the private key that the validator holds to sign transactions.
protocol_key_pair: KeyPairWithPathThe public key bytes corresponding to the private key that the validator holds to sign consensus blocks.
account_key_pair: KeyPairWithPath§network_key_pair: KeyPairWithPathThe public key bytes corresponding to the private key that the validator uses to establish TLS connections.
db_path: PathBuf§network_address: MultiaddrThe network address for gRPC communication.
Can be overwritten with args listen-address parameters.
json_rpc_address: SocketAddr§metrics_address: SocketAddrThe address for Prometheus metrics.
admin_interface_address: SocketAddrThe address for the admin interface that is run in the metrics separate runtime and provides access to admin node commands such as logging and tracing options.
consensus_config: Option<ConsensusConfig>Configuration struct for the consensus.
enable_index_processing: boolFlag to enable index processing for a full node.
If set to true, node creates IndexStore for transaction
data including ownership and balance information.
jsonrpc_server_type: Option<ServerType>Determines the jsonrpc server type as either:
- ‘websocket’ for a websocket based service (deprecated)
- ‘http’ for an http based service
- ‘both’ for both a websocket and http based service (deprecated)
grpc_load_shed: Option<bool>Flag to enable gRPC load shedding to manage and
mitigate overload conditions by shedding excess
load with LoadShedLayer middleware.
grpc_concurrency_limit: Option<usize>§p2p_config: P2pConfigConfiguration struct for P2P.
genesis: GenesisContains genesis location that might be InPlace
for reading all genesis data to memory or InFile,
and OnceCell pointer to a genesis struct.
migration_tx_data_path: Option<PathBuf>Contains the path where to find the migration blob.
Configuration for pruning of the authority store, to define when an old data is removed from the storage space.
end_of_epoch_broadcast_channel_capacity: usizeSize of the broadcast channel used for notifying other systems of end of epoch.
If unspecified, this will default to 128.
checkpoint_executor_config: CheckpointExecutorConfigConfiguration for the checkpoint executor for limiting the number of checkpoints to execute concurrently, and to allow for checkpoint post-processing.
metrics: Option<MetricsConfig>§supported_protocol_versions: Option<SupportedProtocolVersions>In a iota-node binary, this is set to
SupportedProtocolVersions::SYSTEM_DEFAULT in iota-node/src/main.rs.
It is present in the config so that it can be changed by tests in
order to test protocol upgrades.
db_checkpoint_config: DBCheckpointConfigConfiguration to manage database checkpoints, including whether to perform checkpoints at the end of an epoch, the path for storing checkpoints, and other related settings.
expensive_safety_check_config: ExpensiveSafetyCheckConfigConfiguration for enabling/disabling expensive safety checks.
transaction_deny_config: TransactionDenyConfigConfiguration to specify rules for denying transactions
based on objectsIDs, addresses, or enable/disable many
features such as publishing new packages or using shared objects.
certificate_deny_config: CertificateDenyConfigConfig used to deny execution for certificate digests know for crashing or hanging validator nodes.
Should be used for a fast temporary fixes and removed once the issue is fixed.
state_debug_dump_config: StateDebugDumpConfigUsed to determine how state debug information is dumped when a node forks.
state_archive_write_config: StateArchiveConfigConfiguration for writing state archive. If ObjectStorage
config is provided, ArchiveWriter will be created
for checkpoints archival.
state_archive_read_config: Vec<StateArchiveConfig>§state_snapshot_write_config: StateSnapshotConfigDetermines if snapshot should be uploaded to the remote storage.
indexer_max_subscriptions: Option<usize>§transaction_kv_store_read_config: TransactionKeyValueStoreReadConfig§transaction_kv_store_write_config: Option<TransactionKeyValueStoreWriteConfig>Configuration for defining thresholds and settings for managing system overload conditions in a node.
run_with_range: Option<RunWithRange>Specifies the ending epoch for a node for debugging purposes.
Ignored if set by config, can be configured only by cli arguments.
policy_config: Option<PolicyConfig>§firewall_config: Option<RemoteFirewallConfig>§execution_cache_config: ExecutionCacheConfig§enable_validator_tx_finalizer: bool§verifier_signing_config: VerifierSigningConfig§enable_db_write_stall: Option<bool>If a value is set, it determines if writes to DB can stall, which can halt the whole process. By default, write stall is enabled on validators but not on fullnodes.
iota_names_config: Option<IotaNamesConfig>§enable_grpc_api: boolFlag to enable the gRPC API.
grpc_api_config: Option<GrpcApiConfig>§chain_override_for_testing: Option<Chain>Allow overriding the chain for testing purposes. For instance, it allows you to create a test network that believes it is mainnet or testnet. Attempting to override this value on production networks will result in an error.
validator_client_monitor_config: Option<ValidatorClientMonitorConfig>Configuration for the validator client monitor that tracks client-observed performance metrics for validators.
Implementations§
Source§impl NodeConfig
impl NodeConfig
pub fn protocol_key_pair(&self) -> &NetworkKeyPair
pub fn network_key_pair(&self) -> &NetworkKeyPair
pub fn db_path(&self) -> PathBuf
pub fn db_checkpoint_path(&self) -> PathBuf
pub fn archive_path(&self) -> PathBuf
pub fn snapshot_path(&self) -> PathBuf
pub fn network_address(&self) -> &Multiaddr
pub fn consensus_config(&self) -> Option<&ConsensusConfig>
pub fn genesis(&self) -> Result<&Genesis>
pub fn load_migration_tx_data(&self) -> Result<MigrationTxData>
pub fn iota_address(&self) -> IotaAddress
pub fn archive_reader_config(&self) -> Vec<ArchiveReaderConfig>
pub fn jsonrpc_server_type(&self) -> ServerType
Trait Implementations§
Source§impl Clone for NodeConfig
impl Clone for NodeConfig
Source§fn clone(&self) -> NodeConfig
fn clone(&self) -> NodeConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Config for NodeConfig
impl Config for NodeConfig
Source§impl Debug for NodeConfig
impl Debug for NodeConfig
Source§impl<'de> Deserialize<'de> for NodeConfig
impl<'de> Deserialize<'de> for NodeConfig
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 NodeConfig
impl RefUnwindSafe for NodeConfig
impl Send for NodeConfig
impl Sync for NodeConfig
impl Unpin for NodeConfig
impl UnsafeUnpin for NodeConfig
impl UnwindSafe for NodeConfig
Blanket Implementations§
§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<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> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§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.