|
@@ -67,10 +67,6 @@ struct Args {
|
|
|
/// JSON-RPC server listen URL
|
|
/// JSON-RPC server listen URL
|
|
|
rpc_listen: Url,
|
|
rpc_listen: Url,
|
|
|
|
|
|
|
|
- #[structopt(long, default_value = "http://127.0.0.1:28081/json_rpc")]
|
|
|
|
|
- /// monerod JSON-RPC server listen URL
|
|
|
|
|
- monerod_rpc: Url,
|
|
|
|
|
-
|
|
|
|
|
#[structopt(long)]
|
|
#[structopt(long)]
|
|
|
/// List of worker logins
|
|
/// List of worker logins
|
|
|
workers: Vec<String>,
|
|
workers: Vec<String>,
|
|
@@ -78,6 +74,22 @@ struct Args {
|
|
|
#[structopt(long)]
|
|
#[structopt(long)]
|
|
|
/// Set log file output
|
|
/// Set log file output
|
|
|
log: Option<String>,
|
|
log: Option<String>,
|
|
|
|
|
+
|
|
|
|
|
+ #[structopt(flatten)]
|
|
|
|
|
+ monerod: Monerod,
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+#[derive(Clone, Debug, Deserialize, StructOpt, StructOptToml)]
|
|
|
|
|
+#[serde(default)]
|
|
|
|
|
+#[structopt()]
|
|
|
|
|
+struct Monerod {
|
|
|
|
|
+ #[structopt(long)]
|
|
|
|
|
+ /// Coinbase wallet address
|
|
|
|
|
+ wallet_address: String,
|
|
|
|
|
+
|
|
|
|
|
+ #[structopt(long, default_value = "http://127.0.0.1:28081/json_rpc")]
|
|
|
|
|
+ /// monerod JSON-RPC server listen URL
|
|
|
|
|
+ monerod_rpc: Url,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
struct Worker {
|
|
struct Worker {
|
|
@@ -100,8 +112,8 @@ impl Worker {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
struct MiningProxy {
|
|
struct MiningProxy {
|
|
|
- /// monerod RPC endpoint
|
|
|
|
|
- monerod_rpc: Url,
|
|
|
|
|
|
|
+ /// monerod settings
|
|
|
|
|
+ monerod: Monerod,
|
|
|
/// Worker logins
|
|
/// Worker logins
|
|
|
logins: HashMap<String, String>,
|
|
logins: HashMap<String, String>,
|
|
|
/// Workers UUIDs
|
|
/// Workers UUIDs
|
|
@@ -114,12 +126,12 @@ struct MiningProxy {
|
|
|
|
|
|
|
|
impl MiningProxy {
|
|
impl MiningProxy {
|
|
|
fn new(
|
|
fn new(
|
|
|
- monerod_rpc: Url,
|
|
|
|
|
|
|
+ monerod: Monerod,
|
|
|
logins: HashMap<String, String>,
|
|
logins: HashMap<String, String>,
|
|
|
executor: Arc<Executor<'static>>,
|
|
executor: Arc<Executor<'static>>,
|
|
|
) -> Self {
|
|
) -> Self {
|
|
|
Self {
|
|
Self {
|
|
|
- monerod_rpc,
|
|
|
|
|
|
|
+ monerod,
|
|
|
logins,
|
|
logins,
|
|
|
workers: Arc::new(RwLock::new(HashMap::new())),
|
|
workers: Arc::new(RwLock::new(HashMap::new())),
|
|
|
rpc_connections: Mutex::new(HashSet::new()),
|
|
rpc_connections: Mutex::new(HashSet::new()),
|
|
@@ -202,7 +214,7 @@ async fn realmain(args: Args, ex: Arc<Executor<'static>>) -> Result<()> {
|
|
|
logins.insert(user, pass);
|
|
logins.insert(user, pass);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- let mmproxy = Arc::new(MiningProxy::new(args.monerod_rpc, logins, ex.clone()));
|
|
|
|
|
|
|
+ let mmproxy = Arc::new(MiningProxy::new(args.monerod, logins, ex.clone()));
|
|
|
let mmproxy_ = Arc::clone(&mmproxy);
|
|
let mmproxy_ = Arc::clone(&mmproxy);
|
|
|
|
|
|
|
|
info!("Starting JSON-RPC server");
|
|
info!("Starting JSON-RPC server");
|