mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
Adding miner args for cli (#2163)
This commit is contained in:
@ -78,6 +78,7 @@ jsonrpsee = { version = "0.16", features = ["server"] }
|
||||
# misc
|
||||
eyre = "0.6.8"
|
||||
clap = { version = "4", features = ["derive", "cargo"] }
|
||||
num_cpus = "1.13.0"
|
||||
tempfile = { version = "3.3.0" }
|
||||
backon = "0.4"
|
||||
hex = "0.4"
|
||||
|
||||
@ -14,3 +14,7 @@ pub use debug_args::DebugArgs;
|
||||
|
||||
mod secret_key;
|
||||
pub use secret_key::{get_secret_key, SecretKeyError};
|
||||
|
||||
/// MinerArgs struct for configuring the miner
|
||||
mod payload_build_args;
|
||||
pub use payload_build_args::PayloadBuilderArgs;
|
||||
|
||||
56
bin/reth/src/args/payload_build_args.rs
Normal file
56
bin/reth/src/args/payload_build_args.rs
Normal file
@ -0,0 +1,56 @@
|
||||
use clap::{builder::RangedU64ValueParser, Args};
|
||||
use reth_primitives::Address;
|
||||
|
||||
/// Parameters for configuring the Payload Builder
|
||||
#[derive(Debug, Args, PartialEq, Default)]
|
||||
pub struct PayloadBuilderArgs {
|
||||
/// Public address for block mining rewards
|
||||
#[arg(long = "builder.etherbase", help_heading = "Builder")]
|
||||
pub etherbase: Option<Address>,
|
||||
|
||||
/// Block extra data set by the builder
|
||||
#[arg(long = "builder.extradata", help_heading = "Builder")]
|
||||
pub extradata: Option<String>,
|
||||
|
||||
/// Target gas ceiling for mined blocks
|
||||
#[arg(long = "builder.gaslimit", help_heading = "Builder")]
|
||||
pub gaslimit: Option<u64>,
|
||||
|
||||
/// Minimum gas price for mining a transaction
|
||||
#[arg(long = "builder.gasprice", help_heading = "Builder")]
|
||||
pub gasprice: Option<u64>,
|
||||
|
||||
/// Time interval to recreate the block being mined in seconds
|
||||
#[arg(long = "builder.recommit", help_heading = "Builder")]
|
||||
pub recommit: Option<u32>,
|
||||
|
||||
/// Number of CPU threads to use for mining
|
||||
#[arg(long = "builder.threads", help_heading = "Builder", value_parser = RangedU64ValueParser::<usize>::new().range(1..=num_cpus::get() as u64))]
|
||||
pub num_threads: Option<usize>,
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
|
||||
use super::*;
|
||||
use clap::{Args, Parser};
|
||||
|
||||
/// A helper type to parse Args more easily
|
||||
#[derive(Parser)]
|
||||
struct CommandParser<T: Args> {
|
||||
#[clap(flatten)]
|
||||
args: T,
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_args_with_valid_num_threads() {
|
||||
let num_cpus = num_cpus::get();
|
||||
let args = CommandParser::<PayloadBuilderArgs>::parse_from([
|
||||
"reth",
|
||||
"--builder.threads",
|
||||
&format!("{}", num_cpus),
|
||||
])
|
||||
.args;
|
||||
assert!(args.num_threads.is_some())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user