mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
feat: Add dumpgenesis subcommand (#6797)
This commit is contained in:
@ -7,7 +7,8 @@ use crate::{
|
||||
},
|
||||
cli::ext::RethCliExt,
|
||||
commands::{
|
||||
config_cmd, db, debug_cmd, import, init_cmd, node, p2p, recover, stage, test_vectors,
|
||||
config_cmd, db, debug_cmd, dump_genesis, import, init_cmd, node, p2p, recover, stage,
|
||||
test_vectors,
|
||||
},
|
||||
core::cli::runner::CliRunner,
|
||||
version::{LONG_VERSION, SHORT_VERSION},
|
||||
@ -81,6 +82,7 @@ impl<Ext: RethCliExt> Cli<Ext> {
|
||||
Commands::Node(command) => runner.run_command_until_exit(|ctx| command.execute(ctx)),
|
||||
Commands::Init(command) => runner.run_blocking_until_ctrl_c(command.execute()),
|
||||
Commands::Import(command) => runner.run_blocking_until_ctrl_c(command.execute()),
|
||||
Commands::DumpGenesis(command) => runner.run_blocking_until_ctrl_c(command.execute()),
|
||||
Commands::Db(command) => runner.run_blocking_until_ctrl_c(command.execute()),
|
||||
Commands::Stage(command) => runner.run_blocking_until_ctrl_c(command.execute()),
|
||||
Commands::P2P(command) => runner.run_until_ctrl_c(command.execute()),
|
||||
@ -128,6 +130,8 @@ pub enum Commands<Ext: RethCliExt = ()> {
|
||||
/// This syncs RLP encoded blocks from a file.
|
||||
#[command(name = "import")]
|
||||
Import(import::ImportCommand),
|
||||
/// Dumps genesis block JSON configuration to stdout.
|
||||
DumpGenesis(dump_genesis::DumpGenesisCommand),
|
||||
/// Database debugging utilities
|
||||
#[command(name = "db")]
|
||||
Db(db::Command),
|
||||
|
||||
47
bin/reth/src/commands/dump_genesis.rs
Normal file
47
bin/reth/src/commands/dump_genesis.rs
Normal file
@ -0,0 +1,47 @@
|
||||
//! Command that dumps genesis block JSON configuration to stdout
|
||||
use crate::args::utils::{chain_help, genesis_value_parser, SUPPORTED_CHAINS};
|
||||
use clap::Parser;
|
||||
use reth_primitives::ChainSpec;
|
||||
use std::sync::Arc;
|
||||
|
||||
/// Dumps genesis block JSON configuration to stdout
|
||||
#[derive(Debug, Parser)]
|
||||
pub struct DumpGenesisCommand {
|
||||
/// The chain this node is running.
|
||||
///
|
||||
/// Possible values are either a built-in chain or the path to a chain specification file.
|
||||
#[arg(
|
||||
long,
|
||||
value_name = "CHAIN_OR_PATH",
|
||||
long_help = chain_help(),
|
||||
default_value = SUPPORTED_CHAINS[0],
|
||||
value_parser = genesis_value_parser
|
||||
)]
|
||||
chain: Arc<ChainSpec>,
|
||||
}
|
||||
|
||||
impl DumpGenesisCommand {
|
||||
/// Execute the `dump-genesis` command
|
||||
pub async fn execute(self) -> eyre::Result<()> {
|
||||
println!("{}", serde_json::to_string_pretty(self.chain.genesis())?);
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn parse_dump_genesis_command_chain_args() {
|
||||
for chain in SUPPORTED_CHAINS {
|
||||
let args: DumpGenesisCommand =
|
||||
DumpGenesisCommand::parse_from(["reth", "--chain", chain]);
|
||||
assert_eq!(
|
||||
Ok(args.chain.chain),
|
||||
chain.parse::<reth_primitives::Chain>(),
|
||||
"failed to parse chain {chain}"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3,8 +3,10 @@
|
||||
pub mod config_cmd;
|
||||
pub mod db;
|
||||
pub mod debug_cmd;
|
||||
pub mod dump_genesis;
|
||||
pub mod import;
|
||||
pub mod init_cmd;
|
||||
|
||||
pub mod node;
|
||||
pub mod p2p;
|
||||
pub mod recover;
|
||||
|
||||
@ -31,6 +31,7 @@
|
||||
- [`reth node`](./cli/reth/node.md)
|
||||
- [`reth init`](./cli/reth/init.md)
|
||||
- [`reth import`](./cli/reth/import.md)
|
||||
- [`reth dump-genesis`](./cli/reth/dump-genesis.md)
|
||||
- [`reth db`](./cli/reth/db.md)
|
||||
- [`reth db stats`](./cli/reth/db/stats.md)
|
||||
- [`reth db list`](./cli/reth/db/list.md)
|
||||
|
||||
1
book/cli/SUMMARY.md
vendored
1
book/cli/SUMMARY.md
vendored
@ -2,6 +2,7 @@
|
||||
- [`reth node`](./reth/node.md)
|
||||
- [`reth init`](./reth/init.md)
|
||||
- [`reth import`](./reth/import.md)
|
||||
- [`reth dump-genesis`](./reth/dump-genesis.md)
|
||||
- [`reth db`](./reth/db.md)
|
||||
- [`reth db stats`](./reth/db/stats.md)
|
||||
- [`reth db list`](./reth/db/list.md)
|
||||
|
||||
3
book/cli/reth.md
vendored
3
book/cli/reth.md
vendored
@ -4,12 +4,15 @@ Reth
|
||||
|
||||
```bash
|
||||
$ reth --help
|
||||
Reth
|
||||
|
||||
Usage: reth [OPTIONS] <COMMAND>
|
||||
|
||||
Commands:
|
||||
node Start the node
|
||||
init Initialize the database from a genesis file
|
||||
import This syncs RLP encoded blocks from a file
|
||||
dump-genesis Dumps genesis block JSON configuration to stdout
|
||||
db Database debugging utilities
|
||||
stage Manipulate individual stages
|
||||
p2p P2P Debugging utilities
|
||||
|
||||
111
book/cli/reth/dump-genesis.md
vendored
Normal file
111
book/cli/reth/dump-genesis.md
vendored
Normal file
@ -0,0 +1,111 @@
|
||||
# reth dump-genesis
|
||||
|
||||
This dumps genesis block JSON configuration to stdout
|
||||
|
||||
```bash
|
||||
$ reth dump-genesis
|
||||
Dumps genesis block JSON configuration to stdout
|
||||
|
||||
Usage: reth dump-genesis [OPTIONS]
|
||||
|
||||
Options:
|
||||
--chain <CHAIN_OR_PATH>
|
||||
The chain this node is running.
|
||||
Possible values are either a built-in chain or the path to a chain specification file.
|
||||
|
||||
Built-in chains:
|
||||
mainnet, sepolia, goerli, holesky, dev
|
||||
|
||||
[default: mainnet]
|
||||
|
||||
--instance <INSTANCE>
|
||||
Add a new instance of a node.
|
||||
|
||||
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
|
||||
|
||||
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
|
||||
|
||||
Changes to the following port numbers: - DISCOVERY_PORT: default + `instance` - 1 - AUTH_PORT: default + `instance` * 100 - 100 - HTTP_RPC_PORT: default - `instance` + 1 - WS_RPC_PORT: default + `instance` * 2 - 2
|
||||
|
||||
[default: 1]
|
||||
|
||||
-h, --help
|
||||
Print help (see a summary with '-h')
|
||||
|
||||
Logging:
|
||||
--log.stdout.format <FORMAT>
|
||||
The format to use for logs written to stdout
|
||||
|
||||
[default: terminal]
|
||||
|
||||
Possible values:
|
||||
- json: Represents JSON formatting for logs. This format outputs log records as JSON objects, making it suitable for structured logging
|
||||
- log-fmt: Represents logfmt (key=value) formatting for logs. This format is concise and human-readable, typically used in command-line applications
|
||||
- terminal: Represents terminal-friendly formatting for logs
|
||||
|
||||
--log.stdout.filter <FILTER>
|
||||
The filter to use for logs written to stdout
|
||||
|
||||
[default: ]
|
||||
|
||||
--log.file.format <FORMAT>
|
||||
The format to use for logs written to the log file
|
||||
|
||||
[default: terminal]
|
||||
|
||||
Possible values:
|
||||
- json: Represents JSON formatting for logs. This format outputs log records as JSON objects, making it suitable for structured logging
|
||||
- log-fmt: Represents logfmt (key=value) formatting for logs. This format is concise and human-readable, typically used in command-line applications
|
||||
- terminal: Represents terminal-friendly formatting for logs
|
||||
|
||||
--log.file.filter <FILTER>
|
||||
The filter to use for logs written to the log file
|
||||
|
||||
[default: debug]
|
||||
|
||||
--log.file.directory <PATH>
|
||||
The path to put log files in
|
||||
|
||||
[default: <CACHE_DIR>/logs]
|
||||
|
||||
--log.file.max-size <SIZE>
|
||||
The maximum size (in MB) of one log file
|
||||
|
||||
[default: 200]
|
||||
|
||||
--log.file.max-files <COUNT>
|
||||
The maximum amount of log files that will be stored. If set to 0, background file logging is disabled
|
||||
|
||||
[default: 5]
|
||||
|
||||
--log.journald
|
||||
Write logs to journald
|
||||
|
||||
--log.journald.filter <FILTER>
|
||||
The filter to use for logs written to journald
|
||||
|
||||
[default: error]
|
||||
|
||||
--color <COLOR>
|
||||
Sets whether or not the formatter emits ANSI terminal escape codes for colors and other text formatting
|
||||
|
||||
[default: always]
|
||||
|
||||
Possible values:
|
||||
- always: Colors on
|
||||
- auto: Colors on
|
||||
- never: Colors off
|
||||
|
||||
Display:
|
||||
-v, --verbosity...
|
||||
Set the minimum log level.
|
||||
|
||||
-v Errors
|
||||
-vv Warnings
|
||||
-vvv Info
|
||||
-vvvv Debug
|
||||
-vvvvv Traces (warning: very verbose!)
|
||||
|
||||
-q, --quiet
|
||||
Silence all log output
|
||||
```
|
||||
Reference in New Issue
Block a user