Install Endpoint Nodes
Download β
You can download the latest version of the EN on Download page.
Installationβ
Linux Archive Distribution β
The archive file consists of the executable binary and the configuration file structured as follows.
Note: Do NOT alter the file structure or file name. If you change it, the node may not function correctly.
- bin |- ken |- kend- conf |- kend.conf
File Name | File Description |
---|---|
bin/ken | EN executable file |
bin/kend | EN start/termination script file |
conf/kend.conf | EN configuration file |
The installation is the uncompression of the downloaded package where you want to install the package.
$ tar zxf ken-vX.X.X-linux-amd64.tar.gz
Or,
$ tar zxf ken-baobab-vX.X.X-linux-amd64.tar.gz
Note: it is recommended that the uncompressed directory ken-linux-amd64/bin
path should be added to the environment variable $PATH
to run the ken
and kend
globally. As an example,
$ export PATH=$PATH:~/downloaded/path/ken-linux-amd64/bin
The other sections assume that the path is added to the variable.
RPM Distribution (RHEL/CentOS/Fedora) β
You can install the downloaded RPM file with the following yum
command.
$ yum install kend-vX.X.X.el7.x86_64.rpm
Or,
$ yum install kend-baobab-vX.X.X.el7.x86_64.rpm
Install from Kaia Yum Repo β
Alternatively, you can install kend
from the Kaia Yum repo, run:
$ sudo curl -o /etc/yum.repos.d/kaia.repo https://packages.kaia.io/config/rhel/7/kaia.repo && sudo yum install kend
Installed Location β
The installed files are located as follows.
File Name | Location |
---|---|
ken | /usr/bin/ken |
kend.conf | /etc/kend/conf/kend.conf |
Configuration β
The EN configuration is to create a data directory and to set up the environment variables on the configuration file kend.conf
.
- Create the EN data directory.
- Configure the EN with
kend.conf
.
EN Data Directory Creation β
Considering the fact that the size of Kaia blockchain data keeps increasing, it is recommended to use a big enough storage. You need to create the directory on your desired path.
$ sudo mkdir -p /var/kend/data
Update the Configuration File β
Configuration File Location:
- For the archive distribution, the config directory location defaults to
$INSTALL_PATH/ken-linux-amd64/conf/
. - For the package distribution, the config directory defaults to
/etc/kend/conf/
.
Add Data Directory β
You should update the the data directory environment variable $DATA_DIR
on the configuration file kend.conf
.
DATA_DIR=/var/kend/data
(Optional) Download Chaindata Snapshotβ
Synching from the genesis block is time-consuming. You may use Chaindata Snapshot to skip the Full Sync process.
Startup the EN β
You can start or stop the Endpoint Node using the following commands.
start
$ kend startStarting kend: OK
stop
$ kend stopShutting down kend: Killed
status
$ kend statuskend is running
Testing the Installation β
It is time to check that Endpoint Node is successfully installed and it is working as expected after installation.
Process Status β
It is possible to check the status of EN's process using the status commands systemctl
and kend
.
systemctl β
systemctl
is installed along with the RPM, and the status of EN can be checked as follows.
$ systemctl status kend.serviceβ kend.service - (null) Loaded: loaded (/etc/rc.d/init.d/kend; bad; vendor preset: disabled) Active: active (running) since Wed 2019-01-09 11:42:39 UTC; 1 months 4 days ago Docs: man:systemd-sysv-generator(8) Process: 29636 ExecStart=/etc/rc.d/init.d/kend start (code=exited, status=0/SUCCESS) Main PID: 29641 (ken) CGroup: /system.slice/kend.service ββ29641 /usr/local/bin/ken --networkid 1000 --datadir /kend_home --port 32323 --srvtype fasthttp --metrics --prometheus --verbosity 3 --txpool.global...Jan 09 11:42:39 ip-10-11-2-101.ap-northeast-2.compute.internal systemd[1]: Starting (null)...Jan 09 11:42:39 ip-10-11-2-101.ap-northeast-2.compute.internal kend[29636]: Starting kend: [ OK ]Jan 09 11:42:39 ip-10-11-2-101.ap-northeast-2.compute.internal systemd[1]: Started (null).
You can check the current status such as Active: active (running)
in the example above.
kend β
kend
is installed along with the package, and the status of EN can be checked as follows.
$ kend statuskend is running
Logs β
The log is stored in kend.out
file located in the path defined in the LOG_DIR
field of the kend.conf
file. When the node works properly, you can see that each block is imported per second as follows.
Example:
$ tail kend.outINFO[02/13,07:02:24 Z] [35] Commit new mining work number=11572924 txs=0 elapsed=488.336Β΅sINFO[02/13,07:02:25 Z] [5] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=1.800ms mgasps=0.000 number=11572924 hash=f46d09β¦ffb2dc cache=1.59mBINFO[02/13,07:02:25 Z] [35] Commit new mining work number=11572925 txs=0 elapsed=460.485Β΅sINFO[02/13,07:02:25 Z] [35] π block reached canonical chain number=11572919 hash=01e889β¦524f02INFO[02/13,07:02:26 Z] [14] Committed address=0x1d4E05BB72677cB8fa576149c945b57d13F855e4 hash=1fabd3β¦af66fe number=11572925INFO[02/13,07:02:26 Z] [5] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=1.777ms mgasps=0.000 number=11572925 hash=1fabd3β¦af66fe cache=1.59mBINFO[02/13,07:02:26 Z] [35] Commit new mining work number=11572926 txs=0 elapsed=458.665Β΅sINFO[02/13,07:02:27 Z] [14] Committed address=0x1d4E05BB72677cB8fa576149c945b57d13F855e4 hash=60b9aaβ¦94f648 number=11572926INFO[02/13,07:02:27 Z] [5] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=1.783ms mgasps=0.000 number=11572926 hash=60b9aaβ¦94f648 cache=1.59mBINFO[02/13,07:02:27 Z] [35] Commit new mining work
Queries β
ken console β
Kaia provides a CLI client: ken console
. Another way of using the client is to connect to the process via IPC (inter-process communication). The IPC file klay.ipc
is located in the DATA_DIR
path on an EN.
Please execute the following command and check out the result.
$ ken attach --datadir /var/kend/dataWelcome to the Kaia JavaScript console!instance: Kaia/vX.X.X/XXXX-XXXX/goX.X.X datadir: /var/kend/data modules: admin:1.0 debug:1.0 governance:1.0 istanbul:1.0 klay:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 >
You can check the usable commands on API Document
The useful APIs to check the status of EN:
kaia.blockNumber
(to get the latest block number)net.peerCount
(to get the number of the connected Kaia nodes currently)
kaia.blockNumber β
You can get the latest block number to see if blocks are propagated properly.
> kaia.blockNumber11573819
net.peerCount β
> net.peerCount14
The above command line returns the number of nodes that the EN connects to.