diff options
| author | devhyper <57877914+devhyper@users.noreply.github.com> | 2023-01-31 18:23:20 -0800 |
|---|---|---|
| committer | devhyper <57877914+devhyper@users.noreply.github.com> | 2023-01-31 18:23:20 -0800 |
| commit | 757bc7d7b953ca997aaa2897d79ddd4c37caa45a (patch) | |
| tree | 5adde2cb9eb4f7d28fa567f08f619fb730f2a69a /pages | |
| parent | b7ba9437d8cca6df4ecff7f5ae38a53cac5e26b2 (diff) | |
| download | monzero-gui-757bc7d7b953ca997aaa2897d79ddd4c37caa45a.tar.gz monzero-gui-757bc7d7b953ca997aaa2897d79ddd4c37caa45a.tar.xz monzero-gui-757bc7d7b953ca997aaa2897d79ddd4c37caa45a.zip | |
p2pool: Restart monerod only when needed and with proper args
Diffstat (limited to 'pages')
| -rw-r--r-- | pages/Mining.qml | 47 |
1 files changed, 39 insertions, 8 deletions
diff --git a/pages/Mining.qml b/pages/Mining.qml index e9ab1d07..01ca828d 100644 --- a/pages/Mining.qml +++ b/pages/Mining.qml @@ -41,7 +41,8 @@ Rectangle { property alias miningHeight: mainLayout.height property double currentHashRate: 0 property int threads: idealThreadCount / 2 - + property alias stopMiningEnabled: stopSoloMinerButton.enabled + property string args: "" ColumnLayout { id: mainLayout Layout.fillWidth: true @@ -293,11 +294,18 @@ Rectangle { var success; if (persistentSettings.allow_p2pool_mining) { if (p2poolManager.isInstalled()) { - if (persistentSettings.allowRemoteNodeMining) { + args = daemonManager.getArgs(persistentSettings.blockchainDataDir) //updates arguments + if (persistentSettings.allowRemoteNodeMining || (args.includes("--zmq-pub tcp://127.0.0.1:18083") || args.includes("--zmq-pub=tcp://127.0.0.1:18083")) && !args.includes("--no-zmq")) { startP2Pool() } else { - daemonManager.stopAsync(persistentSettings.nettype, persistentSettings.blockchainDataDir, startP2PoolLocal) + var underSystemd = daemonManager.checkUnderSystemd(); + if (underSystemd) { + miningError(qsTr("Monerod is managed by Systemd. Manually add --zmq-pub tcp://127.0.0.1:18083 to the unit file <br>") + translationManager.emptyString) + } + else { + daemonManager.stopAsync(persistentSettings.nettype, persistentSettings.blockchainDataDir, startP2PoolLocal) + } } } else { @@ -585,12 +593,35 @@ Rectangle { function startP2PoolLocal() { var noSync = false; - var customDaemonArgs = persistentSettings.daemonFlags.toLowerCase(); - var daemonArgs = "--zmq-pub " + "tcp://127.0.0.1:18083 " + "--disable-dns-checkpoints " - if (!customDaemonArgs.includes("--zmq-pub") && !customDaemonArgs.includes("--disable-dns-checkpoints") && !customDaemonArgs.includes("--no-zmq")) { - daemonArgs = daemonArgs + customDaemonArgs; + //these args will be deleted because DaemonManager::start will re-add them later. + //--no-zmq must be deleted. removing '--zmq-pub=tcp...' lets us blindly add '--zmq-pub tcp...' later without risking duplication. + var defaultArgs = ["--detach","--data-dir","--bootstrap-daemon-address","--prune-blockchain","--no-sync","--check-updates","--non-interactive","--max-concurrency","--no-zmq","--zmq-pub=tcp://127.0.0.1:18083"] + var customDaemonArgsArray = args.split(' '); + var flag = ""; + var allArgs = []; + var p2poolArgs = ["--zmq-pub tcp://127.0.0.1:18083"]; + //create an array (allArgs) of ['--arg value','--arg2','--arg3'] + for (let i = 0; i < customDaemonArgsArray.length; i++) { + if(!customDaemonArgsArray[i].startsWith("--")) { + flag += " " + customDaemonArgsArray[i] + } else { + if(flag){ + allArgs.push(flag) + } + flag = customDaemonArgsArray[i] + } + } + allArgs.push(flag) + //pop from allArgs if value is inside the deleteme array (defaultArgs) +allArgs = allArgs.filter( ( el ) => !defaultArgs.includes( el.split(" ")[0] ) ) + //append required p2pool flags + for (let i = 0; i < p2poolArgs.length; i++) { + if(!allArgs.includes(p2poolArgs[i])) { + allArgs.push(p2poolArgs[i]) + continue + } } - var success = daemonManager.start(daemonArgs, persistentSettings.nettype, persistentSettings.blockchainDataDir, persistentSettings.bootstrapNodeAddress, noSync, persistentSettings.pruneBlockchain) + var success = daemonManager.start(allArgs.join(" "), persistentSettings.nettype, persistentSettings.blockchainDataDir, persistentSettings.bootstrapNodeAddress, noSync, persistentSettings.pruneBlockchain) if (success) { startP2Pool() } |
