基于Raft排序的Fabric多机集群部署教程

  • 时间:
  • 浏览:0

你还都可否使用许多的orderer进行链码调用。机会什么排序节点构成了raft集群,你

应该得到同样的结果,这表示排序节点集群工作正常。

一个多多关键的环节时确保所有的Farbic成员使用相同的密码学资料。让我们我们将使用host 1来创建什么密码学资料,然后拷贝到许多主机。

为mychannel通道创建创世区块:

现在让我们我们使用orderer3.example.com来调用 changeCarOwner,并在执行

后进行查询:

运行结果如下:



相关教程推荐:

机会Hyperledger Fabric的组件以容器形式部署,当什么容器详细都是本机详细都是很顺利的工作。然后当什么容器需要运行在不同的主机上时,让我们我们需要找出让它们彼此通信的法子。

当让我们我们指定raft作为排序服务时的一个多多区别之处在于,使用configtxgen生成创世区块让我们我们需要指定configtx.yaml中的SampleMultiNodeEtcdRaft配置端。许多的操作都保持不变。

使用docker swarm:Docker Swarm是Docker环境中的原生容器编排服务。简而言之,Docker Swarm为跨主机的容器提供了一个多多叠加网络层,使容器彼此之间才能通信,就像在一台主机上一样。你你什儿 方案的好处在于原始的配置只需要简单修改就才能使用,全都需要在配置中硬编码像IP地址全都 的静态信息。缺点在于需要依赖组织组织结构组件Docker Swarm。在你你什儿 教程中让我们我们将使用你你什儿 方案。

运行结果如下:

现在让我们我们才能打开一个多多终端,分别对应每个主机:

原文链接:Hyperledger Fabric Raft排序多机部署 - 汇智网

使用Kubernetes:k8s使目前最流行的容器编排工具,其机制类似Docker Swarm。让我们我们机会注意到有许多教程尝试利用k8s来进行fabric的多机部署,然后使用k8s的难度要明显高于前一种生活方案。

运行结果如下:

从host 1的终端将Fabcar链码安装进所有peer节点:

现在机会构建好了叠加网络,什么信息将在稍后用于docker-compose文件。

在本教程中,让我们我们基于BYFN示例进行修改,构建了一个多多基于Raft排序集群的

Hyperledger Fabric网络,使用Docker Swarm来实现多主机容器的通信。

让我们我们需要将容器采集到一个多多主机,本教程使用AWS上的一个多多EC2实例,然后从不使用AWS提供的不如保功能,仅仅是用它来运行Ubuntu以及必要的软件,采用公共IP进行通信。当然你还都可否才能确定许多的云服务提供商。

要清理运行环境,使用docker-compose将容器停掉并移除即可:

现在让我们我们在host 1上准备好了所有资料,将该目录拷贝到许多主机。机会才能 跨EC2实例拷贝文件,让我们我们使用本地机器进行桥接操作:

将peer1.org1加入mychannel:

运行结果如下:

理论上,让我们我们只需要确保个体身份(证书和签名私钥)遵循所要求的规范。一个多多机构的证书应当由同一个多多CA签发 —— 类似org1的证书应当由ca.org1签发。出于僵化 目的,在本教程中,让我们我们在host 1上创建所有的密码学资料,然后将整个目录拷贝到许多主机。

机会让我们我们仅在host 1上由命令行CLI,然后从host 1的终端执行所有的命令。

最新的BYFN网络设计饱饱含了一个多orderer的密码学资料。机会使用Solo或Kafka排序服务,将值运行第一个多多Orderer(参见docker-compose-cli.yaml中的定义)。

在peer0.org1上执行:

在host 1上执行如下命令:

从Host 1执行如下命令:

将peer0.org2加入mychannel:

然后生成必要的密码学资料:

最后,让我们我们还需要启动许多一个多多orderer,什么内容在docker-compose-etcdraft2.yaml中定义。

将peer1.org2 加入mychannel:

从host 1创建叠加网络first-network:

下面是基于Raft排序服务的BYFN网络的拓扑示意图:

Raft是Hyperledger Fabric 1.4.1中新增的排序服务模块,你你什儿 教程将介绍如保部署一个多多基于Raft排序服务的多机Fabric网络。

最后,让我们我们再加一个多多叠加网络,该网络将用于下面的演示,你你什儿 步的操作只需要在一个多多节点上执行。机会Docker Swarm正常工作,所有的节点详细都是加入你你什儿 叠加网络。

在通道mychannle实例化Fabcar链码:

让我们我们使用docker-compose启动详细主机:

运行结果如下:

使用静态IP:通过指定容器运行的主机IP,容器之间就才能彼此通信。才能在docker-compose文件中使用extra_hosts法子来指定主机IP,当容器运行后,就才能在/etc/hosts文件中就看什么项。你你什儿 方案容易理解,让我们我们全都需要依赖于组织组织结构组件,缺点在于所有的东西详细都是静态配置的,利于需要动态修改配置的应用场景。

运行结果如下:

现在所有的节点详细都是了同样的密码学资料和docker-compose文件,让我们我们才能启动容器了。

在Fabric网络启动运行后,让我们我们将使用Fabcar链码进行测试。总体流程如下:

现在让我们我们为所有主机准备docker-compose文件,主要基于BYFN中的文件,需要创建6个docker-compose文件以及一个多多env文件:

现在才能从一个多多不同的peer节点查询车辆记录:

直接从first-network拷贝crypto-config.yaml和configtx.yaml文件:

使用最后的输出,将许多节点以管理者身份加入swarm。

下面是目录中的内容:

下面时基于raft排序的BYFN网络启动后的情形,你还都可否就看有一个多orderer在运行:

着实Hyperledger Fabric官方才能才能 给出正式的推荐方案,目前大致有一种生活方案:

从host 2/3/4执行如下命令:

将peer0.org1加入mychannel:

在下面的内容中,让我们我们将不再使用BYFN脚本,全都从零然后时候刚开始来学习如保构建多主机的Raft排序的Fabric网络。

在许多主机上,让我们我们才能就看你你什儿 网络:

下面是针对BYFN中的文件所作的修改:

BYFN是学习Hyperledger Fabric的一个多多很好的例子:它饱含了Fabric网络的所有元素,然后在byfn.sh中详细表现出来。当让我们我们不加任何参数运行你你什儿 脚本时,它将启动一个多多饱含一个多多机构、一个多多peer和一个多多orderer(使用solo排序)的Fabric网络。byfn.sh的参数-o用来指定排序服务的类型:

本教程使用AWS EC2 t2.small实例,使用fabric 1.4.4。注意在演示中让我们我们使用了僵化 的全开放安全组,在生产环境中你应当根据被委托人的需求来决定开放什么端口:

首先进入fabric-samples目录,然后创建一个多多raft-4node-swarm目录。

首先调用initLedger法子将10个车辆记录载入账本。