在区块链应用开发阶段建议用户使用快速入门搭建。在快速入门搭建模式,开发者只需要搭建节点和节点前置服务(WeBASE-Front),就可通过WeBASE-Front的合约编辑器进行合约的编辑,编译,部署,调试。

本文假定已经在本机上安装了FiscoBcos的联盟链节点。

节点前置服务搭建

前提条件

依赖软件 支持版本
Java Oracle JDK 8 至JDK 14

下载安装包

1
2
3
4
5
6
wget https://github.com/WeBankBlockchain/WeBASELargeFiles/releases/download/v1.5.5/webase-front.zip

# 网络访问失败,则可以尝试直接git clone WeBASE-Front的仓库,构建方法可参考节点前置部署文档
git clone https://github.com/WeBankBlockchain/WeBASE-Front.git
# 若因网络问题导致长时间下载失败,可尝试以下命令
git clone https://gitee.com/WeBank/WeBASE-Front.git

解压

1
2
unzip webase-front.zip
cd webase-front

拷贝sdk证书文件(build_chain的时候生成的)

将节点所在目录nodes/${ip}/sdk下的所有文件拷贝到当前conf目录,供SDK与节点建立连接时使用(SDK会自动判断是否为国密,且是否使用国密SSL)

  • 链的sdk目录包含了ca.crt, sdk.crt, sdk.keygm文件夹,gm文件夹包含了国密SSL所需的证书
  • 拷贝命令可使用cp -r nodes/${ip}/sdk/* ./conf/
  • 注,只有在建链时手动指定了-G(大写)时节点才会使用国密SSL

服务启停

服务启停命令:

1
2
3
4
5
6
# 启动:
bash start.sh
# 停止:
bash stop.sh
# 检查:
bash status.sh

启动成功将出现如下日志:

1
2
...
Application() - main run success...

状态检查

成功部署后,可以根据以下步骤确认各个子服务是否启动成功

1. 检查各子系统进程

通过ps命令,检查节点与节点前置的进程是否存在

  • 包含:节点进程nodeXX,节点前置进程webase.front

检查节点进程

1
$ ps -ef | grep node

输出如下,此处部署了两个节点node0, node1

1
2
root     29977     1  1 17:24 pts/2    00:02:20 /root/fisco/webase/webase-deploy/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
root 29979 1 1 17:24 pts/2 00:02:23 /root/fisco/webase/webase-deploy/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini

检查节点前置webase-front的进程

1
$ ps -ef | grep webase.front

输出如下

1
root     31805     1  0 17:24 pts/2    00:01:30 /usr/local/jdk/bin/java -Djdk.tls.namedGroups=secp256k1 ... conf/:apps/*:lib/* com.webank.webase.front.Application

检查进程端口

通过netstat命令,检查节点与节点前置的端口监听情况

检查方法如下,若无输出,则代表进程端口监听异常,需要到webase-front/log中查看日志的错误信息,并根据错误提示或根据WeBASE-Front常见问题进行错误排查

检查节点channel端口(默认为20200)是否已监听

1
$ netstat -anlp | grep 20200

输出如下

1
tcp        0      0 0.0.0.0:20200           0.0.0.0:*               LISTEN      29069/fisco-bcos

检查webase-front端口(默认为5002)是否已监听

1
$ netstat -anlp | grep 5002

访问

访问 http://{deployIP}:{frontPort}/WeBASE-Front,示例:

1
http://localhost:5002/WeBASE-Front

开启局域网访问

修改 web-front/conf/application.yml

将sdk下面的ip改成:0.0.0.0 (默认是127.0.0.1),这样就可以通过物理IP访问服务了。

1
2
3
4
5
6
7
8
sdk:
corePoolSize: 50
maxPoolSize: 100
queueCapacity: 100
ip: 0.0.0.0
channelPort: 20200
certPath: conf # cert path of relative or absolute

然后重启服务,关闭CentOS的防火墙或者开放5002端口,之后就可以在另一台计算机上通过IP和端口号访问服务了。

CentOS 默认防火墙会阻止外部访问,需要开放 5002 端口:

1
2
3
4
5
6
# 临时开放5002端口(立即生效,重启后失效)
sudo firewall-cmd --add-port=5002/tcp

# 永久开放5002端口(需要重启防火墙)
sudo firewall-cmd --add-port=5002/tcp --permanent
sudo systemctl restart firewalld