From 6b13876f502d7155015e8db066ab99a95d5bc332 Mon Sep 17 00:00:00 2001 From: professorviz Date: Fri, 17 Apr 2020 18:21:54 -0500 Subject: [PATCH 01/15] fixed peerlist --- src-electron/main-process/modules/daemon.js | 23 ++++++++++++--------- src-electron/main-process/modules/pool.js | 4 +++- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src-electron/main-process/modules/daemon.js b/src-electron/main-process/modules/daemon.js index 974c345..b190605 100644 --- a/src-electron/main-process/modules/daemon.js +++ b/src-electron/main-process/modules/daemon.js @@ -244,13 +244,16 @@ export class Daemon { zmqDirector.subscribe(x => { let daemon_info = { } - let results = JSON.parse(x.toString()); - results.result.info.isDaemonSyncd = false - if (results.result.info.height === results.result.info.target_height && results.result.info.height >= this.remote_height) { - results.result.info.isDaemonSyncd = true - } - daemon_info.info = results.result.info + let json = JSON.parse(x.toString()); + json.result.info.isDaemonSyncd = false + daemon_info.info = json.result.info this.daemon_info = daemon_info + if (json.result.info.height === json.result.info.target_height && json.result.info.height >= this.remote_height) { + json.result.info.isDaemonSyncd = true + this.heartbeatSlowAction(daemon_info) + return + } + this.sendGateway("set_daemon_data", daemon_info) }) } @@ -415,12 +418,12 @@ export class Daemon { }) } - heartbeatSlowAction() { + heartbeatSlowAction(daemon_info = {}) { let actions = [] if(this.local) { actions = [ this.getRPC("connections"), - this.getRPC("bans"), + this.getRPC("bans") //this.getRPC("txpool_backlog"), ] } else { @@ -432,8 +435,7 @@ export class Daemon { if(actions.length === 0) return Promise.all(actions).then((data) => { - let daemon_info = { - } + for (let n of data) { if(n == undefined || !n.hasOwnProperty("result") || n.result == undefined) continue @@ -445,6 +447,7 @@ export class Daemon { daemon_info.tx_pool_backlog = n.result.backlog } } + this.sendGateway("set_daemon_data", daemon_info) }) } diff --git a/src-electron/main-process/modules/pool.js b/src-electron/main-process/modules/pool.js index f213a21..9a3ffe0 100644 --- a/src-electron/main-process/modules/pool.js +++ b/src-electron/main-process/modules/pool.js @@ -112,6 +112,7 @@ export class Pool { this.connections = {} this.BlockTemplateParameters = this.calculateBlockTemplateParameters() + const wallet_address = this.config.mining.address; this.address_abbr = `${wallet_address.substring(0, 5)}...${wallet_address.substring(wallet_address.length - 5)}` @@ -149,7 +150,8 @@ export class Pool { let getblocktemplate = {"jsonrpc": "2.0", "id": "1", "method": "get_block_template", - "params": this.blocktemplateparameters} + "params": this.BlockTemplateParameters} + this.dealer.send(['', JSON.stringify(getblocktemplate)]) this.startHeartbeat() this.startServer().then(() => { From 1462ff886633c06154b9d25f69f7686331a6be48 Mon Sep 17 00:00:00 2001 From: professorviz Date: Fri, 17 Apr 2020 19:48:15 -0500 Subject: [PATCH 02/15] On/Off for settings/peers display. --- src-electron/main-process/modules/daemon.js | 19 +++++++++---------- src/components/settings.vue | 19 +++++++++++++++++-- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src-electron/main-process/modules/daemon.js b/src-electron/main-process/modules/daemon.js index b190605..a3d21da 100644 --- a/src-electron/main-process/modules/daemon.js +++ b/src-electron/main-process/modules/daemon.js @@ -250,8 +250,6 @@ export class Daemon { this.daemon_info = daemon_info if (json.result.info.height === json.result.info.target_height && json.result.info.height >= this.remote_height) { json.result.info.isDaemonSyncd = true - this.heartbeatSlowAction(daemon_info) - return } this.sendGateway("set_daemon_data", daemon_info) @@ -265,7 +263,15 @@ export class Daemon { case "ban_peer": this.banPeer(params.host, params.seconds) break - + case "get_peers": + clearInterval(this.heartbeat_slow) + if (params.enabled) { + this.heartbeat_slow = setInterval(() => { + this.heartbeatSlowAction() + }, 30 * 1000) // 30 seconds + this.heartbeatSlowAction() + } + break default: } } @@ -380,13 +386,6 @@ export class Daemon { this.heartbeatAction() }, this.local ? 5 * 1000 : 30 * 1000) // 5 seconds for local daemon, 30 seconds for remote this.heartbeatAction() - - clearInterval(this.heartbeat_slow) - this.heartbeat_slow = setInterval(() => { - this.heartbeatSlowAction() - }, 30 * 1000) // 30 seconds - this.heartbeatSlowAction() - } heartbeatAction() { diff --git a/src/components/settings.vue b/src/components/settings.vue index 19f93ec..3885a1e 100644 --- a/src/components/settings.vue +++ b/src/components/settings.vue @@ -13,6 +13,8 @@ toggle-color="primary" size="md" :options="tabs" + @input="getPeers(true)" + /> @@ -79,7 +81,7 @@ Peer list - + {{ entry.address }} Height: {{ entry.height }} @@ -156,7 +158,8 @@ export default { notify_no_payment_id: null, notify_empty_password: null, timeout: 10, - isVisible: false + isVisible: false, + enableGetPeers: false } }, mounted: function () { @@ -230,7 +233,19 @@ export default { } }, methods: { + getPeers(value){ + if (this.page === "peers") { + if (value && !this.enableGetPeers ) { + this.enableGetPeers = value + this.$gateway.send("daemon", "get_peers", {enabled: value}) + return + } + } + this.enableGetPeers = value + this.$gateway.send("daemon", "get_peers", {enabled: false}) + }, save() { + this.$gateway.send("daemon", "get_peers", {enabled: false}) this.$gateway.send("core", "save_config", this.pending_config); this.isVisible = false }, From 62f8a42c563fe89b84d93f77032ed2061add5a8a Mon Sep 17 00:00:00 2001 From: professorviz Date: Fri, 17 Apr 2020 20:12:10 -0500 Subject: [PATCH 03/15] reduced refresh frequency 10s for peers --- src-electron/main-process/modules/daemon.js | 3 +-- src/components/settings.vue | 12 +++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src-electron/main-process/modules/daemon.js b/src-electron/main-process/modules/daemon.js index a3d21da..280f643 100644 --- a/src-electron/main-process/modules/daemon.js +++ b/src-electron/main-process/modules/daemon.js @@ -268,7 +268,7 @@ export class Daemon { if (params.enabled) { this.heartbeat_slow = setInterval(() => { this.heartbeatSlowAction() - }, 30 * 1000) // 30 seconds + }, 10 * 1000) // 30 seconds this.heartbeatSlowAction() } break @@ -446,7 +446,6 @@ export class Daemon { daemon_info.tx_pool_backlog = n.result.backlog } } - this.sendGateway("set_daemon_data", daemon_info) }) } diff --git a/src/components/settings.vue b/src/components/settings.vue index 3885a1e..b384c8a 100644 --- a/src/components/settings.vue +++ b/src/components/settings.vue @@ -2,7 +2,7 @@ - + Settings @@ -237,12 +237,14 @@ export default { if (this.page === "peers") { if (value && !this.enableGetPeers ) { this.enableGetPeers = value - this.$gateway.send("daemon", "get_peers", {enabled: value}) - return + this.$gateway.send("daemon", "get_peers", {enabled: true}) } + } else { + this.enableGetPeers = value + this.$gateway.send("daemon", "get_peers", {enabled: false}) + if (this.page === "settings") + isVisible = value } - this.enableGetPeers = value - this.$gateway.send("daemon", "get_peers", {enabled: false}) }, save() { this.$gateway.send("daemon", "get_peers", {enabled: false}) From c5cfa237b30ad8805114d628c6ae53145eedc050 Mon Sep 17 00:00:00 2001 From: professorviz Date: Fri, 17 Apr 2020 20:13:17 -0500 Subject: [PATCH 04/15] removed debug comment --- src-electron/main-process/modules/pool.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-electron/main-process/modules/pool.js b/src-electron/main-process/modules/pool.js index 9a3ffe0..0fcf159 100644 --- a/src-electron/main-process/modules/pool.js +++ b/src-electron/main-process/modules/pool.js @@ -654,7 +654,7 @@ export class Pool { } } } - catch(error) {console.log('sheit ', error)} + catch(error) {} return null } From 7559e26f2df0ef95281792ab97c9cec30139fd55 Mon Sep 17 00:00:00 2001 From: professorviz Date: Fri, 17 Apr 2020 21:14:59 -0500 Subject: [PATCH 05/15] bug fix, missing QSlider component for settings/preferences --- quasar.conf.js | 3 ++- src-electron/main-process/modules/daemon.js | 2 +- src/components/settings.vue | 8 +++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/quasar.conf.js b/quasar.conf.js index b35a4c5..e52dfba 100644 --- a/quasar.conf.js +++ b/quasar.conf.js @@ -110,7 +110,8 @@ module.exports = function (ctx) { "QTh", "QTr", "QTd", - "QTableColumns" + "QTableColumns", + "QSlider" ], directives: [ "Ripple", diff --git a/src-electron/main-process/modules/daemon.js b/src-electron/main-process/modules/daemon.js index 280f643..1fa576e 100644 --- a/src-electron/main-process/modules/daemon.js +++ b/src-electron/main-process/modules/daemon.js @@ -268,7 +268,7 @@ export class Daemon { if (params.enabled) { this.heartbeat_slow = setInterval(() => { this.heartbeatSlowAction() - }, 10 * 1000) // 30 seconds + }, 30 * 1000) // 30 seconds this.heartbeatSlowAction() } break diff --git a/src/components/settings.vue b/src/components/settings.vue index b384c8a..e45ee70 100644 --- a/src/components/settings.vue +++ b/src/components/settings.vue @@ -240,10 +240,12 @@ export default { this.$gateway.send("daemon", "get_peers", {enabled: true}) } } else { - this.enableGetPeers = value + this.enableGetPeers = false this.$gateway.send("daemon", "get_peers", {enabled: false}) - if (this.page === "settings") - isVisible = value + } + if (!value) { + this.enableGetPeers = value + this.isVisible = value } }, save() { From 2c868791f3f261fab4c5116278da7963925bed1a Mon Sep 17 00:00:00 2001 From: professorviz Date: Fri, 17 Apr 2020 21:46:21 -0500 Subject: [PATCH 06/15] think i'm dun for the night --- src-electron/main-process/modules/backend.js | 2 +- src-electron/main-process/modules/daemon.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src-electron/main-process/modules/backend.js b/src-electron/main-process/modules/backend.js index 53e037b..54e4cf1 100644 --- a/src-electron/main-process/modules/backend.js +++ b/src-electron/main-process/modules/backend.js @@ -204,7 +204,7 @@ export class Backend { if (this.config_data.pool.server.enabled) { if (this.config_data.daemon.type === 'local_zmq') { if(event === "set_daemon_data") { - if(data.info.isDaemonSyncd) { + if(data.info && data.info.hasOwnProperty("isDaemonSyncd") && data.info.isDaemonSyncd) { this.pool.startWithZmq() } } diff --git a/src-electron/main-process/modules/daemon.js b/src-electron/main-process/modules/daemon.js index 1fa576e..280f643 100644 --- a/src-electron/main-process/modules/daemon.js +++ b/src-electron/main-process/modules/daemon.js @@ -268,7 +268,7 @@ export class Daemon { if (params.enabled) { this.heartbeat_slow = setInterval(() => { this.heartbeatSlowAction() - }, 30 * 1000) // 30 seconds + }, 10 * 1000) // 30 seconds this.heartbeatSlowAction() } break From 7cf168843e61fa89e08d64ec3eff3e7d40279c8e Mon Sep 17 00:00:00 2001 From: professorviz Date: Sat, 18 Apr 2020 04:32:36 -0500 Subject: [PATCH 07/15] enable for local daemon --- src/components/settings.vue | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/components/settings.vue b/src/components/settings.vue index e45ee70..632dd90 100644 --- a/src/components/settings.vue +++ b/src/components/settings.vue @@ -234,14 +234,16 @@ export default { }, methods: { getPeers(value){ - if (this.page === "peers") { - if (value && !this.enableGetPeers ) { - this.enableGetPeers = value - this.$gateway.send("daemon", "get_peers", {enabled: true}) + if (this.config.daemon.type && !this.config.daemon.type.includes("remote")) { + if (this.page === "peers") { + if (value && !this.enableGetPeers ) { + this.enableGetPeers = value + this.$gateway.send("daemon", "get_peers", {enabled: true}) + } + } else { + this.enableGetPeers = false + this.$gateway.send("daemon", "get_peers", {enabled: false}) } - } else { - this.enableGetPeers = false - this.$gateway.send("daemon", "get_peers", {enabled: false}) } if (!value) { this.enableGetPeers = value From b386ed51d54f59cb880e8b054e463ace2dc03032 Mon Sep 17 00:00:00 2001 From: ArqTras Date: Sat, 18 Apr 2020 23:24:52 +0200 Subject: [PATCH 08/15] Force uniform --- package-lock.json | 33 ++++++-------------- package.json | 2 +- src-electron/main-process/modules/backend.js | 2 +- src-electron/main-process/modules/pool.js | 11 ++++--- src/components/pool.vue | 8 ++--- 5 files changed, 21 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc73a68..66e98f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "arqma-electron-wallet", - "version": "3.0.0", + "version": "3.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -7802,14 +7802,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7824,20 +7822,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -7954,8 +7949,7 @@ "inherits": { "version": "2.0.4", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -7967,7 +7961,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -7982,7 +7975,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -7990,14 +7982,12 @@ "minimist": { "version": "1.2.5", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.9.0", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -8016,7 +8006,6 @@ "version": "0.5.3", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "^1.2.5" } @@ -8078,8 +8067,7 @@ "npm-normalize-package-bin": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "npm-packlist": { "version": "1.4.8", @@ -8107,8 +8095,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -8120,7 +8107,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -8234,7 +8220,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", diff --git a/package.json b/package.json index 95f811c..e15a3d2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "arqma-electron-wallet", - "version": "3.0.0", + "version": "3.0.1", "daemonVersion": "6.0.2", "description": "Modern GUI interface for Arqma Currency", "productName": "Arqma Electron Wallet", diff --git a/src-electron/main-process/modules/backend.js b/src-electron/main-process/modules/backend.js index 54e4cf1..4d48faf 100644 --- a/src-electron/main-process/modules/backend.js +++ b/src-electron/main-process/modules/backend.js @@ -299,7 +299,7 @@ export class Backend { this.send("set_app_data", { config: this.config_data }) - + this.pool.init(this.config_data) if(!originalServerState) { if (this.config_data.pool.server.enabled && this.config_data.daemon.type === "local_zmq") { diff --git a/src-electron/main-process/modules/pool.js b/src-electron/main-process/modules/pool.js index 0fcf159..3e4955e 100644 --- a/src-electron/main-process/modules/pool.js +++ b/src-electron/main-process/modules/pool.js @@ -91,7 +91,8 @@ export class Pool { let update_work = false if(!start && this.active) { - if(this.config.mining.address != options.pool.mining.address || this.config.mining.uniform != options.pool.mining.uniform) { + + if(this.config.mining.address != options.pool.mining.address) { update_work = true } } @@ -279,7 +280,7 @@ export class Pool { console.log(`Pool Dealer connected to port ${options.zmq_bind_ip}:${options.zmq_bind_port}`); const zmqDirector = fromEvent(this.dealer, "message"); zmqDirector.subscribe(x => { - let json = JSON.parse(x.toString()); + let json = JSON.parse(x.toString()); this.addBlockAndInformMiners(json) }) } @@ -624,12 +625,12 @@ export class Pool { calculateBlockTemplateParameters() { return {wallet_address: this.config.mining.address, - reserve_size: (this.config.mining.uniform || Object.keys(this.connections).length > 128) ? 8 : 1} + reserve_size: (true || Object.keys(this.connections).length > 128) ? 8 : 1} } addBlockAndInformMiners(data, force=false) { try { - const uniform = this.config.mining.uniform || Object.keys(this.connections).length > 128 + const uniform = true || Object.keys(this.connections).length > 128 if(data.hasOwnProperty("error")) { logger.log("error", "Error polling get_block_template %j", [data.error.message]) return data.error.message @@ -637,7 +638,7 @@ export class Pool { const block = data.result if(this.blocks == null || this.blocks.current == null || this.blocks.current.height < block.height || force) { - + logger.log("info", "New block to mine { address: %s, height: %d, difficulty: %d, uniform: %s }", [this.address_abbr, block.height, block.difficulty, uniform]) this.blocks.current = new Block(this, block, uniform) diff --git a/src/components/pool.vue b/src/components/pool.vue index 49cc635..7390335 100644 --- a/src/components/pool.vue +++ b/src/components/pool.vue @@ -141,7 +141,7 @@
- +
Pool status: @@ -769,8 +769,8 @@ export default { } return "Select wallet address" }, - settings_changed: function () { - this.settings.mining.uniform = !this.enableStats + settings_changed: function () { + this.settings.mining.uniform = !this.enableStats return this.currentSettings != JSON.stringify(this.settings) }, cols_workers_visible: function() { From 706268fe470a6e78a2d0afb1a08dfa4e0df63884 Mon Sep 17 00:00:00 2001 From: ArqTras Date: Sat, 18 Apr 2020 23:44:05 +0200 Subject: [PATCH 09/15] vardiff adjust --- src-electron/main-process/modules/backend.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src-electron/main-process/modules/backend.js b/src-electron/main-process/modules/backend.js index 4d48faf..ba6eee2 100644 --- a/src-electron/main-process/modules/backend.js +++ b/src-electron/main-process/modules/backend.js @@ -151,11 +151,11 @@ export class Backend { enabled: true, startDiff: 5000, minDiff: 1000, - maxDiff: 100000000, - targetTime: 30, + maxDiff: 1000000, + targetTime: 45, retargetTime: 60, - variancePercent: 30, - maxJump: 100, + variancePercent: 45, + maxJump: 30, fixedDiffSeparator: ".", }, }, From 4c38be8649f7e2af6fc6c04e5b43f322befc2786 Mon Sep 17 00:00:00 2001 From: ArqTras Date: Sat, 18 Apr 2020 23:47:35 +0200 Subject: [PATCH 10/15] vardiff --- src/components/pool.vue | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/components/pool.vue b/src/components/pool.vue index 7390335..ebf7479 100644 --- a/src/components/pool.vue +++ b/src/components/pool.vue @@ -894,9 +894,9 @@ export default { bindPort: { between: between(1024, 65535) }, }, varDiff: { - startDiff: { between: between(1000, 100000000) }, - minDiff: { between: between(1000, 100000000) }, - maxDiff: { between: between(1000, 100000000) }, + startDiff: { between: between(1000, 1000000) }, + minDiff: { between: between(1000, 1000000) }, + maxDiff: { between: between(1000, 1000000) }, targetTime: { between: between(15, 600) }, retargetTime: { between: between(30, 1200) }, variancePercent: { between: between(20, 80) }, @@ -941,11 +941,11 @@ export default { enabled: true, startDiff: 5000, minDiff: 1000, - maxDiff: 100000000, - targetTime: 30, + maxDiff: 1000000, + targetTime: 45, retargetTime: 60, - variancePercent: 30, - maxJump: 100, + variancePercent: 45, + maxJump: 30, fixedDiffSeparator: "." }, }, @@ -953,11 +953,11 @@ export default { enabled: true, startDiff: 5000, minDiff: 1000, - maxDiff: 100000000, - targetTime: 30, + maxDiff: 1000000, + targetTime: 45, retargetTime: 60, - variancePercent: 30, - maxJump: 100, + variancePercent: 45, + maxJump: 30, fixedDiffSeparator: "." }, cols_blocks: [ From bbc156f7fde50f9b6f4989ec777b7509e901f413 Mon Sep 17 00:00:00 2001 From: ArqTras Date: Sun, 19 Apr 2020 03:41:36 +0200 Subject: [PATCH 11/15] to rework Stats size --- src/components/pool.vue | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/components/pool.vue b/src/components/pool.vue index ebf7479..0df9122 100644 --- a/src/components/pool.vue +++ b/src/components/pool.vue @@ -409,7 +409,11 @@

- +
+
+ +
+
Blocks Found
@@ -663,6 +667,7 @@ + + From 21376b6eef02fa758e3e9d1f40ec0af1a15a284e Mon Sep 17 00:00:00 2001 From: ArqTras Date: Sun, 19 Apr 2020 21:53:14 +0200 Subject: [PATCH 15/15] version bump 3.0.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66e98f9..3dcf974 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "arqma-electron-wallet", - "version": "3.0.1", + "version": "3.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index e15a3d2..d8a4663 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "arqma-electron-wallet", - "version": "3.0.1", + "version": "3.0.2", "daemonVersion": "6.0.2", "description": "Modern GUI interface for Arqma Currency", "productName": "Arqma Electron Wallet",