Skip to content

Commit 68d575d

Browse files
PastaPastaPastaUdjinM6
authored andcommitted
Masternodes should have no wallet enabled (#3084)
1 parent 6b5b70f commit 68d575d

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

src/init.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,11 @@ void InitParameterInteraction()
908908
// masternodes MUST accept connections from outside
909909
gArgs.ForceSetArg("-listen", "1");
910910
LogPrintf("%s: parameter interaction: -masternode=1 -> setting -listen=1\n", __func__);
911+
#ifdef ENABLE_WALLET
912+
// masternode should not have wallet enabled
913+
gArgs.ForceSetArg("-disablewallet", "1");
914+
LogPrintf("%s: parameter interaction: -masternode=1 -> setting -disablewallet=1\n", __func__);
915+
#endif // ENABLE_WALLET
911916
if (gArgs.GetArg("-maxconnections", DEFAULT_MAX_PEER_CONNECTIONS) < DEFAULT_MAX_PEER_CONNECTIONS) {
912917
// masternodes MUST be able to handle at least DEFAULT_MAX_PEER_CONNECTIONS connections
913918
gArgs.ForceSetArg("-maxconnections", itostr(DEFAULT_MAX_PEER_CONNECTIONS));
@@ -1900,13 +1905,18 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
19001905

19011906
// ********************************************************* Step 10a: Prepare Masternode related stuff
19021907
fMasternodeMode = gArgs.GetBoolArg("-masternode", false);
1903-
// TODO: masternode should have no wallet
19041908

19051909
if(fLiteMode && fMasternodeMode) {
19061910
return InitError(_("You can not start a masternode in lite mode."));
19071911
}
19081912

19091913
if(fMasternodeMode) {
1914+
#ifdef ENABLE_WALLET
1915+
if (!vpwallets.empty()) {
1916+
return InitError(_("You can not start a masternode with wallet enabled."));
1917+
}
1918+
#endif //ENABLE_WALLET
1919+
19101920
LogPrintf("MASTERNODE:\n");
19111921

19121922
std::string strMasterNodeBLSPrivKey = gArgs.GetArg("-masternodeblsprivkey", "");

test/functional/dip3-deterministicmns.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def run_test(self):
143143
for i in range(20):
144144
node = self.nodes[i % len(self.nodes)]
145145
self.test_invalid_mn_payment(node)
146-
node.generate(1)
146+
self.nodes[0].generate(1)
147147
self.sync_all()
148148

149149
self.log.info("testing ProUpServTx")
@@ -378,7 +378,7 @@ def mine_block(self, node, vtx=[], miner_address=None, mn_payee=None, mn_amount=
378378

379379
coinbasevalue = bt['coinbasevalue']
380380
if miner_address is None:
381-
miner_address = node.getnewaddress()
381+
miner_address = self.nodes[0].getnewaddress()
382382
if mn_payee is None:
383383
if isinstance(bt['masternode'], list):
384384
mn_payee = bt['masternode'][0]['payee']

test/functional/llmq-chainlocks.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,24 @@ def run_test(self):
4848

4949
# Isolate node, mine on another, and reconnect
5050
isolate_node(self.nodes[0])
51+
node0_mining_addr = self.nodes[0].getnewaddress()
5152
node0_tip = self.nodes[0].getbestblockhash()
52-
self.nodes[1].generate(5)
53+
self.nodes[1].generatetoaddress(5, node0_mining_addr)
5354
self.wait_for_chainlock_tip(self.nodes[1])
5455
assert(self.nodes[0].getbestblockhash() == node0_tip)
5556
reconnect_isolated_node(self.nodes[0], 1)
56-
self.nodes[1].generate(1)
57+
self.nodes[1].generatetoaddress(1, node0_mining_addr)
5758
self.wait_for_chainlock(self.nodes[0], self.nodes[1].getbestblockhash())
5859

5960
# Isolate node, mine on both parts of the network, and reconnect
6061
isolate_node(self.nodes[0])
6162
self.nodes[0].generate(5)
62-
self.nodes[1].generate(1)
63+
self.nodes[1].generatetoaddress(1, node0_mining_addr)
6364
good_tip = self.nodes[1].getbestblockhash()
6465
self.wait_for_chainlock_tip(self.nodes[1])
6566
assert(not self.nodes[0].getblock(self.nodes[0].getbestblockhash())["chainlock"])
6667
reconnect_isolated_node(self.nodes[0], 1)
67-
self.nodes[1].generate(1)
68+
self.nodes[1].generatetoaddress(1, node0_mining_addr)
6869
self.wait_for_chainlock(self.nodes[0], self.nodes[1].getbestblockhash())
6970
assert(self.nodes[0].getblock(self.nodes[0].getbestblockhash())["previousblockhash"] == good_tip)
7071
assert(self.nodes[1].getblock(self.nodes[1].getbestblockhash())["previousblockhash"] == good_tip)
@@ -87,7 +88,7 @@ def run_test(self):
8788
# Now let the node which is on the wrong chain reorg back to the locked chain
8889
self.nodes[0].reconsiderblock(good_tip)
8990
assert(self.nodes[0].getbestblockhash() != good_tip)
90-
self.nodes[1].generate(1)
91+
self.nodes[1].generatetoaddress(1, node0_mining_addr)
9192
self.wait_for_chainlock(self.nodes[0], self.nodes[1].getbestblockhash())
9293
assert(self.nodes[0].getbestblockhash() == self.nodes[1].getbestblockhash())
9394

0 commit comments

Comments
 (0)