Masternode Setup Guide

Clive Rudd edited this page Mar 13, 2018 · 9 revisions

Preface

In this guide we will be focusing on setting up a masternode for Coin2Fly (CTF).

This guide will focus on a typical "hot node" / "cold wallet" scenario. The "hot node" will be a Linux VPS, running just the daemon of the coin, while the "cold wallet" will be your Windows (or macOS) GUI Wallet.

Requirements

  • You will need some basic understanding on how to edit a text file and how a cryptocurrency wallet works.
  • You will need 1000 CTF for the Masternode Collateral, preferably 1001 to cover up fees.
  • You will need a Linux VPS that is up & running 24/7.
    • We recommend Digital Ocean for new setups1
    • You can also use Vultr
    • As with anything in life, you get what you pay for. Other providers should work the same, but be wary of very cheap ones, as they often crash or have very poor performance. We can not offer much support if you chose another provider.
  • A SSH Client - we recommend PuTTY for Windows. macOS has an in-built client which you can use by opening the Terminal.app.

Handling the Collateral - The Wallet Part

Considering our previous chapter on requirements, please make sure you have the latest Wallet version installed. We will not go over this process in detail, as it's basic enough and varies based on your Operating System.

Let's start by having a look out our wallet:

CTF Wallet

As you can see, we have the required balance for a masternode plus a bit extra to handle the network fees.

First thing we will do, is create a new "Receiving Address" that will hold our collateral:

File -> Receiving Addresses...

In the newly opened window, click on "New" and then enter a label. This can be anything you want, but for this guide's purpose we will be referring to it as "MN1":

New -> MN1

After this, we can see our new address labeled "MN1". Copy this (Right Click -> Copy Address). This will be the Address that we will be sending the balance required.

Switch to the "Send" tab and send 1000 CTF to the address you copied earlier.

Please make sure this is EXACTLY 1000 CTF. No more. No less. Do not "Substract Fees" from it.

Send -> Send

Now the transaction will need to be confirmed by the network. This will usually take a few minutes, just enough time for us to do the Linux VPS part.

Setting up the Daemon - The Linux Part

We will assume that you have already created an account on Digital Ocean and you handled the initial payment part, and you are ready to deploy your first Droplet2 (VPS).

Create -> Droplet

The prefered Linux distribution for this guide is "Ubuntu 16.04". It may work on other variants/versions, but we will offer no support for it - if something breaks, you get to keep the pieces.

Ubuntu 16.04, 1GB plan

For the purpose of this masternode, we will be using the minimum specifications that are available - that is 1 CPU Core and 1 GB Memory (RAM). You can go for more if you have bigger plans (like hosting multiple coin masternodes on the same VPS, for example - but that is outside of the scope of our guide).

Choose a Data Region. I chose "Frankfurt" in my case, as it's closer to me. You can choose any you would like, it makes no difference other than the latency that you will get to it while connecting (which is irrelevant for the masternode functionality).

Data Region

The name you chose for your droplet, and other options, are mostly irrelevant, they're just for your own personal accounting. You can use whatever.

Create Droplet!

Now the droplet will be deployed with your choice of Linux distribution (Ubuntu 16.04).

Deploying...

Meanwhile, if you haven't already, Download and Install PuTTY, if you are using Windows. If you are using if you are on macOS, skip a bit ahead.

After the deployment process has been completed (should take just a few seconds), you will receive an e-mail with the credentials (username & password) as well as the IP address of your newly deployed droplet.


New Droplet Deployed - Username and Password


If you are on Windows

Now start up PuTTY, paste the IP address you received in the previous message in the "Host Name (or IP address)" field, and then hit "Open".

PuTTY -> Open

You will receive a pop-up called "PuTTY Security Alert", just click on "Yes". This is perfectly normal.

After that, you can log on to your VPS.

At the "login as:" prompt, type root. Next you will be asked for the password. While typing this, you will get no feedback, no characters shown, not even an asterisk ***. You can copy it from the e-mail message and use your mouse's Right Click button to paste. Again, you will receive no feedback/output. Just hit enter after this, and you will have logged on:

Login & New Password

Please be aware that on Digital Ocean, you will be asked to change the password on your first login. You will have to supply the initial password (again), and then confirm the new password. Please remember the new password you are about to set up.

If you are on macOS

macOS has a built-in SSH client, so you do not need to download an additional program to connect to your newly set up Linux VPS.

Bring up the Terminal application, and type: ssh root@your-vps-ip, as shown in the screenshot below:

macOS Terminal

You will be asked to trust the host, and if you want to continue, type yes, hit Enter, then go on about pasting the password you receive in the previous message (⌘+v). While typing or pasting this, you will get no feedback, no characters shown, not even an asterisk ***. Just hit enter after this, and you will have logged on.

Please be aware that on Digital Ocean, you will be asked to change the password on your first login. You will have to supply the initial password (again), and then confirm the new password. Please remember the new password you are about to set up.

Continue to set up your Linux VPS

Now that you are connected to the VPS, and you have a shell prompt in front, you to set up the masternode, you only have to do one simple command:

curl https://raw.githubusercontent.com/coin2fly/coin2flycore/master/contrib/setup_linux_node.sh | bash

This is a single line, needs to be pasted as is in the console. After this, you can simply hit enter.

Paste the command, and hit Enter!

Once you hit Enter, this will do all the work required to set up a master node. If you are curious on what goes on there, please refer to the end of this guide.

This will take about 2-3 minutes, depending on the speed of your VPS.

Meanwhile you can grab a cup of tea, drink some water, stare at a blank wall. Your choice.

You're back?

Script is done

Once finished, you will be presented by a screen like this.

This is the line that you will require to have in your masternode.conf file on your Windows (or macOS) wallet. More on this in a minute.

In this example, we have the following:

MN1 159.65.116.181:12225 2UD6oWT5KPmDoyNn7ZdnqAMB5iWBqL6KS9rqiaToddS8g9Yukxn txhash txindex

Please note the following information:

  • MN1 (in yellow) - this is the alias/label of the masternode. The name does not matter, it will be just the label it will show up in your wallet later. It's only as a reference to you.
  • 159.65.116.181:12225 (in green) - this is the IP address and Port number (12225 by default) of your node. Do not change this.
  • 2UD6oWT5KPmDoyNn7ZdnqAMB5iWBqL6KS9rqiaToddS8g9Yukxn (in green) - this is the Masternode Private Key. Do not change this. This is the key that controls the status of your node on the network. While it's name may sound scary, don't worry much about it, the worst someone could do if they'd ever find your private key is to (re)start your node and reset your reward schedule. It is impossible for someone to steal your funds using this key.
  • txhash and txindex (in purple) - these are the only bits that you will have to replace, more on this later down the guide.

This concludes the Linux VPS part.

The script will generate a new private key each time it's being run. If you would like to use your already generated private key (maybe you are reinstalling?), please read the Common Question section.

Back to the Wallet!

There are very few operations you need to do now.

Back to your wallet, we will now get the txhash and txindex we talked about.

Go to your Wallet, to "Tools -> Debug Console". In here you will have to type masternode outputs that will get something like this:

masternode outputs

In the above screenshot, we have 2 important details.

The long one, 957c2601ba1212702fcb9c5b735099c77dc743c54f68040e35595ae94b397b46 is the transaction id (or hash). This is your txhash.

The short one, 1 in this case, is the index of your transaction, this is your txindex.


Go back to your wallet, and open up the masternode.conf file for editing with a Text Editor.

Windows

On Windows, you can just use Tools -> Open Masternode Configuration File, this will most likely open up Notepad and put you into edit mode.

If you are being asked to chose an application to open .conf files, from the list of programs installed on your computer ALWAYS choose Notepad. Do not open up the file with another application, as you risk breaking your wallet.

Tools -> Open Masternode Configuration File

macOS

On macOS, you will manually have to open the masternode.conf file located in ~/Library/Application Support/Coin2FlyCore/ with a Text Editor. Please do not use "Microsoft Word" for it, as that will mess up the file and you will be unable to open up your Wallet without fixing this.

You can reach this folder by using the "Go to Folder" functionality of Finder, as per screenshot:

Go to Folder, macOS

Alternatively, if you could also try using the Tools -> Open Masternode Configuration File option, but in our test scenario it hasn't always produced the desired results of actually opening the file.

Editing the masternode.conf file

Remember the line that our Linux VPS showed us and we told you to remember?

MN1 159.65.116.181:12225 2UD6oWT5KPmDoyNn7ZdnqAMB5iWBqL6KS9rqiaToddS8g9Yukxn txhash txindex

Now that we have the last bits of information we require, we can replace txhash and txindex with the correct values.

In your text editor, now you just need to paste the line with the replaced values, please refer to screenshot:

masternode.conf notepad

As you can see, the underlined values are the ones we replaced.

Once you are done, you can Save this file.

Just in case you screw something up, don't Save & Close, but just save the file and keep it opened. If you make a mistake, your Wallet will refuse to start until you fix your mistake.

Remember to also enabled the "Masternode" tab in the Options of the wallet:

Enable Masternode Tab

Restart your wallet after this, and if you did everything good, your new masternode will show up in your wallet.

Your new masternode

Start your new node!

Before you do anything else, allow the wallet to fully sync with the network again. This shouldn't take much time.

Once everything is 100%, you are ready to start your node by hitting the START MISSING button.

Start Missing

Your node will now switch to PRE_ENABLED status.

This means your cold wallet has informed the network about a new masternode, located at the specific IP address.

What now?

You are now done with this guide. Your masternode is up & running and you will start receiving regular payouts.

Your node will switch from PRE_ENABLED to ENABLED in 5 to 60 minutes and your wallet will reflect that.

The first payment will take considerably more time to arrive than the second and so on.

How to check if the masternode has started properly?

Going back to your Linux VPS' console, typing:

coin2fly-cli masternode status

Will show you something similar to:

{
  "vin": "CTxIn(COutPoint(957c2601ba1212702fcb9c5b735099c77dc743c54f68040e35595ae94b397b46, 1), scriptSig=)",
  "service": "159.65.116.181:12225",
  "payee": "CHq13F3kii9eZWP413pBtYyp2Rt6FAn9T3",
  "status": "Masternode successfully started"
}

More details can be gathered by using the command:

coin2fly-cli masternode debug

Which, in case everything is right and the node has been started, will show you:

Masternode successfully started

Technical Questions

Q: Is this installing the daemon as root? Isn't that dangerous?

This script sets up a new user to run the daemon called coin2fly.

Further more, it sets up the whole environment to run the coin2flyd daemon only under the coin2fly user.

To be more specific:

  • It sets up a wrapper (under /usr/local/bin/coin2flyd) that intercepts any manual start-ups by the root user, and switches the context to the coin2fly user.
  • It sets up the required system unit files for systemd that will automatically start the daemon on boot. This is true for all Ubuntu versions after (and including) Ubuntu 16.04.
  • We are also attempting to set up an upstart job on Ubuntu 14.04, if the user is so inclined to attempt running it on that version. Please be aware that this is not fully tested and it's not something we recommend doing.
  • We are setting up the RPC credentials for the coin2fly-cli command so the user can properly call the command even as root and reach the proper daemon

Q: Where are the config files on the Linux VPS located?

The config file is located under the .coin2flycore directory under the coin2fly's user home directory.

Specifically, the coin2fly.conf file is located at: /home/coin2fly/.coin2flycore/coinf2fly.conf


Q: Can I run multiple Masternodes on the same VPS?

Short version: Yes. But not for the same coin, not as simple.

Long version: Depends.

For most cryptocurrencies, there is a specific PORT number (for coin2fly this is 12225) that the daemon has to listen for connections from the rest of the network. This port can only be in use by one specific application (program) running at the same time. In case there are multiple coins that share the same port number, that means only one of them will be able to LISTEN for connections.

In the case of different coins, as long as the port numbers don't conflict, you can run multiple coin masternodes on the same VPS and you will probably be fine.

This, of course, is true only if you have enough system resources (CPU, RAM, IOPS etc.) to allow all coins' masternodes to run fluently and not fall behind the network.

In the case of wanting to run multiple masternodes of the same coin on the same VPS (or, even coins that use the same port number), things get a bit more complicated, as you will have to make use of multiple IP addresses, and mess around manually with config files to make sure each masternode listens on it's own IP address.

Please keep in mind that this is not something we support and we do not encourage users to do this. You are on your own if you attempt this without the proper knowledge!

Common Questions

Q: How long will it take for my masternode to show up as ENABLED after I hit START MISSING?

This can vary from 5 minutes to 60 minutes, assuming you did everything correctly.


Q: When do I start getting payments?

As of currently writing this, based on the information of taken from masternodes.online, the reward frequency is 3h 20m 4s. That means you should be expecting your first reward in a bit more time than that (worst case scenario it's double that amount of time).

After the first initial payment, you will start receiving rewards regularly.

Keep in mind that as time passes by and more masternodes are being created for this coin, the interval between rewards will increase.


Q: Help! I started my Wallet and my node shows as EXPIRED or MISSING!

Do not trust the status shown in your wallet if that wallet is not running 24/7 and connected to the network all the time.

As you start your Wallet on your personal computer, it takes a bit of time for it to sync with the network properly and get the status of all nodes on the network, as a result, please try to use external sources to check for the status of your node.

As an external source, you can create an account (seed) at masternodes.online, then add your VPS' IP address for monitoring. This will show you the status of your node as seen by the network. If this shows your node all green (ACTIVE / ONLINE -> ENABLED), then you're all good and you should just wait for your wallet to sync up.

Another source for the status of your node is mn.zone which shows the current masternode list.

As all things, even masternodes.online or mn.zone are susceptible to errors. When in doubt, you can also log on to your Linux VPS and use this command (replace 159.65.116.181 with your VPS' IP Address)

coin2fly-cli masternodelist full 159.65.116.181

This will show up something similar to:

{
  "957c2601ba1212702fcb9c5b735099c77dc743c54f68040e35595ae94b397b46-1": "           ENABLED 70208 CHq13F3kii9eZWP413pBtYyp2Rt6FAn9T3 1519600134     4554          0      0 159.65.116.181:12225"
}

As you can see, in this example, the node's status is ENABLED.

If both masternodes.online and the command you run above shows that your status is NEW_START_REQUIRED or EXPIRED, then unfortunately your node encountered some issues and is no longer in sync with the network. If this is the case, you will need to re-start the node from your wallet.


Q: Help! My node shows up as WATCHDOG_EXPIRED

There could be multiple issues as to why your node is suddenly in WATCHDOG_EXPIRED.

Most common case is that you did not use the script (command) provided in the Setting up the Daemon - The Linux Part section of this guide and you do not have a functioning sentinel installed.

In case you did use the guide and you are still having that issue, please gather a bit of information from your sentinel-log using the command:

tail -n 10 /home/coin2fly/sentinel-cron.log

And join our Discord for support, in the channel #mn-help, then mention the issue you are having.


Q: I don't see anything when I type masternode outputs in the debug console

That means you didn't create a transaction for EXACTLY 1000 CTF. Please redo the transaction.


Q: I don't want to change my masternode.conf, I'm just reinstalling the Linux VPS and I would like to use my old key. Do I have to change config files in Linux?

No. The script allows to set a pre-generated key to use. Before you run the command that is presented in this guide, all you have to do is type the following:

export MNKEY="2TovztxxfZKHtmVMvDyJAeRSPgYzsvQQK6rKZL3NxNDyANmiEJp"

Replace 2TovztxxfZKHtmVMvDyJAeRSPgYzsvQQK6rKZL3NxNDyANmiEJp with your old key.

Everything else remains unchanged.


Footnotes

1: This is a referral link. If you sign up using this link and stay as an active customer, we will receive some free credit, too. You will also start with $10 free credit - just enough to run your VPS for free for a period of 2 months.

2: Droplet is what Digital Ocean calls their VPS.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.