3 Masternodes 1 VPS (Absolute ABS)

Romano RNR
9 min readJun 12, 2018

Disclaimer: I assume you have basic knowledge of Linux and your own OS. I’m not responsible for any loss by using this guide. I assume you don’t have a learning disorder. Do not proceed this guide if you have any doubts in the guide or in yourself. I do not guarantee profits, neither do I trust the current developer. It’s just a lowcap coin that might play out well if the dev does not fuck up or exit scams.

The only few devs of coins I really trust and care about are: Viacoin (I’m the lead dev), Decred, Ubiq, Stratis, Zcoin, Groestlcoin, Mothership, Crown & Radium.

In this article I will show you how to setup 3 masternodes on 1 VPS. Running 3 masternodes on 1 VPS can save a lot of cost if you have to setup a lot of masternodes. Also it can be easier to manage them.

Setting up 3 masternodes on 1 VPS is discouraged by developers because it leads to less decentralization but we are trying to make some extra bitcoins :)

This tutorial will be for Absolute $ABS but with minor adjustments this can work on every coin.

Absolute: https://absolutecoin.io/

Exchange: https://stocks.exchange/trade/ABS/BTC (no verification or withdrawal limit)

At the time of writing this post, the current income is $120 per month with 1 Masternode. The cost of 1 Masternode is currently $386.02

If you can’t do this or you need someone to manage your masternodes. I recommend this website. They will setup masternodes for you

blocksolve.com
support@blocksolve.com

First off, make an account on vultr https://www.vultr.com/?ref=6955361

After you made an account, we can start setting up our Absolute Masternode. Choose a location and OS. As OS I would recommend Ubuntu 0.16.04 and the $5 VPS (or as I call it: : “The vultr shitty”).

You should obviously call it abs-cluster1

If you have some Linux experience, I’d recommend to use SSH keys. Deployment will take some minutes. This is the perfect moment to grab some coffee for yourself… even better: bleach.

When your node is ready, you can make an ssh connection to it. Windows users should use Putty to make an SSH connection to their server. https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.70-installer.msi If you are a Linux user, I expect you know how to ssh into your machine.

# ssh root@ip-addr-here

Update

Fist update your Ubuntu machine with

# sudo apt-get update

Swap

The purpose of creating a swap is to provide disk storage to the kernel when RAM is under pressure. It allows for the kernel to move memory pages that are not likely to be accessed soon to disk, freeing memory. Our server has only 1GB RAM, it’s not a lot so that is why we need a swap for sure. The downside of swapping is that disks are slow. RAM is magnitudes faster. However using a swap can be the difference of your server crashing because it doesn’t have enough RAM or staying online.

Let’s create a Swap file. The fastest way is by using fallocate. We will use a 4GB swap (There’s no perfect number).

# sudo fallocate -l 4G /swapfile

We should adjust the permission on the swap file so that it is not readable by anone besides root. We can use chmod to lock down permissions.

# sudo chmod 600 /swapfile

Now the swap file is created, the system should format this file as a swap & enable it.

# sudo mkswap /swapfile# sudo swapon /swapfile

Now we have to make the swapfile permanent. So we still have it when the system reboots.

# echo “/swapfile swap swap sw 0 0” >> /etc/fstab

Swapiness

Now we can do some tweaking. Swapiness param determines how often the system swaps datta out of memory to the swap. This value is between 0 & 100% (The percentage of memory that will trigger the use of swap). Lets change this to 10.

# sudo sysctl vm.swappiness=10

and to make it pernament

# echo “vm.swappiness = 10” >> /etc/sysctl.conf

Binaries

Let’s grab the binaries. Normally the binary does not require libboost and other requirements, but this dev failed with the Gitian binarie builds (low cap coin, can’t expect much right?). So we have to install some extra deps.

# sudo apt-get install libboost-all-dev -y
# sudo apt-get install software-properties-common -y
# sudo add-apt-repository ppa:bitcoin/bitcoin -y
# sudo apt-get update -y
# sudo apt-get install libdb4.8-dev libdb4.8++-dev -y
# sudo apt-get install libevent-dev -y

Now we can download & extract the binaries. We copy them to the bin folder to make the binaries easy accessible

# wget https://github.com/absolute-community/absolute/releases/download/12.2.2/absolute_12.2.2_linux.tar.gz# tar -xvzf absolute_12.2.2_linux.tar.gz
# cd absolute_12.2.2_linux
# sudo cp -f absoluted /usr/bin/absoluted
# sudo cp -f absolute-cli /usr/bin/absolute-cli

Sentinel

Now we have to install sentinel to monitor those masternodes.

# cd $HOME
# mkdir .absolutecore
# cd $HOME/.absolutecore
# git clone https://github.com/absolute-community/sentinel.git
# cd sentinel
# sudo apt-get install virtualenv -y
# virtualenv ./venv
# ./venv/bin/pip install -r requirements.txt
# cd

Now that’s done, we can run absoluted (the wallet) and let it sync by using

# absoluted

Now we have to wait until the chain is fully synced. This can be done with

# absolute-cli getblocktemplate

3 Masternodes

after syncing, shutdown absoluted wallet by using

# absolute-cli stop

Now I mentioned we will setup 3 masternodes & we will. Let’s make 2 extra copies of the blockchain & save them in another folder.

# mkdir ~/.absolutecore2
# mkdir ~/.absolutecore3
# cp -R -a ~/.absolutecore/. ~/.absolutecore2
# cp -R -a ~/.absolutecore/. ~/.absolutecore3

Snapshot

Now let’s make a snapshot/backup. We can use that snapshot later. It’s a sort of copy of the system, we can use it to setup another VPS with 3 masternodes but with the snapshot we don’t have to redo all the work we did before. Like make a swap, install deps, get binaries, sync the entire chain & copy.

This can take an hour but save us a lot of time and effort if we have to setup masternodes.

IP adresses

After that, it’s time to generate 2 extra IP addresses. Click on the button “Add another IPv4 Adress” 2 times.

click on the link text networking configuration

and it basically shows how your network configuration should look like. Use a text editor like nano or vim to change it like it shows you

# nano /etc/network/interfaces

delete everything in it and paste the network interfaces configuration vultr provided you and save it.

Now we have to restart our VPS via the console on vultr by clicking on the restart button.

and ssh back in again after a minute

$ ssh root@ip-addr-here

Now lets configure our masternodes.

Masternode Genkey

On your local pc or laptop, make a masternode key.

Now I assume you use the Gui/QT/Graphical Absolute wallet. Hit on the tab receive.

As Label: masternode1

Amount: 1000

Message: abs-cluster1 your.vps.ip.here

Hit Request payment. Write down your ABS public address. The address starts with an “A”.
Now deposit EXACTLY 1000 ABS to your ABS public address.
NOTE: If you send from exchange, it will deduct fee and might not work.

The transfer requires 15 confirmations before the masternode launch.

Open the debug console in your local wallet. (Tools>Debug Console).
Paste the command:
masternode genkey
Press ENTER to generate your private key
SAVE the output. It will be needed in upcoming steps

VPS side

On the VPS it’s time to configure. Use vim or nano

# nano ~/.absolutecore/absolute.conf

And paste this in.

masternode=1
masternodeprivkey=4iQYOUR-MASTERNODE-GENKEY-OUTPUT-HERE
rpcallowip=127.0.0.1
rpcport=1337
server=1
listen=1
deamon=1
bind=YOUR.FIRST.IP.HERE (for me it is-> 45.32.xxx.xxx)
externalip=YOUR.FIRST.IP-HERE:18888 (for me-> 45.32.xxx.xxx:18888)
maxconnections=246
rpcuser=absuser
rpcpassword=abspass

BEFORE we repeat the steps again for masternode2 and masternode3, it’s important to enable “coin control features”. Instructions can be found here: https://support.node40.com/hc/en-us/articles/115000396927-Enable-Coin-Control (It’s for Dash but works the same way)

Some extra options to do in your local wallet running on your pc/laptop

In your local wallet, go to >Settings >Options > Wallet

Enable: Show Masternodes Tab & Enable coinn control features

Disable: Spend unconfirmed change

Now repeat the masternode genkey steps again. Request a new payment, label it as masternode2, Amount: 1000, Message: abs-cluster1 your.vps.ip.here

Now my second generated IP was 104.238.xxx.xxx so I would as Message: abs-cluster1 104.238.xxx.xxx

and after that use the console to: masternode genkey and save that with the generated payment request address..

Do this again for masternode3.

Back to the VPS! Time to do our second masternode

# nano ~/.absolutecore2/absolute.conf

And paste in

masternode=1
masternodeprivkey=4ifbgYOUR-SECOND-MASTERNODEKEY
rpcallowip=127.0.0.1
rpcport=1338 (NOTICE I USE A DIFFERENT PORT HERE)
server=1
listen=1
deamon=1
bind=YOUR.SECOND.IP.HERE (for me it is-> 104.238.xxx.xxx)
externalip=YOUR.SECOND.IP-HERE:18888 (for me-> 104.238.xxx.xx:18888)
maxconnections=246
rpcuser=absuser
rpcpassword=abspass

Time to do our third masternode

# .absolutecore3/absolute.conf

and paste in

masternode=1
masternodeprivkey=4ifbgYOUR-THIRD-MASTERNODEKEY
rpcallowip=127.0.0.1
rpcport=1339 (NOTICE I USE A DIFFERENT PORT HERE)
server=1
listen=1
daemon=1
bind=YOUR.THIRD.IP.HERE (for me it is-> 108.61.xxx.xxx)
externalip=YOUR.THIRD.IP-HERE:18888 (for me-> 108.61.xxx.xxx:18888)
maxconnections=246
rpcuser=absuser
rpcpassword=abspass

Now we can turn them all on

# absoluted -datadir=/root/.absolutecore --daemon
# absoluted -datadir=/root/.absolutecore2 --daemon
# absoluted -datadir=/root/.absolutecore3 --daemon

If you want to use absolute-cli, you can use it like this

absolute-cli -datadir=/root/.absolutecore getinfo
absolute-cli -datadir=/root/.absolutecore2 getinfo
absolute-cli -datadir=/root/.absolutecore3 getinfo

Now it’s time to use our dekstop/laptop (not VPS)

Open the console of our wallet and use the command

masternode outputs

It will shit out the transaction ID’s and we don’t really know which tx-id belongs to the address. But we can use the blockexplorer for it.

https://explorer.absolutecoin.net/address/YOUR_WALLET_ADDR_HERE

and you can see the hash of the transaction. Check if it matches with 1 of your masternode outputs. For mine it does.

now open absolute.conf That file is filled with an example on your local pc or laptop.

On Windows this is located at %appdata%/absolute (type this in Windows Explorer). In Mac, this is in (Lol nobody cares about Mac users) and in Linux it’s typically in your $ ~/.absolute folder.

The # means that it is commented out. Your wallet won’t read that.

Now save it & restart your wallet. If your wallet starts up again, it’s fine. If not, you probably fucked up some port in the absolute.conf file. Btw on the end of the line, notice the 0. If it was 1 in your case, change it to 1. (masternode outputs actually gives you the right number 1 or 0.)

Restart your wallet you have running on your own pc/laptop/locally and go to the Masternodes tab if the wallet is done loading. your Masternode should appear.

Now there’s one thing left undone. Press on the button Start all

Important

Go to Help > debug window and use the command: dumpprivkey “Your absolute A-address”

It will shit out your private key. Print this out and store it in a safe place (not online but somewhere in a safe/locker). Anyone who has your private key can steal your funds.

After that:

Encrypt your Absolute wallet on your pc/laptop.

Go to Settings > Encrypt Wallet.

And don’t forget your password or your funds will be lost. Encrypting is important because if some gets access to your pc (with malware, RAT or just physically) he can’t steal your funds because there’s a password on it. (Use a strong password)

Another thing, on the server we worked from root. This is not the best practice but I did it for simplicity. Well the challenge for you might be to try making your own user account on your VPS & configure everything.

I hope you learning something and if you have any questions, do not DM/PM me. Ask someone else first (And don’t give them your private key).

--

--

Romano RNR

Derivatives trading, investing, cryptocurrency, stocks, forex, options & volatility - programmer & sysadmin