12. 多机部署

12.1. 概述

【通过命令行工具启动链】中,使用的prepare.sh脚本,生成的多节点的配置,默认使用本地回环地址(127.0.0.1)和自动生成的端口号,如果需要在生产环境不同的服务器上部署或使用固定的端口号,需要在使用prepare.sh生成配置文件和证书之后修改生成好的配置文件,再执行build_release.sh脚本打包。具体步骤如下。

12.2. 操作步骤

12.2.1. 执行prepare.sh脚本生成配置文件及证书

$ ./prepare.sh 4 1
begin check params...
begin generate certs, cnt: 4
input consensus type (0-SOLO,1-TBFT(default),3-HOTSTUFF,4-RAFT,5-DPOS):
input log level (DEBUG|INFO(default)|WARN|ERROR):
begin generate node1 config...
begin generate node2 config...
begin generate node3 config...
begin generate node4 config...

12.2.2. 配置指定端口

配置文件路径:chainmaker-go/build/config/nodeN/chainmaker.yml (N为从1开始的递增值)

使用prepare.sh脚本会自动生成端口号,如果实际环境需要固定端口,可以通过修改下面的配置,将{xxx}修改为指定的端口,后续执行脚本时,就不会进行端口的修改。

rpc: 
  port: {rpc_port}

net: 
  listen_addr: /ip4/0.0.0.0/tcp/{net_port}

monitor:
  port: {monitor_port}
     
pprof:
  port: {pprof_port}

12.2.3. 配置指定IP

配置文件路径:chainmaker-go/build/config/nodeN/chainmaker.yml (N为从1开始的递增值)

使用prepare.sh脚本会自动将所有共识节点的地址都会添加至net.seeds中,需要将127.0.0.1修改为集群各个节点实际所在机器的IP地址,需要将113XX修改为集群各个节点实际监听端口,监听端口与上一步中{net_port}一致。

net:
  seeds:
    - "/ip4/127.0.0.1/tcp/11301/p2p/QmQ3sHDwwcacnDdRzQpk7N3Bgeju4NPuTGkVYmrk99sQw8"
    - "/ip4/127.0.0.1/tcp/11302/p2p/QmXvhGFjSA6XqifZvsiHRNuDo9LEPWhqq36BSyqZMdmtuq"
    - "/ip4/127.0.0.1/tcp/11303/p2p/QmeDWYtVkSiR8DUq6NfrsVEYGzh8zMSUjro3VnbTagg3nX"
    - "/ip4/127.0.0.1/tcp/11304/p2p/QmakPkAJYPQdMtmW88iuz8XtBcAfJbiB8U7E673q4ribCt"

12.2.4. 生成节点安装包

$ ./build_release.sh 

$ tree ../build/release/
../build/release/
├── chainmaker-v2.0.0-wx-org1.chainmaker.org-20210407153351-x86_64.tar.gz
├── chainmaker-v2.0.0-wx-org2.chainmaker.org-20210407153351-x86_64.tar.gz
├── chainmaker-v2.0.0-wx-org3.chainmaker.org-20210407153351-x86_64.tar.gz
├── chainmaker-v2.0.0-wx-org4.chainmaker.org-20210407153351-x86_64.tar.gz
└── crypto-config-20210407153351.tar.gz

后续上传各节点安装包,到指定的服务器上,部署解压后使用。

如果需要配置自拉起方式启动,请参考:【自拉起服务】