部署说明

1 环境准备

依赖软件支持版本
FISCO BCOS2.5.0或以上版本
WeBASE-Front1.4.0或以上版本
JavaJDK8或以上版本
MySQL5.6或以上版本
Elasticsearch7.8.0(使用ES时部署)
elasticsearch-analysis-ik7.8.0(使用ES时部署)
Nginxnginx1.6或以上版本

2. 拉取代码

执行命令:

  1. git clone https://github.com/WeBankBlockchain/WeBASE-Data.git
  2. # 若因网络问题导致长时间下载失败,可尝试以下命令
  3. git clone https://gitee.com/WeBank/WeBASE-Data.git

3 WeBASE-Data-Collect搭建

​ WeBASE-Data-Collect为监管数据导出和分析服务,自带配置页面,支持配置多个链,并通过添加区块链前置来获取区块链数据。同时可以配置应用相关信息,合约和用户信息。

3.1 编译代码

进入目录:

  1. cd WeBASE-Data/WeBASE-Data-Collect

方式一:如果服务器已安装Gradle,且版本为gradle-4.10至gradle-6.x版本

  1. gradle build -x test

方式二:如果服务器未安装Gradle,或者版本不是gradle-4.10至gradle-6.x版本,使用gradlew编译

  1. chmod +x ./gradlew && ./gradlew build -x test

构建完成后,会在目录WeBASE-Data-Collect下生成已编译的代码目录dist。

3.2 数据库初始化

(1)新建数据库

  1. #登录MySQL:
  2. mysql -u ${your_db_account} -p${your_db_password}
  3. 例如:mysql -u root -p123456
  4. #新建数据库:
  5. CREATE DATABASE IF NOT EXISTS {your_db_name} DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  6. 例如:CREATE DATABASE IF NOT EXISTS webasedata DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

(2)修改脚本配置

进入数据库脚本目录script

  1. cd dist/script

修改数据库连接信息:

  1. 修改数据库名称:sed -i "s/webasedata/${your_db_name}/g" webase.sh
  2. 修改数据库用户名:sed -i "s/defaultAccount/${your_db_account}/g" webase.sh
  3. 修改数据库密码:sed -i "s/defaultPassword/${your_db_password}/g" webase.sh

例如:将数据库用户名修改为root,则执行:

  1. sed -i "s/defaultAccount/root/g" webase.sh

(3)运行数据库脚本

  1. bash webase.sh ${dbIP} ${dbPort}
  2. 例如:bash webase.sh 127.0.0.1 3306

3.3 配置修改

(1)回到dist目录,dist目录提供了一份配置模板conf_template:

  1. 根据配置模板生成一份实际配置conf。初次部署可直接拷贝。
  2. 例如:cp conf_template conf -r

(2)修改配置文件conf/applicationyml,主要修改数据库连接和es连接信息,完整配置项说明请查看 配置项说明(附录3.1)

  • 服务端口,默认不修改。
  • 数据库连接(数据库名需事先创建)。
  • 需要需要将交易数据存入elasticsearch的话,需要将ifEsEnable设置成true,并配置IP端口和用户名密码。不使用则不需要修改。使用elasticsearch的话,需先部署elasticsearch,再部署WeBASE-Data
  1. ...
  2. server:
  3. port: 5009
  4. servlet:
  5. context-path: /WeBASE-Data-Collect
  6. # database connection configuration
  7. spring:
  8. datasource:
  9. driver-class-name: com.mysql.cj.jdbc.Driver
  10. url: jdbc:mysql://127.0.0.1:3306/webasedata?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
  11. username: "defaultAccount"
  12. password: "defaultPassword"
  13. elasticsearch:
  14. rest:
  15. uris: 127.0.0.1:9200
  16. username: "elasticAccount"
  17. password: "elasticPassword"
  18. # constants
  19. constant:
  20. ## if use elasticsearch
  21. ifEsEnable: false
  22. ...

3.4 服务启停

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

备注:服务进程起来后,需通过日志确认是否正常启动,出现以下内容表示正常;如果服务出现异常,确认修改配置后,重启。如果提示服务进程在运行,则先执行stop.sh,再执行start.sh。

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

3.5 访问

配置页面访问:

  1. http://{deployIP}:{deployPort}/WeBASE-Data-Collect
  2. 示例:http://localhost:5009/WeBASE-Data-Collect
  • 部署服务器IP和服务端口需对应修改,网络策略需开通

3.6 查看日志

  1. 全量日志:tail -f log/WeBASE-Data-Collect.log
  2. 错误日志:tail -f log/WeBASE-Data-Collect-error.log

4 WeBASE-Data-Fetcher搭建

​ WeBASE-Data-Fetcher为监管数据查询服务,向WeBASE-Data-Web服务提供数据查询接口。

4.1 编译代码

返回WeBASE-Data目录并进入WeBASE-Data-Fetcher目录。

方式一:如果服务器已安装Gradle,且版本为gradle-4.10至gradle-6.x版本

  1. gradle build -x test

方式二:如果服务器未安装Gradle,或者版本不是gradle-4.10至gradle-6.x版本,使用gradlew编译

  1. chmod +x ./gradlew && ./gradlew build -x test

构建完成后,会在目录WeBASE-Data-Fetcher下生成已编译的代码目录dist。

4.2 配置修改

(1)dist目录,dist目录提供了一份配置模板conf_template:

  1. 根据配置模板生成一份实际配置conf。初次部署可直接拷贝。
  2. 例如:cp conf_template conf -r

(2)修改配置文件conf/applicationyml,完整配置项说明请查看 配置项说明(附录3.2)

  • 服务端口,默认不修改。
  • 数据库连接(数据库名需事先创建,需要和WeBASE-Data-Collect服务连接相同的数据库)。
  • 如果需要进行搜索,查询elasticsearch里的交易数据,需要将ifEsEnable设置成true,并配置IP端口和用户名密码。不使用则不需要修改。使用elasticsearch的话,需先部署elasticsearch,再部署WeBASE-Data
  1. # server config
  2. server:
  3. port: 5010
  4. servlet:
  5. context-path: /WeBASE-Data-Fetcher
  6. # database connection configuration
  7. spring:
  8. datasource:
  9. driver-class-name: com.mysql.cj.jdbc.Driver
  10. url: jdbc:mysql://127.0.0.1:3306/webasedata?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
  11. username: "defaultAccount"
  12. password: "defaultPassword"
  13. elasticsearch:
  14. rest:
  15. uris: 127.0.0.1:9200
  16. username: "elasticAccount"
  17. password: "elasticPassword"
  18. # constant config
  19. constant:
  20. ## if use elasticsearch
  21. ifEsEnable: false
  22. ...

4.3 服务启停

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

备注:服务进程起来后,需通过日志确认是否正常启动,出现以下内容表示正常;如果服务出现异常,确认修改配置后,重启。如果提示服务进程在运行,则先执行stop.sh,再执行start.sh。

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

4.4 访问

没有单独页面,可以通过swagger查看调用接口:

  1. http://{deployIP}:{deployPort}/WeBASE-Data-Fetcher/swagger-ui.html
  2. 示例:http://localhost:5010/WeBASE-Data-Fetcher/swagger-ui.html
  • 部署服务器IP和服务端口需对应修改,网络策略需开通

4.5 查看日志

  1. 全量日志:tail -f log/WeBASE-Data-Fetcher.log
  2. 错误日志:tail -f log/WeBASE-Data-Fetcher-error.log

5 WeBASE-Data-Web搭建

​ WeBASE-Data-Web为数据监管平台,提供数据浏览页面。

5.1 进入目录

返回WeBASE-Data目录并进入WeBASE-Data-Web目录。

  1. cd WeBASE-Data-Web

5.2 配置修改

​ 在docs目录下有配置文件nginx.conf,修改完后替换安装的nginx的配置文件nginx.conf(这里nginx安装配置文件在/usr/local/nginx/conf下面,如果这里没找到,可以到/etc下寻找,如有权限问题,请加上sudo)。

  • 修改配置:
  1. # 修改服务器ip,也可以使用域名
  2. sed -i "s%127.0.0.1%${your_ip}%g" docs/nginx.conf
  3. # 修改WeBASE-Data-Web服务端口(端口需要开通策略且不能被占用)
  4. sed -i "s%5200%${your_port}%g" docs/nginx.conf
  5. # 修改静态文件路径(文件需要有权限访问)
  6. sed -i "s%/data/WeBASE-Data-Web/dist%${your_file_dir}%g" docs/nginx.conf
  7. # WeBASE-Data-Fetcher服务ip和端口
  8. sed -i "s%10.0.0.1:5010%${your_fetcher}%g" docs/nginx.conf
  • 复制配置文件nginx.conf
  1. cp -rf docs/nginx.conf /usr/local/nginx/conf

备注: 如果服务器已有nginx,可在原配置文件nginx.conf增加一个server:

  1. upstream data_server{
  2. server 10.0.0.1:5010; # WeBASE-Data-Fetcher服务ip和端口
  3. }
  4. server {
  5. listen 5200 default_server; # 前端端口(端口需要开通策略且不能被占用)
  6. server_name 127.0.0.1; # 服务器ip,也可配置为域名
  7. location / {
  8. root /WeBASE-Data/WeBASE-Data-Web/dist; # 前端文件路径(对应修改文件需要有权限访问)
  9. index index.html index.htm;
  10. try_files $uri $uri/ /index.html =404;
  11. }
  12. include /etc/nginx/default.d/*.conf;
  13. location /mgr {
  14. proxy_pass http://data_server/;
  15. proxy_set_header Host $host;
  16. proxy_set_header X-Real-IP $remote_addr;
  17. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  18. }
  19. }

5.3 启动nginx

启动命令:

  1. /usr/local/nginx/sbin/nginx # nginx在/usr/local目录下

检查nginx是否启动:

  1. ps -ef | grep nginx

5.4 访问

  1. http://{deployIP}:{webPort}
  2. 示例:http://127.0.0.1:5200
  • 部署服务器IP和服务端口需对应修改,网络策略需开通

5.5 查看日志

  1. 进程日志:tail -f logs/access.log
  2. 错误日志:tail -f logs/eror.log