以PBFT模式部署需要至少4个peer。配置4台相互连通的物理机,
1. 首先编写vp0的docker-compose.yml
2.
其中CORE_PEER_PKI_ECA_PADDR、CORE_PEER_PKI_TCA_PADDR、CORE_PEER_PKI_TLSCA_PADDR三个参数的IP为容器的IP;CORE_SECURITY_ENROLLID、CORE_SECURITY_ENROLLSECRET表示用户名和密码,可去源码的中fabric->membersrvc.yaml文件中有设置;CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN表示设置共识方式;CORE_PBFT_GENERAL_N表示配置的节点数;
Ports,表示设置了主机跟容器的端口映射,如上述代码中暴露了端口7050、7051、7052、7053端口;
假如是在windows上启动的docker,则主机代表在windows上运行的虚拟机。外部想通过端口访问容器,还需要设置windows与虚拟机的映射。
3. windows与虚拟机的映射
打开Oracle VM VirtualBox点击设置按钮:
点击网络->端口转发(网卡1):
添加windows跟虚拟机的端口映射:
配置完成后通过其他电脑的cmd命令,(telnet IP端口号)测试端口是否能够接通。
假如telnet命令不识别,可以通过控制面板->程序与功能->打开或关闭windows功能
来启动telnet命令。测试能联通启动vp0.(通过命令docker-compose up启动)
4. 在其他物理机上启动节点来连接vp0,(假如vp0的物理机IP为:192.168.1.100),则docker-compose.yml如下:
其中CORE_PEER_DISCOVERY_ROOTNODE=192.168.1.100:7051表示连接根节点,CORE_PEER_PKI_ECA_PADDR=192.168.1.100:7054
-CORE_PEER_PKI_TCA_PADDR=192.168.1.100:7054
- CORE_PEER_PKI_TLSCA_PADDR=192.168.1.100:7054
表示连接根节点的membersrvc。
在另一台电脑上通过此yml文件来启动vp1连接vp0。
如果有错误,可将CORE_SECURITY_ENABLED设置成false重新测试。
5. 测试
检查没有错误后,在浏览器上http://任意一台机器的ip:7050/network/peers
查看是否有四个节点,四个节点的ip结果。如:
表示连接成功。
6. 需注意的问题
假如在其他电脑上运行过相同的节点,需要清除membersrvc里的记录。方法如下: