1、声明
这是本人的学习笔记,目标不是想要做知识分享,所以整个文章会以笔记形式出现,中间会夹杂我个人的理解和注释。但我不是拒绝分享,有兴趣的可以参考。
而且这些都是基于官方文档的翻译(直接拿google浏览器插件翻译过来的),之所以会放在原创,就是因为这些翻译我会自己去修改那些讲不通的地方,修改的过程也比较花时间,所以就记录下来,避免重复性劳动。
2、前言
上章节学习基于Fabric如何去从零开始搭建一个基础的区块链网络,但只是局限于一个联盟的情况下的最简单的网络,但事实上区块链网络可以有多个联盟多个交易通道的存在,这个文档就在上个文档基础上演示如何增加一个联盟和一个通道,使得区块链网络更加接近实际的使用场景。
3、引进更多联盟和组织参与
3.1 添加新联盟定义
本来网络中存在一个最小联盟X1(包含R1和R2),增加新联盟就需要引入新的组织,假设是R3,我们计划为组织R2和R3提供一个单独的应用程序通道,使它们能够彼此进行交易。该应用程序通道将与先前定义的通道完全分开,因此R2和R3事务可以保持私有。
现在我们为R2和R3新定义一个联盟定义,如下图所示(为了保证新增的变化能够更加清晰的呈现,因此去掉了在上个文章中已经形成的网络连线,只保留重要的网络元素):
组织R1或R4的网络管理员添加了新的联盟定义X2,其中包括组织R2和R3。这将用于为X2定义一个新通道。
现在网络中,组织R1和R2使用X1,组织R2和R3使用X2。而联盟定义X2已添加到网络配置NC4中。
创建新通道需要在网络配置策略NC4中明确标识为具有适当权限的组织,目前只有R1和R4。当然这是基于示例的策略,该策略将可以在网络级别管理资源的组织与可以在通道级别管理资源的组织区分开来。这有助于我们理解为什么Hyperledger Fabric具有复杂的分层策略结构。
我的理解:区块链的管理分为两个层级:第一层是基于全局网络组织管理,通常由网络管理员负责联盟定义的创建、通道定义、创建与授权,这种管理就是基于网路配置NC(我理解NC=Network Config)第二层定义就是基于联盟内部管理,就是对通道内部的维护,这种管理是基于通道配置完成的,通道配置为CC(我理解CC=Channel Config)。我们可以把两种管理分为网络管理和联盟管理。
3.2 新增通道
现在使用这个新的联盟定义X2创建一个新的渠道C2,如下图所示:
使用联盟定义X2为R2和R3创建了一个新的通道C2。该通道具有完全独立于网络配置NC4的通道配置CC2和通道配置CC1。通道C2由R2和R3管理,它们具有CC2中的策略所定义的对C2相同的权限。R1和R4在CC2中均未定义任何权限。
通道C2为联盟X2提供了专用的通信机制。通道配置CC2现在包含管理通道资源的策略,并通过通道C2向组织R2和R3分配管理权限。它仅由R2和R3管理;R1和R4在通道C2中没有权限。例如,通道配置CC2随后可以更新以添加组织来支持网络增长,但这只能由R2或R3完成。
请注意,通道配置CC1和CC2如何保持彼此完全隔离,并与网络配置NC4完全分离。再次,我们看到了Hyperledger Fabric网络的去中心化性质。创建通道C2后,组织R2和R3会独立于其他网络元素来管理它。渠道策略始终保持彼此独立,并且只能由