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
后续上传各节点安装包,到指定的服务器上,部署解压后使用。
如果需要配置自拉起方式启动,请参考:【自拉起服务】