pub struct RunCmd {Show 41 fields
pub validator: bool,
pub no_grandpa: bool,
pub rpc_external: bool,
pub unsafe_rpc_external: bool,
pub rpc_methods: RpcMethods,
pub ws_external: bool,
pub unsafe_ws_external: bool,
pub rpc_max_payload: Option<usize>,
pub rpc_max_request_size: Option<usize>,
pub rpc_max_response_size: Option<usize>,
pub rpc_max_subscriptions_per_connection: Option<usize>,
pub prometheus_external: bool,
pub ipc_path: Option<String>,
pub rpc_port: Option<u16>,
pub ws_port: Option<u16>,
pub ws_max_connections: Option<usize>,
pub ws_max_out_buffer_capacity: Option<usize>,
pub rpc_cors: Option<Cors>,
pub prometheus_port: Option<u16>,
pub no_prometheus: bool,
pub name: Option<String>,
pub no_telemetry: bool,
pub telemetry_endpoints: Vec<(String, u8)>,
pub offchain_worker_params: OffchainWorkerParams,
pub shared_params: SharedParams,
pub import_params: ImportParams,
pub network_params: NetworkParams,
pub pool_config: TransactionPoolParams,
pub alice: bool,
pub bob: bool,
pub charlie: bool,
pub dave: bool,
pub eve: bool,
pub ferdie: bool,
pub one: bool,
pub two: bool,
pub force_authoring: bool,
pub keystore_params: KeystoreParams,
pub max_runtime_instances: Option<usize>,
pub runtime_cache_size: u8,
pub tmp: bool,
}Expand description
The run command used to run a node.
Fields§
§validator: boolEnable validator mode.
The node will be started with the authority role and actively participate in any consensus task that it can (e.g. depending on availability of local keys).
no_grandpa: boolDisable GRANDPA voter when running in validator mode, otherwise disable the GRANDPA observer.
rpc_external: boolListen to all RPC interfaces.
Default is local. Note: not all RPC methods are safe to be exposed publicly. Use an RPC
proxy server to filter out dangerous methods. More details:
https://docs.substrate.io/main-docs/build/custom-rpc/#public-rpcs.
Use --unsafe-rpc-external to suppress the warning if you understand the risks.
unsafe_rpc_external: boolListen to all RPC interfaces.
Same as --rpc-external.
rpc_methods: RpcMethodsRPC methods to expose.
unsafe: Exposes every RPC method.safe: Exposes only a safe subset of RPC methods, denying unsafe RPC methods.auto: Acts assafeif RPC is served externally, e.g. when--{rpc,ws}-externalis passed, otherwise acts asunsafe.
ws_external: boolListen to all Websocket interfaces.
Default is local. Note: not all RPC methods are safe to be exposed publicly. Use an RPC
proxy server to filter out dangerous methods. More details:
https://docs.substrate.io/main-docs/build/custom-rpc/#public-rpcs.
Use --unsafe-ws-external to suppress the warning if you understand the risks.
unsafe_ws_external: boolListen to all Websocket interfaces.
Same as --ws-external but doesn’t warn you about it.
rpc_max_payload: Option<usize>DEPRECATED, this has no affect anymore. Use rpc_max_request_size or
rpc_max_response_size instead.
rpc_max_request_size: Option<usize>Set the the maximum RPC request payload size for both HTTP and WS in megabytes. Default is 15MiB.
rpc_max_response_size: Option<usize>Set the the maximum RPC response payload size for both HTTP and WS in megabytes. Default is 15MiB.
rpc_max_subscriptions_per_connection: Option<usize>Set the the maximum concurrent subscriptions per connection. Default is 1024.
prometheus_external: boolExpose Prometheus exporter on all interfaces.
Default is local.
ipc_path: Option<String>DEPRECATED, IPC support has been removed.
rpc_port: Option<u16>Specify HTTP RPC server TCP port.
ws_port: Option<u16>Specify WebSockets RPC server TCP port.
ws_max_connections: Option<usize>Maximum number of WS RPC server connections.
ws_max_out_buffer_capacity: Option<usize>DEPRECATED, this has no affect anymore. Use rpc_max_response_size instead.
rpc_cors: Option<Cors>Specify browser Origins allowed to access the HTTP & WS RPC servers.
A comma-separated list of origins (protocol://domain or special null
value). Value of all will disable origin validation. Default is to
allow localhost and https://polkadot.js.org origins. When running in
–dev mode the default is to allow all origins.
prometheus_port: Option<u16>Specify Prometheus exporter TCP Port.
no_prometheus: boolDo not expose a Prometheus exporter endpoint.
Prometheus metric endpoint is enabled by default.
name: Option<String>The human-readable name for this node.
The node name will be reported to the telemetry server, if enabled.
no_telemetry: boolDisable connecting to the Substrate telemetry server.
Telemetry is on by default on global chains.
telemetry_endpoints: Vec<(String, u8)>The URL of the telemetry server to connect to.
This flag can be passed multiple times as a means to specify multiple
telemetry endpoints. Verbosity levels range from 0-9, with 0 denoting
the least verbosity.
Expected format is ‘URL VERBOSITY’, e.g. --telemetry-url 'wss://foo/bar 0'.
offchain_worker_params: OffchainWorkerParams§import_params: ImportParams§network_params: NetworkParams§pool_config: TransactionPoolParams§alice: boolShortcut for --name Alice --validator with session keys for Alice added to keystore.
bob: boolShortcut for --name Bob --validator with session keys for Bob added to keystore.
charlie: boolShortcut for --name Charlie --validator with session keys for Charlie added to
keystore.
dave: boolShortcut for --name Dave --validator with session keys for Dave added to keystore.
eve: boolShortcut for --name Eve --validator with session keys for Eve added to keystore.
ferdie: boolShortcut for --name Ferdie --validator with session keys for Ferdie added to keystore.
one: boolShortcut for --name One --validator with session keys for One added to keystore.
two: boolShortcut for --name Two --validator with session keys for Two added to keystore.
Enable authoring even when offline.
keystore_params: KeystoreParams§max_runtime_instances: Option<usize>The size of the instances cache for each runtime.
The default value is 8 and the values higher than 256 are ignored.
runtime_cache_size: u8Maximum number of different runtimes that can be cached.
tmp: boolRun a temporary node.
A temporary directory will be created to store the configuration and will be deleted at the end of the process.
Note: the directory is random per process execution. This directory is used as base path which includes: database, node key and keystore.
When --dev is given and no explicit --base-path, this option is implied.
Implementations§
source§impl RunCmd
impl RunCmd
sourcepub fn get_keyring(&self) -> Option<Sr25519Keyring>
pub fn get_keyring(&self) -> Option<Sr25519Keyring>
Get the Sr25519Keyring matching one of the flag.
Examples found in repository?
317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
fn node_name(&self) -> Result<String> {
let name: String = match (self.name.as_ref(), self.get_keyring()) {
(Some(name), _) => name.to_string(),
(_, Some(keyring)) => keyring.to_string(),
(None, None) => crate::generate_node_name(),
};
is_node_name_valid(&name).map_err(|msg| {
Error::Input(format!(
"Invalid node name '{}'. Reason: {}. If unsure, use none.",
name, msg
))
})?;
Ok(name)
}
fn dev_key_seed(&self, is_dev: bool) -> Result<Option<String>> {
Ok(self.get_keyring().map(|a| format!("//{}", a)).or_else(|| {
if is_dev {
Some("//Alice".into())
} else {
None
}
}))
}
fn telemetry_endpoints(
&self,
chain_spec: &Box<dyn ChainSpec>,
) -> Result<Option<TelemetryEndpoints>> {
Ok(if self.no_telemetry {
None
} else if !self.telemetry_endpoints.is_empty() {
Some(
TelemetryEndpoints::new(self.telemetry_endpoints.clone())
.map_err(|e| e.to_string())?,
)
} else {
chain_spec.telemetry_endpoints().clone()
})
}
fn role(&self, is_dev: bool) -> Result<Role> {
let keyring = self.get_keyring();
let is_authority = self.validator || is_dev || keyring.is_some();
Ok(if is_authority { sc_service::Role::Authority } else { sc_service::Role::Full })
}Trait Implementations§
source§impl CliConfiguration<()> for RunCmd
impl CliConfiguration<()> for RunCmd
source§fn import_params(&self) -> Option<&ImportParams>
fn import_params(&self) -> Option<&ImportParams>
source§fn network_params(&self) -> Option<&NetworkParams>
fn network_params(&self) -> Option<&NetworkParams>
source§fn keystore_params(&self) -> Option<&KeystoreParams>
fn keystore_params(&self) -> Option<&KeystoreParams>
source§fn offchain_worker_params(&self) -> Option<&OffchainWorkerParams>
fn offchain_worker_params(&self) -> Option<&OffchainWorkerParams>
OffchainWorkerParams for this object.source§fn dev_key_seed(&self, is_dev: bool) -> Result<Option<String>>
fn dev_key_seed(&self, is_dev: bool) -> Result<Option<String>>
source§fn telemetry_endpoints(
&self,
chain_spec: &Box<dyn ChainSpec>
) -> Result<Option<TelemetryEndpoints>>
fn telemetry_endpoints(
&self,
chain_spec: &Box<dyn ChainSpec>
) -> Result<Option<TelemetryEndpoints>>
Ok(true) if authoring should be forced Read moresource§fn prometheus_config(
&self,
default_listen_port: u16,
chain_spec: &Box<dyn ChainSpec>
) -> Result<Option<PrometheusConfig>>
fn prometheus_config(
&self,
default_listen_port: u16,
chain_spec: &Box<dyn ChainSpec>
) -> Result<Option<PrometheusConfig>>
None if disabled) Read moresource§fn disable_grandpa(&self) -> Result<bool>
fn disable_grandpa(&self) -> Result<bool>
Ok(true) if grandpa should be disabled Read moresource§fn rpc_ws_max_connections(&self) -> Result<Option<usize>>
fn rpc_ws_max_connections(&self) -> Result<Option<usize>>
None if unlimited). Read moresource§fn rpc_cors(&self, is_dev: bool) -> Result<Option<Vec<String>>>
fn rpc_cors(&self, is_dev: bool) -> Result<Option<Vec<String>>>
None if disabled) Read moresource§fn rpc_http(&self, default_listen_port: u16) -> Result<Option<SocketAddr>>
fn rpc_http(&self, default_listen_port: u16) -> Result<Option<SocketAddr>>
None if disabled). Read moresource§fn rpc_ipc(&self) -> Result<Option<String>>
fn rpc_ipc(&self) -> Result<Option<String>>
None if disabled). Read moresource§fn rpc_ws(&self, default_listen_port: u16) -> Result<Option<SocketAddr>>
fn rpc_ws(&self, default_listen_port: u16) -> Result<Option<SocketAddr>>
None if disabled). Read moresource§fn rpc_methods(&self) -> Result<RpcMethods>
fn rpc_methods(&self) -> Result<RpcMethods>
source§fn rpc_max_response_size(&self) -> Result<Option<usize>>
fn rpc_max_response_size(&self) -> Result<Option<usize>>
source§fn rpc_max_subscriptions_per_connection(&self) -> Result<Option<usize>>
fn rpc_max_subscriptions_per_connection(&self) -> Result<Option<usize>>
source§fn ws_max_out_buffer_capacity(&self) -> Result<Option<usize>>
fn ws_max_out_buffer_capacity(&self) -> Result<Option<usize>>
source§fn transaction_pool(&self, is_dev: bool) -> Result<TransactionPoolOptions>
fn transaction_pool(&self, is_dev: bool) -> Result<TransactionPoolOptions>
source§fn max_runtime_instances(&self) -> Result<Option<usize>>
fn max_runtime_instances(&self) -> Result<Option<usize>>
source§fn base_path(&self) -> Result<Option<BasePath>>
fn base_path(&self) -> Result<Option<BasePath>>
source§fn pruning_params(&self) -> Option<&PruningParams>
fn pruning_params(&self) -> Option<&PruningParams>
source§fn node_key_params(&self) -> Option<&NodeKeyParams>
fn node_key_params(&self) -> Option<&NodeKeyParams>
source§fn database_params(&self) -> Option<&DatabaseParams>
fn database_params(&self) -> Option<&DatabaseParams>
source§fn network_config(
&self,
chain_spec: &Box<dyn ChainSpec>,
is_dev: bool,
is_validator: bool,
net_config_dir: PathBuf,
client_id: &str,
node_name: &str,
node_key: NodeKeyConfig,
default_listen_port: u16
) -> Result<NetworkConfiguration>
fn network_config(
&self,
chain_spec: &Box<dyn ChainSpec>,
is_dev: bool,
is_validator: bool,
net_config_dir: PathBuf,
client_id: &str,
node_name: &str,
node_key: NodeKeyConfig,
default_listen_port: u16
) -> Result<NetworkConfiguration>
source§fn keystore_config(
&self,
config_dir: &PathBuf
) -> Result<(Option<String>, KeystoreConfig)>
fn keystore_config(
&self,
config_dir: &PathBuf
) -> Result<(Option<String>, KeystoreConfig)>
source§fn database_config(
&self,
base_path: &PathBuf,
cache_size: usize,
database: Database
) -> Result<DatabaseSource>
fn database_config(
&self,
base_path: &PathBuf,
cache_size: usize,
database: Database
) -> Result<DatabaseSource>
source§fn trie_cache_maximum_size(&self) -> Result<Option<usize>>
fn trie_cache_maximum_size(&self) -> Result<Option<usize>>
source§fn blocks_pruning(&self) -> Result<BlocksPruning>
fn blocks_pruning(&self) -> Result<BlocksPruning>
source§fn wasm_method(&self) -> Result<WasmExecutionMethod>
fn wasm_method(&self) -> Result<WasmExecutionMethod>
source§fn wasm_runtime_overrides(&self) -> Option<PathBuf>
fn wasm_runtime_overrides(&self) -> Option<PathBuf>
source§fn execution_strategies(
&self,
is_dev: bool,
is_validator: bool
) -> Result<ExecutionStrategies>
fn execution_strategies(
&self,
is_dev: bool,
is_validator: bool
) -> Result<ExecutionStrategies>
source§fn default_heap_pages(&self) -> Result<Option<u64>>
fn default_heap_pages(&self) -> Result<Option<u64>>
source§fn offchain_worker(&self, role: &Role) -> Result<OffchainWorkerConfig>
fn offchain_worker(&self, role: &Role) -> Result<OffchainWorkerConfig>
Ok(_) Read moresource§fn tracing_targets(&self) -> Result<Option<String>>
fn tracing_targets(&self) -> Result<Option<String>>
source§fn tracing_receiver(&self) -> Result<TracingReceiver>
fn tracing_receiver(&self) -> Result<TracingReceiver>
source§fn node_key(&self, net_config_dir: &PathBuf) -> Result<NodeKeyConfig>
fn node_key(&self, net_config_dir: &PathBuf) -> Result<NodeKeyConfig>
source§fn announce_block(&self) -> Result<bool>
fn announce_block(&self) -> Result<bool>
source§fn create_configuration<C: SubstrateCli>(
&self,
cli: &C,
tokio_handle: Handle
) -> Result<Configuration>
fn create_configuration<C: SubstrateCli>(
&self,
cli: &C,
tokio_handle: Handle
) -> Result<Configuration>
source§fn detailed_log_output(&self) -> Result<bool>
fn detailed_log_output(&self) -> Result<bool>
source§fn enable_log_reloading(&self) -> Result<bool>
fn enable_log_reloading(&self) -> Result<bool>
source§fn disable_log_color(&self) -> Result<bool>
fn disable_log_color(&self) -> Result<bool>
source§fn init<F>(
&self,
support_url: &String,
impl_version: &String,
logger_hook: F,
config: &Configuration
) -> Result<()>where
F: FnOnce(&mut LoggerBuilder, &Configuration),
fn init<F>(
&self,
support_url: &String,
impl_version: &String,
logger_hook: F,
config: &Configuration
) -> Result<()>where
F: FnOnce(&mut LoggerBuilder, &Configuration),
source§impl CommandFactory for RunCmd
impl CommandFactory for RunCmd
source§impl FromArgMatches for RunCmd
impl FromArgMatches for RunCmd
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 Parser for RunCmd
impl Parser for RunCmd
source§fn try_parse() -> Result<Self, Error<RichFormatter>>
fn try_parse() -> Result<Self, Error<RichFormatter>>
std::env::args_os(), return Err on error.source§fn parse_from<I, T>(itr: I) -> Selfwhere
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn parse_from<I, T>(itr: I) -> Selfwhere
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
source§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error<RichFormatter>>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error<RichFormatter>>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
source§fn update_from<I, T>(&mut self, itr: I)where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn update_from<I, T>(&mut self, itr: I)where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
source§fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error<RichFormatter>>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error<RichFormatter>>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Auto Trait Implementations§
impl RefUnwindSafe for RunCmd
impl Send for RunCmd
impl Sync for RunCmd
impl Unpin for RunCmd
impl UnwindSafe for RunCmd
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.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> 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, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T. Read moresource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from.§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T.