Permalink
Switch branches/tags
Nothing to show
Find file Copy path
cac27b0 Oct 21, 2018
1 contributor

Users who have contributed to this file

397 lines (245 sloc) 15.8 KB

Masternode-Setup-Guide

Masternode config

Exosis allows controlling multiple remote masternodes from a single wallet. The wallet needs to have a valid collateral output of 10000 coins for each masternode and uses a configuration file named masternode.conf which can be found in the following data directory depending on your operating system):

Windows: %APPDATA%\exosis
Mac OS: ~/Library/Application Support/exosis/ Unix/Linux: ~/.exosis/

masternode.conf is a space separated text file. Each line consists of an alias, IP address followed by port, masternode private key, collateral output transaction id and collateral output index.

Example: mn1 127.0.0.2:12330 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 7603c20a05258c208b58b0a0d77603b9fc93d47cfa403035f87f3ce0af814566 0 mn2 127.0.0.4:12330 92Da1aYg6sbenP6uwskJgEY2XWB5LwJ7bXRqc3UPeShtHWJDjDv 5d898e78244f3206e0105f421cdb071d95d111a51cd88eb5511fc0dbf4bfd95f 1 In the example above:

Use of masternode genkey provides the masternode private key Use of masternode outputs provides the transaction id for the collateral.

The masternode outputs are available after 6 confirmations but the masternode cannot be started until 15 confirmations of the collateral deposit transaction.

In order to start the masternode, the collateral needs to be unlocked. In coin control, right click the transaction in the list and select unlock unspent. Go back to the masternode tab and start the masternode.

VERY IMPORTANT: Go back to the coin control dialog and lock the collateral again to avoid it being spent.

Please note that the unlocking / locking sequence needs to be repeated any time you want to start / restart the masternode. Example mn1 127.0.0.2:12330 93HaYBVUCYjEMeeH1Y4sBGLALQZE1YW1K64xiqgX37tGBDQL8Xg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 0 mn2 127.0.0.1:12330 4dLKdD7NJSGbxDi2Uy5EhFHCSSjPgHNx5X1WbTgGHdWLwX8mqF1 c3b97e7d3d5b0f66c12d67d5f1891f214b6b2be3603c23be760c7a9b31b7d5bd 0 the collateral of 10000 EXO for mn1 is output 0 of transaction 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c the collateral of 10000 EXO for mn2 is output 0 of transaction c3b97e7d3d5b0f66c12d67d5f1891f214b6b2be3603c23be760c7a9b31b7d5bd Note: IPs like 127.0.0.* are not allowed actually, we are using them here for explanatory purposes only. Make sure you have real reachable remote IPs in you masternode.conf. The following RPC commands are available (type help masternode in Console for more info):

list-conf start-alias start-all start-missing start-disabled outputs genkey status mnsync status

QT WALLET MASTERNODE SETUP | LINUX / MAC / WINDOWS NOTE: This guide is provided as is with no warranties of any kind

Open and Run the Exosis wallet for the first time. In the lower left-hand corner of the User Interface, you will see “Synchronizing with network” and other sync messages each time you open your Exosis Wallet.

Go into the colsole (In the help menu)

Type: getnewaddress "MN1"

Pay exactly 10000 EXO coions into this address.

Wait for 6 confirmations (You can watch this in the transactions tab)

Now, Go back to the console:

In the Console window enter: masternode genkey

Copy the result in a text file

This is your Masternode Privkey

Now, edit your exosis.conf file, if it's not there copy masternode.conf and rename it to exosis.conf after you paste it in same place. Then paste in the following lines overwriting any other data, and enter your privkey after the equals sign of “masternodeprivkey=” Also enter your external IP and change your rpc user and passsword. You can get your internet facing ip by clicking on whatismyip.com

Location of the *.conf file Windows: C:\Users"YOUR_USER"\Appdata\Roaming\exosis , you can also use path %AppData%\Bata in Explorer

Mac: ~/Library/Application Support/exosis

Linux: ~/.exosis

masternode=1 masternodeprivkey= rpcuser=AnyUser rpcpassword=AnyPassword rpcallowip=127.0.0.1 daemon=1 server=1 listen=1 port=12330 externalip=youripaddress:12330

Now save and close the file.

Go to Help -> Debug Console, and enter:

masternode outputs

Copy the result in a text file

This is your TX_ID and TX_INDEX

Now, go to Tools -> Open Masternode Configuration File. Format your masternode information like below and save the file”.

MN_ALIAS EXTERNAL_IP:12330 MN_PRIVKEY TX_ID TX_INDEX

Close the wallet by going to File -> Exit.

Open the Exosis Wallet again

Don't forget to "unlock unspent" in your local wallet... to do this activate Coin Control in your options. Go to 'Send' -> Inputs button -> Tree mode -> Drop down on your Locked 10k balance -> Right Click the locked balance -> Click Unlock Unspent

Go to Help -> Debug Console, and enter:

masternode start-alias MN1 (Or use teh Start ALias button in the masternode tab)

You will see the response “successful”.

Congratulations, your masternode is now running.

Now click the Masternodes tab that is now visible, if it's not visible go to Settings -> Options -> Wallet -> Show Masternodes Tab

You should see your new masternode appear in the list with the status PRE_ENABLE.

This will change to ENABLED after a small amount of time.

All masternodes need to be active for a certain amount of blocks before they are recognized by the network and eligible for rewards.

If there's any problems at the masternode start stage, it may be a firewall or port forwarding issue. Follow below step

Go to Windows Firewall -> Advanced Settings -> Inbound Rules -> New Rule -> Port -> Next -> Specific local ports -> 12330 -> Finish Wizard

Alternatively log into your router and forward ports to your pc.

You can test your forwarded ports with port checker

COLD/HOT WALLET MASTERNODE SETUP | LINUX / MAC / WINDOWS with LINUX VPS NOTE: This installation guide is provided as is with no warranties of any kind. Steps:

  1. Create a new VPS or use existing one. Recommended VPS resource configuration is similar to the vultr's $5/mo (25GB SSD/1xCPU/1GB RAM, Ubuntu 16.04).

In Windows / Linux / Mac wallet, create a new receiving address and name it MN1 for example.

Send exactly 10000 EXO to this new address.

View masternode outputs - output transaction ID and transaction index in wallet Debug Console (Help -> Debug console) by typing:

masternode outputs

Copy it somewhere safe. You will use these in the masternode.conf file for your wallet later.

Connect to your VPS server console using Bitvise SSH Client , login as root and create a new account if you want, by specifying the account name between " ":

This will assign your user name to parameter $user, this is required if you create a new account as other commands will reference $user

user="exosis"

This will create the user. Specify a password after creation

sudo adduser ${user}

This will assign the user created to sudoers without password req's for sudo

echo "${user} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Create your "hidden" config dir in your new user's $home directory

sudo mkdir -p /home/${user}/.exosis

Set permissions to these folders

chown -R ${user}:${user} /home/${user}/.bata /var/lib/bata

Run updates and upgrades

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade

Install the following prerequisites

sudo apt-get install -y build-essential libtool libzmq3-dev
autotools-dev automake pkg-config libssl-dev libminiupnpc-dev
libevent-dev bsdmainutils python3 libboost-all-dev git sudo apt-get install -y software-properties-common

Add the bitcoin repository

sudo apt-add-repository -y ppa:bitcoin/bitcoin

Run update again followed by Berkley DB installation

sudo apt-get update sudo apt-get install -y libdb4.8-dev libdb4.8++-dev

Run following command to see if you require swap

PHYMEM=$(free -g|awk '/^Mem:/{print $2}') if [ "$PHYMEM" -lt "2" ];
then echo -e "SWAP NEEDED";
else echo -e "SWAP NOT-NEEDED"; fi

Create swap if required, you need to create swap with root(sudo). Note: You have to create swap if your memory is less than 2GB and you want to compile Exosis yourself

dd if=/dev/zero of=/swapfile bs=1024 count=2M chmod 600 /swapfile mkswap /swapfile swapon -a /swapfile

Add configs so swap will be active after reboot and swapiness and casche is defined

echo '/var/mnode_swap.img none swap sw 0 0' | tee -a /etc/fstab echo 'vm.swappiness=10' | tee -a /etc/sysctl.conf echo 'vm.vfs_cache_pressure=50' | tee -a /etc/sysctl.conf

Log on to your newly created account

su $user

cd

  1. Next step can be done in two ways: A) Compile from source code, B) Download pre-compiled files. Choose either A or B here.

A) Compile from source code

Clone the Exosis repository

git clone https://github.com/exosiscrypto/exosis.git

cd exosis

Check out the latest release found in https://github.com/exosiscrypto/releases/

git checkout 0.16

Compile the checked out release

sudo chmod u+x share/genbuild.sh sudo chmod u+x src/leveldb/build_detect_platform sudo chmod u+x ./autogen.sh && ./autogen.sh ./configure --without-gui make cd src sudo strip exosisd sudo strip exosis-cli sudo chmod 755 exosisd exosis-cli

Move the daemon and cli to /usr/local/bin

sudo mv exosisd /usr/local/bin sudo mv exosis-cli /usr/local/bin

B) Download pre-compiled files

Get the tarball

wget https://github.com/exosiscrypto/exosis/releases/---to be completed

Unpack the tarball

tar -xvf Exosis-0.16.tar.gz

Remove the tarball

rm Exosis-0.16.tar.gz

Move the daemon and cli to /usr/local/bin

cd Exosis-0.16 sudo mv exosisd /usr/local/bin sudo mv exosis-cli /usr/local/bin cd && rm -rf Linux

Create the MN config file

Note that both, the externalip should match the IP address and masternodeprivkey should math the private key in your masternode.conf of your cold wallet in order for the masternode to function properly. If any of these two parameters change, they must be changed in both, the exosis.conf file on the masternode VPS (located in /home/exosis/.exosis directory) and masternode.conf on Cold Wallet PC (located in %appdata%/exosis folder for Windows, ~/Library/Application Support/exosis) folder for Mac and ~/.exosis for Linux

Open the exosis.conf file in nano editor or any other editor you prefer

nano /home/exosis/.exosis/exosis.conf

Copy and paste below into the opened/created exosis.conf file and change all the required fields

rpcuser=AnyRPCUser rpcpassword=AnyRPCPassword rpcallowip=127.0.0.1 listen=1 server=1 daemon=1 maxconnections=256 externalip=xxx.xxx.xxx.xxx masternode=1 masternodeprivkey=

When all info is entered save changes in exosis.conf file and exit by pressing CTRL+O -> ENTER -> CTRL+X

Start the exosis daemon with correct switches to refer to the created directories and wait for it to sync fully

exosisd -daemon -conf=/home/exosis/.exosis/exosis.conf -datadir=/var/lib/exosis

The MN setup is now complete, add a watch so you could see the status of the masternode and the syncing status while you setup/configure the cold wallet on your PC

watch -n 10 'exosis-cli -conf=/home/exosis/.exosis/exosis.conf masternode status
&& exosis-cli -conf=/home/exosis/.exosis/exosis.conf mnsync status
&& exosis-cli -conf=/home/exosis/.exosis/exosis.conf -getinfo'

  1. Prepare your Cold Wallet and start the new masternode. In this step you will introduce your new masternode to the Exosis network by issuing a masternode start command from your wallet, which will broadcast information proving that the collateral for this masternode is secured in your wallet. Without this step your new masternode will function as a regular Exosis node (wallet) and will not yield any rewards. Usually you keep your Cold Wallet on your Windows machine where you securely store your funds for the MN collateral.

Basically all you need to do is just edit the masternode.conf text file located in your cold wallet data directory to enter a few masternode parameters, restart the wallet and then issue a start command for this new masternode.

There are two ways to edit masternode.conf. The easiest way is to open the file from within the wallet app (Help -> Open Masternode Configuration File). Optionally, you can open it from the wallet data folder directly by navigating to the %appdata%/roaming/exosis. Just hit Win+R, paste %appdata%/roaming/exosis, hit Enter and then open masternode.conf with Notepad for editing.

It does not matter which way you open the file or how you edit it. In either case you will need to restart your wallet when you are done in order for it to pickup the changes you made in the file. Make sure to save it before you restart your wallet.

Here's what you need to do in masternode.conf file. For each masternode you are going to setup, you need to enter one separate line of text which will look like this:

MN1 174.29.275.12:12330 7Kn7....bXvy 24cab....db865 0

The format for this string is as follow:

MN_ALIAS VPS_IP:5784 MN_PRIVKEY TX_ID TX_INDEX

Where: MN_ALIAS - your human readable masternode name (alias) which you use to identify the masternode. It can be any unique name as long as you can recognize it. It exists only in your wallet and has no impact on the masternode functionality.

VPS_IP:5784 - this must be your masternode public IP address, which is usually the IP address of your VPS, accessible from the Internet.

MN_PRIVKEY - this is your masternode private key. Each masternode will use its own unique private key to maintain secure communication with your Cold Wallet.

TX_ID- this is your collateral payment Transaction ID which is unique for each masternode. It can be easily located in the transaction details (Transactions tab) or in the list of your masternode outputs

TX_INDEX - this is a single-digit value (0 or 1) which is shown in the masternode outputs

Use only one space between these properties in each line, don't use TABs.

Once you think you are all done editing masternode.conf file, please make sure you save the changes!

IMPORTANT: Spend some time and double check each value you just entered. Copy/paste mistakes will cause your masternode (or other nodes) to behave erratically and will be extremely difficult to troubleshoot.

Finally, you need to either restart the wallet app, unlock it with your encryption password. At this point the wallet app will read your masternode.conf file and populate the Masternodes tab. Newly added nodes will show up as MISSING, which is normal.

Once the wallet is fully synchronized and your VPS has finished its synchronization with the network, you can issue a start broadcast from your cold wallet to tell the others on Exosis network about your new masternode.

Don't forget to "unlock unspent" in your local wallet... to do this activate Coin Control in your options. Go to 'Send' -> Inputs button -> Tree mode -> Drop down on your Locked 10k balance -> Right Click the locked balance -> Click Unlock Unspent

You can either run a simple command in Debug Console (Help-> Debug console):

masternode start-alias <MN_ALIAS>

Example:

masternode start-alias MN1

Or, as an alternative, you can issue a start broadcast from the wallet Masternodes tab by right-clicking on the node:

Masternodes -> Select masternode -> RightClick -> start alias

Go back to your VPS and wait for the status of your new masternode to change to "Masternode successfully started". This may take some time and you may need to wait for quite some time until your new masternode completes the sync process.

Finally, to monitor your masternode status you can use the following commands (copy everything) in Linux console of your masternode VPS:

watch -n 10 'exosis-cli -conf=/home/exosis/.exosis/exosis.conf masternode status
&& exosis-cli -conf=/home/exosis/.exosis/exosis.conf mnsync status
&& exosis-cli -conf=/home/exosis/.exosis/exosis.conf -getinfo'

If you are really bored waiting for the sync to complete, you can watch what your masternode is doing on the network at any time by using tail to monitor the debug.log file in realtime:

sudo tail -f ~/.exosis/debug.log

A fully automated setup script will be released within a day of the first wallet release.