Welcome to the Dash Forum!

Please sign up to discuss the most innovative cryptocurrency!

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

Discussion in 'Masternode Guides' started by BolehVPN, Feb 17, 2015.

  1. BolehVPN

    BolehVPN Active Member

    Joined:
    Nov 24, 2014
    Messages:
    195
    Likes Received:
    301
    Trophy Points:
    123
    Updated Guide 8 Feb 2016:

    https://www.bolehvpn.net/blog/2016/02/07/what-is-a-dash-masternode-and-how-do-i-set-up-one/

    Also available here:

    https://dashtalk.org/threads/reubens-detailed-masternode-setup-and-maintenance-guide.7984/

    This guide will no longer be maintained but is useful for the wallet consolidation.

    Last Update: 28 March 2015 (Rebranding to DASH and updates on alternate ways of finding index and transaction ID)

    I had some problems finding documentation on this so am putting a first draft of this guide for other people to use in the future.

    DrkMiner's guide is unfortunately out of date as at 17 February 2015 but I have adapted it as it illustrates the first step correctly.

    What this Guide Does

    Enables you to host several local masternodes from one wallet and to start all of them from that wallet. This guide assumes you already know how to start a Masternode. If not, head on to Tao's Masternode Guide for Dummies.

    This was done with the following environment:
    Local: Windows 8.1 64 bit
    Remote: Ubuntu 14.04 64 bit
    Dash Version: 0.11.1.26

    However the instructions and principles should apply to other OSes unless Dash changes its code format.

    STEP 1: Consolidate all your Masternode DASH's on one wallet (Adapted from DRKMiner's Guide)

    We have two setup options:


    a. New wallet setup - creation on new addresses and DASH transfer.
    b. Consolidation - transfer several "old" wallets into one new wallet.


    a. New wallet setup
    • Create a new address for each Masternode and encrypt the wallet. You do this by opening terminal and following the following instructions.
    Enter the following command: "masternode genkey" and press ENTER.

    You will see a long string of numbers and letters.

    Please copy/paste this string to the new notepad file on your Desktop. This is the key you will need to verify your Masternode later in the process.

    Enter the following command: "getaccountaddress 0" and press ENTER.
    • Please note that a normal Dash address is not the same as an address created in this manner!
    • IMPORTANT! Please backup the wallet now. Always backup the wallet BEFORE transferring any DRK!
    • Transfer 1000 DASH to each newly created address in one transaction.
    b. Consolidation of old wallets setup
    • If you encrypted your wallet, you will need to unlock it before you dump the keys from your old addresses. Command: "walletpassphrase <passphrase> <timeout>"
    • Get the private keys of all "old" addresses (Hot wallets). Command : "dumpprivkey <your-old-Dash-address-here>"
    • Install a new wallet (one address zero DASH).
    • If you encrypted your wallet, you will need to unlock it before you import the keys. Command: "walletpassphrase <passphrase> <timeout>"
    • Now on the new wallet "importprivkey <my priv key> <label>" be patient might take some time to rescan the blockchain and import all the previous transactions of that address.
    • Note: If you are doing multiple imports of private keys, you can use "importprivkey <my priv key> <label> false". The false statement prevents the client from resyncing. Only once you've reached the last key that you wanted to import, then just go ahead with "importprivkey <my priv key> <optional label>" and it will resync with all the imported addresses in one sitting.
    • All newly imported address end up in the "Addresses" Tab. Leave the Address field as is!
      Click "OK", that will move the address to the "Receive" Tab.
    • After all addresses are imported, encrypt the wallet and create a backup!
    • Keep a backup of ALL "old" wallets for security.
    IMPORTANT: In both cases, please create a dash.conf with the details below. 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.conf only needs to contain:
    Code:
    rpcuser=SomeRandomString
    rpcpassword=EvenLongerRandomString
    rpcallowip=127.0.0.1
    listen=0
    server=1
    daemon=1
    logtimestamps=1
    STEP 2: Create masternode.conf on your local wallet

    masternode.conf is where you list all your Masternodes that you want started.

    For Windows:
    Browse to %appdata%\Dash This will bring you to the Dash configuration folder.
    Create a new notepad document and name it "masternode.conf"
    Enter in your masternodes in the following format:

    ALIAS IP:9999 MASTERNODEPRIVKEY TRANSACTIONHASH INDEX

    ALIAS: Any name that you want to call your masternode
    IP: Your masternode IP
    MASTERNODEPRIVKEY: This is the private key that you placed in your remote configuration
    TRANSACTIONHASH: This is the transaction hash for the transaction in which you got your 1000 DASH deposited.
    INDEX: This is the Index of your transaction for that address I'll show you how to get it in a bit.

    So how do you get your Transaction Hash and Index?

    You can just enter in your masternode address in a Dash Block Explorer such as Dash Explorer and then click on the transaction ID that first put your 1000 DASH in. The transaction ID is what you will be using and you will also see an Index number that corresponds with the 1000 DASH which should be either 1 or 0.

    OR alternatively

    Open your wallet, head on to Tools > Debug Console
    Type "masternode outputs"

    Something similar to this will pop up (colored in this guide for clarity)

    "d1197905eaffd2fbfcd35f681adba92b25e32c62de6d0f7a5487926c01a70897" : "0",​

    The long green string is your TRANSACTIONHASH, and the last purple digit is your INDEX.

    Hence in my masternode.conf I would be putting it in this format:

    MYMASTERNODE1 123.45.67.89:9999 MASTERNODEPRIVKEY d1197905eaffd2fbfcd35f681adba92b25e32c62de6d0f7a5487926c01a70897 0

    in one line (sorry the forum isn't wide enough). For each additional masternode that you have, put in a corresponding entry in a new line, following the same process as above. Save it.

    STEP 3: Starting your Masternodes

    Startup your wallet in masternode mode and allow it to sync. Ensure all your dashd daemons are running properly on your remote servers.

    Open up your terminal and type

    masternode start-many YOURWALLETPASSWORD
    If all is well, you will see something to similar to this (in this example there are 3 Masternodes listed in masternode.conf)

    {
    "overall" : "Successfully started 3 masternodes, failed to start 0, total 3",
    "detail" : {
    "status" : {
    "alias" : "MN1",
    "result" : "succesful"
    },
    "status" : {
    "alias" : "MN2",
    "result" : "succesful"
    },
    "status" : {
    "alias" : "MN3",
    "result" : "succesful"
    }
    }
    }
    Verify if your masternode is properly started by either going to Dash Ninja or typing masternode list | grep MASTERNODEIP if you are using Linux.

    You can also start each masternode individually using the command:
    masternode start-alias YOURMASTERNODEALIAS YOURWALLETPASSWORD
    which is useful if you only want to start an individual masternode.

    Credits
    DrkMiner (for the original guide)
    Populandum (on irc for helping me figure out the masternode.conf layout, drawing my attention to the start-alias command and refining the guide.)
    UdjinM6 (for showing me a much simpler way of getting the transaction id and index)
    tungfa (for being patient and pointing me in the right direction)
     
    #1 BolehVPN, Feb 17, 2015
    Last edited by a moderator: Feb 7, 2016
    • Like Like x 11
  2. Populandum

    Populandum Well-known Member
    Foundation Member

    Joined:
    Apr 9, 2014
    Messages:
    103
    Likes Received:
    76
    Trophy Points:
    178
    It should also be mentioned you can still start them individually as well. Using the example in this guide:

    masternode start-alias MYMASTERNODE1 YOURWALLETPASSWORD

    This will only broadcast the start-command for the chosen masternode. This can be useful if only one of your masternodes have gone down for some reason.
     
    • Like Like x 1
  3. Populandum

    Populandum Well-known Member
    Foundation Member

    Joined:
    Apr 9, 2014
    Messages:
    103
    Likes Received:
    76
    Trophy Points:
    178
    Also: darkcoin.conf only needs to contain the following when you got a mastenode.conf:

    rpcuser=SomeRandomString
    rpcpassword=EvenLongerRandomString
    rpcallowip=127.0.0.1
    listen=0
    server=1
    daemon=1
    logtimestamps=1
    Notice how there is no masternode=1, masternodeprivkey and ip. All this is baked into masternode.conf now.

    Edit: Thank you for spending time putting this guide together btw :)
     
    #3 Populandum, Feb 17, 2015
    Last edited by a moderator: Feb 17, 2015
    • Like Like x 2
  4. tungfa

    tungfa Administrator
    Dash Core Team Foundation Member Masternode Owner/Operator Moderator

    Joined:
    Apr 9, 2014
    Messages:
    8,945
    Likes Received:
    6,728
    Trophy Points:
    1,283
    Well done Reuben !!

    UdjinM6
    Reuben pointed out that there is a misspelling in the code !
    (can you check on that please)

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

    see that
    successful !
    Tx
     
    • Like Like x 2
  5. Populandum

    Populandum Well-known Member
    Foundation Member

    Joined:
    Apr 9, 2014
    Messages:
    103
    Likes Received:
    76
    Trophy Points:
    178
    lol, I never noticed that.
     
  6. tungfa

    tungfa Administrator
    Dash Core Team Foundation Member Masternode Owner/Operator Moderator

    Joined:
    Apr 9, 2014
    Messages:
    8,945
    Likes Received:
    6,728
    Trophy Points:
    1,283
    Reuben is the new DRK professor !
    watch out
    ;)
     
  7. UdjinM6

    UdjinM6 Official Dash Dev
    Dash Core Team Moderator

    Joined:
    May 20, 2014
    Messages:
    3,634
    Likes Received:
    3,534
    Trophy Points:
    1,183
    Good eye!
    Will be fixed in 0.11.2.x https://github.com/darkcoin/darkcoin/pull/188 Thanks! :)

    EDIT: btw BolehVPN in step 2 you could simply use masternode outputs console command instead of finding txhashes and txindexes in explorer ;)
     
    • Like Like x 3
  8. yidakee

    yidakee Well-known Member
    Foundation Member

    Joined:
    Apr 16, 2014
    Messages:
    1,812
    Likes Received:
    1,168
    Trophy Points:
    283
    Niiiice! since start-many was extremely buggy, I skipped testing it altogether. Thank you for this!
     
  9. kaene

    kaene New Member

    Joined:
    Apr 11, 2014
    Messages:
    12
    Likes Received:
    20
    Trophy Points:
    3
    If we use a new wallet and create a new addresses for each masternode, regarding the masternodeprivkey, how do I generate a masternodeprivkey specific to an address in my wallet using the command masternode genkey? or it doesn't matter and it just needs a list of masternodeprivkey? Hopefully you understand my doubt. Thanks.
     
  10. UdjinM6

    UdjinM6 Official Dash Dev
    Dash Core Team Moderator

    Joined:
    May 20, 2014
    Messages:
    3,634
    Likes Received:
    3,534
    Trophy Points:
    1,183
    masternodeprivkey is not tied to MN address until you place it in local and remote config and issue masternode start (or start-many) command. It's just a kind of "communication key" so it's not tied to anything until you start this "communication".
     
    • Informative Informative x 1
  11. Wh1teKn1ght

    Wh1teKn1ght New Member

    Joined:
    May 11, 2014
    Messages:
    32
    Likes Received:
    5
    Trophy Points:
    8
    Awesome guide, thanks!!
     
  12. BolehVPN

    BolehVPN Active Member

    Joined:
    Nov 24, 2014
    Messages:
    195
    Likes Received:
    301
    Trophy Points:
    123
    Incorporated in guide :D
     
    • Like Like x 3
  13. rango

    rango Active Member

    Joined:
    Jun 19, 2014
    Messages:
    158
    Likes Received:
    221
    Trophy Points:
    103
    When one wants to setup multiple masternodes with one local wallet from scratch, the command "getaccountaddress 0" only delivers one address to put the 1000 DRK on. To get annother address for the second mastenode, one can use "getaccountaddress 1"? Or should we use a new wallet.dat and import the private key to one "master" wallet to run all masternodes from one wallet.dat?
     
  14. UdjinM6

    UdjinM6 Official Dash Dev
    Dash Core Team Moderator

    Joined:
    May 20, 2014
    Messages:
    3,634
    Likes Received:
    3,534
    Trophy Points:
    1,183
    "getaccountaddress 0" is here from reeeeeally old times and it's outdated actually. Also there is no magic, look:
    Code:
    help getaccountaddress
    getaccountaddress "account"
    
    Returns the current Darkcoin address for receiving payments to this account.
    
    Arguments:
    1. "account"       (string, required) The account name for the address. It can also be set to the empty string "" to represent the default account. The account does not need to exist, it will be created and a new address created  if there is no account by the given name.
    
    Result:
    "darkcoinaddress"   (string) The account darkcoin address
    
    Examples:
    > darkcoin-cli getaccountaddress
    > darkcoin-cli getaccountaddress ""
    > darkcoin-cli getaccountaddress "myaccount"
    > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getaccountaddress", "params": ["myaccount"] }' -H 'content-type: text/plain;' http://127.0.0.1:9998/
    
    And wallet now isn't tied to account "0", it just trying to find any inputs with exactly 1000DRK. You can even create new address from GUI as usual and send funds there.

    TL;DR: Yes, "getaccountaddress A" is fine (A can be anything without spaces or even with spaces if you use quotes)
     
    • Like Like x 4
  15. rango

    rango Active Member

    Joined:
    Jun 19, 2014
    Messages:
    158
    Likes Received:
    221
    Trophy Points:
    103
    UdjinM6 Thank you very much for your help!

    Are there any known problems with regard to masternodes beeing started local/cold => remote, which drop of the masternode list? I never experienced such issues with local/hot wallet started masternodes. After consolidation and migration to start-many local/remote setupthe masternodes drop off frequently.

    My local masternode.conf contains all masternodes. e.g.
    MN1 IP:9999 MASTERNODEPRIVKEY TRANSACTIONHASH INDEX
    MN2 IP:9999 MASTERNODEPRIVKEY TRANSACTIONHASH INDEX
    MN3 IP:9999 MASTERNODEPRIVKEY TRANSACTIONHASH INDEX
    ..

    The respective remote masternode.conf only contains one line e.g.
    MN2 IP:9999 MASTERNODEPRIVKEY TRANSACTIONHASH INDEX

    remote darkcoin.conf looks like this (running several MN instances with different datadirs on one server):

    rpcuser=MN2
    rpcpassword=XXX
    rpcallowip=127.0.0.1
    rpcport=8002
    listen=1
    server=1
    daemon=1
    bind=127.0.0.2
    bind=PUBLIC_MN_IP
    addnode=23.23.186.131
    logtimestamps=1

    Anything wrong with this? The local node can be stopped after executing the startmany command, correct?
     
    #15 rango, Mar 12, 2015
    Last edited by a moderator: Mar 12, 2015
  16. UdjinM6

    UdjinM6 Official Dash Dev
    Dash Core Team Moderator

    Joined:
    May 20, 2014
    Messages:
    3,634
    Likes Received:
    3,534
    Trophy Points:
    1,183
    There is no need in remote masternode.conf, it's not used.
    I know one possible problem that could lead to MNs dropping - you might get banned if you restart local wallet too often so your MN initializing message might not propagate properly. There is a 3 times per 3 hour time window - more then that you you'll be banned. It is already fixed in 11.2.x so that your wallet will not ask same peers too often but for now just wait 3+ hours after you nodes dropped and try again.
     
  17. rango

    rango Active Member

    Joined:
    Jun 19, 2014
    Messages:
    158
    Likes Received:
    221
    Trophy Points:
    103
    Thank you. Remote mn running with darkcoin.conf only and added

    masternode=1
    masternodeprivkey=(????????????)
    masternodeaddr=(!!!!!!!!!!!!):9999

    ... seem to have fixed the issue.
     
    #17 rango, Mar 13, 2015
    Last edited by a moderator: Mar 13, 2015
  18. bhkien

    bhkien Active Member
    Linguistic

    Joined:
    Mar 31, 2014
    Messages:
    449
    Likes Received:
    281
    Trophy Points:
    133
    When set up masternode I typed incorrect IP address in the masternode.conf.

    I could still started my masternode but in DRK.MN it look like:

    Screen Shot 2015-03-16 at 11.46.33 PM.png

    I had tried to correct that IP address in masternode.conf and restarted but the problem still persit.

    Please help me!!! Thank you.
     
  19. thefrog

    thefrog Member

    Joined:
    May 25, 2014
    Messages:
    57
    Likes Received:
    26
    Trophy Points:
    58
    Solved:
    I used sendfrom instead sendtoaddress. Now, it's working and masternode outputs lists 2 valid MN transactions.

    Once again, thanks for this guide.

    Hi,
    I have problem with start-many.
    I have created 2 accounts in the wallet. let's say mn1 and mn2.
    I sent 1000 DRK to mn1 account Address
    then, I did masternode outputs and the tx id showed correctly.

    I then send other 1000 DRK to mn2 account Address.
    I did again the masternode outputs and now, only the last tx id is shown.

    then I try to get the remote/local up and running with the mn1 tx id, it fails to start with
    "could not allocate vin"

    ..debug log part..
    2015-03-20 22:54:51 CActiveMasternode::GetMasterNodeVin - Could not locate valid vin
    2015-03-20 22:54:51 Register::Register() - Error: could not allocate vin
    ...
     
    #19 thefrog, Mar 21, 2015
    Last edited by a moderator: Mar 21, 2015
  20. tungfa

    tungfa Administrator
    Dash Core Team Foundation Member Masternode Owner/Operator Moderator

    Joined:
    Apr 9, 2014
    Messages:
    8,945
    Likes Received:
    6,728
    Trophy Points:
    1,283
    Can you please start working on "rebranding" the guide ?!
    that would be great and super appreciated
    Tx
     
  21. BolehVPN

    BolehVPN Active Member

    Joined:
    Nov 24, 2014
    Messages:
    195
    Likes Received:
    301
    Trophy Points:
    123
    This has been rebranded.

    For the command masternode outputs it's a bit hard to tell which output is for which output if you made several masternode sends through the same wallet though.
     
    #21 BolehVPN, Mar 28, 2015
    Last edited by a moderator: Mar 28, 2015
    • Like Like x 2
  22. Darkuopm

    Darkuopm Member

    Joined:
    Jun 18, 2014
    Messages:
    48
    Likes Received:
    17
    Trophy Points:
    48
    So just to be clear! If I understand correctly, I can use masternode Genkey from the same wallet multiple times and it will continue to generate random keys. At which point all that is really important is that both the key in the masternode.conf assigned to each masternode matches the dash.conf on remote machines?
     
  23. xxxsexygirls

    xxxsexygirls Member

    Joined:
    Nov 26, 2014
    Messages:
    44
    Likes Received:
    20
    Trophy Points:
    48
    Exactly.
     
    • Like Like x 2
  24. Darkuopm

    Darkuopm Member

    Joined:
    Jun 18, 2014
    Messages:
    48
    Likes Received:
    17
    Trophy Points:
    48
    Appears to have worked great. Thanks for the guide. Will defiantly make updated easier in the future
     
  25. TanteStefana

    TanteStefana Grizzled Member
    Foundation Member

    Joined:
    Mar 9, 2014
    Messages:
    2,859
    Likes Received:
    1,854
    Trophy Points:
    1,283
    I can't seem to get the remote dash.conf right. What should that look like please? Thanks :)
     
  26. keyser

    keyser New Member

    Joined:
    Mar 22, 2014
    Messages:
    11
    Likes Received:
    4
    Trophy Points:
    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
     
    • Like Like x 2
  27. TanteStefana

    TanteStefana Grizzled Member
    Foundation Member

    Joined:
    Mar 9, 2014
    Messages:
    2,859
    Likes Received:
    1,854
    Trophy Points:
    1,283
    Thank you very much Keyser, it finally worked!
     
  28. xxxsexygirls

    xxxsexygirls Member

    Joined:
    Nov 26, 2014
    Messages:
    44
    Likes Received:
    20
    Trophy Points:
    48
    keyser can you please provide us the specs of your server?
     
  29. keyser

    keyser New Member

    Joined:
    Mar 22, 2014
    Messages:
    11
    Likes Received:
    4
    Trophy Points:
    3
    It´s a VPS with 1 core cpu, 512mb ram, 2gb swap and 20gb disk. 4 public IP.

    It swaps around 200-400mb but it was really stable with 0.11.1.26. With the new version the dashd-daemon seems to crash quite often. I hope for a quick fix soon.
     
  30. Gi01

    Gi01 Member

    Joined:
    Apr 7, 2015
    Messages:
    80
    Likes Received:
    21
    Trophy Points:
    48
    Easy questions:

    - I assume we still need more than 1 IP, right? I mean, we also have to follow guides to have more than 1 IP from a VPS :)
    - In order to work, i assume that we should launch dash -masternode.conf via command, right?