mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-01-29 09:08:05 -05:00
Adding miner args for cli (#2163)
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@@ -4454,6 +4454,7 @@ dependencies = [
|
||||
"metrics",
|
||||
"metrics-exporter-prometheus",
|
||||
"metrics-util",
|
||||
"num_cpus",
|
||||
"proptest",
|
||||
"reth-auto-seal-consensus",
|
||||
"reth-beacon-consensus",
|
||||
|
||||
@@ -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