从行走到奔跑 - Ubuntu编译安装Cita


#1

基础环境

操作系统 : Ubuntu 18.04.1 LTS 64bit
CPU : 2核心
内存 : 4GB
Docker版本 : 17.12.1-ce

安装过程

检查主机软件包并更新

sudo apt update #检查软件包
sudo apt upgrade #更新软件包

安装docker环境

sudo apt install -y docker.io #安装docker和依赖环境

启动docker

service docker start #启动docker

service docker status #查看docker状态 按q退出查看

service docker stop #停止docker

获取Cita源码

cd /opt #进入opt目录
git clone https://github.com/cryptape/cita.git #拉取Cita源码
cd cita #进入Cita源码目录
git submodule init #初始化分支配置文件
git submodule update #更新分支配置文件

编译Cita源码

提供两种编译模式 :Debug-调试模式 and Release-发行模式
主要区别是编译时输出的内容

./env.sh make debug #调试模式

or

./env.sh make release #发行模式

编译时间可能较长,请耐心等待; !!!(切勿在编译过程中断开终端)

创建Cita节点

进入发布件目录,使用 create_cita_config.py 工具来生成节点配置文件;也可以使用该工具进行创世块配置节点相关配置网络连接配置私钥配置 等。
参考下列指令,该工具将引导您创建4个本地节点文件:
Demo

pwd #查看当前目录
# /opt/cita/target/install #返回当前目录信息
./env.sh ./scripts/create_cita_config.py create --nodes "127.0.0.1:4000,127.0.0.1:4001,127.0.0.1:4002,127.0.0.1:4003"
#在本地创建4个节点,节点端口号分别是 4000、40001、4002、4003,如果创建5个节点即可追加 ',127.0.0.1:4004' 即可;

指令回执参考(请勿复制)

./env.sh ./scripts/create_cita_config.py create --nodes "127.0.0.1:4000,127.0.0.1:4001,127.0.0.1:4002,127.0.0.1:4003"

Start docker container cita_run_opt_cita_target_install ...
Unable to find image 'cita/cita-run:ubuntu-18.04-20180813' locally
ubuntu-18.04-20180813: Pulling from cita/cita-run
c64513b74145: Already exists 
01b8b12bad90: Already exists 
c5d85cf7a05f: Already exists 
b6b268720157: Already exists 
e12192999ff1: Already exists 
cee973dc04c8: Pull complete 
90a9aae564dd: Pull complete 
d801d1d1a2f1: Pull complete 
0339625b0f85: Pull complete 
52e4589fa059: Pull complete 
4f7007d0f817: Pull complete 
b2336b1d73a9: Pull complete 
Digest: sha256:b2252e13ae4925190f92ab831785ceda032b5fe5f05e2f6c9fc0b20d7b02b76d
Status: Downloaded newer image for cita/cita-run:ubuntu-18.04-20180813
......

成功创建4个节点文件的目录,并生成文件

  • test-chain/0
  • test-chain/1
  • test-chain/2
  • test-chain/3
pwd #查看当前目录
# /opt/cita/target/install #返回当前目录
ls -l ./test-chain #查看节点目录

指令回执参考(请勿复制)

ls -l ./test-chain/
total 20
drwxr-xr-x 2 root root 4096 Sep  6 11:25 0
drwxr-xr-x 2 root root 4096 Sep  6 11:25 1
drwxr-xr-x 2 root root 4096 Sep  6 11:25 2
drwxr-xr-x 2 root root 4096 Sep  6 11:25 3
drwxr-xr-x 4 root root 4096 Sep  6 11:24 template

初始化节点配置文件

pwd #查看当前目录
# /opt/cita/target/install #返回当前目录
./env.sh ./bin/cita setup test-chain/0 #初始化节点0
./env.sh ./bin/cita setup test-chain/1 #初始化节点1
./env.sh ./bin/cita setup test-chain/2 #初始化节点2
./env.sh ./bin/cita setup test-chain/3 #初始化节点3

指令回执参考(请勿复制)

./env.sh ./bin/cita setup test-chain/0
docker container cita_run_opt_cita_target_install is already running
setup ok!

./env.sh ./bin/cita setup test-chain/1
docker container cita_run_opt_cita_target_install is already running
setup ok!

./env.sh ./bin/cita setup test-chain/2
docker container cita_run_opt_cita_target_install is already running
setup ok!

./env.sh ./bin/cita setup test-chain/3
docker container cita_run_opt_cita_target_install is already running
setup ok!

上述指令已经成功创建一条Cita区块链,如何在主机上起第2条链?
下列指令可引导创建第2条链的节点文件,主要将目录名称进行修改,默认名称'test-chain',记得初始化节点文件哦!

./env.sh ./scripts/create_cita_config.py create --chain_name test2-chain --jsonrpc_port 2337 --ws_port 5337 --grpc_port 6000 --nodes "127.0.0.1:8000,127.0.0.1:8001,127.0.0.1:8002,127.0.0.1:8003"

启动节点

启动节点的指令有两种 ./env.sh and ./daemon.sh

./env.sh 将会把进程放在前台运行
./daemon.sh 将会把进程放在后台运行

pwd #查看当前目录
# /opt/cita/target/install #返回当前目录
./daemon.sh ./bin/cita start test-chain/0 #启动节点0
./daemon.sh ./bin/cita start test-chain/1 #启动节点1
./daemon.sh ./bin/cita start test-chain/2 #启动节点2
./daemon.sh ./bin/cita start test-chain/3 #启动节点3

指令回执参考(请勿复制)

./daemon.sh ./bin/cita start test-chain/0
docker container cita_run_opt_cita_target_install is already running

./daemon.sh ./bin/cita start test-chain/1
docker container cita_run_opt_cita_target_install is already running

./daemon.sh ./bin/cita start test-chain/2
docker container cita_run_opt_cita_target_install is already running

./daemon.sh ./bin/cita start test-chain/3
docker container cita_run_opt_cita_target_install is already running

每个节点成功启动会运行7个微服务进程,名称如下:

  • cita-forever
  • cita-network -c network.toml
  • cita-jsonrpc -c jsonrpc.toml
  • cita-auth -c auth.toml
  • cita-bft -c consensus.toml -p privkey
  • cita-chain -c chain.toml
  • cita-executor -g genesis.json -c executor.toml

使用下列指令,查看当前运行的进程

ps aux | grep -a cita- | grep -v 'grep'

指令回执参考(请勿复制)

ps aux | grep -a cita- | grep -v 'grep'
root      6752  0.0  0.6  53076 26832 ?        Sl   11:50   0:00 cita-forever
root      6760  0.1  0.7 200432 28348 ?        Sl   11:50   0:00 cita-network -c network.toml
root      6761  0.1  1.0 212348 43620 ?        Sl   11:50   0:00 cita-jsonrpc -c jsonrpc.toml
root      6764  0.3  0.9 215988 38772 ?        Sl   11:50   0:00 cita-auth -c auth.toml
root      6765  0.3  0.6 223100 28204 ?        Sl   11:50   0:00 cita-bft -c consensus.toml -p privkey
root      6766  0.0  1.0 216328 40496 ?        Sl   11:50   0:00 cita-chain -c chain.toml
root      6767  0.7  1.0 246760 40788 ?        Sl   11:50   0:01 cita-executor -g genesis.json -c executor.toml

停止节点

pwd #查看当前目录
# /opt/cita/target/install #返回当前目录
./daemon.sh ./bin/cita stop test-chain/0 #停止节点0
./daemon.sh ./bin/cita stop test-chain/1 #停止节点1
./daemon.sh ./bin/cita stop test-chain/2 #停止节点2
./daemon.sh ./bin/cita stop test-chain/3 #停止节点3

or

pwd #查看当前目录
# /opt/cita/target/install #返回当前目录
./env.sh ./bin/cita stop test-chain/0 #停止节点0
./env.sh ./bin/cita stop test-chain/1 #停止节点1
./env.sh ./bin/cita stop test-chain/2 #停止节点2
./env.sh ./bin/cita stop test-chain/3 #停止节点3