ANON Masternode step-by-step guide for Windows

DarthCrypto
17 min readSep 23, 2018

--

Join the ANON community under the following links:

o ANON Telegram: https://t.me/ANONFork
o ANON Discord: https://discord.gg/2yTdK6s
o ANON Twitter: https://twitter.com/ANON_WeAreANON
o ANON Youtube: https://www.youtube.com/channel/UCU-BMMTH8z0ow0xHjWZHRUg
o ANON Medium: https://medium.com/anonymous-bitcoin
o ANON Reddit: https://www.reddit.com/r/AnonymousBitcoin/

For technical support regarding ANON there’s a special Channel: https://t.me/anontechnicalsupport

Also be very aware of websites that promise you to claim your Anon!
The only official homepage is: https://www.anonfork.io/

If you run multiple Masternodes and want to interact with other MN Operators about proposals feel free to join our Telegram group: https://t.me/ANON_Masternode_Operators

Please do not DM me with support requests. Post questions in the comments please, I’ll answer them there.

This guide is targeted at people with limited technical skills. It is kept as simple as possible, while enabling you to do the exact steps without having to think much.
Commands that you have to type in somewhere are in bold.

Requirements:

This tutorial requires that you have your local wallet on Windows up and running in sync with the mainnet. Here’s how to get your Windows wallet and get it running:

Required files from Github:

Get anond.exe and anon-cli.exe from here (contained in https://github.com/anonymousbitcoin/anon/releases/download/v1.3.0/Anon-full-node-v.1.3.0-win-64.zip):

Get the AnonFullNodeWallet.exe and/or AnonymousDesktopWallet-1.0.2.jar from here:
https://github.com/anonymousbitcoin/anon-full-node-wallet/releases

You need Java SE in order to run the jar wallet: https://www.oracle.com/technetwork/java/javase/downloads/index.html

Place your AnonFullNodeWallet.exe (and/or AnonymousDesktopWallet-1.0.0.jar), anond.exe and anon-cli.exe into a folder C:\Anon\ and run the wallet from there. This tutorial assumes you have the files in this folder.
It makes no difference if you use the .jar wallet or the .exe wallet.
Important is that anond.exe and anon-cli.exe are in the same folder, C:\Anon\.

If you haven’t run the Windows wallet so far then take the Bootstrap-file from here, in order to save many hours of syncing: https://assets.anonfork.io/anon-bootstrap.zip

Copy the downloaded zip-archive into C:\Users\User\AppData\Roaming\Anon\ and unzip it directly there. Create the Anon folder if it doesn’t exist yet.

When extracting the zip-Archive it might say that it’s damaged, but it works anyway. Just let it unzip. Use Winrar if you have problems with unzipping the archive.
After unzipping your Anon folder will contain two new folders, “blocks” and “chainstate”. They have to be directly in the Anon folder, not in any subfolder.

To run your windows wallet double click on AnonFullNodeWallet.exe or AnonymousDesktopWallet-0.1.1.jar.
In case you get an EOF error just start the wallet for a second time.

Sometimes it also helps to double click on anond.exe to have it run in a cmd window and then start the wallet with the .jar or .exe file.

If your wallet is very slow then click on the X-button to close it. It won’t close but it will be much faster and less laggy after doing that.

Seek help in @anontechnicalsupport if you have general problems to get your windows wallet started.

1. Get a VPS

Use for example DigitalOcean.com to get a VPS (a server that will be online 24/7)
You’ll get a 10$ balance for free if you use my referral link for registration. That’s enough for running a Server for 2 months.

DigitalOcean-Reflink: https://m.do.co/c/29769c9d1243

I use DigitalOcean myself and prefer it over Vultr, so I’ll describe how to get a VPS there.
My nodes have been enabled 100% of the time and also other MNs I had there have been running very smoothly, so I can really recommend DigitalOcean.

In the upper right corner click on Create and choose Droplets.

Pick the latest Ubuntu distribution and the 1 GB RAM, 25 GB disk space Server for 5$. It will fit our needs by creating a swap partition.
After the server is fully synced we will still have several GB disk space available.

Pick any location of your choosing, give the server a hostname, and click on the Button Create to get your server deployed.

Your VPS will now show up in your resources and should be ready to go quite quickly.

You will receive an email for each created server with your login credentials for the root user and also the IP-Address of the server.

Create only one VPS for now if you plan to run multiple MNs. We’ll prepare one Server and then make a snapshot of it. With this snapshot we’ll create all other VPS.

2. Getting the VPS ready and building the Anon node

To connect to the server via SSH use Putty: https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.70-installer.msi

Insert your IP-Adress and click Open to connect to your Server. Just answer the security message with “Yes”.

In Login you type in root and hit Enter.
Then go to the email with your password and copy it into the clipboard.
Go back to the Putty window where it asks you for the password. Paste the password by clicking the right mouse button and hit Enter.

It will work with all commands like that. Pasting into Putty is done with a right click.

Linux will now ask you for creating a new password.
First paste your given password again by doing a right click and Enter and then enter your new password twice.

We only have 25 GB disk space, so we’ll have to do things in a certain order to not run into disk space problems.
The very first thing we’ll do on the server is unzipping the bootstrap-archive, a copy of the blockchain. It will save you many hours of syncing.

There is a good guide by Dk808 that utilizes a script to setup the VPS. You can find the guide here: https://docs.google.com/document/d/1wxfSaUW6oMmKPZoD5Cq2qocI0hUZ8H10HDajLzYhzFQ/edit?usp=sharing
From step 13 on he describes how to get the VPS ready.
Check out his guide too for sure.
In the following sections I describe how you can do the preparation on your own.

Using the bootstrap

The current bootstrap download link can be found here: https://assets.anonfork.io/anon-bootstrap.zip
Do these commands to download and unzip the blockchain files:

cd
mkdir .anon
cd .anon
wget
https://assets.anonfork.io/anon-bootstrap.zip
sudo apt-get install unzip
unzip -o anon-bootstrap.zip
rm -f anon-bootstrap.zip
cd

We now have a copy of the blockchain that contains at least the airdrop blocks and we have deleted the zip archive, so that we don’t use more disk space than we need. Now we can proceed.

Update System

Commands:
sudo apt-get update
sudo apt-get upgrade -y

Make a Swap-File to extend the RAM of the server

Commands (you can copy them all at once, paste them into putty and then press Enter):
sudo fallocate -l 3G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo /swapfile swap swap sw 0 0 >> /etc/fstab
sudo sysctl vm.swappiness=10
echo vm.swappiness = 10 >> /etc/sysctl.conf

After entering all the commands it should look like this. Enter:
sudo swapon -s

Use this command to check the usage of RAM and Swap:

free

Get dependencies:

Commands:
(copy this block as one command into Putty)
sudo apt-get install \
build-essential pkg-config libc6-dev m4 g++-multilib \
autoconf libtool ncurses-dev unzip git python \
zlib1g-dev wget bsdmainutils automake -y

Building the node:

Commands:
git clone https://github.com/anonymousbitcoin/anon.git
cd anon
./anonutil/build.sh
./anonutil/fetch-params.sh

We can save disk space if we now copy the binary files into a new folder and delete all the source files. Follow these commands. They will copy the required files out and then we rename the new folder to “anon”.

cd
mkdir anonbin
cp anon/src/anond anonbin/anond
cp anon/src/anon-cli anonbin/anon-cli
sudo rm -r anon
mv anonbin anon

Creating the anon.conf file

touch ~/.anon/anon.conf
sudo nano ~/.anon/anon.conf

The last command opens your config file in an editor.
Insert the following lines by simply pasting it into the editor.
Paste the following editor into Notepad first, then edit your rpcuser, rpcpassword and externalIP, and insert your your masternode privkey that we obtained earlier. It is the key that we copied into the masternode.conf right after the IP and port.
After you editet everything in Notepad copy it all and paste it into the editor on the VPS.
Save the file by pressing Ctrl + X, then Y and then Enter. The editor will then close.

IMPORTANT: If you came here from section to build your basic VPS for making a snapshot then you don’t have a masternodeprivkey yet. So put a # in front of masternode= and masternodeprivkey=.
This will comment out the lines and make them ineffective. If you wouldn’t do that, you would get an error starting your node.
Later, when you enter the masternodeprivkey just remove the two # again.

For rpcuser and rpcpassword you can use anything random. Just make sure it has no spaces or special characters in there.

rpcuser=TypeSomethingRandomHere
rpcpassword=AndAlsoHere
rpcallowip=127.0.0.1
server=1
deamon=1
txindex=1
#masternode=1
#masternodeprivkey=
# ExternalP is the IP of your VPS
externalIP=207.154.XXX.XXX

addnode=139.162.96.172
addnode=172.104.175.135
addnode=139.162.180.228
addnode=139.162.184.130
addnode=198.58.96.134
addnode=45.76.241.37
addnode=104.238.181.128
addnode=172.110.31.188
addnode=144.202.17.8

Now you can already start your fullnode on the VPS.
Your Putty window will not be able to take commands anymore while anond is running. You would have to stop it in order to type in any commands. For that reason open up a second Putty window and connect to the same VPS. In this second window run this command to start your anon full node:
./anon/anond

If you see: “root@Anon1:~/anon#” at the bottom there was an error, otherwise the node is running.

This is what it looks like if it’s running without error.

We will work with two open Putty windows. One is for running Anond and the other one is for doing commands.

If you close Putty while the node is running it will continue to be running.

To stop the node press Ctrl + C.

In the other Putty window, where we run commands, you can check if your node is running with the command:
./anon/anon-cli getinfo (gives you basic info about the wallet version and the block you’re on)
and you can stop it with this command:
./anon/anon-cli stop

Installing Sentinel:

Full instructions can be found here, but I give you all the necessary commands: https://github.com/anonymousbitcoin/sentinel

cd
sudo apt-get -y install python-virtualenv
sudo apt-get install virtualenv
git clone
https://github.com/anonymousbitcoin/sentinel.git
cd sentinel
chmod 777 setup.sh
./setup.sh

$ git clone https://github.com/anonymousbitcoin/sentinel.git && cd sentinel
$ virtualenv ./venv
$ ./venv/bin/pip install -r requirements.txt

Now we edit the cronjob, just to be sure that it’s really running every minute:

sudo crontab -e

If asked use nano to open the file (option 1) and then add an empty line or even better a comment line.
Save the file with Ctrl + X and then press Y.

If your MN is listed as “Watchdog_expired” you can manually run sentinel like that:

cd
cd sentinel
./venv/bin/python bin/sentinel.py

(If you get “anond not synced with network! Awaiting full sync before running Sentinel.” then you have to wait a little bit until anond has synced the Masternode list completely)

Right now we haven’t setup the Masternode as such. We’ll test later if Sentinel is running properly. Don’t worry about it for now.

2.1. Creating a snapshot of the Server and deploying new ones based on it.

You can skip this section completely if you run only one MN.

When you have done everyhing of section 2 we now have a completely ready VPS and should take a snapshot of it, so that we can easily redeploy it and use it for other MNs.

Make sure anond is not running while you take the snapshot:
cd
./anon-cli stop
(If you get an error then anond wasn’t running and that’s what we want. Otherwise it will tell you that anond gets stopped.)

To ensure data consistency power down your VPS before taking the snapshot. You do that on the DigitalOcean page with the green switch in the upper right. (see Screenshot below)

Under Resources click on the hostname of your droplet, power down your VPS with the green toggle and click on snapshot in the menu on the left.
“Take snapshot” will create your snapshot. This might take some minutes.

To use the snapshot for a new VPS just click on “Create” in the upper right corner and instead of choosing a distribution you click on “Snapshots”. Your snapshot is available there. Click on it, pick the 1GB RAM version, give it a hostname and click on “Create” on the very bottom of the page.
You then have a second VPS with everything ready to go. All you have to do is editing the anon.conf and start anond. (Explained in detail in 4. Connecting the VPS with the MN-Alias)

You now have two VPS, both with the Anon node already installed.
Create one VPS for each MN you want to run, so that we’ll have the IP-addresses ready for the configuration of the local wallet in Section 2.
After you have created all your VPS instances you can go back to section 2 and prepare the local wallet.

3. Prepare the local wallet

Now that we have an IP-Adress, or multiple, we’ll continue with all the configurations on the local machine. It is easier to have everything prepared locally before actually configuring the MNs on the VPS, especially if you want to run multiple MNs.

Open the command line window on your local machine by Win + R and type in cmd.
Pasting into the cmd window is done with a right click. Ctrl + V won’t work.
Copying works with Ctrl + C when you have highlighted something in the cmd window.

You can perform every task without the GUI wallet. To do that open a command line window and start anond in there.
cd \anon\
anond.exe

Let this command line window open and open a second one where we run the commands. Proceed with the steps as described below. I give you the command for every action, so that you can also type it into the command line window and don’t need the GUI wallet.

In the second command line window go to the Anon folder first again with:
cd \anon\

(we’ll stay in this directory C:\Anon\, so that we can directly type in the anon-cli commands)

Get a new address for your Masternode within your wallet with this command:

anon-cli getaccountaddress 1

You will be shown an address from your wallet now.
If you run multiple MNs create one address for each MN.

anon-cli getaccountaddress 2
anon-cli getaccountaddress 3
and so on.

VERY IMPORTANT:

Whenever you have created new addresses backup your wallet.dat. If you don’t back it up after creating addresses and the file gets broken later, then an old backup won’t contain your newly generated addresses and keys.

Copy the addresses into a notepad. To have them ready for creating the transactions. (double-click on the generated address to highlight it and then press Ctrl + C to copy it to the clipboard)

We will now make a transaction of exactly 500 Anon to the generated address. It’s important that it’s exactly 500. Not more, not less.

You can use this command:
anon-cli sendtoaddress tAM61421RRCz3cGcqaFuJypF2hpm1npakXa 500

Or just use your wallet to send exactly 500 Anon to the generated address as shown below:

Do one single transaction of 500 Anon each to each address you have generated.

You can also withdraw exactly 500 Anon from an exchange. It will have the same effect. An incoming transaction of 500 Anon to one of your local addresses.

After each transaction you will have to wait for the next block if your coins all lie in one address. Once your transaction got confirmed you see the coins as spendable again.

After you have done the transactions go to your Anon folder with the masternode.conf file. In the Windows Explorer type in %appdata% and you’ll see your Anon folder there.
Open the masternode.conf file.
We’ll have to configure every single MN in a single line in this file on this basis, seperated by only spaces:
Name IP:Port Masternodekey transactionID Index

# Example: mn1 127.0.0.2:33130 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 0

A complete masternode.conf with 2 MNs will look like this:

The first thing you have to type in is an Alias, a name of your choice, and the IP of your VPS server, followed by the port 33130. Like that:

MN1 207.154.XXX.XXX:33130

Add a new line for each Masternode you want to run. Each line has to have a different Alias and IP. The port stays the same.
If you have prepared multiple VPS and have all their IP-addresses enter them with an alias in the file all together. We will configure all of them at once.

MN1 207.154.XXX.XXX:33130
MN2 201.112.XXX.XXX:33130

Leave the file open while we’ll get the rest of what we need to put into the masternode.conf.

Go back to the cmd window and type in
anon-cli masternode genkey

This command creates a private key that will be used on the VPS and proves that you still hold the 500 Anon. The key that is generated by “masternode genkey” is also referred to as masternode private key or masternodeprivkey in the anon.conf on the VPS.
It can’t be used for anything other than running a MN. Nobody can steal your coins by having your masternode privkey.

(If you run multiple Masternodes then generate a key for each MN. You’ll get a new one everytime)

Copy and paste the key into your masternode.conf and still leave the file open. It now looks like that:
MN1 207.154.XXX.XXX:33130 927P1TjMSS6PBEr3kih5omYxmqvHdYLsooiWmtrM5WbyUaJStjC
MN2 201.112.XXX.XXX:33130 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg

Run the same command multiple times to get a new key for each MN. Each MN needs its own key. You’ll get a new key each time you run the command.
Use a different key for each line of MNs in your Masternode.conf. Which one you use in which line is totally irrelevant, just make sure every line has it’s own unique key.

The last thing we need is our transaction ID and an index. You get in the cmd window with the command:
anon-cli masternode outputs

It will look like this, or will have more lines like this when you have made more than one transaction with exactly 500 Anon:

It makes sense to copy the complete output of masternode outputs into Notepad and then paste transaction per transaction into the masternode.conf from there. Makes it easier, especially if you run multiple MNs.

In case of running multiple nodes add 1 transaction and Index to each line in the masternode.conf. It doesn’t matter in what order. It also has nothing to do with the generated key. The only important thing is that you have the right Index with the right transaction ID. And again both 0 and 1 are fine as Index.
If you only run one MN you only have to edit one line obviously.

“Masternode outputs” gives you all of your valid MN transactions in a random order. Make sure to not use the same transaction ID multiple times in the masternode.conf.
Best practice is to copy the whole output of masternode outputs into a textfile and then cut the transaction IDs out (Ctrl + X) and paste it into your masternode.conf. That way you make sure not to use a transaction ID twice by accident.

It will look like this. Enlarge the screenshot to see clearly that it is all written into one line:

MN1 207.154.XXX.XXX:33130 927P1TjMSS6PBEr3kih5omYxmqvHdYLsooiWmtrM5WbyUaJStjC 73566a6f33fd89c57f45dbd5d77c2aa89e1ac57f87393867f261dcd61c594e3d 0

MN2 201.112.XXX.XXX:33130 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 1

The masternode.conf is now complete. So save the file, but leave it open in the Notepad, and restart your local wallet after having saved the file.
We’ll need the privkeys from the masternode.conf for the configuration on the VPS, that’s why you can leave it open, but save it, so that your restarted wallet already has the MN-Aliases in it.

Now that your masternode.conf is ready restart your wallet.

4. Connecting the VPS with the MN-Alias

We now have a complete masternode.conf on the local computer. We now have to tell the VPS that he is a Masternode and give him a key, the masternodeprivkey that we created on the local computer.

On each VPS that you have created, also from a snapshot, you only have to do the following steps.

On the VPS open the anon.conf with:

cd
nano .anon/anon.conf

  • Fill in the IP-address of the VPS you are currently on (externalIP=)
  • Insert the masternodeprivkey out of your local masternode.conf that is in the same line as the IP-address of the VPS
  • set masternode=1

After editing it should look like this (but there should be the IP of your VPS under externalIP):

When these three parameters are changed your VPS from the snapshot is ready to go and you can start it with:

./anon/anond

It is now running as a Masternode. We need to actually start the Masternode from the local computer, in order for it to be enabled and receive payouts.

5. Starting your MNs from your local computer.

If you have followed this step closely your local wallet should already have been restarted and all MN-aliases should be listed in the tab “My Masternodes”. Enable your MNs by clicking on “Start missing” or “Start Alias” if you want to start a MN seperately.
Shortly after your wallet should go from “Pre_Enabled” to “Enabled” if everything was setup correctly. Give this process some minutes.

You can also start your MNs via anon-cli as follows:

./anon/anon-cli masternode start-all
./anon/anon-cli masternode start-alias Alias
./anon/anon-cli masternode start-missing

Keep in mind that start-all restarts all MNs even if they are enabled. They then go to the state “PRE_ENABLED” again.
Best way to go is to use “start-missing”.

To test if sentinel is running properly run these commands one the VPS while anond is running and you have the Masternode enabled.

cd sentinel
./venv/bin/py.test ./test

If you get a green message you’re good to go. If it’s a red message something is wrong. Seek help in the Telegram-Channel @anontechnicalsupport then.

If you’re local wallet shows “Watchdog_expired” it’s most likely just a glitch. Click on “Reset sync” in the “My Masternodes” tab to re-read the status.

You can test the status of your Masternode on the VPS as follows:

./anon/anon-cli masternode status
If it says “Masternode successfully started” everything is fine.

To check the status of a specific MN in the network run this command on the VPS and replace tx-id with the transaction ID that is in your masternode.conf

./anon/anon-cli masternode list | grep tx-id
Example:
./anon/anon-cli masternode list | grep 73566a6f33fd89c57f45dbd5d77c2aa89e1ac57f87393867f261dcd61c594e3d

If you have any questions please leave them as comments under this article.
If you feel like being completely lost and don’t know what do then join my private discord server and I’ll figure it out with you in the voice chat: https://discord.gg/SCGBufz

This guide will constantly be updated, so that it always uses the most up to date releases and fits the needs of users as best as possible.

Leave your feedback especially if some parts were too complicated for you.

If this guide helped you setting up your Masternode and you want to say thanks, feel free to tip me:

ANON:
AnffKjgMUj4GP8ETuE4ZQzUEBBLwizRxHZZ
ZClassic:
t1VsVhKFo1VP8JyCGF36UfdCKQHHgZWX1rG
Bitcoin:
35JaaDWxVadqpEK86RS6qGKWAgqMhm1oKW
Monero:
85QuYL1WrXfespedvq99f72dqKyvBATMh8MuT3rx5yPJVZNuxUeNZAwgzdqmh7cJnMTaEvCcZuA4rVFkJ7e5YXLhKwuyJ2D
Dash:
XgeatTXJ6hnL2cxXaaf6UYubUaZc9JBkfW
Litecoin:
MDtTSJmv8P719rxmUEJDMCc4u88kTDVgrP
ZCash:
t1ep3gAKvvJD3vdxQWr1nuEgSZqJvbvHkKV
VIA:
EJFncd1kkPwY3V55YavRxRUqVSbA8fLp9q

--

--