进阶:多机分步部署
多机部署适用于生产环境/多机测试环境
案例: A, B, C, D 四台主机 (各个主机自动时间同步)
A: 172.25.1.13
B: 172.25.1.14
C: 172.25.1.15
D: 172.25.1.16
1. 准备工作
将 linux 目录,分发到 B、C、D 主机。
scp -r Venachain/release user@172.25.1.14:~/
scp -r Venachain/release user@172.25.1.15:~/
scp -r Venachain/release user@172.25.1.16:~/
2. 在 A 主机搭建单节点区块链
参照 《进阶:单机分步部署》,在节点 A 上搭建单节点区块链,然后将 genesis.json 文件广播出来给其他节点,放置于 linux/conf 目录下。
scp -r genesis.json user@172.25.1.14:${WORKSPACE}/linux/conf
scp -r genesis.json user@172.25.1.15:${WORKSPACE}/linux/conf
scp -r genesis.json user@172.25.1.16:${WORKSPACE}/linux/conf
注解
下述 3、4 步骤需要在节点部署的机器上,也就是分别在 B、C、D 主机上执行
3. 在 B、C、D 生成创世区块及节点信息
以 B 为例:
cd ${WORKSPACE}/scripts
./venachainctl.sh init -n 1 --ip 172.25.1.14 --rpc_port 6791 --p2p_port 16791 --ws_port 26791 --auto true
此步骤会根据 genesis.json 文件生成创世区块,以及节点的连接信息(IP端口、节点密钥)
将节点的 node.pubkey 和 deploy conf 发送至 A 主机的相应目录。(若A主机不存在 data/node-1 目录,则创建该目录,以存放节点信息)
cd ${WORKSPACE}/linux/data/node-1
scp node.pubkey user@172.25.1.13:${WORKSPACE}/data/node-1
scp deploy_node-1.conf user@172.25.1.13:${WORKSPACE}/data/node-1
4. B、C、D 主机启动节点
以 B 节点为例
./venachainctl.sh start -n 1
B 节点启动后会主动连接A节点,加入网络,成为观察者节点。
注解
下述 5、6 步骤需要在 firstnode 部署的机器上,也就是 A 主机上执行
5. A 主机管理员添加 B、C、D 节点至系统合约
以添加 B 节点为例:
此时 A 主机的 data/node-1 目录必须有B节点的 node.pubkey 和 deploy conf
在A主机上将 B 主机上的节点加入到当前区块链
./venachainctl.sh addnode -n 1
本步骤会在系统合约中写入了B节点信息,B节点成为观察者节点(可以同步交易及数据,但是不参与共识出块)
6. A 主机管理员将 B、C、D 升级为共识节点
根据业务需求,可以将观察者节点升级为共识节点。
此时 A 主机的 data/node-1 目录必须有B节点的 node.pubkey 和 deploy conf
以添加 B 节点为例,在A主机上由 A 节点的管理员操作如下命令,即可将 B 节点升级为共识节点:
./venachainctl.sh updatesys -n 1