What do I need to host a Masternode?

  • 5,000 NEOS: NEOS can be obtained from exchanges such as Poloniex, Bittrex. Shapeshift‘s service is also an excellent way.

  • A server or a VPS installed with Linux: For the purposes of this guide we will be used Ubuntu 16.04. You can use any of the VPS servers from OVH, Vultr and DigitalOcean though any decent provider will do. I chose OVH as it comes with DDoS Protection, which is useful in the case of someone wanting to take my server offline so that they can benefit from the Masternode payouts.

  • A dedicated IP address: These usually come with the VPS/server.

  • A little time and patience. No One had yet created such a guide, so i am putting this together to help people understand the process and decrease the input needed from the community. 


Step1:

Connect to your web server and download the NEOS wallet.

SSH server.ip.address


On at least Ubuntu 14.04+ and Debian 7+ there are generic names for the individual boost development packages, so the following can be used to only install necessary parts of boost:

sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev


Grab the wallet: 

git clone https://github.com/neoscoin/neos-core

cd neos-core/src

make -f makefile.unix # Headless


if you see the below error:

compilation terminated.

makefile.unix:201: recipe for target 'obj/alert.o' failed

make: *** [obj/alert.o] Error 1


You must then get the following:

sudo apt-get install libboost-all-dev

sudo apt-get install g++


if you get the following error:

In file included from chainparams.h:9:0,

                 from alert.cpp:8:

bignum.h:13:24: fatal error: openssl/bn.h: No such file or directory

compilation terminated.


You must get the following:

sudo apt-get install libssl-dev


If you get the following error:

db.h:18:20: fatal error: db_cxx.h: No such file or directory

compilation terminated.


BerkeleyDB is required for the wallet. db4.8 packages are available here. You can add the repository and install using the following commands:

sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev



Ubuntu and Debian have their own libdb-dev and libdb++-dev packages, but these will install BerkeleyDB 5.1 or later, which break binary wallet compatibility with the distributed executables which are based on BerkeleyDB 4.8. If you do not care about wallet compatibility, pass --with-incompatible-bdb to configure.


Optional:

sudo apt-get install libminiupnpc-dev (see --with-miniupnpc and --enable-upnp-default)



To finish

 

strip neoscoind


(The release is built with GCC and then "strip neoscoind" to strip the debug symbols, which reduces the executable size by about 90%.)

sudo cp neoscoind /usr/local/bin (copies it to a global system path, the benefit is that you have the binary in one place, for accessibility, maintenance, etc. multi-user system everyone can run a neos wallet without having to build their own copy)


nano ~/.neoscoin/neoscoin.conf


Put in the following:

masternode=1
masternodeaddr=YOURIPADDRESS:29320  (if ipv6, put [] around the ip address!)
masternodeprivkey=YOURPRIVKEYOFTHEADRESSWHEREYOUSENTIT



To speed up the sync process, you can download the bootstrap blockchain from:

wget http://neoscoin.com/data/neos-bootstrap.tar.gz

tar -xf neos-bootstrap.tar.gz

mv bootstrap.dat ~/.neoscoin/


Start neoscoind:

./neoscoind


Check to see if it is running:

./neoscoind getinfo


Should return something like below:

{

    "version" : "v1.0.1.2-61402",

    "protocolversion" : 61403,

    "walletversion" : 60000,

    "balance" : 0.00000000,

    "darksend_balance" : 0.00000000,

    "newmint" : 0.00000000,

    "stake" : 0.00000000,

    "blocks" : 92488, <-- Still syncing, let it fully sync. 

    "timeoffset" : 0,

    "moneysupply" : 2876603.00000000,

    "connections" : 13,

    "proxy" : "",

    "ip" : "164.132.105.139",

    "difficulty" : 229.15587609,

    "testnet" : false,

    "keypoololdest" : 1490619827,

    "keypoolsize" : 1001,

    "paytxfee" : 0.00010000,

    "mininput" : 0.00000000,

    "errors" : ""

}


Then go through the following process:

1. Send 5,000 NEOS exactly to an address.


2. 7 confirms minimum on that input.


3. masternode=1 in config.


4. Generate your key:

neoscoind masternode genkey


5. masternodeprivkey=generated_key_step_4 


./neoscoind stop

./neoscoind masternode list (you should be able to find your address in the list)

./neoscoind masternode status



"notCapableReason" : "Could not find suitable coins!"


if thats the VPS, it thinks since its a masternode it should have the coins in its own wallet. but instead you're using a remote setup


Masternode.conf - put in the data directory of the main wallet holding the coins

alias VpsIP:PORT masternodeprivkey txid tx-output

whateveraliasyouwant serverip:29320 fromstep4 txid tx-output 


Note: txid and tx-output can be obtained through the following command in the wallet console: masternode outputs

Or via the block explorer


Now on your local wallet you should be able to go to the masternode tab and “My Master Nodes” and press Start!


Then it should show up in the list of masternodes! :D


The local wallet uses the IP and port of the VPS to connect to it and start it, then sends the message that its been started to the rest of the nodes your connected to :) also on the local wallet no need for anything to do with masternodes in neoscoin.conf all you need is that masternode.conf on the local machine


Questions


Q: Does my masternode need to be open on my local machine if the masternode is running remotely?

A: No. Only to start the masternode or if you want to send / receive coins.


Errors


Issue: When pressing “start masternode” you get a message saying “could not allocate vin”

Solution: Unlock wallet to staking only. This happens when the wallet is locked.