May 9, 2023 7:52 pm

How To Setup A Dash Evolution Masternode (HPMN) – Full Guide

A High Performance Masternode (HPMN), referred to Evolution Masternode (EvoNode), is a specialized masternode created to provide hosting services for the Dash Evolution Platform – a decentralized application platform built on the Dash network. In today’s blog, we will show you the steps you need to take to run your own EvoNode.

EvoNode (HPMN) vs Masternodes

EvoNodes are responsible for providing both Core and Platform services, while regular masternodes only provide Core services. The recommended specifications for EvoNodes are also higher than those for regular masternodes. EvoNodes are incentivized to perform their duties by receiving a part of the block reward, similar to regular masternodes.

The introduction of EvoNodes was made in preparation for the release of the Dash Evolution mainnet. Once Evolution services are available on mainnet, EvoNodes will be responsible for hosting these services, as well as other features like ChainLocks and InstantSend.

EvoNodes are designed to offer higher performance and specifications than regular masternodes and are required to have a collateral of 4000 DASH, as opposed to the 1000 DASH required for regular masternodes.

How to run an EvoNode (HPMN)?

#1 Installing Dashmate

The first thing you need to do is install “Dashmate.” Dashmate is a versatile solution that simplifies the setup and operation of Dash masternodes in a containerized environment. It rapidly configures and runs a local development network. With its intuitive command-line interface (CLI) built in Node.js, Dashmate automates configuring and starting up masternodes, making it user-friendly even for those with limited technical expertise.

 

Download dashmate here.


 

#2 Installing EvoNode (HPMN)

We are going to show this process on Linux, but it is similar for other systems. After you have installed Dashmate, open your terminal and type “dashmate.”

If Dashmate is properly installed, you should see all the contents of the “dashmate” command. To deploy the masternode, type “dashmate setup.”

You will now be greeted by the Dashmate cat!

Dashmate will give you a choice between the following:

  • mainnet – Run a node connected to the Dash main network.
  • testnet – Run a node connected to the Dash test network.
  • local   – Run a full network environment on your machine for local development.

For now, let’s select the “testnet” preset.

As you can see, the Dash network allows you to choose between node types:

  • Full node: A full node downloads and maintains the Dash blockchain (No collateral).
  • Masternode: Responsible for governing Dash Core and conducting Core services such as ChainLocks and InstantSend (1000 DASH collateral).
  • Evolution full node: A full node that hosts a full copy of the Dash Platform blockchain (no collateral).
  • Evolution masternode: Responsible for governing Dash Core and Dash Platform. Also conducts Platform services such as DAPI and Drive (4000 DASH collateral).

Select Evolution masternode.

Up next, Dashmate will ask you if your masternode is registered or not. If you already have a masternode registered, Dashmate will import your masternode operator key to configure a masternode.

However, if you are a newcomer, you will need to generate your EvoNode keys.

#3 Sending The Collateral And Generating Keys

To generate your Dash EvoNode keys, you will need to show proof of collateral. Dashmate needs to collect your collateral funding transaction hash and index. First, choose the wallet you want to store your keys in.

Once you choose the wallet, you will need to enter the:

  • Transaction hash: Cryptographic hash of your collateral transaction.
  • Output index: The sequentially-numbered index of outputs in a single transaction starting from 0.

Sending the Collateral

A Dash address with a single unspent transaction output (UTXO) of exactly 4000 DASH is required to operate a masternode. To send this collateral, you will need to generate a collateral address.

To do this, open our Dash Core wallet.

Wait for it to synchronize and go to Window > Console to open the console. Type “getnewaddress” in the console to generate a new Dash address for the collateral.

Make sure to remember the collateral address that you generated earlier, as it will be required later. The first step in securing your wallet is to encrypt it using a strong and unique password that you have not used elsewhere. Go to Settings > Encrypt wallet to do this. Remember to save your password somewhere safe, as losing it will result in losing access to your wallet.

Next, backup your wallet file by selecting File > Backup Wallet and save it in a physically separate and secure location from your computer. This is important because it will be the only way to access your funds if your computer is compromised.

Once your wallet is secure, send exactly 4000 DASH in a single transaction to the new address you generated earlier. You can send this from another wallet or from funds already in your current wallet. After sending the transaction, view it on a blockchain explorer by searching for the address. Remember that you need 15 confirmations before registering the masternode, but you can proceed with the next step of generating your masternode operator key.

Get the Hash and Output Index

Now go back to your Console and type “masternode outputs.” This should return a string of characters similar to the following:

{

“42e42808717d29aeb52ff887c5e2f89644ee8821f81e8aa17df98a8a9d42e005-1”,

}

The first long string is your collateral transaction hash, while the last number is the collateral output Index.

Enter this data in the Dashmate interface.

#4 Entering Addresses

Up next, you will be asked to provide the Owner address, Voting address, and Payout address.

To set up a masternode, you first need to get a new and unused address from your wallet to serve as the owner key address (ownerKeyAddr). This is different from the collateral address where you hold the 4000 Dash. You can generate a new address using the command “getnewaddress.” This address can also be used as the voting key address (votingKeyAddr). Alternatively, you can choose an address provided by your chosen voting delegate or generate a new voting key address using the same command.

Next, you need to generate or select an existing address to receive the masternode payouts (payoutAddress). This address can be external to the wallet as well. Again, use the “getnewaddress” command to generate a new address. 

Once you have your Owner address, Voting address, and Payout address, enter them in the Dashmate interface.

#5 BLS Key And Reward Share

Up next, you will be prompted to enter your BLS key and operator reward share.

To operate a masternode, you need a public and private BLS key pair. The private key is required by the masternode to be included in the deterministic masternode list after a registration transaction with the corresponding public key has been created.

 

If you are hosting your own masternode or have agreed to provide your host with the BLS private key, you can generate a BLS public/private key pair in Dash Core by accessing the console through Tools > Console and entering a specific command.

bls generate

{

  “secret”: “6d93ececa9993d9f1de4f3ae837115442a48a8e4c757ebb6261090af2f57547b”,

  “public”: “b4dfbe01becd50c9d754c3b87f9d6728f3bff30b8b820f894e1fd249fd11aa27b0b4145ad550cbc35e9796e60329ad0a”,

  “scheme”: “basic”

}

Optionally, use the one automatically generated by Dashmate.

Regarding the reward share, you can enter the share percentage based on what portion of the block reward is intended to go to the operator directly.

#6 Platform Node Key And Comms Configuration

To run an EvoNode, you will need to generate platform node keys.



So, how do you generate a platform node key?

To generate a new P2P key using Tenderdash, run the following command:

docker run –entrypoint /usr/bin/tenderdash –rm -ti dashpay/tenderdash gen-node-key

Upon execution, the command will output a JSON object containing an “id” field with a corresponding value. Save this value as your platformNodeID, which will be used in subsequent steps.

Alternatively, you can use the following commands to generate a P2P key, save it to privkey.pem, and generate the platformNodeID in hex format:

openssl genpkey -algorithm ed25519 -out privkey.pem

openssl pkey -in privkey.pem -noout -text_pub |tail -n +3 | tr -d ‘[:space:]’ | xxd -r -p| sha256sum | head -c 40

The output of the second command will be the platformNodeID. It will be something like “1e8e241c05ca350c8fe0b8ba4680e7652673dae2.”

It is important to note that these keys are not stored by the wallet and must be backed up and kept secure. 

Up next, Dashmate will require your external IP address and port information for communication configuration.

Dashmate will automatically detect the external IP address and select the default ports for the network you are setting up. 

#7 Registering the masternode

Now, it’s time to register your EvoNode. At this stage, Dashmate will provide you with a protx command.

To run the command successfully, you can use either dash-cli or the Dash Core console. Once the command has been executed successfully, you should select “Yes” to proceed. However, if you encounter an error, select “No” and revisit the previous steps to review the details before retrying the command.

To ensure secure communication, Dash Platform mandates the use of SSL certificates. Dashmate offers various methods to obtain the necessary SSL certificate, but it’s important to note that self-signed certificates are not acceptable for use on the mainnet. If setting up a mainnet EvoNode, the available options for SSL certificate procurement are limited to ZeroSSL and File on disk.

Upon completion of the configuration process, a summary is presented that provides details about the type of node and network that has been configured. This summary is important as it includes critical parameters and guidance on the next steps to follow.

It’s crucial to backup and securely store the BLS operator private key and Platform Node key.

That’s it! You have successfully registered your EvoNode. To start your node, go to dashmate and type:

dashmate start

Congratulations! You now run an EvoNode!

In Closing

Dash Evolution is poised to revolutionize the world of decentralized applications by offering a user-friendly, scalable, and efficient platform for developers to build on. With its focus on ease of use, seamless integration, and enhanced privacy features, Dash Platform is well-positioned to become a leading player in the rapidly evolving decentralized ecosystem. Its launch is eagerly anticipated by the Dash community and beyond. Come and be a part of this revolution.

Learn more about Dash EvoNode (HPMN), its features from economical and technical perspective.

Additional Resources:

 

Author: thephez


About the author


Marina Siradegyan

Communications and marketing at DCG. Huge fan of Dash. And cats.