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 1TB of SSD, Recommended 1.5 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.

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:
1
export GOPATH=$HOME/go
2
export PATH=$PATH:$GOPATH/bin
Copied!

Get Source Code

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

Direct Installation

Prerequisites

Install libzmq

Compiling and Installing

1
cd $GOPATH/src/github.com/kardiachain/go-kardia/cmd
2
go install
3
Copied!
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 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

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:

1
docker-compose up -d
Copied!

Check Container for Running:

1
docker-compose ps
Copied!

Logging:

1
docker logs -f --tail 10 kai-mainnet-node
Copied!
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:
Go to explorer and login to your Validator Wallet: https://explorer.kardiachain.io/
Click “Start to become Validator” under Wallet Tab > Your Delegator
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:
1
https://dl.kardiachain.io/chaindata/chaindata.taraa
2
https://dl.kardiachain.io/chaindata/chaindata.tarab
3
https://dl.kardiachain.io/chaindata/chaindata.tarac
4
https://dl.kardiachain.io/chaindata/chaindata.tarad
5
https://dl.kardiachain.io/chaindata/chaindata.tarae
6
https://dl.kardiachain.io/chaindata/chaindata.taraf
7
https://dl.kardiachain.io/chaindata/chaindata.tarag
8
https://dl.kardiachain.io/chaindata/chaindata.tarah
9
https://dl.kardiachain.io/chaindata/chaindata.tarai
10
https://dl.kardiachain.io/chaindata/chaindata.taraj
11
https://dl.kardiachain.io/chaindata/chaindata.tarak
12
https://dl.kardiachain.io/chaindata/chaindata.taral
13
https://dl.kardiachain.io/chaindata/chaindata.taram
14
https://dl.kardiachain.io/chaindata/chaindata.taran
15
https://dl.kardiachain.io/chaindata/chaindata.tarao
16
https://dl.kardiachain.io/chaindata/chaindata.tarap
17
https://dl.kardiachain.io/chaindata/chaindata.taraq
18
https://dl.kardiachain.io/chaindata/chaindata.tarar
19
https://dl.kardiachain.io/chaindata/chaindata.taras
20
https://dl.kardiachain.io/chaindata/chaindata.tarat
21
https://dl.kardiachain.io/chaindata/chaindata.tarau
22
https://dl.kardiachain.io/chaindata/chaindata.tarav
23
https://dl.kardiachain.io/chaindata/chaindata.taraw
24
https://dl.kardiachain.io/chaindata/chaindata.tarax
25
https://dl.kardiachain.io/chaindata/chaindata.taray
26
https://dl.kardiachain.io/chaindata/chaindata.taraz
27
https://dl.kardiachain.io/chaindata/chaindata.tarba
28
https://dl.kardiachain.io/chaindata/chaindata.tarbb
29
https://dl.kardiachain.io/chaindata/chaindata.tarbc
30
https://dl.kardiachain.io/chaindata/chaindata.tarbd
31
https://dl.kardiachain.io/chaindata/chaindata.tarbe
32
https://dl.kardiachain.io/chaindata/chaindata.tarbf
33
https://dl.kardiachain.io/chaindata/chaindata.tarbg
34
https://dl.kardiachain.io/chaindata/chaindata.tarbh
35
https://dl.kardiachain.io/chaindata/chaindata.tarbi
36
https://dl.kardiachain.io/chaindata/chaindata.tarbj
37
https://dl.kardiachain.io/chaindata/chaindata.tarbk
38
https://dl.kardiachain.io/chaindata/chaindata.tarbl
39
https://dl.kardiachain.io/chaindata/chaindata.tarbm
40
https://dl.kardiachain.io/chaindata/chaindata.tarbn
41
https://dl.kardiachain.io/chaindata/chaindata.tarbo
42
https://dl.kardiachain.io/chaindata/chaindata.tarbp
43
https://dl.kardiachain.io/chaindata/chaindata.tarbq
44
https://dl.kardiachain.io/chaindata/chaindata.tarbr
45
https://dl.kardiachain.io/chaindata/chaindata.tarbs
46
https://dl.kardiachain.io/chaindata/chaindata.tarbt
47
https://dl.kardiachain.io/chaindata/chaindata.tarbu
48
https://dl.kardiachain.io/chaindata/chaindata.tarbv
49
https://dl.kardiachain.io/chaindata/chaindata.tarbw
50
https://dl.kardiachain.io/chaindata/chaindata.tarbx
51
https://dl.kardiachain.io/chaindata/chaindata.tarby
52
https://dl.kardiachain.io/chaindata/chaindata.tarbz
53
https://dl.kardiachain.io/chaindata/chaindata.tarca
54
https://dl.kardiachain.io/chaindata/chaindata.tarcb
55
https://dl.kardiachain.io/chaindata/chaindata.tarcc
56
https://dl.kardiachain.io/chaindata/chaindata.tarcd
57
https://dl.kardiachain.io/chaindata/chaindata.tarce
58
https://dl.kardiachain.io/chaindata/chaindata.tarcf
59
https://dl.kardiachain.io/chaindata/chaindata.tarcg
60
https://dl.kardiachain.io/chaindata/chaindata.tarch
61
https://dl.kardiachain.io/chaindata/chaindata.tarci
62
https://dl.kardiachain.io/chaindata/chaindata.tarcj
63
https://dl.kardiachain.io/chaindata/chaindata.tarck
64
https://dl.kardiachain.io/chaindata/chaindata.tarcl
65
https://dl.kardiachain.io/chaindata/chaindata.tarcm
66
https://dl.kardiachain.io/chaindata/chaindata.tarcn
67
https://dl.kardiachain.io/chaindata/chaindata.tarco
68
https://dl.kardiachain.io/chaindata/chaindata.tarcp
69
https://dl.kardiachain.io/chaindata/chaindata.tarcq
70
https://dl.kardiachain.io/chaindata/chaindata.tarcr
71
https://dl.kardiachain.io/chaindata/chaindata.tarcs
72
https://dl.kardiachain.io/chaindata/chaindata.tarct
73
https://dl.kardiachain.io/chaindata/chaindata.tarcu
74
https://dl.kardiachain.io/chaindata/chaindata.tarcv
75
https://dl.kardiachain.io/chaindata/chaindata.tarcw
76
https://dl.kardiachain.io/chaindata/chaindata.tarcx
77
https://dl.kardiachain.io/chaindata/chaindata.tarcy
78
https://dl.kardiachain.io/chaindata/chaindata.tarcz
79
https://dl.kardiachain.io/chaindata/chaindata.tarda
80
https://dl.kardiachain.io/chaindata/chaindata.tardb
81
https://dl.kardiachain.io/chaindata/chaindata.tardc
82
https://dl.kardiachain.io/chaindata/chaindata.tardd
83
https://dl.kardiachain.io/chaindata/chaindata.tarde
84
https://dl.kardiachain.io/chaindata/chaindata.tardf
85
https://dl.kardiachain.io/chaindata/chaindata.tardg
86
https://dl.kardiachain.io/chaindata/chaindata.tardh
87
https://dl.kardiachain.io/chaindata/chaindata.tardi
88
https://dl.kardiachain.io/chaindata/chaindata.tardj
89
https://dl.kardiachain.io/chaindata/chaindata.tardk
90
https://dl.kardiachain.io/chaindata/chaindata.tardl
91
https://dl.kardiachain.io/chaindata/chaindata.tardm
92
https://dl.kardiachain.io/chaindata/chaindata.tardn
93
https://dl.kardiachain.io/chaindata/chaindata.tardo
94
https://dl.kardiachain.io/chaindata/chaindata.tardp
95
https://dl.kardiachain.io/chaindata/chaindata.tardq
96
https://dl.kardiachain.io/chaindata/chaindata.tardr
97
https://dl.kardiachain.io/chaindata/chaindata.tards
98
https://dl.kardiachain.io/chaindata/chaindata.tardt
99
https://dl.kardiachain.io/chaindata/chaindata.tardu
100
https://dl.kardiachain.io/chaindata/chaindata.tardv
101
https://dl.kardiachain.io/chaindata/chaindata.tardw
102
https://dl.kardiachain.io/chaindata/chaindata.tardx
103
https://dl.kardiachain.io/chaindata/chaindata.tardy
104
https://dl.kardiachain.io/chaindata/chaindata.tardz
105
https://dl.kardiachain.io/chaindata/chaindata.tarea
106
https://dl.kardiachain.io/chaindata/chaindata.tareb
107
https://dl.kardiachain.io/chaindata/chaindata.tarec
108
https://dl.kardiachain.io/chaindata/chaindata.tared
109
https://dl.kardiachain.io/chaindata/chaindata.taree
110
https://dl.kardiachain.io/chaindata/chaindata.taref
111
https://dl.kardiachain.io/chaindata/chaindata.tareg
112
https://dl.kardiachain.io/chaindata/chaindata.tareh
113
https://dl.kardiachain.io/chaindata/chaindata.tarei
114
https://dl.kardiachain.io/chaindata/chaindata.tarej
115
https://dl.kardiachain.io/chaindata/chaindata.tarek
116
https://dl.kardiachain.io/chaindata/chaindata.tarel
117
https://dl.kardiachain.io/chaindata/chaindata.tarem
118
https://dl.kardiachain.io/chaindata/chaindata.taren
119
https://dl.kardiachain.io/chaindata/chaindata.tareo
120
https://dl.kardiachain.io/chaindata/chaindata.tarep
121
https://dl.kardiachain.io/chaindata/chaindata.tareq
Copied!
And then combine all files
1
cat chaindata.tar* | tar xvf -
Copied!
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.