From 24daf4b641ff605fe3a5d0ce952bceeba7666f13 Mon Sep 17 00:00:00 2001 From: stringhandler Date: Fri, 18 Oct 2024 12:47:27 +0200 Subject: [PATCH 1/3] wip --- src-tauri/src/cpu_miner.rs | 10 ++++++++-- src-tauri/src/main.rs | 4 ++++ src-tauri/src/xmrig_adapter.rs | 5 +++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src-tauri/src/cpu_miner.rs b/src-tauri/src/cpu_miner.rs index 24953afdc..18fd7245d 100644 --- a/src-tauri/src/cpu_miner.rs +++ b/src-tauri/src/cpu_miner.rs @@ -63,13 +63,19 @@ impl CpuMiner { } }; let cpu_max_percentage = match mode { - MiningMode::Eco => (30 * max_cpu_available) / 100isize, - MiningMode::Ludicrous => -1, // Use all + MiningMode::Eco => cpu_miner_config + .eco_mode_cpu_percentage + .unwrap_or((30 * max_cpu_available) / 100isize), + MiningMode::Ludicrous => cpu_miner_config.ludicrous_mode_cpu_percentage.unwrap_or(-1), // Use all }; lock.adapter.node_connection = Some(xmrig_node_connection); lock.adapter.monero_address = Some(monero_address.clone()); lock.adapter.cpu_max_percentage = Some(cpu_max_percentage); + lock.adapter.xmrig_extra_options = match mode { + MiningMode::Eco => cpu_miner_config.eco_xmrig_extra_options.clone(), + MiningMode::Ludicrous => cpu_miner_config.ludicrous_xmrig_extra_options.clone(), + }; lock.start( app_shutdown.clone(), diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 22050e5c9..1dcc55b7b 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1682,6 +1682,10 @@ pub enum CpuMinerConnection { struct CpuMinerConfig { node_connection: CpuMinerConnection, tari_address: TariAddress, + eco_mode_xmrig_options: Vec, + ludicrous_mode_xmrig_options: Vec, + eco_mode_cpu_percentage: Option, + ludicrous_mode_cpu_percentage: Option, } #[derive(Clone)] diff --git a/src-tauri/src/xmrig_adapter.rs b/src-tauri/src/xmrig_adapter.rs index f4484e825..7830ab222 100644 --- a/src-tauri/src/xmrig_adapter.rs +++ b/src-tauri/src/xmrig_adapter.rs @@ -38,6 +38,7 @@ pub struct XmrigAdapter { pub http_api_token: String, pub http_api_port: u16, pub cpu_max_percentage: Option, + pub extra_options: Vec, } impl XmrigAdapter { @@ -50,6 +51,7 @@ impl XmrigAdapter { http_api_token: http_api_token.clone(), http_api_port, cpu_max_percentage: None, + extra_options: Vec::new(), } } } @@ -107,6 +109,9 @@ impl ProcessAdapter for XmrigAdapter { .ok_or(anyhow::anyhow!("CPU max percentage not set"))? )); args.push("--verbose".to_string()); + for extra_option in &self.extra_options { + args.push(extra_option.clone()); + } Ok(( ProcessInstance { From 97518a9c8582193753242b6364a2584c519eec82 Mon Sep 17 00:00:00 2001 From: stringhandler Date: Fri, 18 Oct 2024 13:45:26 +0200 Subject: [PATCH 2/3] asf --- package-lock.json | 4 ++-- src-tauri/src/main.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e1403ff9..48e22897c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "tari-universe", - "version": "0.5.28", + "version": "0.5.31", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "tari-universe", - "version": "0.5.28", + "version": "0.5.31", "dependencies": { "@floating-ui/react": "^0.26.25", "@tauri-apps/api": "^1", diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 1dcc55b7b..0d53005e5 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1684,8 +1684,8 @@ struct CpuMinerConfig { tari_address: TariAddress, eco_mode_xmrig_options: Vec, ludicrous_mode_xmrig_options: Vec, - eco_mode_cpu_percentage: Option, - ludicrous_mode_cpu_percentage: Option, + eco_mode_cpu_percentage: Option, + ludicrous_mode_cpu_percentage: Option, } #[derive(Clone)] From 087c154115b277e69218f7b6a565e3262528c480 Mon Sep 17 00:00:00 2001 From: stringhandler Date: Fri, 18 Oct 2024 16:16:58 +0200 Subject: [PATCH 3/3] update --- src-tauri/Cargo.lock | 156 ++++++++++++++++++--- src-tauri/Cargo.toml | 1 + src-tauri/binaries_versions_esmeralda.json | 6 +- src-tauri/binaries_versions_nextnet.json | 6 +- src-tauri/src/app_config.rs | 39 ++++++ src-tauri/src/binaries/binaries_manager.rs | 9 +- src-tauri/src/cpu_miner.rs | 6 +- src-tauri/src/main.rs | 26 +++- src-tauri/src/mm_proxy_adapter.rs | 34 ++--- 9 files changed, 234 insertions(+), 49 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 76d32ecc8..85976c3a5 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -151,6 +151,9 @@ name = "anyhow" version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +dependencies = [ + "backtrace", +] [[package]] name = "arbitrary" @@ -5376,16 +5379,47 @@ dependencies = [ "httpdate", "native-tls", "reqwest 0.12.7", - "sentry-backtrace", - "sentry-contexts", - "sentry-core", - "sentry-debug-images", - "sentry-panic", - "sentry-tracing", + "sentry-backtrace 0.32.3", + "sentry-contexts 0.32.3", + "sentry-core 0.32.3", + "sentry-debug-images 0.32.3", + "sentry-panic 0.32.3", + "sentry-tracing 0.32.3", + "tokio", + "ureq", +] + +[[package]] +name = "sentry" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5484316556650182f03b43d4c746ce0e3e48074a21e2f51244b648b6542e1066" +dependencies = [ + "httpdate", + "native-tls", + "reqwest 0.12.7", + "sentry-anyhow", + "sentry-backtrace 0.34.0", + "sentry-contexts 0.34.0", + "sentry-core 0.34.0", + "sentry-debug-images 0.34.0", + "sentry-panic 0.34.0", + "sentry-tracing 0.34.0", "tokio", "ureq", ] +[[package]] +name = "sentry-anyhow" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d672bfd1ed4e90978435f3c0704edb71a7a9d86403657839d518cd6aa278aff5" +dependencies = [ + "anyhow", + "sentry-backtrace 0.34.0", + "sentry-core 0.34.0", +] + [[package]] name = "sentry-backtrace" version = "0.32.3" @@ -5395,7 +5429,19 @@ dependencies = [ "backtrace", "once_cell", "regex", - "sentry-core", + "sentry-core 0.32.3", +] + +[[package]] +name = "sentry-backtrace" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40aa225bb41e2ec9d7c90886834367f560efc1af028f1c5478a6cce6a59c463a" +dependencies = [ + "backtrace", + "once_cell", + "regex", + "sentry-core 0.34.0", ] [[package]] @@ -5408,7 +5454,21 @@ dependencies = [ "libc", "os_info", "rustc_version", - "sentry-core", + "sentry-core 0.32.3", + "uname", +] + +[[package]] +name = "sentry-contexts" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a8dd746da3d16cb8c39751619cefd4fcdbd6df9610f3310fd646b55f6e39910" +dependencies = [ + "hostname", + "libc", + "os_info", + "rustc_version", + "sentry-core 0.34.0", "uname", ] @@ -5420,7 +5480,20 @@ checksum = "46a75011ea1c0d5c46e9e57df03ce81f5c7f0a9e199086334a1f9c0a541e0826" dependencies = [ "once_cell", "rand 0.8.5", - "sentry-types", + "sentry-types 0.32.3", + "serde", + "serde_json", +] + +[[package]] +name = "sentry-core" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161283cfe8e99c8f6f236a402b9ccf726b201f365988b5bb637ebca0abbd4a30" +dependencies = [ + "once_cell", + "rand 0.8.5", + "sentry-types 0.34.0", "serde", "serde_json", ] @@ -5433,7 +5506,18 @@ checksum = "7ec2a486336559414ab66548da610da5e9626863c3c4ffca07d88f7dc71c8de8" dependencies = [ "findshlibs", "once_cell", - "sentry-core", + "sentry-core 0.32.3", +] + +[[package]] +name = "sentry-debug-images" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc6b25e945fcaa5e97c43faee0267eebda9f18d4b09a251775d8fef1086238a" +dependencies = [ + "findshlibs", + "once_cell", + "sentry-core 0.34.0", ] [[package]] @@ -5442,8 +5526,18 @@ version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eaa3ecfa3c8750c78dcfd4637cfa2598b95b52897ed184b4dc77fcf7d95060d" dependencies = [ - "sentry-backtrace", - "sentry-core", + "sentry-backtrace 0.32.3", + "sentry-core 0.32.3", +] + +[[package]] +name = "sentry-panic" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc74f229c7186dd971a9491ffcbe7883544aa064d1589bd30b83fb856cd22d63" +dependencies = [ + "sentry-backtrace 0.34.0", + "sentry-core 0.34.0", ] [[package]] @@ -5453,7 +5547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bc709f4afe117f8cc85bde49db457f8115601fa1d4b69fa35c3f44bf9ee619c" dependencies = [ "minidumper-child", - "sentry", + "sentry 0.32.3", "thiserror", ] @@ -5464,7 +5558,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5e64cb472278a890f0e12deeedbd0f98c259b4c12ef707a15aadfd536bc6275" dependencies = [ "base64 0.22.1", - "sentry", + "sentry 0.32.3", "sentry-rust-minidump", "serde", "tauri", @@ -5477,8 +5571,20 @@ version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f715932bf369a61b7256687c6f0554141b7ce097287e30e3f7ed6e9de82498fe" dependencies = [ - "sentry-backtrace", - "sentry-core", + "sentry-backtrace 0.32.3", + "sentry-core 0.32.3", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "sentry-tracing" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd3c5faf2103cd01eeda779ea439b68c4ee15adcdb16600836e97feafab362ec" +dependencies = [ + "sentry-backtrace 0.34.0", + "sentry-core 0.34.0", "tracing-core", "tracing-subscriber", ] @@ -5500,6 +5606,23 @@ dependencies = [ "uuid", ] +[[package]] +name = "sentry-types" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d68cdf6bc41b8ff3ae2a9c4671e97426dcdd154cc1d4b6b72813f285d6b163f" +dependencies = [ + "debugid", + "hex", + "rand 0.8.5", + "serde", + "serde_json", + "thiserror", + "time", + "url", + "uuid", +] + [[package]] name = "serde" version = "1.0.210" @@ -6272,6 +6395,7 @@ dependencies = [ "reqwest 0.12.7", "sanitize-filename", "semver", + "sentry 0.34.0", "sentry-tauri", "serde", "serde_json", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index a4e23d2c6..0863655ba 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -46,6 +46,7 @@ regex = "1.10.5" reqwest = {version = "0.12.5", features = ["stream", "json", "multipart"] } sanitize-filename = "0.5" semver = "1.0.23" +sentry = {version = "0.34.0", features = ["anyhow"] } sentry-tauri = "0.3.0" serde = {version = "1", features = ["derive"] } serde_json = "1" diff --git a/src-tauri/binaries_versions_esmeralda.json b/src-tauri/binaries_versions_esmeralda.json index 046e2012d..66d947c6a 100644 --- a/src-tauri/binaries_versions_esmeralda.json +++ b/src-tauri/binaries_versions_esmeralda.json @@ -1,9 +1,9 @@ { "binaries": { "xmrig": "=6.22.0", - "mmproxy": "=1.7.0-pre.2", - "minotari_node": "=1.7.0-pre.2", - "wallet": "=1.7.0-pre.2", + "mmproxy": "=1.7.0-pre.3", + "minotari_node": "=1.7.0-pre.3", + "wallet": "=1.7.0-pre.3", "sha-p2pool": "=0.4.4", "xtrgpuminer": "=0.1.17", "tor": "=13.5.6" diff --git a/src-tauri/binaries_versions_nextnet.json b/src-tauri/binaries_versions_nextnet.json index 8a7ffd1f8..2d333845c 100644 --- a/src-tauri/binaries_versions_nextnet.json +++ b/src-tauri/binaries_versions_nextnet.json @@ -1,9 +1,9 @@ { "binaries": { "xmrig": "=6.22.0", - "mmproxy": "=1.7.0-rc.2", - "minotari_node": "=1.7.0-rc.2", - "wallet": "=1.7.0-rc.2", + "mmproxy": "=1.7.0-rc.3", + "minotari_node": "=1.7.0-rc.3", + "wallet": "=1.7.0-rc.3", "sha-p2pool": "=0.4.4", "xtrgpuminer": "=0.1.17", "tor": "=13.5.6" diff --git a/src-tauri/src/app_config.rs b/src-tauri/src/app_config.rs index 890a885c0..5967f37cd 100644 --- a/src-tauri/src/app_config.rs +++ b/src-tauri/src/app_config.rs @@ -49,6 +49,10 @@ pub struct AppConfigFromFile { use_tor: bool, #[serde(default = "default_false")] paper_wallet_enabled: bool, + eco_mode_cpu_threads: Option, + ludicrous_mode_cpu_threads: Option, + eco_mode_cpu_options: Vec, + ludicrous_mode_cpu_options: Vec, } impl Default for AppConfigFromFile { @@ -72,6 +76,10 @@ impl Default for AppConfigFromFile { airdrop_ui_enabled: true, paper_wallet_enabled: false, use_tor: true, + eco_mode_cpu_options: Vec::new(), + ludicrous_mode_cpu_options: Vec::new(), + eco_mode_cpu_threads: None, + ludicrous_mode_cpu_threads: None, } } } @@ -121,6 +129,10 @@ pub(crate) struct AppConfig { airdrop_ui_enabled: bool, paper_wallet_enabled: bool, use_tor: bool, + eco_mode_cpu_threads: Option, + ludicrous_mode_cpu_threads: Option, + eco_mode_cpu_options: Vec, + ludicrous_mode_cpu_options: Vec, } impl AppConfig { @@ -145,6 +157,10 @@ impl AppConfig { airdrop_ui_enabled: true, use_tor: true, paper_wallet_enabled: false, + eco_mode_cpu_options: Vec::new(), + ludicrous_mode_cpu_options: Vec::new(), + eco_mode_cpu_threads: None, + ludicrous_mode_cpu_threads: None, } } @@ -185,6 +201,10 @@ impl AppConfig { self.airdrop_ui_enabled = config.airdrop_ui_enabled; self.use_tor = config.use_tor; self.paper_wallet_enabled = config.paper_wallet_enabled; + self.eco_mode_cpu_options = config.eco_mode_cpu_options; + self.eco_mode_cpu_threads = config.eco_mode_cpu_threads; + self.ludicrous_mode_cpu_options = config.ludicrous_mode_cpu_options; + self.ludicrous_mode_cpu_threads = config.ludicrous_mode_cpu_threads; } Err(e) => { warn!(target: LOG_TARGET, "Failed to parse app config: {}", e.to_string()); @@ -207,6 +227,21 @@ impl AppConfig { } } + pub fn eco_mode_cpu_options(&self) -> &Vec { + &self.eco_mode_cpu_options + } + + pub fn ludicrous_mode_cpu_options(&self) -> &Vec { + &self.ludicrous_mode_cpu_options + } + pub fn eco_mode_cpu_threads(&self) -> Option { + self.eco_mode_cpu_threads + } + + pub fn ludicrous_mode_cpu_threads(&self) -> Option { + self.ludicrous_mode_cpu_threads + } + pub fn anon_id(&self) -> &str { &self.anon_id } @@ -396,6 +431,10 @@ impl AppConfig { airdrop_ui_enabled: self.airdrop_ui_enabled, paper_wallet_enabled: self.paper_wallet_enabled, use_tor: self.use_tor, + eco_mode_cpu_options: self.eco_mode_cpu_options.clone(), + ludicrous_mode_cpu_options: self.ludicrous_mode_cpu_options.clone(), + eco_mode_cpu_threads: self.eco_mode_cpu_threads, + ludicrous_mode_cpu_threads: self.ludicrous_mode_cpu_threads, }; let config = serde_json::to_string(config)?; debug!(target: LOG_TARGET, "Updating config file: {:?} {:?}", file, self.clone()); diff --git a/src-tauri/src/binaries/binaries_manager.rs b/src-tauri/src/binaries/binaries_manager.rs index d10084a0f..1172493a4 100644 --- a/src-tauri/src/binaries/binaries_manager.rs +++ b/src-tauri/src/binaries/binaries_manager.rs @@ -284,7 +284,7 @@ impl BinaryManager { ); if highest_version == Version::new(0, 0, 0) { - warn!(target: LOG_TARGET,"No version selected"); + warn!(target: LOG_TARGET,"No version selected for binary: {:?}", self.binary_name); return None; } @@ -364,8 +364,11 @@ impl BinaryManager { let version = match selected_version { Some(version) => version, None => { - warn!(target: LOG_TARGET, "No version selected"); - return Err(anyhow!("No version selected")); + warn!(target: LOG_TARGET, "No version selected for binary: {:?}", self.binary_name); + return Err(anyhow!(format!( + "No version selected for binary: {:?}", + self.binary_name + ))); } }; diff --git a/src-tauri/src/cpu_miner.rs b/src-tauri/src/cpu_miner.rs index 18fd7245d..0c4c60391 100644 --- a/src-tauri/src/cpu_miner.rs +++ b/src-tauri/src/cpu_miner.rs @@ -72,9 +72,9 @@ impl CpuMiner { lock.adapter.node_connection = Some(xmrig_node_connection); lock.adapter.monero_address = Some(monero_address.clone()); lock.adapter.cpu_max_percentage = Some(cpu_max_percentage); - lock.adapter.xmrig_extra_options = match mode { - MiningMode::Eco => cpu_miner_config.eco_xmrig_extra_options.clone(), - MiningMode::Ludicrous => cpu_miner_config.ludicrous_xmrig_extra_options.clone(), + lock.adapter.extra_options = match mode { + MiningMode::Eco => cpu_miner_config.eco_mode_xmrig_options.clone(), + MiningMode::Ludicrous => cpu_miner_config.ludicrous_mode_xmrig_options.clone(), }; lock.start( diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 0d53005e5..d5d72925b 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1,8 +1,10 @@ // Prevents additional console window on Windows in release, DO NOT REMOVE!! #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] +use ::sentry::integrations::anyhow::capture_anyhow; use auto_launcher::AutoLauncher; use external_dependencies::{ExternalDependencies, ExternalDependency, RequiredExternalDependency}; +use futures_util::future::Join; use log::trace; use log::{debug, error, info, warn}; use sentry::protocol::Event; @@ -17,7 +19,7 @@ use tari_common::configuration::Network; use tari_common_types::tari_address::TariAddress; use tari_core::transactions::tari_amount::MicroMinotari; use tari_shutdown::Shutdown; -use tauri::async_runtime::block_on; +use tauri::async_runtime::{block_on, JoinHandle}; use tauri::{Manager, RunEvent, UpdaterEvent}; use tokio::sync::RwLock; use wallet_adapter::TransactionInfo; @@ -480,6 +482,7 @@ async fn setup_application( rollback.set_value(true, Duration::from_millis(1000)).await; setup_inner(window, state.clone(), app).await.map_err(|e| { warn!(target: LOG_TARGET, "Error setting up application: {:?}", e); + capture_anyhow(&e); e.to_string() })?; @@ -1748,6 +1751,10 @@ fn main() { let cpu_config = Arc::new(RwLock::new(CpuMinerConfig { node_connection: CpuMinerConnection::BuiltInProxy, tari_address: TariAddress::default(), + eco_mode_xmrig_options: vec![], + ludicrous_mode_xmrig_options: vec![], + eco_mode_cpu_percentage: None, + ludicrous_mode_cpu_percentage: None, })); let app_in_memory_config = @@ -1843,9 +1850,20 @@ fn main() { .path_resolver() .app_config_dir() .expect("Could not get config dir"); - let thread_config = tauri::async_runtime::spawn(async move { - app_config.write().await.load_or_create(config_path).await - }); + let cpu_config2 = cpu_config.clone(); + let thread_config: JoinHandle> = + tauri::async_runtime::spawn(async move { + let mut app_conf = app_config.write().await; + app_conf.load_or_create(config_path).await?; + + let mut cpu_conf = cpu_config2.write().await; + cpu_conf.eco_mode_cpu_percentage = app_conf.eco_mode_cpu_threads(); + cpu_conf.ludicrous_mode_cpu_percentage = app_conf.ludicrous_mode_cpu_threads(); + cpu_conf.eco_mode_xmrig_options = app_conf.eco_mode_cpu_options().clone(); + cpu_conf.ludicrous_mode_xmrig_options = + app_conf.ludicrous_mode_cpu_options().clone(); + Ok(()) + }); match tauri::async_runtime::block_on(thread_config) { Ok(_) => {} diff --git a/src-tauri/src/mm_proxy_adapter.rs b/src-tauri/src/mm_proxy_adapter.rs index 665372955..595e83198 100644 --- a/src-tauri/src/mm_proxy_adapter.rs +++ b/src-tauri/src/mm_proxy_adapter.rs @@ -102,25 +102,25 @@ impl ProcessAdapter for MergeMiningProxyAdapter { ), "-p".to_string(), "merge_mining_proxy.wait_for_initial_sync_at_startup=false".to_string(), - "-p".to_string(), - "merge_mining_proxy.use_dynamic_fail_data=false".to_string(), + // "-p".to_string(), + // "merge_mining_proxy.use_dynamic_fail_data=false".to_string(), ]; - let nodes = [ - "https://xmr-01.tari.com", - "http://node1.xmr-tw.org:18081", - // x"https://monero.homeqloud.com:443", - // x"http://monero1.com:18089", - "http://node.c3pool.org:18081", - // flaky x "http://xmr-full.p2pool.uk:18089", - // x"https://monero.stackwallet.com:18081", - // x "http://xmr.support:18081", - //x "http://xmr.nthrow.nyc:18081", - ]; - for node in nodes { - args.push("-p".to_string()); - args.push(format!("merge_mining_proxy.monerod_url={}", node)); - } + // let nodes = [ + // "https://xmr-01.tari.com", + // "http://node1.xmr-tw.org:18081", + // // x"https://monero.homeqloud.com:443", + // // x"http://monero1.com:18089", + // "http://node.c3pool.org:18081", + // // flaky x "http://xmr-full.p2pool.uk:18089", + // // x"https://monero.stackwallet.com:18081", + // // x "http://xmr.support:18081", + // //x "http://xmr.nthrow.nyc:18081", + // ]; + // for node in nodes { + // args.push("-p".to_string()); + // args.push(format!("merge_mining_proxy.monerod_url={}", node)); + // } // TODO: uncomment if p2pool is needed in CPU mining if config.p2pool_enabled {