-
Notifications
You must be signed in to change notification settings - Fork 568
Expand file tree
/
Copy pathcli.rs
More file actions
166 lines (131 loc) · 5.46 KB
/
cli.rs
File metadata and controls
166 lines (131 loc) · 5.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
// This file is part of Substrate.
// Copyright (C) 2018-2022 Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
/// An overarching CLI command definition.
#[derive(Debug, clap::Parser)]
pub struct Cli {
/// Possible subcommand with parameters.
#[command(subcommand)]
pub subcommand: Option<Subcommand>,
#[allow(missing_docs)]
#[clap(flatten)]
pub run: sc_cli::RunCmd,
/// Disable automatic hardware benchmarks.
///
/// By default these benchmarks are automatically ran at startup and measure
/// the CPU speed, the memory bandwidth and the disk speed.
///
/// The results are then printed out in the logs, and also sent as part of
/// telemetry, if telemetry is enabled.
#[arg(long)]
pub no_hardware_benchmarks: bool,
/// Disable checking commitment on imported block during sync
#[arg(long, conflicts_with_all = &["validator"])]
pub unsafe_da_sync: bool,
/// Provides storage monitoring options on the node
#[clap(flatten)]
pub storage_monitor: sc_storage_monitor::StorageMonitorParams,
/// Enable Kate RPC
#[clap(long = "enable-kate-rpc", default_value_t = false)]
pub kate_rpc_enabled: bool,
/// Enable Kate RPC Metrics
#[clap(long = "enable-kate-rpc-metrics", default_value_t = false)]
pub kate_rpc_metrics_enabled: bool,
/// The maximum number of cells that can be requested in one go.
///
/// Max size cannot exceed 10_000
#[arg(long, default_value_t = 64, value_parser=kate_max_cells_size_upper_bound)]
pub kate_max_cells_size: usize,
/// The maximum size of the evaluation grid cache in MiB.
#[arg(long, default_value_t = 64)]
pub kate_eval_grid_size: u64,
/// The maximum size of the polynomial grid cache in MiB.
#[arg(long, default_value_t = 64)]
pub kate_poly_grid_size: u64,
/// The name of the network.
///
/// This parameter can be used to update the network name and id of the `dev` and `dev_tri` chains.
#[arg(long)]
pub network_name: Option<String>,
/// Enable Transaction State RPC. This allows querying the transaction state (success or failure)
/// using only a transaction hash.
#[clap(long = "enable-tx-state-rpc", default_value_t = false)]
pub tx_state_rpc_enabled: bool,
/// The maximum number of results the transaction state RPC will return for a transaction hash.
/// If a transaction hash appears in multiple blocks, the RPC will return only the top `X` transaction states.
/// In most cases, the transaction hash is unique, so this parameter is usually irrelevant.
#[clap(long, default_value_t = 10)]
pub tx_state_rpc_max_search_results: usize,
/// The maximum number of blocks preserved and stored in the transaction state RPC database.
///
/// The default is 31 days' worth of blocks.
#[clap(long, default_value_t = 133920)]
pub tx_state_rpc_max_stored_block_count: usize,
/// Logging interval for transaction state, in milliseconds.
/// A lower value results in more frequent log updates.
///
/// The default is 300_000 milliseconds (300 seconds).
#[clap(long, default_value_t = 300_000)]
pub tx_state_logging_interval: u64,
}
fn kate_max_cells_size_upper_bound(s: &str) -> Result<usize, String> {
clap_num::number_range(s, 0, 10_000)
}
/// Possible subcommands of the main binary.
#[allow(clippy::large_enum_variant)]
#[derive(Debug, clap::Subcommand)]
pub enum Subcommand {
/*
/// The custom inspect subcommand for decoding blocks and extrinsics.
#[command(
name = "inspect",
about = "Decode given block or extrinsic using current native runtime."
)]
Inspect(node_inspect::cli::InspectCmd),
*/
/// Sub-commands concerned with benchmarking.
/// The pallet benchmarking moved to the `pallet` sub-command.
#[command(subcommand)]
Benchmark(frame_benchmarking_cli::BenchmarkCmd),
/// Try some command against runtime state.
#[cfg(feature = "try-runtime")]
TryRuntime(try_runtime_cli::TryRuntimeCmd),
/// Try some command against runtime state. Note: `try-runtime` feature must be enabled.
#[cfg(not(feature = "try-runtime"))]
TryRuntime,
/// Key management cli utilities
#[command(subcommand)]
Key(sc_cli::KeySubcommand),
/// Verify a signature for a message, provided on STDIN, with a given (public or secret) key.
Verify(sc_cli::VerifyCmd),
/// Generate a seed that provides a vanity address.
Vanity(sc_cli::VanityCmd),
/// Sign a message, with a given (secret) key.
Sign(sc_cli::SignCmd),
/// Build a chain specification.
BuildSpec(sc_cli::BuildSpecCmd),
/// Validate blocks.
CheckBlock(sc_cli::CheckBlockCmd),
/// Export blocks.
ExportBlocks(sc_cli::ExportBlocksCmd),
/// Export the state of a given block into a chain spec.
ExportState(sc_cli::ExportStateCmd),
/// Import blocks.
ImportBlocks(sc_cli::ImportBlocksCmd),
/// Remove the whole chain.
PurgeChain(sc_cli::PurgeChainCmd),
/// Revert the chain to a previous state.
Revert(sc_cli::RevertCmd),
/// Db meta columns information.
ChainInfo(sc_cli::ChainInfoCmd),
}