Dash Evolution Master Node | Setup Guide
Introduction
Dash – This cryptocurrencybased on the protocol Bitcoinbut with a number improvements and functions such as private transactions And decentralized governance. Dash was designed to provide fast And low cost payments worldwide.
I am new to the world of Bitcoin-like blockchains, and setting up Dash Evolution Master Node (EvoNode) for the Dash blockchain may seem like a daunting task. However, following this guide will walk you through setting up Evonode step by step, ensuring it works properly, and taking advantage of all the benefits Dash has to offer.
I have done extensive research into installing, configuring, and running the Evolution Master Node for Dash. EvoNode is a component of the Dash network that allows you to manage improvements and features like InstantSend and PrivateSend, as well as participate in decentralized governance.
Setting up EvoNode involves several steps, such as preparing the server environment, installing the necessary software, and setting up configuration files. In this article, I will explain each step of this process in detail to help you successfully set up and run EvoNode for Dash.
I've outlined a few basic steps you can follow to get your Evolution Master Node for Dash up and running:
Installing and configuring a wallet
In my case, I'm using Dash Core Wallet as an example. This step involves downloading, installing, and synchronizing the wallet with the Dash blockchain.Preparing and configuring the server
It is necessary to prepare the server environment, including choosing an operating system, configuring security, and installing the necessary libraries and dependencies.Installing Dashmate
Dashmate is a tool that simplifies the process of installing and managing EvoNode. We will go through the steps to install and configure it.Setting up and running the Evolution Master Node
In this step, we will set up the configuration files, start the EvoNode and ensure that it is functioning properly, providing all the capabilities of the Dash network.
Note:
On average, it takes 90 minutes to complete all the actions described in the article at a leisurely pace.
Installing and configuring a wallet
To register EvoNode you must have on your account 4000+ DASH. 4000 deposit for EvoNode, and some DASH for Payout address. In my case, I used 4005 tDASH, which is a test currency in Dash network.
In my example I used a wallet Dash Core Walletdue to the lack of a hardware wallet, although for maximum security a hardware wallet is recommended.
Let's first install Dash Core Wallet locally on your computer.
I have Ubuntu 24.04 installed, for other systems you can see dash documentation.
Let's move on website and download the required archive (or installation file).
The documentation recommends verifying the downloaded fileto ensure its security, as all Dash releases after 0.16.0 are signed with GPG. I skipped this step because I'm running a test EvoNode, but I highly recommend verifying the file if you're running on the mainnet.
In the terminal, go to the directory with the downloaded file, then unpack it, and install the binary files in the /usr/local/bin directory:
cd Downloads/
tar -xzf dashcore-20.1.1-x86_64-linux-gnu.tar.gz
sudo install -m 0755 -o root -g root -t /usr/local/bin dashcore-20.1.1/bin/*
Let's launch the wallet to continue setting it up:
dash-qt&
Let's enable “coin control” and display masternodes in the settings, we will need these settings later. Don't forget to restart the wallet after making the settings.
Let's do a little more preparation for the future. Open the Receive tab and create three wallets, not forgetting to specify the Label (Collateral, Owner, Voter, PayOut):
As a result, you will receive four addresses, they will be useful later.
The next step involves replenishing your wallet, so I would advise you to take some security measures.
First of all, you MUST encrypt (Settings -> Encrypt Wallet) your wallet with a new password and keep it safe.
The second thing you need to do is backup your wallet (File -> Backup Wallet).
Be sure to delete all unencrypted backups once you are sure the wallet is working!
ALL YOUR ACTIONS TO KEEP YOUR PASSWORD AND WALLET BACKUP SAFE ARE ENTIRELY YOUR RESPONSIBILITY.
We have reached the point where you need to top up your wallet. Make a deposit of 4000+ DASH (in my case 4005 tDASH).
We have enabled coin control features before, so now we will make two transactions to the addresses we received before. I am writing based on my own example.
1 transaction: 4.9 tDASH to the last received address. The “Subtract fee from amount” box is checked.
2 transaction: 4000 tDASH to the first received address. Do NOT check the box “Subtract fee from amount”. Also specify the address from which you are transferring, so as not to use the address from the first transaction. This is the address with the collateral for EvoNode.
For the future, let's save the transaction data with the collateral. To do this, execute the following command in the wallet console (Window -> Console)
masternode outputs
To which you will receive a response similar to this:
[
"83466394b185a7ba448106b882553ff4869303ad4480b09c2fdabb38fadd798f-1"
]
Save the result.
Now we have set up the wallet and prepared everything for the next steps.
Preparing and configuring the server
Setting up a VPS for EvoNode — an important step for ensuring safe and stable operation of the unit. We will take a detailed look at the VPS registration and setup process.
VPS Registration
Choosing a provider
The first step is to choose a reliable provider that will ensure stable operation of your server. Recommended providers: DigitalOcean, Vultr, Linode.
Create an account
Register on the website of the chosen provider and create an account. After registration, you will be able to create your virtual server (VPS).
Creating a VPS
To work with Dash EvoNode, it is recommended to select a tariff plan:
CPU: 4 vcpu
RAM: 16GB
HDD/SSD: 200GB
Select your operating system (in my case, Ubuntu 20.04).
Setting up a VPS
Connecting via SSH
SSH is used to manage the server remotely. Use an SSH client (such as PuTTY for Windows or the built-in Linux/Mac terminal) to connect to the server using the credentials provided by your ISP.
System update
To ensure system security and stability, please update:
sudo apt update && sudo apt upgrade -y
Create a user
Create a new user to increase security by avoiding running as root:
sudo adduser dashuser
sudo usermod -aG sudo dashuser
Create SSH key and import to VPS
On your local machine, create an SSH key and import it to your VPS.
For UNIX
Create a key:
ssh-keygen -t ed25519 -C "@dashuser"
Copy the key to the server:
ssh-copy-id dashuser@ваш_сервер_ip
For Windows
Download and install PuTTY and PuTTYgen.
Generate a key using PuTTYgen:
Open PuTTYgen.
Select key type “Ed25519”.
Click “Generate” and follow the instructions.
Save the public and private keys.Import the key to the server using PuTTY:
Open PuTTY.
In the “Connection” -> “SSH” -> “Auth” section, select your key file.
Connect to the server and run the commands to add the key to ~/.ssh/authorized_keys:mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "ваш_публичный_ключ" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Check if the connection by key works. (It should not ask for a password when connecting)
Setting up SSH
For added security, disable password login and root access. Open the SSH configuration file:
sudo vi /etc/ssh/sshd_config
Change the following settings:
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Attention:
After completing the next step, you will lose the ability to log in to the vps using a password! Make sure that the connection by key works!
Save the changes and restart SSH:
sudo systemctl reload ssh
Setting up a firewall (UFW)
To ensure security, you need to configure a firewall and install additional packages:
sudo apt install ufw python3 virtualenv git unzip pv -y
Firewall configuration
Select the appropriate firewall configuration depending on the network your evolution masternode will support and enter these commands on the server console:
Configuration for Mainnet:
sudo ufw allow ssh/tcp
sudo ufw limit ssh/tcp
sudo ufw allow 443/tcp
sudo ufw allow 9999/tcp
sudo ufw allow 26656/tcp
sudo ufw logging on
sudo ufw enable
Configuration for Testnet:
sudo ufw allow ssh/tcp
sudo ufw limit ssh/tcp
sudo ufw allow 19999/tcp
sudo ufw allow 26656/tcp
sudo ufw allow 3000/tcp
sudo ufw logging on
sudo ufw enable
Enable swapping
For EvoNode to work, it is recommended to enable swap in Linux. Next, we will add memory swapping and enable it.
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Let's configure the inclusion of the swap file on subsequent reboots:
sudo nano /etc/fstab
Add the following line to the end of the file (press Tab to separate each word/number), then press Ctrl + X to close the editor, then press Y and Enter to save the file.
/swapfile none swap sw 0 0
Reboot
Now reboot the server:
sudo reboot now
Installing Dashmate
So, all that remains for us to do is install dashmate on the server.
Let's install dependencies:
sudo apt update
sudo apt install wget docker.io docker-compose docker-compose-v2 -y
sudo usermod -aG docker $USER
Now let's move on to repository with releases and select the current dashmate release (in further commands, specify your current release). At the moment (08/2024) is relevant 1.0.2
Copy the link to the current release for our OS.
and paste it into the following command on your server:
wget -P /tmp/ https://github.com/dashpay/platform/releases/download/v1.0.2/dashmate_1.0.2.030eb0595-1_amd64.deb
sudo apt install /tmp/dashmate_1.0.2.030eb0595-1_amd64.deb
Now, if you enter the dashmate command into the terminal and see the following output, you are all set to configure EvoNode.
Reboot
Now reboot the server:
sudo reboot now
Setting up and running EvoNode
At this point, we have everything ready to launch the Dash Evolution Master Node.
Let's list them:
We have four wallet addresses. One to hold the collateral with 4000 DASH (tDASH), one for the owner, one for voting, and one for payout with some DASH (in my case about 5 tDASH). It takes 15 confirmations to validate the transfer of 4000 DASH.
We also have transaction data for 4000 DASH (tDASH).
We go to the server console and enter:
dashmate setup
Select a network (in my case testnet):
Next, we indicate that we need the Evolution Master Node:
Since I'm running the EvoNode testnet, and doing it purely for the sake of example, I saved on the server, and got the following error (I'll skip it by selecting Yes):
In your case there should be no error.
We register new EvoNodetherefore we leave it in the next point No:
I use Dash Core Walletthat's why I choose this item:
In the next point we need Specify transaction hash with collateral 4000 DASH and its index. We take this from the transaction data obtained by the masternode outputs command earlier.
The next thing dashmate will ask us is specify the wallets of the owner, voter and PayOut (I remind you that there should be some DASH on the PayOut address). Let's indicate the wallets received earlier:
Next, enter the closed BLS operator key. You can enter the one you created (for example, using Dash Core) or the one you got from your hosting provider. Alternatively, you can use the key automatically generated by dashmate. I used the automatically generated one. I also copied it and kept it safe.
If part of the EvoNode remuneration is to be sent directly to the operator, also set the remuneration percentage.
Enter the platform node key. You can enter one you created or received from your hosting provider. Alternatively, you can use the key automatically generated by dashmate (I did this, copying and saving it):
Attention:
The BLS operator private key and the platform node key must have a saved copy and be securely protected.
Dashmate will automatically detect your external IP address (check that the IP is defined correctly) and selects the default ports for the network you are configuring. You can change these values if necessary, but in general you should use the default values.
After that, dashmate will generate the EvoNode registration command. (Light blue text on the screen below)
Copy the provided protx command and Run it using the Dash Core console.
To successfully enter the command into the console, I removed the line breaks in it using a text editor (otherwise the error Error: Invalid Syntax would occur).
If successful, you will receive a response like this.
When entering the command, you may receive the following error:
This means that you need to unlock your wallet. Settings -> Unlock Wallet
After the command has successfully completed, select Yes in the server terminal. If an error occurs, select No to return to the previous steps and view the details.
Dash Platform requires the use of SSL for data exchange. Dashmate provides several options for obtaining the necessary SSL certificate.
Self-signed certificates cannot be used on mainnet. When setting up Evonode on mainnet, the only options available are ZeroSSL and File on disk.
Let's look at the ZeroSSL and File on disk options.
ZeroSSL
The first thing you need to do is register on website. Click Get Free SSL:
Enter your email and password and proceed to the next step:
Go to the tab “Developer”, and copy “ZeroSSL API Key”:
Let's specify it in the terminal with dashmate:
By pressing Enter we will start the process of creating and verifying certificates for the server
Note:
Please note that ZeroSSL has restricted access to its resources for some IP zones. In particular, for the RU IP sector, it is impossible to use ZeroSSL at the time of writing this guide.
Also note that verification requires port 80, which may be occupied if Nginx is installed on the server.
File on disk
We obtain the certificate files in one way or another, upload them to the server, for example using scp, and specify the path to them:
Completing the dashmate configuration
Once the configuration is complete, a summary is displayed showing the network and type of node configured. This summary contains important settings and information on what to do next.
Launch
Finally, all we have to do is launch EvoNode by running the command:
dashmate start
You can check the status by running the command
dashmate status
The synchronization process will take some time. After that, check the other services.
dashmate status core
dashmate status platform
dashmate status services
You can verify that EvoNode is running by going to the Masternodes tab in Dash Core Wallet and checking the box next to My masternodes only. Your EvoNode should be displayed there.
This completes the setup and launch Dash Evolution Master Node can be considered complete.
How to use the received information will be described in further guides on the topic.