Node Setup - Validator
This steps help to setup validator for partcipating in blockchain block validators.
Read complete document carefully before implementation.
CPU: Intel i3/AMD Ryzen 5 and above
RAM: 4 GB DDR5
Disk Space: 20 GB(For starting which will grow with blockchain)
Operating System: Ubuntu 20.04 Server Edition and above
Network Speed: 1MBPS+ Recommended with Static IP Address
Note: Prefer to use VPS instead of home machines
- 1.To setup validator currenly you need 200000 HPN which will get locked in validator smart contract
- 2.80% of existing validators need to be active to accept new validator. HyperonChain check for in active validator periodically and punish them if offline for more than 8 hours(with 10% fine deduction from locked coins)
- 3.If validator goes in Active-Offline status for more than 8 hours it will be punished
- 4.Wait for node-1 to start with block production before configuring node-2 in validator portal
You can use MetaMask wallet to access HyperonChain validator portal.

- 1.Wallet Address: MetaMask Connected Wallet Address
- 2.Warning Message: To Show Warning if Active Nodes Goes Below 80%
- 3.Validator Address: Same as MetaMask Connected Wallet Address
- 4.Server IP Address: Server Static IP Address On Which Validator Hosted
- 5.RPC HTTP API Port: RPC HTTP Port to Connect Besu API. Refer Preferred Ports Section
- 6.RPC WS API Port: RPC HTTP Port to Connect Besu API. Refer Preferred Ports Section
- 7.P2P Port: P2P Port Used By Validator to Connect Other Validators. Refer Preferred Ports Section
- 8.Status: Current Validator Status. Refer Validator Status Section to Know in Details
- 9.Validated Blocks: Blocks Validated by Validator
- 10.Total Earned Rewards: Total Earned Rewards by Validator
- 11.Locked Coins: Locked Coins By Validator for Activation
- 12.Enode: Enode URL of Validator
- 13.Add Validator(Button): To Add New Validator(Visible if Unlocked Wallet is Not Validator)
- 14.Remove Validator(Button): To Remove Validator(Visible if Unlocked Wallet is Validator)
Below are preferred ports to use while validator configuration while running besu command line. Make sure all used ports are unlocked on machine while node setup.
Node | RPC HTTP API Port | RPC WS API Port | P2P Port |
---|---|---|---|
Node-1 | 8545 | 8546 | 30303 |
Node-2 | 8547 | 8548 | 30304 |
Node-3 | 8549 | 8550 | 30305 |
Node-4 | 8551 | 8552 | 30306 |
Node-5 | 8553 | 8554 | 30307 |
Node-6 | 8555 | 8556 | 30308 |
Node-7 | 8557 | 8558 | 30309 |
Node-8 | 8559 | 8560 | 30310 |
Status | Description |
---|---|
Waiting For HPN Locking | Wallet applied for validator but transaction for coins locking yet to submitted/validated |
Approved | HPN locked for validator and waiting for activation from other validators. Activation generally takes 5-10 mins after HPN locking |
Activated | Validator is active and in sync with other peer nodes |
In Removal | Validator is applied to remove and waiting to get removed |
Removed | Validator is removed from HyperonChain network and node/server can be shutdown |
Punished | Validator is offline for more than 8 hours and removed from HyperonChain network with 10% fine |
Active-Offline | Validator is approved but yet to setup node or validator is offline
If validator stay in this phase for more than 8 hours it will be punished with 10% fine and removed from network |
Unknown | Unknown error with validator. Reach out to HyperonChain support |
Follow below steps to configure HyperonChain validator
Execute below command lines in Terminal as root access.
1. Update Operating System
sudo apt update

2. Install JDK
sudo apt install default-jdk


3. Install JRE
sudo apt install default-jre

4. Install OpenJDK
sudo apt install openjdk-17-jre-headless

5. Install Curl
sudo apt install curl

6. Open 8545, 8546, 8547 and 30303 port from terminal using below command.
If setting multiple nodes unlock all ports you are going to use for HyperonChain configuration.
sudo ufw allow 8545
sudo ufw allow 8546
sudo ufw allow 30303

7. Download latest besu-version.zip release of besu from below URL
cd /
sudo wget "https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.4.4/besu-23.4.4.zip"

8. Extract content of zip to /HyperonChain directory
sudo unzip besu-23.4.4.zip

9. Rename directory from besu-23.4.4 to /HyperonChain
sudo mv /besu-23.4.4 /HyperonChain

10. Apply Full Permission on /HyperonChain directory to all users
cd /
sudo chmod 777 /HyperonChain

11. Create /HyperonChain/QBFT-Network/Node-1/data and /HyperonChain/QBFT-Network/Node-1/key directories
cd /HyperonChain
sudo mkdir QBFT-Network
cd QBFT-Network
sudo mkdir Node-1
cd Node-1
sudo mkdir data
sudo mkdir key

Folder Structure from GUI

Note: Repeat steps with folder name Node-2, Node-3 and more if setting mutliple nodes.
12. Download genesis.json from https://github.com/HyperonChainOfficial/HyperonChain-Blockchain/blob/main/genesis.json in /HyperonChain directory
cd /HyperonChain
sudo wget "https://raw.githubusercontent.com/HyperonChainOfficial/HyperonChain-Blockchain/main/genesis.json"

13. Create node private key file for wallet used for validator
sudo nano /HyperonChain/QBFT-Network/Node-1/key/key

Enter private key of wallet you are going to use as validator in nano editor.(Add 0x at start if not exist)

Click Ctrl + x keys and y key and then Enter key to save file.

Note: Create file with name "key" for each node with different wallet addresses if setting multiple nodes in different Node-X directory.
Visit above mentioned validator portal and connect with MetaMask(make sure you use same wallet as validator)

Enter Validator Information as shown in above image and click on Add Validator then sign transaction from MetaMask. For multiple node setup on single machine refer Port section of articles. It will lock 200000 HPN and wait for few mins to get status reflected to "Active-Offline"

15. Once validator portal show status of node "Active-Offline" type below command in terminal to start node sync
cd /HyperonChain/
./bin/besu --data-path=QBFT-Network/<NodeFolderName>/data --genesis-file=genesis.json --host-allowlist=* --min-gas-price=0 --rpc-http-api=ETH,NET,WEB3,QBFT,TRACE,TXPOOL,ADMIN --rpc-http-cors-origins=* --rpc-http-enabled=true --rpc-http-host=0.0.0.0 --rpc-http-max-active-connections=10000 --rpc-http-max-batch-size=-1 --rpc-http-port=<RPC HTTP API Port> --rpc-tx-feecap=1000000000000000 --rpc-ws-api=ETH,NET,WEB3,QBFT,TRACE,TXPOOL,ADMIN --rpc-ws-enabled=true --rpc-ws-host=0.0.0.0 --rpc-ws-max-active-connections=10000 --rpc-ws-port=<RPC WS API Port> --p2p-port=<P2P Port> --sync-mode=FULL --bootnodes="enode://1cc4ed7fa6f3c9ef165405017014527509096e587961f4c4a5f4df2edc50d8f58cf61ceac0017bab3660c900edb2de73dc3ce1b7c5fa840033b69510a4126202@216.219.86.11:30303" --tx-pool-retention-hours=1 --tx-pool-limit-by-account-percentage=0.001 --node-private-key-file=QBFT-Network/<NodeFolderName>/key/key --miner-enabled=true --miner-coinbase=<ValidatorWalletAddress> --tx-pool-retention-hours=1
Don't forget to replace <NodeFolderName>, <RPC HTTP API Port>, <RPC WS API Port>, <P2P Port> and <ValidatorWalletAddress> from above command line
For example in our case command line is
./bin/besu --data-path=QBFT-Network/Node-1/data --genesis-file=genesis.json --host-allowlist=* --min-gas-price=0 --rpc-http-api=ETH,NET,WEB3,QBFT,TRACE,TXPOOL,ADMIN --rpc-http-cors-origins=* --rpc-http-enabled=true --rpc-http-host=0.0.0.0 --rpc-http-max-active-connections=10000 --rpc-http-max-batch-size=-1 --rpc-http-port=8545 --rpc-tx-feecap=1000000000000000 --rpc-ws-api=ETH,NET,WEB3,QBFT,TRACE,TXPOOL,ADMIN --rpc-ws-enabled=true --rpc-ws-host=0.0.0.0 --rpc-ws-max-active-connections=10000 --rpc-ws-port=8546 --p2p-port=30303 --sync-mode=FULL --bootnodes="enode://1cc4ed7fa6f3c9ef165405017014527509096e587961f4c4a5f4df2edc50d8f58cf61ceac0017bab3660c900edb2de73dc3ce1b7c5fa840033b69510a4126202@216.219.86.11:30303" --tx-pool-retention-hours=1 --tx-pool-limit-by-account-percentage=0.001 --node-private-key-file=QBFT-Network/Node-1/key/key --miner-enabled=true --miner-coinbase=0xDDfeba0822db7A823F8535874d28862a8526148e --tx-pool-retention-hours=1

16. Wait for server to sync with other node and produce new blocks. It may takes 1-3 hours to sync completely. Keep terminal open on machine and configure command line of another node in different terminal tabs

Above image show block import(synch is started)
Portal will show validator status as Actived once geth synch start

If all settings are proper and validator synch get finished you will be below block produced status from your node in console which indicated validation started from your node and 100% working

Important Things:
- Leave terminal running and lock VPS.
- Don't share your private key with anyone.
- Run mutliple nodes in different terminal sessions/tabs.
- Blocks reward will be received in your wallet address after blockchain reach 2000000 blocks.
Note:
- 1.To shutdown node enter "Ctrl + C" keyboard button
- 2.Alternative enode enode://1cc4ed7fa6f3c9ef165405017014527509096e587961f4c4a5f4df2edc50d8f58cf61ceac0017bab3660[email protected]:30303
Last modified 21d ago