环境:Ubuntu18.04
离线,有线环境都需要docker,请先安装好docker
参考连接:Docker离线安装
部署的时候是离线的,因为是多机,后面使用或验证的时候需要有线
彻底离线只能单机部署
准备工作
1.提前下载build_chain.sh
下载地址:https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/build_chain.sh
2.提前下载fiscobcos的镜像
例:
docker pull fiscoorg/fiscobcos:v2.11.0
版本要选择build_chain里用到的版本
使用 docker save 命令将镜像保存为 .tar 文件,以便在离线环境中导入:
docker save -o /你的保存路径/fiscobcos.tar fiscoorg/fiscobcos:v2.11.0
3.提前下载Webase-Front的镜像
docker pull webasepro/webase-front:latest
后面部分操作与BCOS类似
BCOS
离线加载镜像
创建操作路径~/fisco
mkdir -p ~/fisco && cd ~/fisco
将提前下载好的build_chain保存到fisco目录下(或你的指定位置)
在该目录下执行:
chmod u+x build_chain.sh
在离线环境中使用 docker load 命令导入之前保存的 Docker 镜像:
docker load -i /镜像所在路径/fiscobcos.tar
执行此命令后,可以使用以下命令检查镜像是否已成功加载:
docker images
建链
这里所有区块链节点均属于agencyA,并仅启动了群组1
(注: 下面的ip信息需要根据真实的机器IP填写)
cat >> ipconf << EOF
196.168.0.1 agencyA 1
196.168.0.3 agencyA 1
196.168.0.4 agencyA 1
196.168.0.2 agencyA 1
EOF
建链脚本build_chain.sh脚本提供- d参数,支持使用docker方式部署区块链。
bash build_chain.sh -d -f ipconf -p 30300,20200,8545
至此,成功生成了多机4节点配置,每台机器的区块链节点配置均位于nodes文件夹下,如下:
$ ls nodes/
196.168.0.1 196.168.0.2 196.168.0.3 196.168.0.4 cert
生成区块链节点配置后,需要将每个节点配置拷贝到对应机器上,可通过scp命令执行拷贝,具体如下:
(注: 这里使用fisco用户进行操作; 实际操作时,可使用自己的账户进行类似操作, IP也需要替换成自己的机器IP)
ssh fisco@196.168.0.1 "mkdir -p ~/fisco"
ssh fisco@196.168.0.2 "mkdir -p ~/fisco"
ssh fisco@196.168.0.3 "mkdir -p ~/fisco"
ssh fisco@196.168.0.4 "mkdir -p ~/fisco"
拷贝节点配置
拷贝节点配置到196.168.0.1的~/fisco路径
scp -r nodes/196.168.0.1/ fisco@196.168.0.1:~/fisco/196.168.0.1
拷贝节点配置到196.168.0.2的~/fisco路径
scp -r nodes/196.168.0.2/ fisco@196.168.0.2:~/fisco/196.168.0.2
拷贝节点配置到196.168.0.3的~/fisco路径
scp -r nodes/196.168.0.3/ fisco@196.168.0.3:~/fisco/196.168.0.3
拷贝节点配置到196.168.0.4的~/fisco路径
scp -r nodes/196.168.0.4/ fisco@196.168.0.4:~/fisco/196.168.0.4
启动区块链
区块链节点配置拷贝成功后,需要启动所有节点,可通过某台机器发起ssh操作远程启动区块链节点,也可登录上所有物理机后,在对应的物理机上启动区块链节点。
bash nodes/你的ip/start_all.sh
如果有docker容器,则表示运行成功
检查区块链节点
登录每台机器,执行如下命令判断进程是否启动成功:
ps aux | grep fisco | grep -v grep
正常情况,每台机器都会有类似下面的输出;
fisco 29306 0.8 0.1 747008 31488 ? Sl 17:08 0:05 /home/ubuntu/fisco/196.168.0.1/node0/../fisco-bcos -c config.ini
若某些机器没有类似以上的输出,请检查机器的30300, 20200, 8545端口是否被占用。
登录每台机器,执行如下命令判断节点网络连接是否正常:
tail -f ~/fisco/*/node0/log/* |grep -i connected
正常情况会不停地输出连接信息,从输出可以看出该节点与其他机器节点连接正常。
info|2019-01-21 17:30:58.316769| [P2P][Service] heartBeat,connected count=3
info|2019-01-21 17:31:08.316922| [P2P][Service] heartBeat,connected count=3
info|2019-01-21 17:31:18.317105| [P2P][Service] heartBeat,connected count=3
检查区块链共识是否正常
登录每台机器,进入操作目录,执行如下命令判断节点共识是否正常:
tail -f ~/fisco/*/node0/log/* |grep -i +++
正常情况会不停输出带有++++Generating seal的日志,即表示共识正常。
info|2020-12-22 17:24:43.729402|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=2e133146...
info|2020-12-22 17:24:47.740603|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=eb199760...
若以上检查均正常,说明多机4节点区块链系统部署成功
WeBASE-Front
加载docker镜像
docker load -i /镜像所在路径/webase-front.tar
2.启动WeBASE-Front
WeBASE-Front服务通过sdk与节点建立链接,所以在运行webasepro/webase-front容器时需要对sdk文件进行挂载
docker run -d --net=host --name webase-front -v /root/fisco/nodes/你的ip/sdk:/dist/sdk webasepro/webase-front:latest
启动成功后可访问控制台
http://{deployIP}:{frontPort}/WeBASE-Front
示例:http://localhost:5002/WeBASE-Front