Reuben's Start Multiple Masternodes from One Wallet Guide (start-many)

vitriol

New Member
Mar 11, 2015
10
5
3
This is how my remote dash.conf looks like on two masternodes on the same server:

Masternode 1
---------------------------------------
#----
rpcuser=xxxxx
rpcpassword=xxxxxx
rpcallowip=127.0.0.1
masternodeaddr=my external ip:9999
bind=127.0.0.2
bind=my external ip
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=200
#--------------------
# change ami_public_ip to public ip address which you connected by ssh
externalip=my external ip
#---------------------
#------------
masternode=1
addnode=23.23.186.131
#----------
masternodeprivkey=xxxxxxxxxxxxxxxxxxxxxxxxxx

---------------------------------------------------------------------------------

Masternode 2

#----
rpcuser=xxxxxxxxxxxxxx
rpcpassword=xxxxxxxxxx
rpcallowip=127.0.0.1
rpcport=8003
masternodeaddr=my external ip:9999
bind=127.0.0.4
bind=my external ip
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=200
#--------------------
# change ami_public_ip to public ip address which you connected by ssh
externalip=my external ip
#---------------------
#------------
masternode=1
addnode=23.23.186.131
#----------
masternodeprivkey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

I have 2 mns running on the same server, using 2 separate ips. I used a similar config to yours. When i issue start-many i get the confirmation the both are running, and withing 5 minutes i can also verify that both IPs are up. However while later, one of them goes down for no apparent reason.

Any ideas to help me out with this? Here's my dash.conf on the server:

rpcuser=xxxxx
rpcpassword=xxxxxx
rpcallowip=127.0.0.1
bind=127.0.0.1
bind=external ip1
masternodeaddr=external ip1:9999
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=256
masternode=1
masternodeprivkey=XXXXXXXXXprivkey1
addnode=23.23.186.131


rpcuser=xxxxx (same user as above mn)
rpcpassword=xxxxxx (same password as above)
rpcallowip=127.0.0.1
bind=127.0.0.2
bind=external ip2
masternodeaddr=external ip2:9999
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=256
masternode=1
masternodeprivkey=privkey2
addnode=23.23.186.131
 

crowning

Well-known Member
May 29, 2014
1,414
1,997
183
Alpha Centauri Bc
I have 2 mns running on the same server, using 2 separate ips. I used a similar config to yours. When i issue start-many i get the confirmation the both are running, and withing 5 minutes i can also verify that both IPs are up. However while later, one of them goes down for no apparent reason.

Any ideas to help me out with this? Here's my dash.conf on the server:
"bind"= <your_external_ip1> and "bind"= <your_external_ip2>. Remove those bind=127.0.0.x lines.

And, you have to set "rpcport" to 2 different ports because when both dashd try to open a RPC-socket on 127.0.0.1 one will fail.
 

vitriol

New Member
Mar 11, 2015
10
5
3
"bind"= <your_external_ip1> and "bind"= <your_external_ip2>. Remove those bind=127.0.0.x lines.

And, you have to set "rpcport" to 2 different ports because when both dashd try to open a RPC-socket on 127.0.0.1 one will fail.
Ugh, removed the bind=127.0.0.x part, but im not sure where to put the different ports for rpc.
Wild guess is rpcallowip=127.0.0.1:porthere?
Problem is I dont know which port to use
 

splawik21

Moderator
Dash Core Team
Foundation Member
Dash Support Group
Apr 8, 2014
1,941
1,303
1,283
Ugh, removed the bind=127.0.0.x part, but im not sure where to put the different ports for rpc.
Wild guess is rpcallowip=127.0.0.1:porthere?
Problem is I dont know which port to use
use different for each dash.conf
port=9998
port=9997
etc....

edit: I meant what is in the bottom ;)
 

moli

Grizzled Member
Aug 5, 2014
3,255
1,830
1,183
actually
rpcport=9998
rpcport=9997
etc
:rolleyes:
But why does he have to do all this? Can't he just have these lines for all of his MNs in one wallet and it still works on Mainnet: (omit the line numbers)

  1. rpcuser=SomeRandomString
  2. rpcpassword=EvenLongerRandomString
  3. rpcallowip=127.0.0.1
  4. listen=0
  5. server=1
  6. daemon=1
  7. logtimestamps=1
 

vitriol

New Member
Mar 11, 2015
10
5
3
Update: I tried setting port to a diff value, then i tried setting rpcport to a different value. Same result, one of the two masternodes goes down after a few minutes. Does anyone know if I can start the daemon to only log errors and not all mn debug messages? At least that way i can find out what s going on
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
But why does he have to do all this? Can't he just have these lines for all of his MNs in one wallet and it still works on Mainnet: (omit the line numbers)

  1. rpcuser=SomeRandomString
  2. rpcpassword=EvenLongerRandomString
  3. rpcallowip=127.0.0.1
  4. listen=0
  5. server=1
  6. daemon=1
  7. logtimestamps=1
..... Here's my dash.conf on the server:
:rolleyes:

Update: I tried setting port to a diff value, then i tried setting rpcport to a different value. Same result, one of the two masternodes goes down after a few minutes. Does anyone know if I can start the daemon to only log errors and not all mn debug messages? At least that way i can find out what s going on
Send me debug.log files from both datadir-s on your server pls. I'll have a look. [email protected]
 
  • Like
Reactions: moli and tungfa

vitriol

New Member
Mar 11, 2015
10
5
3
:rolleyes:



Send me debug.log files from both datadir-s on your server pls. I'll have a look. [email protected]
UdjinM6, you the man! Alas, feeling a bit idiotic, now that u mention it, i have to ask...both data dirs?? I have not seen any mention anywhere that there should be TWO data dirs. I only had one, 1 config file with the concatenated content u see above.
Sigh, i wish these things would be more explicit.
I will try and run 2 daemons with 2 configs, see how that works
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
UdjinM6, you the man! Alas, feeling a bit idiotic, now that u mention it, i have to ask...both data dirs?? I have not seen any mention anywhere that there should be TWO data dirs. I only had one, 1 config file with the concatenated content u see above.
Sigh, i wish these things would be more explicit.
I will try and run 2 daemons with 2 configs, see how that works
Aha! Yep, that's the problem.
You need 2 datadirs with separate dash.conf in each one and ran daemons like
Code:
dashd -datadir=/full/path/to/datadir1
dashd -datadir=/full/path/to/datadir2
 
  • Like
Reactions: moli

rawdash

New Member
May 8, 2015
4
3
3
Hi there,

Could someone point me what else can I check - mainly - I'm able to start-many two of my masternodes:

{
"overall" : "Successfully started 2 masternodes, failed to start 0, total 2",
"detail" : {
"status" : {
"alias" : "MN1",
"result" : "successful"
},
"status" : {
"alias" : "MN2",
"result" : "successful"
}
}
}

I can see them on dashninja.pl, but as soon as I turn off my cold wallet the masternodes disappear :-(
dash.conf on remote servers:

rpcuser=A93Aap5Nr80OS543OJQWoJWYcWoMFt2njKbBiUnzA34YEocBfegGrOiHBfpgX8mFSKmOJsej
rpcpassword=KGFU9nQ3GY43hIeKWRmXPexXtlvimaM2CprehLhiRBsSi3JHj5Zot2lHbMZZNJOz3oiltTh0J
#rpcallowip=127.0.0.1
listen=1
server=1
daemon=1
logtimestamps=1


rpcuser=A93AaC93jncL0iWCPb32maRHdxfZNUyb6Ejl1fPfrY4CA2nf25Z5Q45qfL7nT12lqywujsLLQsB0SEocBf
rpcpassword=KGFU9nQGYhIeKWRmXPexX4el61Ke1lA981Ncrc8RFjxySVwZdvfSXEqebMZZNJOz3oiltTh0J
#rpcallowip=127.0.0.1
listen=1
server=1
daemon=1
logtimestamps=1

masternode.conf and dash.conf on local (cold wallet):



MN1 IPaddress1:9999 MASTERNODEPRIVKEY TRANSACTIONHASH 0
MN2 IPaddress2:9999 MASTERNODEPRIVKEY TRANSACTIONHASH 1



rpcuser=R12AqewN43DOrewMFN2f4U32fM432fB2Ef32fR2fS2fA2fN2fD43fL4gt65Eh76Tj76Tj76EuR65yS54
rpcpassword=LgfdsO3214NfeGttgE54fsdfsdg5g335Rgg6R45gA45gN5Dg5OgM54gS5gT5Rg5Ig5NgG5gO5Fg5
rpcallowip=127.0.0.1
listen=0
server=1
daemon=1
logtimestamps=1
addnode=23.23.186.131


Am I missing something??

Dash version - "version" : 120049,

Best regards
 

splawik21

Moderator
Dash Core Team
Foundation Member
Dash Support Group
Apr 8, 2014
1,941
1,303
1,283
dash version @ local ? same or lower?

For local you only need the masternode.conf file and put there this:
alias_of_MN IP:9999 generated_privkey TX_ID INDEX_NR

On remote config - dash.conf put these:
Code:
rpcuser=
rpcpassword=
rpcallowip=127.0.01
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=100
addnode=23.23.186.131
masternode=1
masternodeprivkey=same_privkey_as_for_local_config
start from local and tell me if it disappears now....
 
Last edited by a moderator:

rawdash

New Member
May 8, 2015
4
3
3
Thank for a quick reply.
In first post I see - "Please note that when using masternode.conf, dash.conf no longer needs to specify "masternode=1, masternodeprivkey and ip" anymore as this is all integrated into masternode.conf."

Dash version - remote and local = newest 0.12.49
Had to add masternodeprivkey also. Testing :)
 

splawik21

Moderator
Dash Core Team
Foundation Member
Dash Support Group
Apr 8, 2014
1,941
1,303
1,283
you do not need to put masternode=1 on local..... your local needs only one line in config ....

in your remote, YES, you need to have the code above....

edit: to clarify the things....

on local you needs only masternode.conf

on remote you needs only dash.conf :)
 
Last edited by a moderator:

rawdash

New Member
May 8, 2015
4
3
3
I understand now.
Well, at least now I see "EnableHotColdMasterNode() - Enabled! You may shut down the cold daemon." on remote debug.log's :)
Looks good :) Switched off cold wallet and I still see my MN's on dashninja.pl :)
Thanks a lot Spławik :) (dzięki bardzo Kolego :)
 
  • Like
Reactions: splawik21 and moli

yamada

New Member
May 26, 2014
31
21
8
Hi guys,

I have a problem here.

Local dash.conf = empty

Local masternode.conf entries are correct.

It always says

you must set masternode=1 in the configuration
(code -1)

when starting the nodes from console.

But when I add that to dash.conf it also wants a mnprvkey there..

What am I doing wrong?
 

splawik21

Moderator
Dash Core Team
Foundation Member
Dash Support Group
Apr 8, 2014
1,941
1,303
1,283
How do we unlock the coins if we want to sell a node?
you need to use coincontrol to unlock the 1000 vin OR simply remove the masternode.conf file from datadir that way the 1000 vin is not locked an you can move it easly.
 
Last edited by a moderator:
  • Like
Reactions: r-ando

TroyDASH

Well-known Member
Jul 31, 2015
1,254
797
183
If you use start-many with masternode.conf, I assume the RPC username and password needs to be the same on all of the remote masternode servers? I used to have separate dash.conf files with different rpc usernames and passwords for each wallet.
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
If you use start-many with masternode.conf, I assume the RPC username and password needs to be the same on all of the remote masternode servers? I used to have separate dash.conf files with different rpc usernames and passwords for each wallet.
Nope, you can keep them different - start-many uses internal protocol to activate masternodes and doesn't use remote rpc at all
 

paraman

Active Member
Foundation Member
Mar 9, 2014
23
4
103
After setting up two masternodes with one wallet like described in this guide, none of both has a payment for 12 days now. start-many says both started successfully, dashman says up and running, dashwhale both thumbs up and also dashninja shows them as port open and active. What can be the problem?
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
After setting up two masternodes with one wallet like described in this guide, none of both has a payment for 12 days now. start-many says both started successfully, dashman says up and running, dashwhale both thumbs up and also dashninja shows them as port open and active. What can be the problem?
Mind sharing vins or addresses via PM?

EDIT: I can't find any active MN that is up for ~12 days and wasn't paid https://dashninja.pl/masternodes.html
Did you shut them down or were they paid?
 
Last edited by a moderator:

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
Because they were not paid, I restarted them yesterday. One address is XkQFptVCRLJdsyaBGGMPogqdVqGnR4gKBB.
Oh, so they were up for quite a long time now, I misread your previous message, sorry.

As for the problem itself, I checked logs on my node
...
2016-01-12 14:33:34 mnb - Got updated entry for 104.238.173.58:9999
....
2016-01-17 13:18:55 mnb - Got updated entry for 104.238.173.58:9999
...
This means you sent a message to start a node that was already up.

That's when I reread your message again and found this
start-many says both started successfully
So, are you checking if you node is up by issuing "start-many"? If so - that's the wrong way, you are pushing your nodes to the end of the list which explains why they were not paid.
You should use "masternode list full XkQFptVCRLJdsyaBGGMPogqdVqGnR4gKBB" to get info about a single one:
Code:
{
    "fe01990a5b32b253798cecfaf943ef0d41c30f3d1caffed4564433eb69257804-0" : "  ENABLED 70103 XkQFptVCRLJdsyaBGGMPogqdVqGnR4gKBB   104.238.173.58:9999 1453366941    87315 0"
}
or "masternode list-conf" to get info about every MN listed in your masternode.conf:
Code:
{
    "masternode" : {
        "alias" : "mn1",
        "address" : "100.10.100.101:9999",
        "privateKey" : "7blablablablablablablablablalbalbalblalbalblab",
        "txHash" : "blablablablablablablablablablablablablablablablablablablablabla",
        "outputIndex" : "0",
        "status" : "ENABLED"
    },
    "masternode" : {
        "alias" : "mn2",
        "address" : "100.10.100.102:9999",
        "privateKey" : "7blablablablablablablablablalbalbalblalbalblac",
        "txHash" : "blablablablablablablablablablablablablablablablablablablablabla",
        "outputIndex" : "0",
        "status" : "ENABLED"
    },
    .....
    .....
    .....
    "masternode" : {
        "alias" : "mn99",
        "address" : "100.10.100.199:9999",
        "privateKey" : "7blablablablablablablablablalbalbalblalbalblzz",
        "txHash" : "blablablablablablablablablablablablablablablablablablablablabla",
        "outputIndex" : "0",
        "status" : "ENABLED"
    }
}