A Beginner’s Guide on How To Setup ZenCash Super Nodes by VoskCoin

VoskCoin
23 min readJul 22, 2018

--

Hey everyone put together this guide on how to setup your ZenCash Super Node which is a combo of the official ZenCash guide and pieces of Greerso incoming ZenCash guide + some help from Barnabas.

This won’t be an extremely polished guide, the purpose of this written guide is for a walkthrough on my video tutorial which can be watched right here!

The ZenCash Super Node install tutorial guide is the first in my MN playlist

Note — This entire tutorial was ONLY made possible thanks to Greerso spending his time helping me set mine up, he will have an incredible guide with gifs ready soon! Until then if this helped you please support Greerso by sending him a ZenCash donation/tip you
Greerso Zen T address below
znbhZmmoP3QvMAdBAm8siDT3jchVyA9zMwG

Greerso can be found in the official VoskCoin discord server -> invite link -> https://discord.gg/FGGmS2z
As well as the official ZenCash Discord Server -> invite link -> http://bit.ly/ZenCashDiscord

Useful links research, setup, & operation your ZenCashSuper Node
Rent your server needed & get $10 free — http://bit.ly/ZENSupernode
OR — Run a Super Node in your house w/ this — http://geni.us/qaEg
Calculate ZenCash Super Node Profitability — http://bit.ly/ZenProfit
ZenCash Super Node Official Tracker — http://bit.ly/ZenTracker
I use Amazon AWS for my Super Node — http://bit.ly/AWSZen
Official ZenCash Super Node Setup Guide — http://bit.ly/ZenInstall
ZenCash Official Block Explorer — http://bit.ly/ZenBlock
ZenCash CLI Wallet Commands (useful) — http://bit.ly/ZenCLI
ZenCash SuperNode Requirements (blog) — http://bit.ly/ZenNode
Need ZenCash Wallet? DL Swing or Arizen — http://bit.ly/ZenWal

If you are wondering about ZenCash Super Node profitability, here is the current projection 07–22–18 per their Zen Super Node tracker site as well as profit calculator libre site

I estimate within a month the quantity of Super Nodes will double so don’t get false hopes with your potential “masternode returns” of $5000 USD+ annual

Step one you’ll need a domain, I use Amazon AWS w/ Route 53 and I recommend you do as well — its quick simple easy and reasonably priced. Buy your domain as soon as possible, unless you already have one. You will need an ipv4 and ipv6 which we will cover in a second.

Next up you’ll need a server, you can setup one in your house using this computer or similar
http://geni.us/qaEg on Amazon

The minimum hardware specifications for running a ZenCash Super Node

4+ core CPU

100 GB+ Storage

8 GB+ RAM

However, the easier/simpler way is to simply rent a server, we use Digital Ocean because they have the best combination of price, reliability, and ease of use. To be clear we use the $40 “droplet” server

Get $10 for free when using the VoskCoin Digital Ocean referral link + support more write-ups and videos like this! — http://bit.ly/ZENSupernode

CRITICAL INFO In addition to the 500 ZenCash needed for staking or simply hodling your server must meet these requirements
Four CPU cores | 8GB of RAM | 100GB storage space and maintain 96% uptime (basically 23/24 hours a day)

After clicking http://bit.ly/ZENSupernode you’ll create an account with Digital Ocean “DO” and then you’ll create a droplet on linux ubuntu 18.04 and select the $40 option

Next up you’ll select a server area, personally I am running mine out of NY, you can include your ssh key for easier setup — unfamiliar with setting up SSH especially on Mac Terminal? -> http://bit.ly/sshONmac
Make sure you check ipv6, you will need it

Next up you will choose how many droplets or servers you want to deploy — want to make 2 zencash supernodes? well then select two, and create their server name

Grab your ipv4 and ipv6 IP from your newly created DO droplet dashboard

Setup ipv4 and ipv6 on AWS w/ your domain DNS

Let us begin . . time to copy and paste our way to victory!
open up your terminal or putty etc and type root@ip (input your IP shown in DO -ipv4)

The rest of this tutorial will be taken from my convo w/ Greerso

Greerso-Last Wednesday at 9:08 PM
you have to put user@ip
so root@ip
if digital ocean didn’t give you a user other than root that is

ssh root@yourIPhere

“VoskCoin-Last Wednesday at 9:09 PM
did that and in

Greerso-Last Wednesday at 9:09 PM
but with zencash because you setup a domain name its good to use that to access the node to make sure it works
ok, no password right because you used a key?”

Greerso-Last Wednesday at 9:09 PM
ok good deal
first thing with every vps is update it
two commands on one line for that

apt update && apt upgrade -y

the && makes the second command run once the first has finished
the -y on the end makes it just say yes to any questions and not bug you

VoskCoin-Last Wednesday at 9:12 PM
update done

Greerso-Last Wednesday at 9:12 PM
great. second thing on all vps’s is to create a ‘normal’ user. never use root.

adduser vosk

or whatever user you want to create — could be zencash
Note — you can leave all user info blank, create a pw and do not lose / forget it.

Greerso-Last Wednesday at 9:20 PM
next need to add that user to some groups now that give it permission to do stuff without using ‘sudo’

usermod -a -G adm,systemd-journal,sudo vosk

ok, that modifies the user’s permission adding vosk to those three groups change vosk to whatever your username is

VoskCoin-Last Wednesday at 9:22 PM
didnt tell me anything

Greerso-Last Wednesday at 9:22 PM
thats a good thing

VoskCoin-Last Wednesday at 9:22 PM
okay

Greerso-Last Wednesday at 9:23 PM
now we need to become that user

su vosk

VoskCoin-Last Wednesday at 9:23 PM
done

Greerso-Last Wednesday at 9:24 PM
you’ll notice the # changed to a $. thats how you know you’re no longer root user, however you probably are in the root folder so

cd

just cd then enter takes you to your home
represented by a ~ in the prompt
if you type pwd you’ll see where you are.
its important to know where you are
you should be in /home/vosk/

VoskCoin-Last Wednesday at 9:25 PM
correct

Greerso-Last Wednesday at 9:25 PM
there is an ‘optional’ step of adding swapfile, its 7 commands
it adds extra ram in the form of a swapfile
helps your server
if you had 16G, you wouldn’t even need it, sometimes you can get away with 4G and just add a swapfile. you’re at 8G so could go either way

Greerso-Last Wednesday at 9:28 PM
ok, now you’re a ‘normal’ user and not root, you have to use the sudo command to do some system type shit — like now

sudo fallocate -l 4G /swapfile

you see we just allocated 4G to a file

sudo chmod 600 /swapfile

that changes permission on that file to make it secure

sudo mkswap /swapfile

that makes that file into swap space

sudo swapon /swapfile

enables the swap you just created (it was disabled by default)

echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

Thats a tricky command, that sends the swappiness text into that file sysctl.conf. just pushes it in instead of having to open it in a text editor

thats done but when you reboot it wont come back so thats what this next command does

echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab

again, pushing text into a file

VoskCoin-Last Wednesday at 9:32 PM
I did it

Greerso-Last Wednesday at 9:32 PM
ok, last thing

sudo sysctl -p

that just makes that sysctl modification we made happen
7 commands and you now have double the ram (effectively)

VoskCoin-Last Wednesday at 9:34 PM
after that it said
vm.swappiness = 10

Greerso-Last Wednesday at 9:35 PM
yup, thats what we told it to do in the previous command
so far everything we’ve done is for every server you ever create
now we’re going to install zen specific stuff
we’re going to use apt. apt is the app store for linux, its where you get all the apps.
to install apps you have to use sudo (if you’re not root and you should not be root)

sudo apt -y install build-essential software-properties-common apt-transport-https lsb-release dirmngr pwgen git jq ufw curl

actually none of that is zen stuff but we’ll need it for the zen stuff, in order to be able to get zen stuff we have to add their repository (repo) to apt so it can find their stuff

echo 'deb https://zencashofficial.github.io/repo/ '$(lsb_release -cs)' main' | sudo tee /etc/apt/sources.list.d/zen.list

thats another of those commands to push text into a file
apt wont read it though it doesn’t trust it
we need to make it trust it by basically adding keys like ssh does

gpg --keyserver keyserver.ubuntu.com  --recv 219F55740BBF7A1CE368BA45FB7053CE4991B669

this next part is part 2 off the trust part

gpg --export 219F55740BBF7A1CE368BA45FB7053CE4991B669 | sudo apt-key add -

adds the key to ubuntu and now apt will trust zencash

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

this stuff all exact like their guide, that one adds another repo but certbot have an easier way of doing it than zencash so that last command was a one line that did what the previous three lines did all at once
now that we have those repos added you have to tell apt to go index everything they got in them with

sudo apt update

once it has gotten a list of all of the available software on those two repos we can download the software we need with

sudo apt -y install zen certbot

VoskCoin-Last Wednesday at 9:44 PM
2 packages can be upgraded. Run ‘apt list — upgradable’ to see them.

Greerso-Last Wednesday at 9:44 PM
you can see there we just install two packages. first is the zen wallet for linux cli, also known as the zen daemon and the second gets ssl certificates
we’ll update the software in a minute. thats just like windows or mac updates letting you know there is new updates after packages installed lets take care of those updates with

sudo apt upgrade

you could have done the upgrade before the install, doesn’t matter, its just that I had already typed it

VoskCoin-Last Wednesday at 9:46 PM
certbot.service is a disabled or a static unit, not starting it.

Greerso-Last Wednesday at 9:46 PM
thats ok, its a warning

Greerso-Last Wednesday at 9:46 PM
now we run a zen script that downloads some crypto stuff

zen-fetch-params

zen-fetch-params
this will take a minute

VoskCoin-Last Wednesday at 9:48 PM
download successful

Greerso-Last Wednesday at 9:48 PM
needed for the wallet to do z transactions
wow, that was fast

VoskCoin-Last Wednesday at 9:49 PM
digital ocean!!!!

Greerso-Last Wednesday at 9:49 PM
now we start the zencash daemon (wallet) it will stop lickity split with a warning, don’t worry

zend

type that press enter, wallet fires up then shits its pants and stops
it just creates a wallet directory for us saving us typing several commands

VoskCoin-Last Wednesday at 9:50 PM
do i send command again, after warning?

VoskCoin-Last Wednesday at 9:50 PM
WARNING: Automatically copying the default config file to ~/.zen/zen.conf. This is a potential risk, as zend might accidentally compromise your privacy if there is a default option that you need to change! Please restart zend to continue. You will not see this warning again.

Greerso-Last Wednesday at 9:50 PM
no

Greerso-Last Wednesday at 9:50 PM
leave it, we need to put some text into a config file before starting again
yeah it says that but we dont want to because we’re making a node that needs something else first

echo \
"rpcuser=$(pwgen -s 32 1)
rpcpassword=$(pwgen -s 64 1)
rpcport=18231
rpcallowip=127.0.0.1
rpcworkqueue=512
server=1
daemon=1
listen=1
txindex=1
logtimestamps=1
### testnet config
#testnet=1" | sudo tee ~/.zen/zen.conf

that command will put the settings needed into that conf file
you’ll see two lines that say $(pwgen) that actually runs a command that generates a secure password making your node very secure if you look in the text file after you wont see the command you’ll see the password that it created

now we’re ready to start the zen daemon again.

zend && sleep 8

Greerso-Last Wednesday at 10:00 PM
did the daemon start?

VoskCoin-Last Wednesday at 10:00 PM
all it said is zen sever starting

Greerso-Last Wednesday at 10:00 PM
lets take a look

zen-cli getinfo

VoskCoin-Last Wednesday at 10:02 PM
We’re good! showing block count / no error

Greerso-Last Wednesday at 10:16 PM
now onto ssl cert

sudo certbot certonly -n --agree-tos --register-unsafely-without-email --standalone -d zensupernode.example.com

dont put example.com
put your fqdn, the domain name you made in aws
cerbot is probably the hardest part of this whole install

sudo cp /etc/letsencrypt/live/supernode1.voskcoin.io/chain.pem /usr/local/share/ca-certificates/chain.crt

again replace the fqdn with yours

VoskCoin-Last Wednesday at 10:20 PM
sudo cp /etc/letsencrypt/live/supernode1.voskcoin.io/chain.pem /usr/local/share/ca-certificates/chain.crt (part of dialogue)

sudo cp /etc/letsencrypt/live/supernode1.voskcoin.io/chain.pem /usr/local/share/ca-certificates/chain.crt

Greerso-Last Wednesday at 10:21 PM
that command you just pasted, cp is just copy, its copies a certificate that certbot just downloaded into ubuntu’s system. now we have to tell ubuntu to go check it out with

sudo update-ca-certificates

like a refresh

VoskCoin-Last Wednesday at 10:21 PM
Updating certificates in /etc/ssl/certs… 1 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d… done.

Greerso-Last Wednesday at 10:22 PM

Replace my URL with your Super Node server URL

echo "tlscertpath=/etc/letsencrypt/live/supernode1.voskcoin.io/cert.pem" >> ~/.zen/zen.conf

that’ll copy some text into a file as we’ve done several times now. Adds the cert to the configuration file for the zen daemon so next time we start it it will use ssl to communicate with other nodes

Again, replace my URL with your Super Node server URL

echo "tlskeypath=/etc/letsencrypt/live/supernode1.voskcoin.io/privkey.pem" >> ~/.zen/zen.conf

need to change the permissions to the certificates that certbot downloaded

sudo chown -R root:sudo /etc/letsencrypt/

chown changes the owner from vosk to root

sudo chmod -R 750 /etc/letsencrypt/

VoskCoin-Last Wednesday at 10:27 PM
you happen to know zen block height?

Greerso-Last Wednesday at 10:28 PM
I do not

VoskCoin-Last Wednesday at 10:28 PM
344450 wasnt a quiz lol was just wondering

Greerso-Last Wednesday at 10:29 PM
we’re going to use the zen-cli command to stop the daemon, wait 5 seconds, start the daemon, wait 30 seconds

zen-cli stop && sleep 5 && zend && sleep 30

4 commands on one line there
command to check its working is

zen-cli getnetworkinfo

you should see
tls_cert_verified”: true
means the certificates are working

Greerso-Last Wednesday at 11:04 PM
wewt! thats the hard part done
you need to generate a t address on your supernode

zen-cli getnewaddress > /dev/null && zen-cli listaddresses | jq -r '.[1]'

this command is another of those twofer’s it generates a new address and hides it, then it lists the address and the | ‘pipes’ that json to the jq command where it extracts just the address for you nicely formatted
those outputs we’ve been looking at with all the [] and () from zen-cli, thats called json format. jq reads json format and extracts bits for you/dev/null is a black hole, you send stuff down if you dont want to see it
you need to send 0.05zen to that address
its used for challenge responses. a very small amount is sent to do those
so you have to have a little zen on your node to deal with that
I skipped a step but the order of this part doesn’t really matter
over on your desktop wallet create a t_address and send 500 zen exactly to it
transaction fee’s should not be deducted

VoskCoin-Last Wednesday at 11:20 PM
whats next

Greerso-Last Wednesday at 11:21 PM
there’s another whole different program called the node tracker that keeps track of your node once its online and communicates with zencash servers to tell them your node is online and qualifies for payout
this was completely centralized until now. these supernodes will take over that task

sudo apt -y install npm && sudo npm install -g n && sudo n latest

you can see three separate commands on that one line. first is apt install something called npm (node package manager) node.js is a clever web application server not node like masternode
next part uses npm to install n. n is node.js
node.js the web application thing, nothing to do with masternodes that is

VoskCoin-Last Wednesday at 11:23 PM
installed!

Greerso-Last Wednesday at 11:23 PM
ok, last command just updated it
now we need to download source code from github
you’re still in home reflected by a ~ on your prompt right?

cd && git clone https://github.com/ZencashOfficial/nodetracker.git

VoskCoin-Last Wednesday at 11:24 PM
yes

Greerso-Last Wednesday at 11:24 PM
that first command just puts you in home. you didn’t need that as you’re there but it doesn’t hurt to do again
next it does a git clone of the zencash node tracker source code
that code is written in node

cd nodetracker

that’ll put us into the source code directory that we just downloaded from github

npm install

Greerso-Last Wednesday at 11:30 PM
nearly missed a step
where [ipaddress] is your ipv4
no square brackets, just the number

echo "externalip=[ipaddress]" >> ~/.zen/zen.conf

then

echo "externalip=[IPV6]" >> ~/.zen/zen.conf

same thing but ipv6
this is that thing again where it just shoves some text to the end of your .conf file
we could just as easily open it with the nano text editor and type that stuff in

echo "port=9033" >> ~/.zen/zen.conf

that one paste as-is, dont change anything

VoskCoin-Last Wednesday at 11:35 PM
hm I did all of that from within nodetracker, is that an issue?

Greerso-Last Wednesday at 11:35 PM
nope, all of those commands where written in a way that it doesn’t matter

zen-cli stop && sleep 5 && zend

that command just restarts the service. This does same until we setup the systemctl thing

VoskCoin-Last Wednesday at 11:40 PM
done

Greerso-Last Wednesday at 11:41 PM
just double checking it maybe the point is just to confirm that the zend is running again

zen-cli getnetworkinfo | grep address

VoskCoin-Last Wednesday at 11:51 PM
gave me ipv4 and ipv6

Greerso-Last Wednesday at 11:51 PM
cool that confirms what you did worked

now type

cd nodetracker

VoskCoin-Last Wednesday at 11:57 PM
in!

Greerso-Last Wednesday at 11:57 PM
then

node setup.js

quiz time answer #1=super
answer#2=stake address with 500zen
alert email = test@aol.com
supernode server = supernode1.voskcoin.io
IP address = 4
na for north america

VoskCoin-Yesterday at 12:00 AM
Configuration for super node saved. Setup complete!

Greerso-Last Wednesday at 12:00 PM
once that finishes you run

node app.js

that’ll test that what you just did worked
it may fail because of the chain not synced and it wont see your stake

VoskCoin-Yesterday at 12:01 AM
failed because no z addy

Greerso-Yesterday at 12:01 AM
you basically have a working supernode at this point
ok, we’ll come back to that after it syncs

Greerso-Yesterday at 12:06 AM
now we setup the services

echo \
"[Unit]
Description=ZenCash daemon

[Service]
User=$USER
Type=forking
ExecStart=/usr/bin/zend -daemon -pid=/home/$USER/.zen/zend.pid
PIDFile=/home/$USER/.zen/zend.pid
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target" | sudo tee /lib/systemd/system/zend.service

again, one of those commands that pushes text into a file
that one creates whats called a systemd service so you can easily start/stop the zen daemon and so that it starts automatically upon reboot
the next one does same for the nodetracker

echo \
"[Unit]
Description=ZenCash node daemon installed on ~/nodetracker/
Requires=zend.service
After=zend.service

[Service]
User=$USER
Type=simple
WorkingDirectory=/home/$USER/nodetracker/
ExecStart=/usr/local/bin/node /home/$USER/nodetracker/app.js
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target" | sudo tee /lib/systemd/system/zentracker.service

we created the services but need to enabled them and start them

zen-cli stop && sleep 5 && sudo chown -R $USER:$USER ~/

or whatever your username is instead of vosk
first part stops the daemon ready to start it with the service we just made
second par waits 5 seconds
now we’ve done that we enable the two services you just created

sudo systemctl enable zend zentracker

VoskCoin-Yesterday at 12:12 AM
done

Greerso-Yesterday at 12:12 AM
then start the services

sudo systemctl start zend zentracker

zentracker may not be happy because we skipped some stuff

VoskCoin-Yesterday at 12:13 AM
zend running again

Greerso-Yesterday at 12:13 AM
good deal
ok, need more services. Need to setup a service that checks your ssl certificates and renews them when they expire.

echo \
"[Unit]
Description=zenupdate.service

[Service]
Type=oneshot
ExecStart=/usr/bin/certbot -q renew --deploy-hook 'systemctl restart zend'
PrivateTmp=true" | sudo tee /lib/systemd/system/zenupdate.service

That service doesn’t stay running, it runs on a schedule so we create a schedule

echo \
"[Unit]
Description=Run zenupdate unit daily @ 06:00:00 (UTC)

[Timer]
OnCalendar=*-*-* 06:00:00
Unit=zenupdate.service
Persistent=true

[Install]
WantedBy=timers.target" | sudo tee /lib/systemd/system/zenupdate.timer

see it has the same name zenupdate but the second one ends in .timer. thats how it nows to just run it at 6am utc every day
the .service part renews the certificate only if it needs renewing, then restarts the daemon
certbots wouldn’t restart the zen daemon for us so we had to make our own in case you’re wondering why we didnt’ just keep theirs

Greerso-Yesterday at 12:18 AM
next

sudo systemctl start zenupdate.timer 
sudo systemctl enable zenupdate.timer

then you can take a look at all of your running timers

sudo systemctl list-timers

VoskCoin-Yesterday at 12:26 AM
sudo systemctl list-timers NEXT LEFT LAST PASSED
Thu 2018–07–19 06:00:00 UTC 1h 34min left n/a n/a
Thu 2018–07–19 06:04:09 UTC 1h 38min left Thu 2018–07–19 01:02:04 UTC 3h 23min Thu 2018–07–19 13:56:15 UTC 9h left Thu 2018–07–19 01:10:57 UTC 3h 14min Thu 2018–07–19 17:01:52 UTC 12h left Thu 2018–07–19 01:02:04 UTC 3h 23min Fri 2018–07–20 01:17:01 UTC 20h left Thu 2018–07–19 01:17:01 UTC 3h 8min Mon 2018–07–23 00:00:00 UTC 3 days left Thu 2018–07–19 01:02:04 UTC 3h 23min 6 timers listed. Pass — all to see loaded but inactive timers, too.

Greerso-Yesterday at 12:26 AM
ok, all good, thats kind of it other than the steps we skipped and some security we didn’t add a firewall

sudo ufw default allow outgoing

that allows all outgoing traffic from this server we’ll deny incoming but first need to open some ports

sudo ufw allow http/tcp

then

sudo ufw allow https/tcp

VoskCoin-Yesterday at 12:30 AM
done

Greerso-Yesterday at 12:30 AM

sudo ufw allow 9033/tcp comment 'zencash super node port'

we need to allow ssh traffic but before we do that I suggest moving your ssh off of port 22 and onto something else like 2111
if you want to change port 22 you need to edit this file

sudo nano /etc/ssh/sshd_config

Greerso-Yesterday at 12:38 AM
make 22 in that file 2111

VoskCoin-Yesterday at 12:39 AM
#Port 22

Greerso-Yesterday at 12:39 AM
bots scan the web for 22 and while they wont get in they will just ddos your server
remove # it makes it a comment and ignored

VoskCoin-Yesterday at 12:39 AM
done

Greerso — Last Thursday at 12:39 AM
there are two more things we want to change in that file for security, just not yet, want to test one thing at a time so we dont lock ourselves out
type exit twice and it will disconnect
twice because you logged in as root, then as vosk so you’re logged into the root login then into vosk
first exit gets you back to root, second out of server completely

Greerso-Yesterday at 12:42 AM

ssh -p 2111 vosk@supernode1.voskcoin.io

-p to specify a port
this time we’re logging in as vosk not root so it’ll ask for a password but we’ll fix that

VoskCoin-Yesterday at 12:43 AM
refused

Greerso-Yesterday at 12:44 AM
thats because I’m an asshole
its still on port 22, we didn’t restart the ssh service after changing the port

Greerso-Yesterday at 12:47 AM
lets try root

ssh root@supernode1.voskcoin.io

VoskCoin-Yesterday at 12:47 AM
that worked

Greerso-Yesterday at 12:50 AM
ah ok, thats a good thing, and why the vosk login wouldn’t work.
we’ll add the ssh key manually
you’re root again so

su vosk

then

cd

and you should be at
~

VoskCoin-Yesterday at 12:50 AM
done

Greerso-Yesterday at 12:51 AM

mkdir .ssh

then

nano .ssh/authorized_keys

VoskCoin-Yesterday at 12:51 AM
done

Greerso-Yesterday at 12:51 AM
ok, paste your key the id_rsa.pub
new terminal tab

cat .ssh/id_rsa.pub

copy whole thing including rsa bit at start

VoskCoin-Yesterday at 12:54 AM
okay done

Greerso-Yesterday at 12:54 AM
exit, y, enter to save
ctrl-x to exit

then exit twice to log out of vps
we’ll try to login as vosk again, should work without password this time because your key is on that account

ssh vosk@supernode1.voskcoin.io

no port yet because we still didn’t restart ssh

VoskCoin-Yesterday at 12:57 AM
it worked

Greerso-Yesterday at 12:57 AM
ok good now we’ll disable root and restart ssh

sudo nano /etc/ssh/sshd_config

root will still be accessible via the vosk account, just not to outside world of hackers and bots
vosk account is protected with ssh key, same as a wallet private key so as secure as secure gets as long as nobody gets your private key

VoskCoin-Yesterday at 12:59 AM
PermitRootLogin yes changed to no

Greerso-Yesterday at 12:59 AM
ctrl+x y enter
to save

Greerso-Yesterday at 1:00 AM
once back at prompt before we restart ssh we’ll make sure the firewall is setup to allow ssh access on port 2111

sudo ufw allow 2111/tcp comment 'ssh port'

then

sudo ufw limit 2111/tcp

that one rate limits that port in case someone tries to bombard it with ddos

sudo ufw default deny incoming

that denies all incoming attempts other than the ones we’ve specifically allowed
recap what we allowed and denied

sudo ufw status

VoskCoin-Yesterday at 1:05 AM
inactive

Greerso-Yesterday at 1:05 AM

sudo ufw -f enable

VoskCoin-Yesterday at 1:05 AM
shows port & action limit from anywhere + normal and v6

Greerso-Yesterday at 1:05 AM

sudo ufw status

ok now we restart ssh

sudo systemctl restart sshd

Greerso-Yesterday at 1:14 AM
nothing is good in linux 0=success, 1=failure
exit back to mac and we need to login again but this time on port 2111 and pray that firewall doesn’t block us command to ssh has extra part now

ssh -p 2111 vosk@supernode1.voskcoin.io

VoskCoin-Yesterday at 1:15 AM
it worked

Greerso-Yesterday at 1:16 AM
holy shit i might know what i’m doing

Now ZenCash Blockchain Must Finish Syncing ~14 hours, return to this point of the tutorial once your blockchain has synced. Check status of blockchain sync with

zen-cli getinfo

Greerso-Yesterday at 1:19 AM
need to send challenge coins to z_addresses

zen-cli z_sendmany $(zen-cli listaddresses | jq -r '.[1]') '[{"address": "'$(zen-cli z_getnewaddress)'", "amount": 0.0249},{"address": "'$(zen-cli z_getnewaddress)'", "amount": 0.0249}]'

Now the ZenCash sent needs to be confirmed on blockchain, wait ~5 minutes
Use the below watch command to see an updated balance every 15 sec.

watch -n 15 zen-cli z_gettotalbalance

. . . .a few minutes go by, transaction confirmed on Zencash Blockchain

VoskCoin-Last Thursday at 7:28 PM
good news, worked correctly
{ “transparent”: “0.0001”,
“private”: “0.0498”,
“total”: “0.0499” }

sudo reboot

to reboot the server, everything will restart and should work.
the only other commands are to finish node setup / registration

Barnabas-Last Thursday at 7:29 PM
time to register the node

cd ~/nodetracker

then

node app

VoskCoin-Last Thursday at 7:37 PM
signed up the node
CPU Intel(R) Xeon(R) CPU E5–2650 v4 @ 2.20GHz count=4 speed=2199
Node.js version: v10.7.0 Tracker app version: 0.3.1
Node type: super
MemTotal: 7.98GB
MemFree: 0.73GB
MemAvailable: 5.37GB
SwapTotal: 4.10GB
SwapFree: 4.09GB

2018–07–19 23:33:53 UTC — Connected to server xns1.na. Initializing…
Node t_address (not for stake)=znVPJjETACHfQqfMJKikbWEc6oDkm3wP66G
Checking private z-addresses… Balance for challenge transactions is 0.0249
Using the following address for challenges zc8zHBcoDkEVCFGaJbZ82eTYu5CByy5zcVeYinpGrwm3u9R7d9D9mgUgh6CGZLiVtEfCbAW77fgfSpbmtx1n5sehrxr5bod
2018–07–19 23:33:56 UTC — Waiting to register 2018–07–19 23:33:56
UTC — Registration successful.
Welcome! 2018–07–19 23:33:56 UTC — Saved nodeid=6994

Barnabas-Last Thursday at 7:39 PM

ctrl c

followed by

sudo reboot

then log back in there and verify that everything is working as it should by running

ssh -p2111 vosk@supernode1.voskcoin.io

then to verify working

zen-cli getinfo | grep connections

VoskCoin-Last Thursday at 7:40 PM
zend is running

Barnabas-Last Thursday at 7:40 PM
how many connections you got?

VoskCoin-Last Thursday at 7:40 PM
8

Barnabas-Last Thursday at 7:41 PM
good to go
you are hashing…hm…. noding away
nice one

Congratulations you have now successfully installed your ZenCash Super Node! Allow ~7 minutes for the Super Node to restart zentracker.

If the Barnabas portion above or below helped you, please consider sending Barnabas a Zen tip at his address zng2beVhfpXFTz8MhTYhfRkzdKgQFogparW
@Barnabas can be found in the ZenCash official discord server! INVITE — http://bit.ly/ZenCashDiscord

Setting up more than 1 Super Node?

There is an awesome trick to download the entire ZenCash blockchain from one of your Zencash Super Nodes to the next

you will complete every step prior in this install tutorial except for

zen-cli z_sendmany $(zen-cli listaddresses | jq -r '.[1]') '[{"address": "'$(zen-cli z_getnewaddress)'", "amount": 0.0249},{"address": "'$(zen-cli z_getnewaddress)'", "amount": 0.0249}]'

This is because you cannot perform the above function, until the ZenCash blockchain has fully synced.

Please understand you will now have two nodes — your original fully setup / synced “source” node and your new super node (your 2nd super node) this is your “destination” node — you are taking your original super node “source” and copying the blockchain from it to your “destination

Barnabas-Last Thursday at 6:38 PM
run on both nodes (Source & Destination)

sudo systemctl stop zend zentracker

then verify that none of them are running with

zen-cli getinfo

if zen-cli getinfo returns something ugly, then it most likely means that you have stopped zend already
now, at your destination node

rm -r ~/.zen/{blocks,chainstate}

Barnabas-Last Thursday at 6:42 PM
I think you will get public key issues, need to temporarily remove your security
RUN ON DESTINATION NODE

sudo sed -i  "s/.*PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config &&\
sudo sed -i "s/.*ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g" /etc/ssh/sshd_config

run this on your destination node after running above

sudo systemctl restart sshd

Now you will need to run this scp on the SOURCE node

My example of this when there is a firewall implemented MUST USE -P capital P not -p which you normally use -p when ssh into the super node, with scp MUST USE UPPERCASE -P

scp -P 2111 -r ~/.zen/{blocks,chainstate} vosk@supernode2.voskcoin.io:~/.zen

If you did not setup a firewall, then your command would look like

scp -r ~/.zen/{blocks,chainstate} vosk@supernode2.voskcoin.io:~/.zen

Now once it has reached 100% ensure it is correct by running following the following 2 commands on DESTINATION

du -ch ~/.zen/blocks | grep total

Result should be ~7 gb

du -ch ~/.zen/chainstate | grep total

Result should be ~424 mb

Note that the above values will change as the time goes by and the ZenCash blockchain continues to grow.

VoskCoin-Last Thursday at 7:12 PM
and all reads 100%

Barnabas-Last Thursday at 7:12 PM
awesome on your source

sudo systemctl start zend && sleep 8 && sudo systemctl start zentracker

then you can check whether it went online again
if so, exit your source node

now on your destination:

sudo chown -R $USER ~/.zen/{blocks,chainstate}

destination will need

zend --rescan

make sure you dont mix up --rescan and --reindex
--reindex takes a day, while --rescan takes like 1 min tops

after that you can do

watch -n 30 zen-cli getblockcount

(Watch updates 30 every seconds, can also use 15 seconds for example.)

use ctrl c to exit (when ready)

VoskCoin-Last Thursday at 7:20 PM
344913

Barnabas-Last Thursday at 7:20 PM
awesome now its time, to put back the security to the destination node

sudo sed -i  "s/.*PasswordAuthentication yes/PasswordAuthentication no/g" /etc/ssh/sshd_config &&\
sudo sed -i "s/.*ChallengeResponseAuthentication yes/ChallengeResponseAuthentication no/g" /etc/ssh/sshd_config

VoskCoin-Last Thursday at 7:22 PM
done

Barnabas-Last Thursday at 7:24 PM
Now need to move .05 zen sent earlier split into 2x z address

zen-cli z_sendmany $(zen-cli listaddresses | jq -r '.[1]') '[{"address": "'$(zen-cli z_getnewaddress)'", "amount": 0.0249},{"address": "'$(zen-cli z_getnewaddress)'", "amount": 0.0249}]'

do this one now, once thats done

watch -n 30 zen-cli z_gettotalbalance

. . . .a few minutes go by, transaction confirmed on Zencash Blockchain

VoskCoin-Last Thursday at 7:28 PM
good news, worked correctly on node 2
{ “transparent”: “0.0001”,
“private”: “0.0498”,
“total”: “0.0499” }

Barnabas-Last Thursday at 7:29 PM
nice, time to register the node

cd ~/nodetracker

then

node app

VoskCoin-Last Thursday at 7:37 PM
signed up the node

CPU Intel(R) Xeon(R) CPU E5–2650 v4 @ 2.20GHz count=4 speed=2199 Node.js version: v10.7.0 Tracker app version: 0.3.1
Node type: super
MemTotal: 7.98GB
MemFree: 0.73GB
MemAvailable: 5.37GB
SwapTotal: 4.10GB
SwapFree: 4.09GB
2018–07–19 23:33:53 UTC — Connected to server xns1.na. Initializing… Node t_address (not for stake)=znVPJjETACHfQqfMJKikbWEc6oDkm3wP66G
Checking private z-addresses… Balance for challenge transactions is 0.0249
Using the following address for challenges zc8zHBcoDkEVCFGaJbZ82eTYu5CByy5zcVeYinpGrwm3u9R7d9D9mgUgh6CGZLiVtEfCbAW77fgfSpbmtx1n5sehrxr5bod
2018–07–19 23:33:56 UTC — Waiting to register 2018–07–19 23:33:56 UTC — Registration successful. Welcome! 2018–07–19 23:33:56 UTC — Saved nodeid=6994

Barnabas-Last Thursday at 7:39 PM

ctrl c

followed by

sudo reboot

then log back in there and verify that everything is working as it should by running

zen-cli getinfo | grep connections

VoskCoin-Last Thursday at 7:40 PM
zend is running w/ 8 connections

CONGRATULATIONS YOUR SECOND NODE IS NOW SUCCESSFULLY INSTALLED!

I hope you found this written + video tutorial helpful, thanks again to Greerso and Barnabas for making this possible for me to do and ZenCash for making something putting in all this work for! As always make sure to subscribe to the VoskCoin YouTube channel and also our Medium blog! The VoskCoin Medium blog is not something we are currently keeping up with, however if you enjoyed this let us know and we can make it a priority here at Tails HQ!

VoskCoin

--

--

VoskCoin

I’m Drew Vosk the creator of VoskCoin, the most fun and informative crypto YouTube channel ever! I’m also the Doge Dad to Tails, the cutest Shiba Inu.