Hyperon Chain
Search
K

Node Setup - Validator

This steps help to setup validator for partcipating in blockchain block validators.
Read complete document carefully before implementation.

Hardware/Software Requirements:

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

HyperonChain Requirement:

  1. 1.
    To setup validator currenly you need 200000 HPN which will get locked in validator smart contract
  2. 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. 3.
    If validator goes in Active-Offline status for more than 8 hours it will be punished
  4. 4.
    Wait for node-1 to start with block production before configuring node-2 in validator portal

HyperonChain Validator Portal:

HyperonChain validator portal available at https://apps.hyperonchain.com/validator
You can use MetaMask wallet to access HyperonChain validator portal.
  1. 1.
    Wallet Address: MetaMask Connected Wallet Address
  2. 2.
    Warning Message: To Show Warning if Active Nodes Goes Below 80%
  3. 3.
    Validator Address: Same as MetaMask Connected Wallet Address
  4. 4.
    Server IP Address: Server Static IP Address On Which Validator Hosted
  5. 5.
    RPC HTTP API Port: RPC HTTP Port to Connect Besu API. Refer Preferred Ports Section
  6. 6.
    RPC WS API Port: RPC HTTP Port to Connect Besu API. Refer Preferred Ports Section
  7. 7.
    P2P Port: P2P Port Used By Validator to Connect Other Validators. Refer Preferred Ports Section
  8. 8.
    Status: Current Validator Status. Refer Validator Status Section to Know in Details
  9. 9.
    Validated Blocks: Blocks Validated by Validator
  10. 10.
    Total Earned Rewards: Total Earned Rewards by Validator
  11. 11.
    Locked Coins: Locked Coins By Validator for Activation
  12. 12.
    Enode: Enode URL of Validator
  13. 13.
    Add Validator(Button): To Add New Validator(Visible if Unlocked Wallet is Not Validator)
  14. 14.
    Remove Validator(Button): To Remove Validator(Visible if Unlocked Wallet is Validator)

Preferred Ports:

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

Validator Status

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

Configuration Steps:

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.
14. Apply for validator from https://apps.hyperonchain.com/validator
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. 1.
    To shutdown node enter "Ctrl + C" keyboard button
  2. 2.
    Alternative enode enode://1cc4ed7fa6f3c9ef165405017014527509096e587961f4c4a5f4df2edc50d8f58cf61ceac0017bab3660[email protected]:30303