第十一章 九析带你轻松完爆 hyperledger fabric - 创建联盟

本系列文章:


第一章:九析带你完爆 hyperledger fabric - 快速上手 basic-network 样例

第二章:九析带你完爆 hyperledger fabric - 快速搭建 GO 环境

第三章:九析带你完爆 hyperledger fabric - 快速上手 first-network 样例

第四章:九析带你完爆 hyperledger fabric - 系统逻辑架构篇

第五章:九析带你完爆 hyperledger fabirc - 网络节点介绍

第六章:  九析带你轻松完爆 hyperledger fabric - 区块和区块链介绍

第七章:  九析带你轻松完爆 hyperledger fabric - 区块链防篡改机制

第八章:九析带你轻松完爆 hyperledger fabric - Couchdb 安装

第九章:九析带你轻松完爆 hyperledger fabric - NVM 和 Nodejs 安装

第十章:九析带你轻松完爆 hyperledger fabric - chaincode 生命周期介绍

第十一章: 九析带你轻松完爆 hyperledger fabric - 创建联盟

第十二章: 九析带你轻松完爆 hyperledger fabric - configtxlator 尝鲜

目录

1 前言

2 联盟、通道和组织关系

    2.1 查看联盟、组织信息

3 创建联盟


1 前言

        众所周知,欧盟诞生于 1991 年 12 月,初始成员国有 6 个:德国、法国、意大利、荷兰、比利时和卢森堡。目前该成员国已经拥有 27 个会员国,平时这些会员国通过欧盟理事会进行磋商,解决政治、经济问题。

        在 fabric 中,一个区块链网络就是一个联盟(欧盟)、这个联盟由多个组织(27 个会员国)所组成、联盟间各组织通信被限制在通道(欧盟理事会)中进行,这就是为什么经常称 fabric 联盟链的原因。

        在 fabric 中,可以共存多个区块链网络,就像一个企业的网络可以由多个不同的子网(网段)构成,而每一个区块链网络(子网)便是一个联盟。


2 联盟、通道和组织关系

        联盟跟组织的关系是一对多,即:一个联盟由一个或者多个组织所构成。

        联盟跟通道的关系是一对一,即:一个联盟只对应一个通道。联盟和通道是你中有我,我中有你的共存关系,联盟的所有配置也都是记录在通道的配置区块中。

        所以当你想用 fabric 创建一个区块链网络,其中就需要包括如下操作:创建联盟、创建组织、组织加入联盟、创建通道、组织加入通道等操作。

2.1 查看联盟、组织信息

        进入 fabric-sample 下面的 first-network 样例,打开 configtx.yaml 文件,文件内容如下:image1.png

        Consortiums 就是联盟声明,这里声明了一个 SampleConsortium 的联盟,该联盟下面有 Org1 和 Org2 两个组织:image2.png

        组织信息包括了组织的名称、组织 ID、MSPDir 以及组织的主节点信息(Host 和 Port)。需要注意的是,一个组织可以有多个节点(即:多个 docker 容器),就像一个公司有多个部门一样。


3 创建联盟

        进入 fabric-sample 下 first-network 用例,然后执行如下语句:

configtxgen -profile TwoOrgsOrdererGenesis -channelID jiuxi-channel -outputBlock ./channel-artifacts/jiuxi-channel.block

        上面命令的作用就是创建包含联盟以及指定通道的创世区块,其中 TwoOrgsOrdererGenesis 配置来自于 configtx.yaml 文件,命令执行结果如下:image3.png

        报错的原因在于缺少证书文件,因此需要首先创建好相关节点互相通信的数字证书,执行如下命令创建:

cryptogen generate --config=./crypto-config.yaml

        配置文件 crypto-config.yaml 文件中定义了组织的节点信息(包括节点名称、节点域名、节点模版和节点用户)。执行结果如下所示:image4.png

        程序执行成功后会在当前目录下创建 crypto-config 目录。该目录下就是不同节点安全通信的数字证书。证书生成后,再次执行创建联盟区块的命令,执行成功后截图如下:image5.png

        创世区块所在目录文件在 channel-artifacts 下,如图:image6.png

        自此,九析带你轻松完爆手动创建联盟的操作。

猜你喜欢

转载自blog.51cto.com/14625168/2469826