Below are the minimum requirements for your VPS. Please do not try to compile without the minimum.
- 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
- KVM or OpenVZ (KVM preferred)
- Linux OS — Ubuntu 18.04.1 LTS (Bionic Beaver) preferred.
- 80gb Disk Space (100gb+ SSD preferred).
- Port open for Syscoin (default: 8369) and Geth (default: 30303)
To use this procedure you must have upgraded your QT to Sys4
Syscoin 3 to Syscoin 4 Upgrade Procedure
Please read these instructions carefully the majority of issues are because these instructions are not read correctly.
Update your VPS OS:
Log onto your Server using Putty as Root.
All text in boxes are commands and need to be typed (Copy/Paste into Putty followed by Enter.
Install Nano (Text editor)
sudo apt-get update
sudo apt-get install nano
Open ports/enable firewalls etc.apt install ufw python virtualenv git unzip pv
ufw allow ssh/tcp
ufw limit ssh/tcp
ufw allow 8369/tcp
ufw allow 30303/tcp
ufw logging on
ufw enable
Install Swap file if you have only 4gb Memory
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
nano /etc/fstab
Add the following line at the end of the file, then press Ctrl + X to close the editor, then Y and Enter save the file.
/swapfile none swap sw 0 0
We will create a new user with the following command, replacing <username>
with a username of your choice.
adduser <username>
You will be prompted for a password. Enter and confirm using a new password (different to your root password) and store it in a safe place. You will also see prompts for user information, but this can be left blank.
Once the user has been created, we will add them to the sudo group so they can perform commands as root.
usermod -aG sudo <username>
Reboot the server:
Log onto your Server using Putty with the Username and password you created not as Root.
Build Syscoin Core from sources:
sudo apt-get update
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3 libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-devsudo apt install git
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
git clone http://www.github.com/syscoin/syscoin
cd syscoin
git checkout master
./autogen.sh
./configure
make -j$(nproc)
// (This will take 40 minutes or more, do not shut Putty down)mkdir ~/.syscoin
We need to create the config file
nano ~/.syscoin/syscoin.conf
Paste in the following:
# rpc config
rpcuser=user
rpcpassword=password
rpcallowip=127.0.0.1
rpcbind=127.0.0.1
rpcport=8370
# syscoind config
listen=1
server=1
daemon=1
maxconnections=24
addnode=54.203.169.179
addnode=54.190.239.153
Press Ctrl + X to close the editor and Y and Enter save the file
Run Syscoin Core
cd ~/syscoin/src
./syscoind
Syscoind will start and type to check progress.
./syscoin-cli getblockchaininfo
Wait for “geth_sync_status”: “synced”
Look for the “geth_sync_status”. The state should go form “waiting” to “syncing” to “synced”. If you’re running without the -daemon
argument, you'll see the terminal being flooded with Geth logs where it's syncing.
Then, check ./syscoin-cli mnsync status
. The asset name should go from "MASTERNODE_SYNC_INITIAL" to "MASTERNODE_SYNC_LIST" to "MASTERNODE_SYNC_MNW" to "MASTERNODE_SYNC_GOVERNANCE" to "MASTERNODE_SYNC_FINISHED"
Once Synced stop Syscoind
./syscoin-cli stop
Edit syscoin.conf
nano ~/.syscoin/syscoin.conf
Add the following using your MN key created in QT and your VPS IP
# masternode config
masternode=1
masternodeprivkey=7ra1rhngvNkhkiFE8STrmvH3LvYTCzLyRFHFsZvrJUBV6ZmWnc
externalip=123.123.123.123
port=8369
Save.
Start syscoind
./syscoind
Check the status
./syscoin-cli getblockchaininfo
Check Masternode has Synced
./syscoin-cli mnsync status
Start Masternode in QT
Check it has started
./syscoin-cli masternodelist json yourvpsip
Install Sentinel
Please ensure you are still in syscoin/src directory
(cd ~/syscoin/src)
sudo apt-get update
sudo apt-get install -y git python-virtualenv
git clone https://github.com/syscoin/sentinel.git
cd sentinel
git checkout sys4
We now need to edit the sentinel config file
nano sentinel.conf
- If there is a # In front of syscoin_conf= then remove it
- Change the directory from syscoincore to just syscoin
- put a # next to network=testnet remove the # next to network=mainnet to enable mainnet version of sentinel.
- replace YOURUSERNAME with your VPS user name next to syscoin_conf at the top
Save
Should look like this
Finish Sentinel setup
virtualenv venv
If this command fails try installing this package
sudo apt-get install -y virtualenv
and then run virtualenv venv
Install sentinel dependencies
venv/bin/pip install -r requirements.txt
venv/bin/python bin/sentinel.py
Should return nothing but silence. This is how you know it’s working.
If it says wait for sync, wait a minute and try again.
Create a crontab entry to wake sentinel every 5 minutes.
crontab -e
Please wait and select Nano as the option if this is the first time you have done this and add this line to the end of the file, including * * * * *
- */5 * * * * cd /home/YOURUSERNAME/syscoin/src/sentinel && ./venv/bin/python bin/sentinel.py 2>&1 >> sentinel-cron.log
To Start Syscoind automatically on boot you can add this line.
//Thanks to Locutus
- @reboot /home/YOURUSERNAME/syscoin/src/syscoind -daemon >/dev/null 2>&1
Replace YOURUSERNAME with your VPS user name.
Save
Check to see MN state
cd ..
./syscoin-cli masternodelist json yourvpsip