独立部署

提示

  • 由于 Docker 的网络限制,使用独立部署 Truora 服务时,仅支持 Linux 操作系统!!

重要

  • 使用独立部署功能的用户,需要对 MySQL 和 FISCO-BCOS sdk 证书有一定了解。

安装介绍

独立部署是基于 DockerDocker-ComposeBash Shell 封装的一个部署工具,提供一键部署 Truora 服务,并连接到已有 FISCO-BCOS 链。

适合以下场景:

  • 已有 FISCO-BCOS 底层节点

使用独立部署工具,部署 Truora 服务时,会部署 Truora-Service 和 Truora-Web 服务,此外,可以选择是否部署一个 MySQL 服务。

重要

  • 使用独立部署时,Truora-Service 需要链接到 FISCO-BCOS 节点。需要手动提供链接节点的 sdk 相关文件。
  • 使用独立部署时,如果选择 不部署 MySQL,在部署时,需要提供 MySQL 的链接信息,包括:IP,端口,用户名和密码。

部署的服务包括:

  • Truora-Web
  • Truora-Service
  • MySQL(可选

前置要求

系统要求

操作系统版本最低要求
CentOS/RHEL7.3(kernel >= 3.10.0-514)
DebianStretch 9
UbuntuXenial 16.04 (LTS)

硬件配置

配置最低配置推荐配置
CPU1.5 GHz2.4 GHz
内存4 GB8 GB
核心2 核4 核
带宽1 Mb10 Mb

脚本说明

Truora 独立部署工具特性:

  • 提供自动安装依赖服务功能,包括:OpenSSL, curl, wget, Docker, Docker Compose
  • 部署 Truora-Service, Truora-Web 服务
  • 部署 MySQL 服务(可选)
  • 支持国密选项

关于脚本详细参数列表,请参考:脚本参数

获取部署脚本

部署脚本的获取方式包括:

  • 下载部署包(推荐使用
  • Github 仓库拉取源码
  1. ## 从 GitHub 下载最新部署包
  2. wget "https://github.com/WeBankBlockchain/Truora-Service/releases/download/v1.0.0/docker-deploy.zip"
  3. ## 解压部署包
  4. unzip docker-deploy.zip

如果需要下载指定版本,在 版本列表中 选择相应版本下载。

提示

  • 由于网络原因,如果遇到打不开 Github 页面,或者无法从 GitHub 下载,可以从 CDN 下载。关于 CDN 说明,请参考:CDN – 部署工具包

如果需要从代码仓库,拉取部署包源码,请参考:部署工具源码

部署

执行部署脚本

  • 进入部署脚本(deploy_single.sh)所在目录,执行命令:
  1. # 自动安装依赖服务,默认从 CDN 拉取 Docker 镜像
  2. # Docker Hub 官方仓库拉取镜像时,不仅速度比较慢,同时成功率也相对较低
  3. #
  4. # -d : 自动安装系统依赖
  5. # -g : 使用国密
  6. # -m : 部署 MySQL 服务
  7. # -k : 从 Docker Hub 官方仓库拉取 Docker 镜像
  8. bash deploy_single.sh -d

关于脚本详细参数列表,请参考:脚本参数

重要

  • 如果使用 -g 参数部署 Truora 国密版本时,需要确保 链类型:国密连接类型:国密。关于链类型,国密类型,请参考:加密类型

配置证书目录

重要

  • 部署脚本 不会检查 SDK 文件和需要连接的链是否匹配,只会检查必须的证书文件是否存在。

非国密 Truora(ECDSA)

提示输入 SDK 目录(目录需要存在对应链的 ca.crtnode.crtnode.key 文件),输入目录后,按 回车 确认:

  1. .......
  2. ============================================================================================
  3. [INFO] Deploy services ...
  4. [INFO] Enter certifications info.
  5. [INFO] Enter sdk path:
  6. # 提示输入 SDK 目录,回车确认
  7. e.g:[ /root/webank/deploy/deploy/fiscobcos/nodes/127.0.0.1/sdk ]:
  8. .......

脚本会自动检测输入的 SDK 目录中是否存在 ca.crtnode.crtnode.key 文件。

国密 Truora(SM2)

提示输入 gm SDK 目录(目录需要存在对应链的 gmca.crtgmensdk.crtgmensdk.keygmsdk.crtgmsdk.key 文件),输入目录后,按 回车 确认:

  1. ============================================================================================
  2. [INFO] Deploy services ...
  3. [INFO] Enter certifications info.
  4. [INFO] Enter sdk path:
  5. # 提示输入 gm SDK 目录,回车确认
  6. e.g:[ /root/webank/deploy/deploy/fiscobcos/nodes/127.0.0.1/sdk/gm ]:
  7. .......

脚本会自动检测输入的 gm SDK 目录中,是否存在 gmca.crtgmensdk.crtgmensdk.keygmsdk.crtgmsdk.key 文件。

配置 MySQL

如果未使用 -m 参数,会提示输入 MySQL 的连接信息。直接 回车 使用默认值:

  1. .......
  2. [INFO] User external MySQL.
  3. Enter MySQL IP, default: 127.0.0.1 ? 127.0.0.1
  4. Enter MySQL port, default: 3306 ?
  5. Enter MySQL user, default: truora ?
  6. Enter MySQL password, default: defaultPassword ? user
  7. .......

在 MySQL 中创建一个 truora 数据库,供 Truora-Service 服务使用。

  1. # 连接 MySQL
  2. mysql -u root -p
  3. # 创建 truora 数据库
  4. CREATE DATABASE `truora` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

配置节点连接

修改 FISCO-BCOS 节点连接信息,编辑 truora/docker-compose.yml 文件:

  1. .....
  2. # FISCO-BCOS 节点 IP,默认:127.0.0.1
  3. - "FISCO_BCOS_IP=127.0.0.1"
  4. # FISCO-BCOS 节点端口,默认:20200
  5. - "FISCO_BCOS_PORT=20200"
  6. # FISCO-BCOS 连接群组,默认:1
  7. - "FISCO_BCOS_GROUP=1"
  8. .....

多链配置

使用独立部署的 Truora 服务,支持同时连接多链,以及一条链的多个群组。

挂载证书

在添加多链时,需要先将新链的证书目录挂载到 Docker 容器中。

在部署时生成的挂载文件,根据加密方式不同,生成的 Docker Compose 文件不同:

  1. # 非国密 Truora(ECDSA)
  2. truora/deploy/docker-compose-ecdsa.yml
  3. # 国密 Truora(SM2)
  4. truora/deploy/docker-compose-sm2.yml

修改对应的 truora/deploy/docker-compose-xxxx.yml 文件

  1. version: '3.7'
  2. services:
  3. truora-server:
  4. volumes:
  5. .......
  6. .......
  7. #- /sdk_path_of_chain_2/:/dist/conf/cert/2

volumes 配置中添加一行。

冒号 : 前表示新链的证书目录。

冒号 : 后表示 容器中的证书路径,Truora-Service 服务启动时,会从容器中的此目录加载证书。

修改连接配置

在部署时生成的连接配置文件,根据加密方式不同,生成的 连接配置 文件不同:

  1. # 非国密 Truora(ECDSA)
  2. truora/deploy/truora-ecdsa.yml
  3. # 国密 Truora(SM2)
  4. truora/deploy/truora-sm2.yml

修改对应的 truora/deploy/truora-xxxx.yml 文件。

注意: 在添加新链的证书配置时,classpath 冒号 : 的路径是 容器中的证书路径 相对 /dist/conf 的相对路径。

  1. # 配置连接
  2. group-channel-connections-configs:
  3. configs:
  4. ........
  5. ........
  6. ## 第二条链的连接信息,证书,群组列表以及对应的 IP:Port
  7. - chainId: 2
  8. caCert: classpath:cert/2/ca.crt
  9. sslCert: classpath:cert/2/node.crt
  10. sslKey: classpath:cert/2/node.key
  11. all-channel-connections:
  12. - group-id: 1
  13. connections-str:
  14. - 127.0.0.1:20200
  15. # 启用新链和群组
  16. event:
  17. eventRegisters:
  18. ........
  19. ........
  20. - {chainId: 2, group: 1}
  21. #- {chainId: 2, group: 2}

详细配置修改,请参考:修改配置

提示

  • truora.yml 配置文件中的 ${TRUORA_SERVICE_PORT:5021} 表示 Truora-Service 在启动时,会优先从系统环境变量中读取 TRUORA_SERVICE_PORT 的值。如果 TRUORA_SERVICE_PORT 环境变量 没有设置 或者 值为空,则使用默认值 5021。

服务启停

如果一键部署脚本 deploy_all.sh 执行成功后显示 Deploy Truora service SUCCESS!! ,表示部署成功。

  • 使用 bash start.sh 启动 Truora 服务。
  • 使用 bash stop.sh 停止服务。

在启动时,脚本会依次启动服务,并检测服务启动结果。

如果提示 Truora service start up SUCCESS !!,表示 Truora 服务启动成功。

如果启动失败,根据命令行的提示,检查启动失败服务的日志。关于查看服务的日志,请参考:日志查看

访问服务

Truora 服务启动成功后,打开浏览器,输入 http://[IP]:5020,比如:http://127.0.0.1:5020,访问 Truora-Web 服务,请参考:Truora-Web 服务介绍

提示

  • 注意替换服务器的 IP 地址

关于 Truora 服务的 开发教程,请参考:Truora 开发教程