区块链轻松上手:原理、源码、搭建与应用_Leader-us;李艳军;赵锴 编著_AZW3_MOBI_EPUB_PDF_电子书(无页码)_Leader-us;李艳军;赵锴 编著
内容节选
3.3更复杂的Fabric网络 在对Fabric网络有了初步了解之后,我们可以尝试建立一个更复杂的 Fabric网络。打开本书第1章提到的Fabric_Demo虚拟机,在/hyperledger/scripts下有一个2orgs_network.sh脚本文件,通过这个脚本文件,我们可以建立一个包含两个组织、四个节点的Fabric网络。与第1章讲到的两个小型Fabric网络不同,这个网络的节点数更多,结构更复杂,而且我们会对参数和配置进行更详细的讲解,方便了解与网络设置相关的知识。 同第2章的操作一样,在/hyperledger/scripts目录下调用init.sh初始化Docker之后执行2orgs_network.sh,即可看到它经历了以下步骤。 (a)clear states:清理运行状态(删除shared与statedata目录下的内容)。 (b)clear containers:清理容器。 (c)generate crypto:生成加密材料。 (d)generate genesis:生成创世区块。 (e)start orderer:启动Orderer节点。 (f)start peer1:启动org1peer1节点。 (g)start peer2:启动org1peer2节点。 (h)start peer3:启动org2peer1节点。 (i)start peer4:启动org2peer2节点。 (j)create channel:创建通道。 (k)join channel1:将org1peer1节点添加到通道中。 (l)join channel2:将org1peer2节点添加到通道中。 (m)join channel3:将org2peer1节点添加到通道中。 (n)join channel4:将org2peer2节点添加到通道中。 (o)updateAnchor1:将org1peer1设置为anchor。 (p)updateAnchor2:将org2peer1设置为anchor。 (q)install chaincode:安装Chaincode到通道中。 (r)input commands:启动docker bash。 下面对这些步骤进行详细讲解。 3.3.1 网络的结构与定义 与第2章的双节点例子相比,这里多出来的主要步骤是其他三个Peer节点的启动、加入通道操作及两个组织的updateAnchor操作(见步骤f、g、h、i、o、p)。首先,我们看看这个例子的网络拓扑结构,如图3-14所示。 图3-14 在步骤 c、d 中通过配置文件定义了这个网络结构,读取的配置文件分别是2orgs-config.yaml与2orgs-configtx.yaml,2orgs-config.yaml的内容结构如下: 对该文件内容的解释如下。 ①定义了Orderer组织的信息,包括组织的名称(Name)、所在的域(Domain)、证书信息(CA)及主机名(Hostname)等。 ②定义了Peer组织的信息,我们可以看到主要包含了 Org1与Org2这两个组织。 ③定义了Org1组织的信息,包括组织名称(Name)、域名(Domain)、证书信息(CA)、生成的节点个数(Template)、生成的用户数量(Users)及是否生成节点组织信息(EnableNodeOUs)。EnableNodeOUs似乎比较让人费解,其中的 OU是 Organization Unit的缩写,这个开关主要决定在生成MSP加密材料时是否包含节点信息,并不影响网络的运行,在这个开关变化时我们可以留意在crypto-config目录下生成的config.yaml文件及CA证书内部的信息。 ④定义了Org2组织的信息,结构和Org1类似,名称和域不同。 在步骤c中,cryptogen工具通过2orgs-config.yaml的配置信息生成了crypto-config目录,其中包含5个节点的 MSP 加密材料及两个用户信息,这些都在接下来的2orgs-configtx.yaml配置中用到了。2orgs-configtx.yaml文件的内容如下: 对该文件的内容解释如下。 ①用于定义 Orderer 自己的系统通道的创世区块信息,包含一个Orderer 组织(OrdererOrg)并定义了一个联盟(SampleConsortium)。 ②用于定义一个名为 TwoOrgsChannel 的业务通道,在这个通道里使用了SampleConsortium,需要注意,定义联盟时的 Key 为 Consortiums,而使用时的 Key 为Consortium,在这个业务通道里包含一个应用(Application),并包含Org1与Org2这两个组织,这里没有另外定义Orderer组......
- 信息
- 作者简介
- 前言
- 第1章 全面理解区块链
- 1.1 从比特币开始
- 1.2 理解区块链的概念
- 1.3 快速体验Fabric
- 第2章 区块链的生态与原理
- 2.1 区块链的生态
- 2.2 区块链的底层技术与架构
- 2.3 区块链平台架构
- 第3章 Fabric安装与调试
- 3.1 Fabric源码安装
- 3.2 Fabric开发调试
- 3.3 更复杂的Fabric网络
- 第4章 Fabric应用开发实践
- 4.1 Fabric SDK概述
- 4.2 通道配置
- 4.3 智能合约管理
- 4.4 监听事件
- 第5章 深入研究Fabric网络
- 5.1 Fabric的创世区块
- 5.2 Peer客户端发起交易
- 5.3 Chaincode的初始化
- 5.4 Endorser的背书流程
- 第6章 深入理解Fabric的安全机制
- 6.1 Fabric安全概述
- 6.2 深入理解Fabric MSP
- 6.3 深入理解Fabric CA