Masternode Setup Guide (fresh install, automated server setup)

Important Preliminaries

Please read them carefully.

  1. You will need 100 000 SYS, plus change.

  2. You will need a server (can be virtual) with the following requirements:

    • 64-bit CPU, 2 Cores (4 preferred)
    • 4GB RAM (real) minimum (8GB RAM preferred)
    • 4GB swap (if less than 8GB real RAM) will need to use SSD if using Swap
    • VM or OpenVZ (KVM preferred)
    • Linux OS, Ubuntu 18.04.1 LTS (Bionic Beaver) preferred
    • 80GB Disk Space (100GB+ SSD preferred)

    Check the list below for options. We purposefully don’t provide a single recommendation because we aim for a network that is regionally distributed and spread across various hosters.

  3. You will need the latest version of Syscoin Qt 4.x. If you are still on Syscoin 3.x then you will need to follow the Upgrade Guide.

  4. We indicate placeholders by using squared brackets. [PASSWORD] becomes 12345 if your password is 12345. In fact, if your password is so simple, urgently learn about secure passwords and then change it.

List of VPS Providers

There are many VPS service providers that offer and exceed the hardware requirements, as such it is recommended that you shop around and do your own homework on various potential providers. Note the following is a list of just some examples and should not be interpreted as recommendations or endorsement.

Installation

1. Getting Prepared

To stake your masternode you will need to provide exactly 100,000 SYS in your masternode address. Use Syscoin-Qt for your system to process this transaction.

Wait for your local Syscoin-Qt to fully sync.

2. Unlocking Syscoin-Qt

To unlock your wallet: go to Window-> Console
and type: walletpassphrase [PASSWORD] [SECONDS] and press and Enter.
The [SECONDS] parameter defines for how many seconds your wallet should stay unlocked. You can also lock it again manually using walletlock.

3. Generating a Masternode Control Token

To generate your masternode control token, go to Console
and type: masternode genkey and press Enter.

  • Copy this value as you will need it later, it will look similar to the following:

4. Generating A New Legacy Address

Note: You need a Syscoin 4 address in a special legacy format, that can only be created using the console. Please follow these instructions without deviation.

  1. Go to Console and type: getnewaddress [LABEL] legacy and press Enter.
    • Pick something descriptive, such as Masternode42 as label.
    • Masternodes require legacy addresses, and will neither work with the new Bech32 addresses that start with sys nor with ordinary addresses starting with 3.
  2. Copy this address as well as you will need to send your collateral to it in the next step.

Note: If you are creating multiple masternodes, you will need separate control tokens and collateral addresses for each.

5. Sending 100,000 SYS Collateral
  1. Use the GUI, click on the Send tab.
  2. Click on Inputs ...
    • If you can’t see Inputs go to the settings and enable Coin Control.
  3. Select the unspent transaction outputs you want to use for your collateral, click OK.
    • Be aware that you cannot send transactions with more than 675 inputs.
  4. Enter your masternode collateral address from the previous step into the Pay To field.
  5. Enter exactly 100,000 into the Amount field and do not subtract fees from the amount.
  6. Press Send, enter your password if asked, confirm the transaction details.
  7. Find your funding transaction in the transaction view by the label you provided earlier.
  8. Right-click on your new transaction and select Copy transaction ID.
6. Getting your Output Index
  • Go back to the Console, type: masternode outputs and press Enter.

    Match the transaction ID you just copied to the corresponding entry and note down the number behind it. This is the output index.
7. Editing maternode.conf

Next we will have to edit the masternode.conf file.

  1. Navigate to the masternode.confin The Syscoin data directory.
  2. Open masternode.conf in a text editor of your choice, the simpler the better.

# Masternode config file
# Format: alias IP:port control_token collateral_output_txid collateral_output_index

  1. Add a line at the bottom of the file, adhering to the format indicated in the comment at the top.
    • Lines starting with # are comments and will be ignored by Syscoin.
    • The alias you enter will identify this masternode in the Maternodes tab in Syscoin-Qt.
    • The required IP is that of your server.
    • Use the 8369 as the port.
    • Fill the rest of the fields with the information you copied earlier.

# Masternode config file
# Format: alias IP:port control_token collateral_output_txid collateral_output_index
mn1 123.123.123.123:8369 5ra1rhngvNkhkiFE8STrmvH3LvYTCzLyRFHFsZvrJUBV6ZmWnc 06e38868bb8f9958e34d5155437d009b72dff33fc87fd42e51c0f74fdb 0

  1. Save the file
  2. Close and restart Syscoin-Qt.
    • If you can’t see a Masternode tab, you can also enable that in the settings.
    • If you don’t see your masternode listed in the Masternode tab please double check the above configuration.
    • If you now go to Coin Control you will see you collateral and it will have a padlock indicating it is locked.
    • If you send any Syscoin from this wallet make sure that your collateral is locked.
    • Convenience: After restarting, keep Syscoin-Qt running, we will need it again after setting up the server.
8. Installing syscoind on your server

Note: We’re using a script to keep this step as simple as possible. It’s a good idea to read through any script you find on the Internet before running it, including this one made by the community:
https://raw.githubusercontent.com/Syscoin/Masternode-install-script/master/script.sh

  1. Connect to your server via SSH.
    Win

    You can use PuTTY as SSH client.

  2. If you’re not root, become root by running sudo -s.
    • If you are root already, please consider creating another user accont and disabling root login as that is a security issue - especially if you log in using a password, instead of public key encryption.
  3. As root, enter the following command to start the automated install:
    bash <(curl -sL https://raw.githubusercontent.com/Syscoin/Masternode-install-script/master/script.sh)
    • Note this has only been tested on Ubuntu 16.04 and 18.04.
    • curl will download the file and feed it to bash which is the name of the thing you’re typing your commands into. bash will then interpret the lines in the files as commands to execute and run the script.
  4. Providing input to the script.
    • Default values are found in brackets and pressing enter will selected them.
    • For entries with a [Y/n] the capital letter is the default. Enter y to choose ‘yes’ or n to choose no.
    • Likely the only value you will need to enter is your masternode control token.

    Syscoin Core Github Branch [master]:
    Masternode Control Token []: 5ra1rhngvNkhkiFE8STrmvH3LvYTCzLyRFHFsZvrJUBV6ZmWnc
    External IP Address [123.123.123.123]:
    Masternode Port [8369]:
    Configure for mainnet? [Y/n]:
    Press any key to continue or Ctrl+C to exit…

  5. Wait for the setup to finish.
  6. Setup your access to syscoind.
    type: source ~/.bashrc and press Enter.
  7. Check you are fully synced and geth_sync_status = synced:
    type syscoin-cli getblockchaininfo and press Enter
    • You will get this error until you start your Masternode as below

    “status”: “Not capable masternode: Masternode not in masternode list”
    START MASTERNODE

9. Initializing your masternode

Note: The next step requires a fully synced Syscoin-Qt, which should have happened by now if you didn’t close it as advised earlier. Otherwise, start it again and wait for it to fully sync. This can take 10 minutes.

1. Choose the Masternodes tab, select your masternode,
2. Click Initialize.
Note: For the moment, the Initialize Button is bugged. We need to use the Console again.

  1. Unlock your walled as you did at the start in Step 2.
  2. Go to the Console, enter masternode initialize [MASTERNODE LABEL]
    • Every time you do this, you will reset the grace period your node has to wait before it can receive rewards. The grace period 102 hours at the time of this writing.
    • (Re-)Initializing a masternode does not affect seniority. Seniority is only dependent on the funding transaction.
    • If the masternode status ever becomes New_Start_Required and stays that way over 15-30 minutes, that means it has been disconnected from the network. Something might be wrong, it might be time to re-initialize it again as it won’t receive rewards anymore.
10. Governance / Sign up to Syshub (optional but highly recommended)

As the proud owner of a masternode, you are elligible to partake in Syscoin’s governance process.
The most convenient way to do this, is to head over to Syshub.org and register your masternode.
Syshub allows you to easily, securely and comfortably:

  • create proposals
  • vote on proposals
  • …and checkout some statistics around masternodes.

This is a community project, your votes and your input are important.

Command reference to manage your masternode

MASTERNODE COMMANDS IF YOU USED THE SCRIPT
View your syscoin.conf
nano /home/syscoin/.syscoin/syscoin.conf
View your sentinel.conf
nano /home/syscoin/sentinel/sentinel.conf
View the syscoin user crontab which should contain:
sudo crontab -u syscoin -l
Run a sentinel ping to speed up Qt syncing? why not!
sudo su -c "sentinel-ping" syscoin
View the sentinel-ping cron log, look for errors
sudo less /home/syscoin/sentinel/sentinel-cron.log
View the syscoind debug log, look for errors
sudo less /home/syscoin/.syscoin/debug.log
Start and stop the syscoind systemd service
sudo service syscoind stop
sudo service syscoind start
sudo service syscoind restart
Check that the syscoind process is running at the proper user
ps aux | grep syscoind

Aliases to run the respective syscoin-cli command as the syscoin user:
syscli getblockchaininfo
syscli mnsync status
syscli masternode status

If you really want to log in as the syscoin user
sudo su - syscoin

Eligibility for Rewards

Keep in mind that your masternode will not immediately be eligible for rewards. The eligibility period in hours is given by the formula ([number of masternodes] * 4) /60.

Future Updates

Updates and reconfigurations can be performed by entering the command sysmasternode or the initial auto install command:
bash <(curl -sL https://raw.githubusercontent.com/Syscoin/Masternode-install-script/master/script.sh). (the earlier is an alias for the later)

Summary

This script installs the necessary dependencies to build the Syscoin Core from source. It creates a user named syscoin and uses a systemd service to start the syscoind process as the syscoin user automatically at boot after the necessary networking services have started.

Resources

Sysnode.info: This website has an array of tools such as Masternode Stats, Monitoring and keeping up to date with current news with Syscoin.

Acknowledgements

Special thanks to demesm and doublesharp for the initial script, Bigpoppa for most of the conversion and bitje, johnp and the Syscoin team for upgrading and working out minor issues to get it running on SYS4.

1 Like