From 8f1321d734cfaaa3be7f7e5283bc645832e50345 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Wed, 31 Aug 2022 01:28:14 +0700 Subject: [PATCH 01/11] fix(dashmate): update v18 for the mainnet nodes --- packages/dashmate/configs/system/mainnet.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dashmate/configs/system/mainnet.js b/packages/dashmate/configs/system/mainnet.js index 3bcf0e127cb..f5860f352e1 100644 --- a/packages/dashmate/configs/system/mainnet.js +++ b/packages/dashmate/configs/system/mainnet.js @@ -15,7 +15,7 @@ const mainnetConfig = lodashMerge({}, baseConfig, { }, core: { docker: { - image: 'dashpay/dashd:0.17.0.3', + image: 'dashpay/dashd:18.0.1', }, p2p: { port: 9999, From a8ef692cb0b075a17cbc095f71229426c15f5e09 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Tue, 20 Sep 2022 14:19:22 +0700 Subject: [PATCH 02/11] fix(dashmate): move masternode privkey to the core config --- packages/dashmate/docker-compose.yml | 2 -- packages/dashmate/src/core/startCoreFactory.js | 9 ++++----- packages/dashmate/templates/core/dash.conf.dot | 5 +++++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/dashmate/docker-compose.yml b/packages/dashmate/docker-compose.yml index db5e227cf56..61150b67f9b 100644 --- a/packages/dashmate/docker-compose.yml +++ b/packages/dashmate/docker-compose.yml @@ -12,8 +12,6 @@ services: - ${DASHMATE_HOME_DIR:?err}/${CONFIG_NAME:?err}/core/dash.conf:/dash/.dashcore/dash.conf command: - dashd - - -masternodeblsprivkey=${CORE_MASTERNODE_OPERATOR_PRIVATE_KEY} - volumes: core_data: diff --git a/packages/dashmate/src/core/startCoreFactory.js b/packages/dashmate/src/core/startCoreFactory.js index 29755cac978..8fea02f20bd 100644 --- a/packages/dashmate/src/core/startCoreFactory.js +++ b/packages/dashmate/src/core/startCoreFactory.js @@ -34,13 +34,12 @@ function startCoreFactory( const coreCommand = [ 'dashd', ]; + const isMasternode = config.get('core.masternode.enable'); - const operatorKey = config.get('core.masternode.operator.privateKey'); - if (options.wallet) { - coreCommand.push('--disablewallet=0'); - } else if (isMasternode && Boolean(operatorKey)) { - coreCommand.push(`-masternodeblsprivkey=${operatorKey}`); + if (isMasternode) { + // Check operatorPrivateKey is set + config.get('core.masternode.operator.privateKey', true); } if (options.addressIndex) { diff --git a/packages/dashmate/templates/core/dash.conf.dot b/packages/dashmate/templates/core/dash.conf.dot index 3847f0899e5..81f169302d2 100644 --- a/packages/dashmate/templates/core/dash.conf.dot +++ b/packages/dashmate/templates/core/dash.conf.dot @@ -41,6 +41,10 @@ zmqpubrawchainlocksig=tcp://0.0.0.0:29998 zmqpubrawchainlock=tcp://0.0.0.0:29998 zmqpubrawtxlocksig=tcp://0.0.0.0:29998 +{{? it.core.masternode.enable === 1}} +masternodeblsprivkey={{=it.core.masternode.operator.privateKey}} +{{?}} + {{? it.network === 'testnet'}}testnet=1 [test] {{?? it.network === 'local'}} @@ -69,3 +73,4 @@ port={{=it.core.p2p.port}} bind=0.0.0.0 rpcbind=0.0.0.0 rpcport={{=it.core.rpc.port}} + From f05991346f69d1bfbb4bf54e7295b947d132f64a Mon Sep 17 00:00:00 2001 From: pshenmic Date: Wed, 28 Sep 2022 14:06:13 +0700 Subject: [PATCH 03/11] fix(dashmate): disable masternode if wallet mode is on --- packages/dashmate/src/core/startCoreFactory.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/dashmate/src/core/startCoreFactory.js b/packages/dashmate/src/core/startCoreFactory.js index 8fea02f20bd..ed26b6ed38d 100644 --- a/packages/dashmate/src/core/startCoreFactory.js +++ b/packages/dashmate/src/core/startCoreFactory.js @@ -46,6 +46,11 @@ function startCoreFactory( coreCommand.push('--addressindex=1'); } + if (options.wallet) { + config.set('core.masternode.enable', 0) + config.set('core.masternode.operator.privateKey', null) + } + const coreContainer = await dockerCompose.runService( config.toEnvs(), 'core', From e2c4cb2a6fc45de6891a68eae8cb2a0eb147c611 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Wed, 28 Sep 2022 18:03:28 +0700 Subject: [PATCH 04/11] fix(dashmate): add missing core command --- packages/dashmate/src/core/startCoreFactory.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/dashmate/src/core/startCoreFactory.js b/packages/dashmate/src/core/startCoreFactory.js index ed26b6ed38d..2dc9cee6ea2 100644 --- a/packages/dashmate/src/core/startCoreFactory.js +++ b/packages/dashmate/src/core/startCoreFactory.js @@ -49,6 +49,8 @@ function startCoreFactory( if (options.wallet) { config.set('core.masternode.enable', 0) config.set('core.masternode.operator.privateKey', null) + + coreCommand.push('--disablewallet=0'); } const coreContainer = await dockerCompose.runService( From 92e0d5ee4e5812ce3ee6fbaa0e78725a604e21fd Mon Sep 17 00:00:00 2001 From: pshenmic Date: Thu, 29 Sep 2022 11:42:45 +0700 Subject: [PATCH 05/11] fix(dashmate): move privKey to arguments --- .../dashmate/src/core/startCoreFactory.js | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/dashmate/src/core/startCoreFactory.js b/packages/dashmate/src/core/startCoreFactory.js index 2dc9cee6ea2..1eb1bd5ff75 100644 --- a/packages/dashmate/src/core/startCoreFactory.js +++ b/packages/dashmate/src/core/startCoreFactory.js @@ -30,18 +30,10 @@ function startCoreFactory( }; // Run Core service - const coreCommand = [ 'dashd', ]; - const isMasternode = config.get('core.masternode.enable'); - - if (isMasternode) { - // Check operatorPrivateKey is set - config.get('core.masternode.operator.privateKey', true); - } - if (options.addressIndex) { coreCommand.push('--addressindex=1'); } @@ -51,6 +43,16 @@ function startCoreFactory( config.set('core.masternode.operator.privateKey', null) coreCommand.push('--disablewallet=0'); + } else { + const isMasternode = config.get('core.masternode.enable'); + + if (isMasternode) { + // Check operatorPrivateKey is set + const masternodePrivateKey = config.get('core.masternode.operator.privateKey', true); + + coreCommand.push('-masternodeblsprivkey') + coreCommand.push(masternodePrivateKey) + } } const coreContainer = await dockerCompose.runService( @@ -78,7 +80,6 @@ function startCoreFactory( ); // Wait Core to start - await waitForCoreStart(coreService); return coreService; From c658b866cbd0fe27af97dffcf858c04416c0d753 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Thu, 29 Sep 2022 12:16:37 +0700 Subject: [PATCH 06/11] fix(dashmate): add missing --disablewallet and fix privkey arg pass --- packages/dashmate/src/core/startCoreFactory.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/dashmate/src/core/startCoreFactory.js b/packages/dashmate/src/core/startCoreFactory.js index 1eb1bd5ff75..9c273a1dd92 100644 --- a/packages/dashmate/src/core/startCoreFactory.js +++ b/packages/dashmate/src/core/startCoreFactory.js @@ -44,14 +44,15 @@ function startCoreFactory( coreCommand.push('--disablewallet=0'); } else { + coreCommand.push('--disablewallet=1'); + const isMasternode = config.get('core.masternode.enable'); if (isMasternode) { // Check operatorPrivateKey is set const masternodePrivateKey = config.get('core.masternode.operator.privateKey', true); - coreCommand.push('-masternodeblsprivkey') - coreCommand.push(masternodePrivateKey) + coreCommand.push(`-masternodeblsprivkey=${masternodePrivateKey}`) } } From 31c78c4bcefbb18cc09138c02b94fc8e184d6f95 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Thu, 29 Sep 2022 13:23:37 +0700 Subject: [PATCH 07/11] fix(dashmate): remove redundant --- packages/dashmate/src/core/startCoreFactory.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/dashmate/src/core/startCoreFactory.js b/packages/dashmate/src/core/startCoreFactory.js index 9c273a1dd92..54cf4e92f39 100644 --- a/packages/dashmate/src/core/startCoreFactory.js +++ b/packages/dashmate/src/core/startCoreFactory.js @@ -39,9 +39,6 @@ function startCoreFactory( } if (options.wallet) { - config.set('core.masternode.enable', 0) - config.set('core.masternode.operator.privateKey', null) - coreCommand.push('--disablewallet=0'); } else { coreCommand.push('--disablewallet=1'); From 146f326d1ac9a1ff3c5bcca0ee7ab4e2e353203f Mon Sep 17 00:00:00 2001 From: pshenmic Date: Thu, 29 Sep 2022 13:26:27 +0700 Subject: [PATCH 08/11] fix(dashmate): add task title --- .../src/listr/tasks/platform/waitForNodeToBeReadyTaskFactory.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/dashmate/src/listr/tasks/platform/waitForNodeToBeReadyTaskFactory.js b/packages/dashmate/src/listr/tasks/platform/waitForNodeToBeReadyTaskFactory.js index 93073d9dd41..8cb7edce872 100644 --- a/packages/dashmate/src/listr/tasks/platform/waitForNodeToBeReadyTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/platform/waitForNodeToBeReadyTaskFactory.js @@ -17,6 +17,7 @@ function waitForNodeToBeReadyTaskFactory( async function waitForNodeToBeReadyTask(config) { return new Listr([ { + title: `Wait for node ${config.getName} to be ready`, task: async () => { const port = config.get('platform.drive.tenderdash.rpc.port'); From 9cbc8cc9032150f8388e206be11d5a6e4fbd8fce Mon Sep 17 00:00:00 2001 From: pshenmic Date: Thu, 29 Sep 2022 17:29:39 +0700 Subject: [PATCH 09/11] feat(dashmate): remove core command from startCore --- .../dashmate/src/core/startCoreFactory.js | 20 ++++++++++--------- .../waitForNodeToBeReadyTaskFactory.js | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/dashmate/src/core/startCoreFactory.js b/packages/dashmate/src/core/startCoreFactory.js index 54cf4e92f39..6305248a489 100644 --- a/packages/dashmate/src/core/startCoreFactory.js +++ b/packages/dashmate/src/core/startCoreFactory.js @@ -29,6 +29,13 @@ function startCoreFactory( ...options, }; + const isMasternode = config.get('core.masternode.enable'); + + if (isMasternode) { + // Check operatorPrivateKey is set (error will be thrown if not) + config.get('core.masternode.operator.privateKey', true); + } + // Run Core service const coreCommand = [ 'dashd', @@ -39,18 +46,13 @@ function startCoreFactory( } if (options.wallet) { + if (isMasternode) { + throw new Error('You cannot run masternode with wallet mode on') + } + coreCommand.push('--disablewallet=0'); } else { coreCommand.push('--disablewallet=1'); - - const isMasternode = config.get('core.masternode.enable'); - - if (isMasternode) { - // Check operatorPrivateKey is set - const masternodePrivateKey = config.get('core.masternode.operator.privateKey', true); - - coreCommand.push(`-masternodeblsprivkey=${masternodePrivateKey}`) - } } const coreContainer = await dockerCompose.runService( diff --git a/packages/dashmate/src/listr/tasks/platform/waitForNodeToBeReadyTaskFactory.js b/packages/dashmate/src/listr/tasks/platform/waitForNodeToBeReadyTaskFactory.js index 8cb7edce872..aaac974d035 100644 --- a/packages/dashmate/src/listr/tasks/platform/waitForNodeToBeReadyTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/platform/waitForNodeToBeReadyTaskFactory.js @@ -17,7 +17,7 @@ function waitForNodeToBeReadyTaskFactory( async function waitForNodeToBeReadyTask(config) { return new Listr([ { - title: `Wait for node ${config.getName} to be ready`, + title: `Wait for node ${config.getName()} to be ready`, task: async () => { const port = config.get('platform.drive.tenderdash.rpc.port'); From aa465d7646cbb4a15c9d9e65a7fd3ecd5349fdd4 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Thu, 29 Sep 2022 18:35:31 +0700 Subject: [PATCH 10/11] fix(dashmate): fix template --- packages/dashmate/templates/core/dash.conf.dot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dashmate/templates/core/dash.conf.dot b/packages/dashmate/templates/core/dash.conf.dot index 81f169302d2..6887ce0edf3 100644 --- a/packages/dashmate/templates/core/dash.conf.dot +++ b/packages/dashmate/templates/core/dash.conf.dot @@ -41,7 +41,7 @@ zmqpubrawchainlocksig=tcp://0.0.0.0:29998 zmqpubrawchainlock=tcp://0.0.0.0:29998 zmqpubrawtxlocksig=tcp://0.0.0.0:29998 -{{? it.core.masternode.enable === 1}} +{{? it.core.masternode.enable === true}} masternodeblsprivkey={{=it.core.masternode.operator.privateKey}} {{?}} From 8e1508fbf7f385341fec317f52301525064d397d Mon Sep 17 00:00:00 2001 From: pshenmic Date: Thu, 29 Sep 2022 19:19:06 +0700 Subject: [PATCH 11/11] feat(dashmate): render dash.conf when setting operator privateKey --- .../src/listr/tasks/setup/local/configureCoreTaskFactory.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/dashmate/src/listr/tasks/setup/local/configureCoreTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/configureCoreTaskFactory.js index a7bdae22a1e..74cf55ec136 100644 --- a/packages/dashmate/src/listr/tasks/setup/local/configureCoreTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/local/configureCoreTaskFactory.js @@ -158,6 +158,10 @@ function configureCoreTaskFactory( config.set('core.masternode.operator.privateKey', ctx.operator.privateKey); + // Write configs + const configFiles = renderServiceTemplates(config); + writeServiceConfigs(config.getName(), configFiles); + // eslint-disable-next-line no-param-reassign task.output = `Public key: ${ctx.operator.publicKey}\nPrivate key: ${ctx.operator.privateKey}`; },