部署操作

开发工具 和 WeBASE-Docker 部署详细操作

开发工具部署和WeBASE-Docker 部署主要依赖 build_chain.sh 脚本来生成节点的配置文件,区别仅仅是启动时使用的命令不一致。

  • 开发工具部署
    • 使用 bash start.sh 启动节点
  • WeBASE-Docker 部署
    • 使用 docker run 命令,通过 -v 参数,挂载配置文件的方式启动一个容器的方式启动节点

提示

  • build_chain.sh 脚本同样可以部署生产环境,但是这种部署方式仅仅支持 企业环境部署 中的 单机构部署操作
  • 如果使用了 WeBASE-Docker 方式部署,启动的容器已经自带了 WeBASE-Front 应用,可以 直接使用 WeBASE-Front 方式验证
  • 具体的部署流程:

    # 创建目录
    cd ~ && mkdir -p fisco && cd fisco
    # 下载一键脚本
    curl -LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/build_chain.sh
    # 脚本添加可执行权限
    chmod u+x build_chain.sh
    
    • 配置机构和群组关系
    # 生成区块链配置文件ipconf,agency开头表示不同的机构, 1,2,3 表示群组的 id
    $ cat > ipconf << EOF
    172.16.1.101:1 agencyA 1,2,3
    172.16.1.102:1 agencyB 1,2,3
    172.16.1.103:1 agencyC 1
    172.16.1.104:1 agencyD 1
    172.16.1.105:1 agencyD 2
    172.16.1.106:1 agencyD 2
    172.16.1.107:1 agencyD 3
    172.16.1.108:1 agencyD 3
    EOF
    
    # 查看配置文件ip_list内容
    $ cat ipconf
    # 空格分隔的参数分别表示如下含义:
    # ip:num: 物理机IP以及物理机上的节点数目
    # agency_name: 机构名称
    # group_list: 节点所属的群组列表,不同群组以逗号分隔
    172.16.1.101:1 agencyA 1,2,3
    172.16.1.102:1 agencyB 1,2,3
    172.16.1.103:1 agencyC 1
    172.16.1.104:1 agencyD 1
    172.16.1.105:1 agencyD 2
    172.16.1.106:1 agencyD 2
    172.16.1.107:1 agencyD 3
    172.16.1.108:1 agencyD 3
    
    • 使用 build_chain.sh 脚本生成区块链节点配置文件夹
    # 根据配置生成节点配置, 需要保证每台主机的30300~30301,20200~20201,8545~8546端口没有被占用
    # -g : 表示使用国密版本,默认使用标密。
    bash build_chain.sh -f ipconf -p 30300,20200,8545
    
    • 是否编译源码
      • 使用 WeBASE-Docker 方式部署时,可执行程序已经包含在镜像中,不能使用自编译可执行文件进行替换
      • 如果需要使用带有调试信息的可执行程序,可以通过源码编译可执行程序,然后替换掉 nodes/172.16.1.10X/fisco-bcos文件即可。请参考:源码编译
    • 备份
      • 部署工具生成的所有文件中,除了 nodes/172.16.1.10X/fisco-bcos 可执行程序文件不用备份,备份其余的所有文件。
    [root@host fisco]# ls -alh nodes/172.16.1.101/fisco-bcos
    -rwxr-xr-x 1 root root 23M Apr 30 10:04 nodes/172.16.1.101/fisco-bcos
    
    • 拷贝生成的配置文件到相应的物理主机
      • 如果是云主机,强烈建议将该文件夹存放在云磁盘中,而不是主机磁盘。防止因意外导致主机被销毁时,主机磁盘顺带被销毁,导致配置文件和数据丢失。
    # 根据 IP 拷贝相应的文件夹到相应的主机
    [root@host fisco]# tree -L 1 nodes/
    nodes/
    ├── 172.16.1.101    # 拷贝该文件夹到 172.16.1.101 的主机
    ├── 172.16.1.102    # 拷贝该文件夹到 172.16.1.102 的主机
    ........
    
    • 登录每台物理主机,执行启动脚本,启动节点
      • 使用 build_chain.sh 部署,执行 bash start.sh 脚本
      • 使用 WeBASE-Docker,安装下面的格式,执行 docker run 命令
    # 假设拷贝到的目录是  /opt/fisco
    scp -r nodes/172.16.1.101/* root@172.16.1.101:/opt/fisco
    ........
    ........
    # 查看拷贝后的文件
    [root@host fisco]# ls -alh /opt/fisco/
    total 21M
    drwxr-xr-x  4 root root 4.0K Apr 30 16:21 .
    drwxr-xr-x. 3 root root 4.0K Apr 30 14:48 ..
    -rwxr-xr-x  1 root root  890 Apr 30 16:21 download_console.sh
    -rwxr-xr-x  1 root root  21M Apr 30 16:21 fisco-bcos
    drwxr-xr-x  4 root root 4.0K Apr 30 16:21 node0
    drwxr-xr-x  2 root root 4.0K Apr 30 16:21 sdk
    -rwxr-xr-x  1 root root  529 Apr 30 16:21 start_all.sh
    -rwxr-xr-x  1 root root  516 Apr 30 16:21 stop_all.sh
    
    
    #### 脚本启动
    # 在 172.16.1.101 主机上,使用脚本调用命令行
    cd /opt/fisco/ && bash start_all.sh
    
    #### WeBASE-Docker 启动
    # 在 172.16.1.101 主机上,使用 Docker 方式启动,只支持国密版本
    # 1. 移动 sdk 目录,Docker 容器中的 WeBASE-Front 启动时需要使用
    cd /opt/fisco/ && mv -fv sdk node0/
    # 2. 启动容器,根据自己的需求修改镜像的 tag
    cd /opt/fisco/ && docker run -d -v /opt/fisco/node0:/data -v /opt/fisco/frontlog:/dist/log --network=host -w=/data fiscoorg/front:bsn-0.2.0-gm
    

    相关的参考文档: