In addition to a normal blockchain secured by mining nodes, some cryptocurrencies such as Dash also have a network of servers called masternodes which facilitate anonymous and instant transactions. The servers run the masternode daemon and each one needs a certain amount of collateral (e.g. for the Dash network 1000DASH is required for a masternode) to be accepted on the network. Interest is received for running the service. This is particularly attractive because the collateral can remain under full control of the user and doesn't need to be on the same server as the masternode is running on. This means you can use third-party hosted services (such as masternode.me for Dash nodes) too with no risk of losing your collateral.
Most crypto-currencies supporting masternodes are forks of Dash, most have lower entry-level and higher returns, but come with the disadvantage of being less reputable coins that could dump in value unexpectedly. Lists of coin supporting masternodes along with their statistics can be found at masternodes.pro, masternodes.online and MNrank.com.
Build or pre-compiled
Masternodes are usually forks from the Dash crypto-currency, which is in turn a heavily modified fork of the original Bitcoin core. As such they are programmed in C and need to be compiled for execution. Some of the projects provide pre-compiled binaries for different environments, while others require compilation. A masternode can typically run on a very low-spec system, but compilation requires a reasonably high-spec system, so you would usually carry out the compilation locally and then send the resulting binaries to your light-weight server.
Cold vs Hot wallet
There are generally two modes of running a masternode, either with the collateral held offline in a "cold wallet", or with it held in the wallet of the masternode itself (which is just a normal node, but with different configuration settings in its conf file). The former is obviously safer and by far the preferable method for nodes with high-value collateral, but for the smaller nodes the latter method is preferable as its much simpler. When using the cold wallet method, that wallet only needs to be online whenever the masternode needs to be started. The cold wallet has a masternode.conf file which tells it which balances are to be locked and associated with remote masternodes. This file is not used in the case of a masternode holding its own collateral.
The way payment works is that each block that is mined (in the usual way using PoW/PoS) send a portion of the block reward to one of the masternodes and the rest to the miner who solved the block. Each block's masternode portion goes to a different masternode (actually there is a very small chance that one node can get paid in two successive blocks). All the masternodes form into a list and each time one gets paid it goes to the end of the list so all the nodes slowly work their way up the list. But to make the system less predictable, the payment does go to the first node in the list, but rather to a random node in the top 10% of the list which is called the "selection pool".
Types of masternode
Dash is the original masternode cryptocurrency and is very stable, but has extremely high entry-level of around a million US dollars (as of late 2017). You can use a hosted service such as masternode.me which is very easy to get up and running with, very stable and very low cost.
- Official documentation
- Node40 has a good support forum
- Masternode config file
- TAO's setup guide
- Withdrawing profits without affecting collateral
One such coin that's worth trying is VIVO which has a reasonably low entry cost of about 1BTC and an excellent return of 300%pa (about US$1600/month at current prices) and has an very easy to follow setup guide (see this for multiple nodes with cold-wallet - don't forget the sentinel setup too or your node may stop working, and note also that sentinel requires that you have an rpc user and password in your vivo.conf. A block explorer for VIVO can be found here and masternode states here. The main community discussion is in Discord here.
After setting my first VIVO masternode up I first found that it about ten hours for the blockchain to sync which looked from the debug log to be due to a lot of bad actors on the network. The nest strange thing was that the address "0" I used to send my collateral to was different to the address "0" returned by the same command after the masternode had successfully started. However rewards did start to arrive successfully after about 14 hours, they arrive in the "immature" category and become available ("generate" category) after 100 blocks which is about four hours).
The rewards are sent to the same account ("0") as the collateral, and you need to use sendfrom "0" to spend them, remember that the fee will be subtracted from the account (and the subtractfeefromamount options is not available for the sendfrom command), so be sure you don't eat into the 1000VIVO collateral because simply sending the missing VIVO back will probably not work. No password is required for the send operation by default.
Note: To check the status of your node according to the network, check here, this may be different than what you get from your local masternode list or status commands. You may need to nuke the chain data and resync.
Feedback: I've been finding the VIVO masternode to be pretty unstable. You need to check on it each day and often give it manual attention. The project development and support doesn't inspire much confidence. I have been getting rewards most of the time (about US$60-$70 per day on average), but overall I think probly best avoided.
XiosCoin seems like a pretty cool project that will get used for more than just masternodes, but unfortunately it's been through a lot of problems after one guy got angry and sabotaged the project.
It can be difficult to get a node up and running properly, finding the code is a problem as their Github account has been suspended, and after you do find it and get it running, the blocks can take forever to load. One thing you can use a copy of somebody elses data directory, delete the mncache. XIOS.conf and the wallet.dat file and empty the txleveldb directory out. It should then load the blocks at a good fast rate.
The XIOS team have had a fair few problems with the chain needing to be re-organised which causes nodes to get stuck at certain nodes. This can be fixed by replacing your chain data with this data, you may need to run the repairwallet method after doing that.
Insane will soon be setting up a masternode system requiring a collateral of 50,000INSN... Currently returns on INSN masternodes are insanely low, like around 1% per annum which doesn't even cover the cost of a $5/mo VPS!
The installation procedure is just a single script which downloads the current source, compiles it and starts the node. One problem with this approach is that you need a reasonably powerful server to run through the compilation process, but you can compile it locally first and then copy the resulting INSaNed binary across to a minimum spec VPS.
I setup a GoByte masternode as they have good returns right now and we got a good deal on the collateral which is 1000GBX. It's a pretty standard setup and they have a pre-compiled releases made for Ubuntu 16.04 in their Github repo. GBX has pretty wide exchange support, I use Cryptopia.
- Official site
- Setup procedure
- Sentinel setup - GoByte masternodes have a sentinel
- GBX block explorer
- Hosted nodes and node shares
- typo in the update line should be & not &&
- it says that in local wallet console you do genkey and outputs and these are used in the masternode.conf entry, but the genkey part should come from the actual masternode on the vps
- libzmq3-dev package missing from the apt installs
- conf specifies rpcallowip=127.0.0.1 but this should be rpcconnect
- conf needs rpcport=12454 to allow sentinel to connect
- sentinel doesn't work - maybe too modern a dash version
Stratis is a stable coin backed by a good project and they will be introducing masternodes to the network soon. Three different levels of masternodes will be available with successively higher collateral requirement and return.
Info coming soon!
ETZ are forking ETH at block #4936270 (January 19, 2018) and will be introducing a masternode mechanism during the year at some point which will require 10,000ETZ collateral.