fabric-samples/distributed-deploy/README_CN.md
zeoio 0222eae216 distributed-deploy: add LICENSE, AUTHORS, etc
Signed-off-by: zeoio <kinsleer@outlook.com>
2020-04-29 10:01:39 +08:00

6.9 KiB
Raw Blame History

分布式部署

区块链安装部署包的主要功能分为三个部分,分别为新装、扩缩容以及修复。

新装功能主要是根据部署包的配置文件单机或分布式部署ordererpeer用户只需配置好相应的域名及ip即可实现一键部署。

扩缩容功能是针对正在运行的区块链网络,可以对网络中ordererpeer进行添加节点或减少节点。

修复功能是结合扩缩容功能实现的,对需要修复的peerorderer节点进行先缩容后扩容的操作。

依赖环境

请确保运行在Linux环境上并安装以下的工具:

  • jdk8以上版本
  • Maven推荐3.6.0版本以上
  • Docker推荐19.x以上
  • Docker-compose推荐1.23.2以上
  • Fabric 1.4.2

构建部署包

首先,我们需要先构建一些依赖文件。主要包括,项目的依赖包和fabric的二进制文件。我们先构建项目的依赖包,进入项目的根目录,然后执行下面的命令:

mvn package -DskipTests

生成的jar包位于*bcp-install-main/target/*目录中。

之后,我们进入fabric的代码目录,执行如下命令生成我们需要的二进制文件:

make release

我们将编译好的二进制文件复制到项目的bcp-install-main/resources/generateInstallPackage/masterPackage/tools/linux中。

注意: 主要的二进制文件包括configtxgen, configtxlator和cryptogen

开始部署

默认情况下,我们启动两个peer节点,和三个orderer节点。

复制主/从节点部署包到服务器中

主/从节点部署包主要位于bcp-install-main/resources/generateInstallPackage目录中,其中masterPackage为主节点部署包,slavePackage为从节点部署包。

我们需要将上一小节构建部署包中生成的jar文件,即bcp-install.jar分别复制到masterPackageslavePackage中。

我们将peer0作为主节点服务器,将masterPackage目录复制到peer0服务器上。同时我们需要将slavePackage目录分别复制到peer1, orderer0, orderer1, orderer2服务器中。

修改initconfig.properties配置

我们首先需要得到peer0, peer1, orderer0, orderer1以及orderer2所在服务器的ip和对应的端口。然后修改masterPackage目录中的initconfig.properties配置文件。

执行部署安装脚本

首先执行各个从节点部署包的部署安装脚本,在从节点部署包根目录下执行脚本start-installService-slave.sh,脚本有一个必填启动选项“-p”表示安装目录必须填写为绝对路径我们可以使用如下的命令启动从节点部署包:

./start-installService-slave.sh -p /home/deploy/

所有从节点部署包启动成功后,在peer0服务器上执行主节点部署包目录下的start-installService-master.sh脚本,这个脚本有两个必填启动选项,分别是“-m”和“-p”。“-m”表示部署操作可选值有“newInstall”和“updateNetwork”“-p”表示安装目录必须填写为绝对路径我们可以使用如下的命令启动主节点部署包:

./start-installService-master.sh -m newInstall -p /home/deploy

扩缩容部署流程

修改配置文件

首先,我们在主节点部署包的根目录下修改initconfig.propertise配置文件。

扩容修改的规则为在需要扩容节点的角色域名配置项中peerHostConfig或者ordererHostConfig添加新节点的域名ip端口以及涉及到的其他配置项的信息。

缩容修改的规则为,在需要缩容节点的角色域名的配置项中peerHostConfig或者ordererHostConfig删除对应的配置信息。

运行部署包

我们使用如下的命令启动主节点安装部署包:

./start-installService-master.sh -o 1 -m updateNetwork -p /home/bcp-master

注意安装路径要与“newInstall”时一致

启动新节点的从节点安装部署包, 如果新节点配置在主节点部署包所在服务器上,则无需启动从节点部署包。我们使用如下命令运行:

./start-installService-slave.sh -o 0 -p /home/bcp-master

注意安装路径要与“newInstall”时一致

除了启动这两个节点外,扩缩容不同角色的节点还需启动不同角色所在服务器的从节点部署包,具体的启动规则如下所述:

扩缩容orderer

  1. 需启动正在运行所有orderer所在服务器的从节点部署包,如果与新节点位于同一服务器无需启动从节点部署包。
  2. 需启动正在运行的后台所在服务器的从节点部署包,如果与新节点位于同一服务器无需启动从节点部署包。

扩缩容peer

需启动正在运行的后台所在服务器的从节点部署包,如果与新节点位于同一服务器无需启动从节点部署包。

部署包配置文件initconfig.propertise

initconfig.propertise文件位于主节点安装部署包的目录中, 文件主要分为五部分的配置,分别为fabric机构信息配置, orderer相关配置, peer相关配置, 区块链管理平台相关配置, 前端相关配置

orderer配置

ordererDomain: orderer所使用的域名。例bcplatform.com。

ordererHostConfig这一项需要填写接入区块链网络的orderer节点host配置信息和开启的访问端口。如果orderer节点有多个则需要配置多个orderer节点的host配置信息一般建议至少接入三个orderer节点。左边是域名右边是IP地址和端口。注意要与ordererDomain一致。例orderer. bcplatform.com 172.100.10.1:7050

peer配置

peerDomainpeer所使用的域名。例bcplatform.com。

peerHostConfig这一项需要填写接入区块链网络的peer节点host配置信息和开启的访问端口。如果peer节点有多个则需要配置多个peer节点的host配置信息一般建议至少接入两个peer节点。左边是域名右边是IP地址和端口。注意要与peerDomain一致。例Peer0.orgName.bcplatform.com 172.100.10.4:7051。

metricPortConfig配置peer的交易数查询端口要与peerHostConfig配置中的host一一对应。例Peer0.orgName.bcplatform.com:9443。

fabric机构信息配置

network: docker在创建环境时用到的网络名称

channelName: 创建的链名称

orgMSPID: 接入链网络的机构MSPID

orgName: 接入链网络的机构名

贡献

感谢您考虑提供源代码帮助!我们欢迎互联网上任何人的贡献,并感谢即使是最小的修复!

如果您想为项目做贡献,请分叉,修复,提交并发送请求请求,以供维护人员查看并合并到主要代码库中。

许可

项目源代码文件在LICENSE文件中的Apache许可证版本2.0Apache-2.0)下可用。可在http://creativecommons.org/licenses/by/4.0/获得的知识共享署名4.0国际许可CC-BY-4.0)下提供**项目文档文件