Running KardiaChain node

KardiaChain Official User Guide for Setting Up Mainnet Node

System requirement:

Recommending using Cloud compute service with the following requirements.

Hardware requirement:

CPU: Intel or AMD with 4+ Cores, Recommended 8+ Cores

RAM: 8GB, Recommended 16GB

Hard Drive: require 2.5 TB of SSD, Recommended 3 TB of SSD

Notes: For the first year, the Validator node will run as a full node (written full data to blockchain) and take up to 320GB of storage. It will ensure maintaining all the data between all validators. Starting from year two and forward, it will run as a light node which removes all the stealth data/blocks and maintains recent 100 blocks. The estimated storage will be 36GB.

OS Requirements:

Operating system: CentOS or Ubuntu (manual compiling and build) or with Docker Compose installed.

Linux OS: https://docs.docker.com/engine/installation/

Internet Requirement:

Bandwidth: 1GBps

Firewall:

Port open: TCP/UDP 3000 (internet exposure), TCP 8545 (for JSON RPC).

Preparing Environment:

When the system or cloud instance is ready, proceeding with the following steps for preparing the environment.

Installing go-kardia

From Source

You'll need go installed and the required environment variables set, which can be done with the following commands:

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Get Source Code

git clone https://github.com/kardiachain/go-kardia.git $GOPATH

Direct Installation

Prerequisites

Install libzmq

Compiling and Installing

cd $GOPATH/src/github.com/kardiachain/go-kardia/cmd
go install

Notes: the latest cmd command is now installed.

Docker Installation

Prerequisites

Installing Docker from the following Linux OS installation guide: CentOS, Ubuntu

Installing Docker compose

Validator Registration:

If you don't know what is a validator, refer to this section. If you don't want to become a validator, please skip this section and jump to Join Mainnet

Creating Wallet:

Go to https://explorer.kardiachain.io/access-wallet and create a new Wallet with Private Key (carefully backup or store it to somewhere safe)

Requirement:

For Registration: 25000 KAI

For becoming Validator: node with at least 5M KAI

Notes: the top most 30 Validators voting power will get each block rewards for securing the network.

Registration:

Go to https://staking.kardiachain.io/my-validator and click Register to become Validator

Fill out validator information, eg Name, commission..then click Register.

Type

Description

Commission Rate

initial commission

Max Rate

max commission that Validator set

Max Change Rate

% commission that can be changed

Notes: Commission changes every three months, and Max Change Rate does not exceed current + next change. For example: Current Commission is 2%, Max Change Rate is 3%; for the next change cycle (3months) will be between 1% -5%.

Join Mainnet:

Installation Files:

Download these files from the following link to your system: docker-compose.yaml, kai-mainnet.zip, kai_config.yaml

https://github.com/kardiachain/go-kardia/tree/master/deployment/mainnet

Config File:

Use a text-editor application to edit kai_config.yaml (vim or nano…)

Name: Node Name will display on KardiaChain network. This will be different from Validator Name

PrivateKey: Your validator private key (ignore this field if not a Validator)

Compose File to Join Mainnet:

docker-compose up  -d

Check Container for Running:

docker-compose ps

Logging:

docker logs -f --tail 10 kai-mainnet-node

Notes: for the first time when joining KardiChain network, Node will be anonymous and can NOT be trusted by peer. It can ONLY syn up the database from peers until manually added into trust-list by peers. When that happens, the database can sync both ways.

Verification:

Wait for the node to sync-up with the highest block and check the status at:

https://explorer.kardiachain.io/

Go to explorer and login to your Validator Wallet: https://explorer.kardiachain.io/

Click “Start to become Validator” under Wallet Tab > Your Delegator

Or go here: https://explorer.kardiachain.io/wallet/staking/your-delegators

Notes: Sync up time will depend on the network bandwidth and the blocks height. It usually takes half day or more

Tips: To speed up to syncing data from blockchain. You can download blockchain splitted files from:

https://dl.kardiachain.io/chaindata/chaindata.taraa
https://dl.kardiachain.io/chaindata/chaindata.tarab
https://dl.kardiachain.io/chaindata/chaindata.tarac
https://dl.kardiachain.io/chaindata/chaindata.tarad
https://dl.kardiachain.io/chaindata/chaindata.tarae
https://dl.kardiachain.io/chaindata/chaindata.taraf
https://dl.kardiachain.io/chaindata/chaindata.tarag
https://dl.kardiachain.io/chaindata/chaindata.tarah
https://dl.kardiachain.io/chaindata/chaindata.tarai
https://dl.kardiachain.io/chaindata/chaindata.taraj
https://dl.kardiachain.io/chaindata/chaindata.tarak
https://dl.kardiachain.io/chaindata/chaindata.taral
https://dl.kardiachain.io/chaindata/chaindata.taram
https://dl.kardiachain.io/chaindata/chaindata.taran
https://dl.kardiachain.io/chaindata/chaindata.tarao
https://dl.kardiachain.io/chaindata/chaindata.tarap
https://dl.kardiachain.io/chaindata/chaindata.taraq
https://dl.kardiachain.io/chaindata/chaindata.tarar
https://dl.kardiachain.io/chaindata/chaindata.taras
https://dl.kardiachain.io/chaindata/chaindata.tarat
https://dl.kardiachain.io/chaindata/chaindata.tarau
https://dl.kardiachain.io/chaindata/chaindata.tarav
https://dl.kardiachain.io/chaindata/chaindata.taraw
https://dl.kardiachain.io/chaindata/chaindata.tarax
https://dl.kardiachain.io/chaindata/chaindata.taray
https://dl.kardiachain.io/chaindata/chaindata.taraz
https://dl.kardiachain.io/chaindata/chaindata.tarba
https://dl.kardiachain.io/chaindata/chaindata.tarbb
https://dl.kardiachain.io/chaindata/chaindata.tarbc
https://dl.kardiachain.io/chaindata/chaindata.tarbd
https://dl.kardiachain.io/chaindata/chaindata.tarbe
https://dl.kardiachain.io/chaindata/chaindata.tarbf
https://dl.kardiachain.io/chaindata/chaindata.tarbg
https://dl.kardiachain.io/chaindata/chaindata.tarbh
https://dl.kardiachain.io/chaindata/chaindata.tarbi
https://dl.kardiachain.io/chaindata/chaindata.tarbj
https://dl.kardiachain.io/chaindata/chaindata.tarbk
https://dl.kardiachain.io/chaindata/chaindata.tarbl
https://dl.kardiachain.io/chaindata/chaindata.tarbm
https://dl.kardiachain.io/chaindata/chaindata.tarbn
https://dl.kardiachain.io/chaindata/chaindata.tarbo
https://dl.kardiachain.io/chaindata/chaindata.tarbp
https://dl.kardiachain.io/chaindata/chaindata.tarbq
https://dl.kardiachain.io/chaindata/chaindata.tarbr
https://dl.kardiachain.io/chaindata/chaindata.tarbs
https://dl.kardiachain.io/chaindata/chaindata.tarbt
https://dl.kardiachain.io/chaindata/chaindata.tarbu
https://dl.kardiachain.io/chaindata/chaindata.tarbv
https://dl.kardiachain.io/chaindata/chaindata.tarbw
https://dl.kardiachain.io/chaindata/chaindata.tarbx
https://dl.kardiachain.io/chaindata/chaindata.tarby
https://dl.kardiachain.io/chaindata/chaindata.tarbz
https://dl.kardiachain.io/chaindata/chaindata.tarca
https://dl.kardiachain.io/chaindata/chaindata.tarcb
https://dl.kardiachain.io/chaindata/chaindata.tarcc
https://dl.kardiachain.io/chaindata/chaindata.tarcd
https://dl.kardiachain.io/chaindata/chaindata.tarce
https://dl.kardiachain.io/chaindata/chaindata.tarcf
https://dl.kardiachain.io/chaindata/chaindata.tarcg
https://dl.kardiachain.io/chaindata/chaindata.tarch
https://dl.kardiachain.io/chaindata/chaindata.tarci
https://dl.kardiachain.io/chaindata/chaindata.tarcj
https://dl.kardiachain.io/chaindata/chaindata.tarck
https://dl.kardiachain.io/chaindata/chaindata.tarcl
https://dl.kardiachain.io/chaindata/chaindata.tarcm
https://dl.kardiachain.io/chaindata/chaindata.tarcn
https://dl.kardiachain.io/chaindata/chaindata.tarco
https://dl.kardiachain.io/chaindata/chaindata.tarcp
https://dl.kardiachain.io/chaindata/chaindata.tarcq
https://dl.kardiachain.io/chaindata/chaindata.tarcr
https://dl.kardiachain.io/chaindata/chaindata.tarcs
https://dl.kardiachain.io/chaindata/chaindata.tarct
https://dl.kardiachain.io/chaindata/chaindata.tarcu
https://dl.kardiachain.io/chaindata/chaindata.tarcv
https://dl.kardiachain.io/chaindata/chaindata.tarcw
https://dl.kardiachain.io/chaindata/chaindata.tarcx
https://dl.kardiachain.io/chaindata/chaindata.tarcy
https://dl.kardiachain.io/chaindata/chaindata.tarcz
https://dl.kardiachain.io/chaindata/chaindata.tarda
https://dl.kardiachain.io/chaindata/chaindata.tardb
https://dl.kardiachain.io/chaindata/chaindata.tardc
https://dl.kardiachain.io/chaindata/chaindata.tardd
https://dl.kardiachain.io/chaindata/chaindata.tarde
https://dl.kardiachain.io/chaindata/chaindata.tardf
https://dl.kardiachain.io/chaindata/chaindata.tardg
https://dl.kardiachain.io/chaindata/chaindata.tardh
https://dl.kardiachain.io/chaindata/chaindata.tardi
https://dl.kardiachain.io/chaindata/chaindata.tardj
https://dl.kardiachain.io/chaindata/chaindata.tardk
https://dl.kardiachain.io/chaindata/chaindata.tardl
https://dl.kardiachain.io/chaindata/chaindata.tardm
https://dl.kardiachain.io/chaindata/chaindata.tardn
https://dl.kardiachain.io/chaindata/chaindata.tardo
https://dl.kardiachain.io/chaindata/chaindata.tardp
https://dl.kardiachain.io/chaindata/chaindata.tardq
https://dl.kardiachain.io/chaindata/chaindata.tardr
https://dl.kardiachain.io/chaindata/chaindata.tards
https://dl.kardiachain.io/chaindata/chaindata.tardt
https://dl.kardiachain.io/chaindata/chaindata.tardu
https://dl.kardiachain.io/chaindata/chaindata.tardv
https://dl.kardiachain.io/chaindata/chaindata.tardw
https://dl.kardiachain.io/chaindata/chaindata.tardx
https://dl.kardiachain.io/chaindata/chaindata.tardy
https://dl.kardiachain.io/chaindata/chaindata.tardz
https://dl.kardiachain.io/chaindata/chaindata.tarea
https://dl.kardiachain.io/chaindata/chaindata.tareb
https://dl.kardiachain.io/chaindata/chaindata.tarec
https://dl.kardiachain.io/chaindata/chaindata.tared
https://dl.kardiachain.io/chaindata/chaindata.taree
https://dl.kardiachain.io/chaindata/chaindata.taref
https://dl.kardiachain.io/chaindata/chaindata.tareg
https://dl.kardiachain.io/chaindata/chaindata.tareh
https://dl.kardiachain.io/chaindata/chaindata.tarei
https://dl.kardiachain.io/chaindata/chaindata.tarej
https://dl.kardiachain.io/chaindata/chaindata.tarek
https://dl.kardiachain.io/chaindata/chaindata.tarel
https://dl.kardiachain.io/chaindata/chaindata.tarem
https://dl.kardiachain.io/chaindata/chaindata.taren
https://dl.kardiachain.io/chaindata/chaindata.tareo
https://dl.kardiachain.io/chaindata/chaindata.tarep
https://dl.kardiachain.io/chaindata/chaindata.tareq
https://dl.kardiachain.io/chaindata/chaindata.tarer
https://dl.kardiachain.io/chaindata/chaindata.tares
https://dl.kardiachain.io/chaindata/chaindata.taret
https://dl.kardiachain.io/chaindata/chaindata.tareu
https://dl.kardiachain.io/chaindata/chaindata.tarev
https://dl.kardiachain.io/chaindata/chaindata.tarew
https://dl.kardiachain.io/chaindata/chaindata.tarex
https://dl.kardiachain.io/chaindata/chaindata.tarey
https://dl.kardiachain.io/chaindata/chaindata.tarez
https://dl.kardiachain.io/chaindata/chaindata.tarfa
https://dl.kardiachain.io/chaindata/chaindata.tarfb
https://dl.kardiachain.io/chaindata/chaindata.tarfc
https://dl.kardiachain.io/chaindata/chaindata.tarfd
https://dl.kardiachain.io/chaindata/chaindata.tarfe
https://dl.kardiachain.io/chaindata/chaindata.tarff
https://dl.kardiachain.io/chaindata/chaindata.tarfg
https://dl.kardiachain.io/chaindata/chaindata.tarfh
https://dl.kardiachain.io/chaindata/chaindata.tarfi
https://dl.kardiachain.io/chaindata/chaindata.tarfj
https://dl.kardiachain.io/chaindata/chaindata.tarfk
https://dl.kardiachain.io/chaindata/chaindata.tarfl
https://dl.kardiachain.io/chaindata/chaindata.tarfm
https://dl.kardiachain.io/chaindata/chaindata.tarfn
https://dl.kardiachain.io/chaindata/chaindata.tarfo
https://dl.kardiachain.io/chaindata/chaindata.tarfp
https://dl.kardiachain.io/chaindata/chaindata.tarfq
https://dl.kardiachain.io/chaindata/chaindata.tarfr
https://dl.kardiachain.io/chaindata/chaindata.tarfs
https://dl.kardiachain.io/chaindata/chaindata.tarft
https://dl.kardiachain.io/chaindata/chaindata.tarfu
https://dl.kardiachain.io/chaindata/chaindata.tarfv
https://dl.kardiachain.io/chaindata/chaindata.tarfw
https://dl.kardiachain.io/chaindata/chaindata.tarfx
https://dl.kardiachain.io/chaindata/chaindata.tarfy
https://dl.kardiachain.io/chaindata/chaindata.tarfz
https://dl.kardiachain.io/chaindata/chaindata.targa
https://dl.kardiachain.io/chaindata/chaindata.targb
https://dl.kardiachain.io/chaindata/chaindata.targc
https://dl.kardiachain.io/chaindata/chaindata.targd
https://dl.kardiachain.io/chaindata/chaindata.targe
https://dl.kardiachain.io/chaindata/chaindata.targf
https://dl.kardiachain.io/chaindata/chaindata.targg
https://dl.kardiachain.io/chaindata/chaindata.targh
https://dl.kardiachain.io/chaindata/chaindata.targi
https://dl.kardiachain.io/chaindata/chaindata.targj
https://dl.kardiachain.io/chaindata/chaindata.targk
https://dl.kardiachain.io/chaindata/chaindata.targl
https://dl.kardiachain.io/chaindata/chaindata.targm
https://dl.kardiachain.io/chaindata/chaindata.targn
https://dl.kardiachain.io/chaindata/chaindata.targo
https://dl.kardiachain.io/chaindata/chaindata.targp
https://dl.kardiachain.io/chaindata/chaindata.targq
https://dl.kardiachain.io/chaindata/chaindata.targr
https://dl.kardiachain.io/chaindata/chaindata.targs
https://dl.kardiachain.io/chaindata/chaindata.targt
https://dl.kardiachain.io/chaindata/chaindata.targu
https://dl.kardiachain.io/chaindata/chaindata.targv
https://dl.kardiachain.io/chaindata/chaindata.targw
https://dl.kardiachain.io/chaindata/chaindata.targx
https://dl.kardiachain.io/chaindata/chaindata.targy
https://dl.kardiachain.io/chaindata/chaindata.targz
https://dl.kardiachain.io/chaindata/chaindata.tarha
https://dl.kardiachain.io/chaindata/chaindata.tarhb
https://dl.kardiachain.io/chaindata/chaindata.tarhc
https://dl.kardiachain.io/chaindata/chaindata.tarhd
https://dl.kardiachain.io/chaindata/chaindata.tarhe
https://dl.kardiachain.io/chaindata/chaindata.tarhf
https://dl.kardiachain.io/chaindata/chaindata.tarhg
https://dl.kardiachain.io/chaindata/chaindata.tarhh
https://dl.kardiachain.io/chaindata/chaindata.tarhi
https://dl.kardiachain.io/chaindata/chaindata.tarhj
https://dl.kardiachain.io/chaindata/chaindata.tarhk
https://dl.kardiachain.io/chaindata/chaindata.tarhl
https://dl.kardiachain.io/chaindata/chaindata.tarhm
https://dl.kardiachain.io/chaindata/chaindata.tarhn
https://dl.kardiachain.io/chaindata/chaindata.tarho
https://dl.kardiachain.io/chaindata/chaindata.tarhp
https://dl.kardiachain.io/chaindata/chaindata.tarhq
https://dl.kardiachain.io/chaindata/chaindata.tarhr

And then combine all files

cat chaindata.tar* | tar xvf -

Notes: Validator Node is always on-line, and if it missed validating the last half of 10000 blocks, the Validator will be slashed 0.1% of the total stake amount and jailed (suspended) for 1 hour. The Validator has to manually un-jail after time expires.

DO NOT attempt to modify the source code or run more than one Validator node with the same private key. Any malicious activities will result in slashing 25% of the total staked amount.

Last updated