Add CLI option and route to MinerOptions.

This commit is contained in:
Gav Wood 2016-06-29 15:37:11 +02:00 committed by arkpar
parent 83c967c082
commit e24f9c9936
3 changed files with 11 additions and 0 deletions

View File

@ -45,6 +45,8 @@ pub enum PendingSet {
/// Configures the behaviour of the miner. /// Configures the behaviour of the miner.
#[derive(Debug)] #[derive(Debug)]
pub struct MinerOptions { pub struct MinerOptions {
/// URLs to notify when there is new work.
pub new_work_notify: Vec<String>,
/// Force the miner to reseal, even when nobody has asked for work. /// Force the miner to reseal, even when nobody has asked for work.
pub force_sealing: bool, pub force_sealing: bool,
/// Reseal on receipt of new external transactions. /// Reseal on receipt of new external transactions.
@ -66,6 +68,7 @@ pub struct MinerOptions {
impl Default for MinerOptions { impl Default for MinerOptions {
fn default() -> Self { fn default() -> Self {
MinerOptions { MinerOptions {
new_work_notify: vec![],
force_sealing: false, force_sealing: false,
reseal_on_external_tx: true, reseal_on_external_tx: true,
reseal_on_own_tx: true, reseal_on_own_tx: true,

View File

@ -169,6 +169,8 @@ Sealing/Mining Options:
more than 32 characters. more than 32 characters.
--tx-queue-size LIMIT Maximum amount of transactions in the queue (waiting --tx-queue-size LIMIT Maximum amount of transactions in the queue (waiting
to be included in next block) [default: 1024]. to be included in next block) [default: 1024].
--notify-work URLS URLs to which work package notifications are pushed.
URLS should be a comma-delimited list of HTTP URLs.
Footprint Options: Footprint Options:
--tracing BOOL Indicates if full transaction tracing should be --tracing BOOL Indicates if full transaction tracing should be
@ -320,6 +322,7 @@ pub struct Args {
pub flag_gas_cap: String, pub flag_gas_cap: String,
pub flag_extra_data: Option<String>, pub flag_extra_data: Option<String>,
pub flag_tx_queue_size: usize, pub flag_tx_queue_size: usize,
pub flag_work_notify: Option<String>,
pub flag_logging: Option<String>, pub flag_logging: Option<String>,
pub flag_version: bool, pub flag_version: bool,
pub flag_from: String, pub flag_from: String,

View File

@ -84,6 +84,10 @@ impl Configuration {
) )
} }
pub fn work_notify(&self) -> Vec<String> {
self.args.flag_work_notify.as_ref().map_or_else(Vec::new, |s| s.split(',').map(|s| s.to_owned()).collect())
}
pub fn miner_options(&self) -> MinerOptions { pub fn miner_options(&self) -> MinerOptions {
let (own, ext) = match self.args.flag_reseal_on_txs.as_str() { let (own, ext) = match self.args.flag_reseal_on_txs.as_str() {
"none" => (false, false), "none" => (false, false),
@ -93,6 +97,7 @@ impl Configuration {
x => die!("{}: Invalid value for --reseal option. Use --help for more information.", x) x => die!("{}: Invalid value for --reseal option. Use --help for more information.", x)
}; };
MinerOptions { MinerOptions {
new_work_notify: self.work_notify(),
force_sealing: self.args.flag_force_sealing, force_sealing: self.args.flag_force_sealing,
reseal_on_external_tx: ext, reseal_on_external_tx: ext,
reseal_on_own_tx: own, reseal_on_own_tx: own,