HeliChain White Paper v2.0.1
  • ๐Ÿ‘‹Introduction
  • Overview
    • ๐Ÿ’กHeliChain Overview
    • ๐ŸงฒFeatures
  • TENDERMINT CONSENSUS ALGORITHM
    • ๐Ÿ› ๏ธTechnology and Architecture
    • โš–๏ธTendermint Consensus Algorithm
    • โœ๏ธAdvantages
  • TOKEN STRUCTURE OVERVIEW
  • ๐ŸŽ’Setup Your Wallet
  • ๐Ÿช™HeliChain Token Supply and Emissions Curve
  • ๐Ÿ”ฅStaking Your Coin
  • $HELI
    • ๐Ÿช™Token Utility and Use Cases
    • ๐ŸงฎTokenomics
      • ๐Ÿช™Token Allocation
      • โšกToken Distribution
  • RUN NODE
    • ๐Ÿ’ปRunning a Full Node
    • โšกCreate a validator
  • HEAT APP
    • ๐Ÿ“ญMining with app - Empowering Individuals
    • ๐Ÿ“ฑHeat App
  • BUSINESS AND MARKET STRATEGY
    • ๐Ÿ“ŒBusiness and Market Strategy
  • Social Media & Branding Kit
    • โœจBranding Kit
    • ๐ŸŒSocial Media
    • ๐ŸŒžMr.Driller - Official Mascot
  • ๐Ÿ›ค๏ธRoad Map
  • GOVERNANCE
    • ๐Ÿ›๏ธGovernance and Decentralization
    • ๐Ÿ“Conclusion
Powered by GitBook
On this page
  • Prerequisitesโ€‹
  • Networks informationโ€‹
  • Setup a full-nodeโ€‹
  1. RUN NODE

Running a Full Node

PreviousRUN NODENextCreate a validator

Last updated 1 year ago

This is a detailed documentation for setting up a Full node on HeliChain.

REMARKS:

The following is the minimal setup to join HeliChain. If running a validator node, you should research validator security.

Prerequisites

  • Go 1.18+

  • GCC/G++ compiler

Supported OS

We officially support Linux only. Other platforms may work, but there is no guarantee. We will extend our support to other platforms after we have stabilized our current architecture.

Commonly used ports

helichaind uses the following TCP ports. Toggle their settings to fit your environment.

  • 26656: The default port for the P2P protocol. This port is used to communicate with other nodes and must be open to join a network. However, it does not have to be open to the public. For validator nodes, we recommend configuring persistent_peers and closing this port to the public.

Additional ports:

  • 1317: The default port for the Lite Client Daemon (LCD), which can be executed by helichaind rest-server. The LCD provides an HTTP RESTful API layer to allow applications and services to interact with your helichaind instance through RPC. You donโ€™t need to open this port unless you have use for it.

  • 26657: The default port for the Tendermint RPC protocol. Because this port is used for querying and sending transactions, it must be open for serving queries from helichaind.

Networks information

Specify the network details for the network you want to participate in by selecting the corresponding genesis file and seeds.

This guide completes the following actions:

  • Compile helichaind

  • Give your node a moniker and configure it

  • Configure genesis state

Example:

git clone https://github.com/Heli-chain/heli
cd heli
make
cd build
./helichaind init <moniker> 
cp ../genesis.json ~/.helichain/config/genesis.json

Start your full-node:

./helichaind start --p2p.seeds <seed-id>@<seed-ip>:<seed-p2p-port> --minimum-gas-prices <gas-price>
./helichaind start --p2p.seeds 8f86b9543ee84a69072cb8347cc8fb4ace68e6f5@45.77.172.45:26656 --minimum-gas-prices 0.0025uheli

FOR OPTIMIZED NODE PERFORMANCE, SET minimum-gas-prices TO ENABLE THE ANTI-SPAM MECHANISM AND REJECT INCOMING TRANSACTIONS WITH LESS THAN THE MINIMUM GAS PRICES.

After starting your full-node, wait until it completely sync transactions to your local to start create your validator.

State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine snapshot from peers instead of fetching and replaying historical blocks

Visit a explorer to get a recent block height and corresponding hash. The recommended snapshot period is 1000 blocks, it is advised to choose something close to current height - 1000.

# Retrieve trust height interval
INTERVAL=1000
LATEST_HEIGHT=$(curl -s https://rpc.helichain.com/block | jq -r .result.block.header.height)
BLOCK_HEIGHT=$(($LATEST_HEIGHT-$INTERVAL))
TRUST_HASH=$(curl -s "https://rpc.helichain.com/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

Set these parameters in the code snippet below <block_height>, <block_hash>, <rpc_server>

cd $HOME/.helichain/config
RPC_SERVER=<rpc_server>
sed -i "s/enable = false/enable = true/" config.toml
sed -i "s/trust_height = 0/trust_height = \"$BLOCK_HEIGHT\"/" config.toml
sed -i "s/trust_hash = \"\"/trust_hash = \"$TRUST_HASH\"/" config.toml
sed -i "s/rpc_servers = \"\"/rpc_servers = \"$RPC_SERVER\"/" config.toml

Optional Configuration: Change RPC port

cd $HOME/.helichain/config
RPC_PORT=<rpc_port>
sed -i "s/localhost:1317/localhost:$RPC_PORT/" app.toml

Setup a full-node

Download the latest release corresponding to the chosen network from

Optional Configuration: State Sync

๐Ÿ’ป
โ€‹
โ€‹
โ€‹
โ€‹
โ€‹
Helichaind repository
โ€‹