离线方式部署CITA V0.18


#1

一、环境说明

  • 部分传统企业服务器无法连接互联网,可以使用离线的方式部署cita;
  • 操作系统: Ubuntu 16.04
  • Cita版本:0.18
  • Docker: 17.09.1
  • 服务器IP:192.168.2.108

二、离线安装docker

本文提供一个制作好的docker-17.09.1-ubuntu-16.04.tar.gz安装包
docker安装包下载
上传 docker-17.09.1-ubuntu-16.04.tar.gz 到服务器/opt目录

cd /opt
tar zxvf docker-17.09.1-ubuntu-16.04.tar.gz 
cd docker-17.09.1-ubuntu-16.04/
sh install.sh

###有以下内容输出说明安装成功
Get:1 file:/var/lib/apt docker/ docker-ce 17.09.1~ce-0~ubuntu [21.0 MB]
Selecting previously unselected package docker-ce.
(Reading database ... 180451 files and directories currently installed.)
Preparing to unpack .../docker-ce_17.09.1~ce-0~ubuntu_amd64.deb ...
Unpacking docker-ce (17.09.1~ce-0~ubuntu) ...
Processing triggers for systemd (229-4ubuntu19) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up docker-ce (17.09.1~ce-0~ubuntu) ...
Processing triggers for systemd (229-4ubuntu19) ...
Processing triggers for ureadahead (0.100.0-19) ...

#查看版本
root@cita-VirtualBox:/opt/docker-17.09.1-ubuntu-16.04# docker --version
Docker version 17.09.1-ce, build 19e2cf6

三、导出CITA运行的docker image

  • 说明:导出cita运行docker image需要在有网的环境事先准备
#在github上下载V0.18版本二进制文件
wget https://github.com/cryptape/cita/releases/download/v0.18/cita_secp256k1_sha3.tar.gz

tar zxvf cita_secp256k1_sha3.tar.gz
cd cita_secp256k1_sha3
#查看运行依赖的docker image
cat env.sh    
#!/usr/bin/env bash

DOCKER_IMAGE="cita/cita-run:ubuntu-18.04-20180813"

#获取image
docker pull cita/cita-run:ubuntu-18.04-20180813
#查看IMAGE ID
docker images

# 导出image 为 docker-cita-0813.tar.gz
docker save 958fa3d7c15c > ./docker-cita-0813.tar.gz
sz docker-cita-0813.tar.gz

四、导入CITA运行的docker image

cd /opt/
#上传本地的docker-cita-0813.tar.gz文件 使用rz 或者ftp
#导入image
docker load --input docker-cita-0813.tar.gz 
# 手动打tag
docker tag 958fa3d7c15c cita/cita-run:ubuntu-18.04-20180813   

五、部署CITA

#上传cita_secp256k1_sha3.tar.gz到/opt
cd /opt/
tar zxvf cita_secp256k1_sha3.tar.gz
cd cita_secp256k1_sha3
./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" --contract_arguments "SysConfig.economicalModel=1"

./env.sh ./bin/cita setup test-chain/0
./daemon.sh ./bin/cita start test-chain/0

./env.sh ./bin/cita setup test-chain/1
./daemon.sh ./bin/cita start test-chain/1

./env.sh ./bin/cita setup test-chain/2
./daemon.sh ./bin/cita start test-chain/2

./env.sh ./bin/cita setup test-chain/3
./daemon.sh ./bin/cita start test-chain/3

#查看块高度
curl -s -X POST --data '{"jsonrpc":"2.0","method":"blockNumber","params":[],"id":83}' 192.168.2.108:1337 |awk -F: '{print $4}' |awk -F "\"" '{print $2}' |xargs printf %d

至此已在离线的环境下成功的运行cita链,大功告成~~