Stakenet (XSN) —TPoS Merchant Setup Guide

Hello and welcome to a Stakenet Tutorial Guide.

In this guide I will explain how to set up your first TPoS as a merchant on a Windows local wallet with a Linux (Ubuntu) VPS. If you prefer a visual guide, you can follow the written instructions in this guide and follow this video:


DISCLAIMER/IMPORTANT NOTES:

1- This guide only works when both the Merchant and the coinstaker XSN wallet is updated to V1.0.11 or later.

Note: for Merchant wallets I recommend having both your local wallet & VPS Wallet on V1.0.15 at least.

If you or the coinstaker do not have the latest wallet, you can obtain the latest wallet version from the below link:
 https://github.com/X9Developers/XSN/releases

2- When creating a TPoS contract, you must never ask the cointstake to send coins to you as all TPoS contract must be created through the TPoS tab in your wallet UI.

3- A TPoS contract does not give the Merchant permission to move the coinstaker coins or provider owners rights. The TPoS contract only allows the Merchant “view-only” permissions to run the stake.

Requirements to be a TPoS Merchant:

First things first, to be a TPoS Merchant, you will require the following:

  • An up-to-date version of the XSN Wallet on your computer.
  • An XSN Legacy Wallet Address in your wallet (Merchant Address) — You need one unique merchant address per TPoS Contract.
  • Your coinstaker must use an XSN Legacy address.
  • A unique IPv4 Server (VPS) — you require one for each TPoS contract
  • Your VPS must meet the minimum specification requirements.
  • Note: Your VPS must maintain a steady uptime.

Where do I get a VPS and what are the minimum system specs for a server?

Choosing your VPS Provider:

You can purchase your server, otherwise known as a VPS through any VPS provider however; I recommend either of the following:

Evolution Host

Evolution host is extremely reliable with a friendly customer support team. They will allow you to pay for your servers in XSN should you choose to use this option. They offer either SDD or HDD VPS options, and I have included their comparison below:

https://evolution-host.com/vps-hosting.php

Vultr:

Vultr is reliable and has a helpful support team should you run into server issues. Your initial deposit will need to be done with a card payment/ PayPal however; after this time, you are able to pay for your servers in bitcoin if this is your desired payment method or you can use the same as your initial payment.

https://www.vultr.com/?ref=7401965

Sign up using the above link and you will receive some free credit to help you run your servers however; you must deposit $10 first.

Upcloud:

Upcloud is extremely reliable and I have never had an issue of a server going offline for maintenance with them which is an important factor when running a Masternode as any server downtime will impact your earnings and will require you to reset your Masternode. Payment options are Paypal or card.

https://www.upcloud.com/register/?promo=P7T8CE

Sign up using the above link and you will receive $25 free credit to help you run your servers however; you must deposit $10 first.

Evolution Host

Evolution host is extremely reliable with a friendly customer support team. They will allow you to pay for your servers in XSN should you choose to use this option. They offer either SDD or HDD VPS options, and I have included their comparison below:

https://evolution-host.com/vps-hosting.php


How to deploy your first VPS?

Once you have signed up and deposit your credit in your VPS hosting account, you will now need to deploy your server.

For the below, I will be showing you how to deploy your server on Vultr for many of the instructions as there is no major difference between Vultr & Upcloud when it comes to deploying a server.

Step 1) Deploy a Server by clicking on the Blue Plus Symbol (Vultr).

Step 1.1) Deploy a Server by using the left-hand menu, Servers -> Deploy a Server (Upcloud). Please note with Upcloud, your first step will be to input a server name i.e. TPoS1 and a short server description TPoS1. With Vultr, this is the last step you do.

Step 2) Choose your server location.

Step 3) Choose your operating system. I recommend Ubuntu 18.04.

Step 4) Choose your server. I recommend using the $5per month — 1 CPU, 1GB Ram and 25GB SSD.

The current server requirements as for an XSN Masternode as at the time of writing this guide is as follows, however; for a TPoS VPS you will be fine to use the minimum specs:

Step 5) Name your server and press deploy.

Step 6) Wait for the installation to complete, on the next screen, click on your server and then click on Manage and take note of the IP Address, username and password:


You have now deployed your first server which you can use for your Masternode.

Important Note: Remember that each TPoS will require a unique IPv4, in other words, one VPS per TPoS contract.


Setting up your Windows Local Wallet

Step 1) Download and install the latest XSN Wallet from the below link:
 https://github.com/X9Developers/XSN/releases

Step 2) Once the wallet has been installed on your computer follow the basic video tutorials on how to encrypt, backup, and use your wallet if you don’t know how. These can be found here: https://www.youtube.com/playlist?list=PLiPgD5jh1hS2W_9ToziTsaAiE-lRZA_st

Step 3) You now need to create your Merchant Address which you will use to send to your Coinstaker. The Merchant Address must be a legacy XSN address.

Please note, you will require one Merchant Address per Coinstaker and cannot use the same address for two different TPoS contracts.

In order to create one you will need to open your wallet and go to Tools -> Debug Console, type the below in and press enter to generate a Legacy address and then make note of the address in a notepad document:

getnewaddress “alias” legacy

You can rename the address by going File -> Receiving Addresses -> right click on your Legacy address named “Alias” and change name.

Note — A legacy XSN address starts with “X” whereas a Segwit address starts with a “7”

Step 4) You will now need to get the privatekey for your merchant address. To do this, go to your debug console and type in the following command.

Make note of the privkey and copy it into the notepad file with your merchant address.

dumpprivkey Merchant_address

Since wallet version 1.0.17, we have added further security measures to the wallet.

After inputting the above command, it will ask you to confirm a one time authorisation code. You will need to input it as such:

dumpprivkey Merchant_address Authorisation_Code

Step 4) Send the Merchant legacy address created in step 3 and send it to the coinstaker to create their TPoS contract within their TPoS tab.

Note: You need to make sure that the coinstaker has their coins on a legacy address.


Preparing the xsn.conf file for your VPS server

Whilst the coinstaker creates their TPoS contract with you, you can start preparing your file that you will use on your VPS xsn.conf.

Step 1) Copy and paste the below into a Notepad document, and fill in the information in bold.

For the VPS IP — input the IP of you the VPS you purchased earlier. Make sure to keep the port :62583 as shown below.

# - -
rpcuser=long random username
rpcpassword=longer random password
rpcallowip=127.0.0.1
# - -
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=256
# - -
merchantnode=1
externalip=VPS IP:62583
merchantnodeprivkey=Merchant Private Key (taken from previous steps)
# - -

An example of what it will look like is below.


Setting up your VPS and Installing the XSN Wallet

I will first show you how to set up and install your VPS; if you know how to do this already then you can ignore and proceed to the next section.

Getting Started — Preparing your VPS

This section will tell you how to install a program to run your VPS server, adding a new super user to your VPS, upgrading & updating your VPS, setting up your firewall and so forth.

It might sound daunting, but it will mainly be copy & paste of lines into your VPS.

Step 1) Download and install Putty from the following link: https://www.putty.org/

Step 2) Click on the “download here” link:


Step 3) On the next page, download the correct build for your PC.

Step 4) Install and open putty. Once open, input your VPS IP and add a name, then press save on the right-hand side, followed by open:

Step 5) Once the connection to the server opens, input the username “root” and the password given to you by your server.

Tip: You cannot paste using Ctrl + V, instead you right click to paste into the console.

Step 6) Once logged in, you will now need to change the password to your “root” login. Input the following command and then type in a new password:

passwd root

Step 7) Next you want to add a new user which you will use to login — Change “username” to the desired name but only use lowercase:

adduser username

Step 8) Confirm your password for the new user and press enter through to the “Is the information Correct?” If it is correct, input “y” and press enter.

Step 9) Next you want to make your new user a super user. Input the following command and replace username with the one you created in the previous steps:

usermod -aG sudo username

Step 10) Update your server using the following command:

apt update -y

Step 11 Once the updates have finished downloading, you will need to apply the upgrades using the following command:

apt upgrade -y

Step 12) The next step is to apply your firewall and allow access to port 62583 as this is required to use the XSN Wallet. You will need to copy and paste each line separately.

apt install ufw python virtualenv git unzip pv
ufw allow ssh/tcp
ufw limit ssh/tcp
ufw allow 62583/tcp
ufw logging on
ufw enable

Note: After some of the commands, it will require you to input “y” and enter, to proceed so please look out for this.

Step 13) As with above, copy and paste each line separately.

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
nano /etc/fstab

Step 14) The nano command will move to a different screen. Once that is open, use your arrow keys to navigate to the bottom and paste the below line.

/swapfile none swap sw 0 0

Note: You must make sure that the above spaces between each word & number is separated by using tab on your keyboard, which is indicated by the red lines in the image below:


Once inputted, go Ctrl + X, followed by “Y”, and then Enter.

Step 15) Once you have edited and saved the document, copy and paste the below line to reboot your server and apply the changes:

reboot now

You are now ready to install the latest XSN wallet.


Getting Started — Installing your XSN Wallet on your VPS

This section will tell you how to install the XSN Wallet on your VPS and input your Merchant Configuration file you created previously.

Step 1) Download and install the wallet using the following commands. Please copy and paste each line separately.

mkdir ~/.xsncore/ 
wget https://github.com/X9Developers/XSN/releases/download/v1.0.17/xsn-1.0.17-x86_64-linux-gnu.tar.gz 
tar xfvz xsn-1.0.17-x86_64-linux-gnu.tar.gz
cp xsn-1.0.17/bin/xsnd ~/.xsncore/
cp xsn-1.0.17/bin/xsn-cli ~/.xsncore/

Step 2) Input the following command and paste in the information you just inputted into Notepad earlier.

nano ~/.xsncore/xsn.conf

Once inputted, go Ctrl + X, “Y” and Enter.

Step 4) Start your VPS Wallet with the following:

~/.xsncore/xsnd

Step 5) Give your wallet on your server a few minutes to start sync’ing to the blockchain. You can monitor the progress with the following command:

~/.xsncore/xsn-cli getblockchaininfo

Once the numbers in Blocks = Headers, then your VPS is fully sync’d.


Setting up your Merchantnode.conf on your Local Wallet

Now your VPS has been set up and is sync’ing, we need to get your merchantnode running.

Hopefully by this point, your coinstaker has created their TPoS contract which has confirmed in your local wallet Transaction tab. If they have not created it yet, you cannot proceed any further until that has been done.

Step 1) In your local wallet, go Tools -> Debug Console, and type in the below:

tposcontract list

This command will display all active merchant contracts relating to your addresses:

Step 2) Copy and paste the output from that command, and store it in a notepad document with your Merchant Address and Private Key, for ease of reference. I have provided an example below.

Step 3) We need to prepare the text that will go into your Merchantnode.conf file.

alias VPS_IP:62583 Merchant_Private_Key TXID

The “alias” is the name you want to call this TPoS contract, I suggest TPOS1 — similar to the below:

Please note: For each TPoS contract, you will need to enter in a new line into your Merchantnode.conf, and each must have a unique alias like TPOS2, TPOS3 etc.

Step 4) Close your wallet and go to your XSNCore Folder in Roaming. The location is as follows:

C:\Users\*Username*\AppData\Roaming\XSNCore

Step 5) Open your Merchantnode.conf file and input the text created in the step 3.

Save and close the file.


Enabling the TPoS Contract on your Local Wallet

Open your local wallet, make sure your VPS has synced and your local wallet has synced.

We are now ready to enable your TPoS contract.

Step 1) In your Debug Console, type in the following command:

merchantnode start-alias Alias

The alias is what you named it in the merchantnode.conf, so in my example, it would be “TPOS1”. This will return the below output:

Step 2) To monitor the status, in your Debug Console, type in the following command:

merchantnode list-conf

Please note: It will take 15 to 30 minutes for the contract to change from pre-enabled to enabled.

Once the contract has enabled, we are ready to move onto the final step.

If your contract does not change to Enabled after 30 minutes, you should check that your VPS is fully synced and if it is, you should make sure the coinstaker and you have both used Legacy XSN addresses.


Enabling the TPoS Contract on the VPS

Now we need to get the contract staking on your VPS.

Step 1) On your VPS, type in the below command and edit the part in bold which should be the tposcontract TXID you pasted into your notepad earlier:

~/.xsncore/xsn-cli setgenerate true 1 true TXID

After successfully inputting that command, your should receive the above message.

Step 2) To double check the staking is active, input the below command:

~/.xsncore/xsn-cli getstakingstatus

Check the output from the above command that it shows “staking status: true” as per below.

Congratulations, you have set up your first XSN TPoS contract!

Join the Stakenet discord — https://discord.gg/MJc2x6f and let us know if you have any questions.

If you found this guide or tutorial video helpful and would like to show your appreciation, please send a donation:

XSN Address:
XxpKAqBGoNjeNGpcA2LigB7zmZt4zye6Vc

ETH Address: 
0xc198efbd7a0f8d2f350740fbd90949f5537acfd8

BTC address: 
1DwbSqKrDVNkTb29XoBtDYG5DEXsM9gBnL