09. Fabric系统架构设计

版权声明:忠于祖国,忠于人民 https://blog.csdn.net/boss2967/article/details/83089564

9.1 Fabric架构中的组织规划

组织是Fabric中一个非常重要的概念。

所有的Peer节点,用户账号都必须属于同一个组织。

Fabric中的组织在现实世界中可以是一个公司,一个企业,或者一个协会。在Fabirc中,组织通常是具有承担数据信责任的区块链系统参与方。

在设计一个Fabric系统中, 第一步要做的事情就是手机系统的参与者,然后从这些参与者中选出相关的组织。组织被选出后需要确认组织的管理方式。组织的管理方式是指在遇到问题的时候协作的方式,这些工作更多的是线下的协调工作。但是经过协调之后组织之间必须达成共识来确认一种组织管理方式。

综上所述,我们认为Fabic架构中的组织规划工作实际上需要完成两件事情,确认组织 和制定住址之间的管理方式

9.1.1 确认组织

在设计Fabirc系统,如何确认系统的参与者是否可以成为一个组织还没有统一对的标准。

如果我们认为参与者成为一个Fabric系统中的组织。必须具备以下条件:

  • 是否对区块链中的数据具有有效性检查的权利
  • 是否具有独立发展下属成员的权利和资格
  • 是否对系统的核心业务不可或缺

具有以上条件的系统参与者都可以额成为系统的组织。参与者成为组织后,会有自己的组织编号,域名,证书等信息。 成为Fabric系统组织的而参与这将有机会参与到Channel的维护工作,同时成为Fabric系统的组织之后,相关的参与者将会拥有自己的认证服务器。通过这些认证服务器可以随意添加组织内部节点。由此可以见,在系统参与之中,确认组织是Fabric系统架构设计的重要组成部分。

9.1.2 确认组织

在组织确认后,接下来的问题就是要确认系统对组织的管理方式。

所有的管理方式中最重要的就是新组织的加入问题。 在系统运行的过程中组织不是一成不变的由于业务的变化会有新的组织加入到系统中或者将已经有的组织从系统中删除,针对这些操作需要制定相关的规则。在 Fabirc系统的架构中,协调组织的管理方式也是系统架构设计的一部分。我们知道Fabric是一个联盟链,特点不是所有的组织都可以随意加入区块链中如果先要加入组织,需要一定的准入机制。在Fabric系统中,如果新的组织想要加入区块链中,需要素有的组织的一致同意才可以加入。

如果区块的现在组织中有任何一个组织不同意新组织的加入,那么新组织就不能加入到区块链中。

如果需要将现有组织中的一个删除,也需要所有组织的签名。

在实际的操作中,对组织的管理实际上就是对组织所有拥有的证书的管理。

通常对 Fabric的组织证书的管理方式可以采用以下两种模式

  • 联盟式管理
  • 集权式管理
  1. 联盟式管理

系统初始化完成之后需要将生成的各个组织的相关证书。全部提供给相关组织。这些证书有所有组织独立维护。组织的证书采用联盟式管理的好书是所有参与的组织之间是对等。可以共同参与整个联盟链的管理。但是坏处也是很明显的。整个联盟链中没有一个统一的管理机构,如果有组织之间发生冲突,那么只能通过协商的方式处理,整个系统没有仲裁结构。举个例子,如果需要删除区块链中的某个组织。必须获取包括被删除组织在内的所有组织的同意才能完成删除操作。这个时候如果被删除组织不同意,那么无法完成删除操作。由此可见采用联盟链必须建立在组织之间户型熟悉的基础上。

  1. 集权式管理
    正式由于联盟式管理出现了管理不统一的问题。所以才存在着另外一种管理方式。在集权式管理中在,整个区块链中存在一个中心组织。该中心组织统一管理区块链中的所有组织。区块链中所组织的管理员账号的证书将被收回,由中心组织统一管理。如果需要增加新的组织或者删除已经存在的组织。

9.2 Fabric系统的结构

一个完整的Fabric系统中由Peer,Orderer,Fabric-ca,Kafka等模块组织组成。
其中Peer,Orderer是Fabric的核心模块。

Fabric-ca-server是Fabric的扩展模块,负责动态生成Faibrc的账号。

Kafka是一个独立的消息队列,负责存储Fabric的打包数据。

9.2.1 Fabric系统的逻辑结构

逻辑结构主要是描述系统Fabric系统中组织与组织以及组织内的关系。

逻辑结构是整个系统业务模型的直观反映,通过逻辑结构可以大致了解系统的范围,为后面的设计打下基础。

在这里插入图片描述
在系统的逻辑结构被确认之后,在Fabric系统的逻辑结构设计过程中还需要确认哥哥组织所用的域名。
在这里插入图片描述

9.2.2 Fabric系统的物理结构

在设计 Fabric 系统物理结构的时候需 注意配 文件的路径和访问域名 。

9.3 Fabric中Channel的设计

Fabric的数据存储结构被设计成多占体系,每一个账本在Fabric中被称为Channel。

加入Channel中每个Peer节点都是对等的,也就是说同一个 Channel中所有的Peer节点都保存一份相同的数据。

但是Fabric目前没有提供分布式储存解决方案,这导致加入同一个Channel的Peer节点服务器中都会重复存储相同的数据。

这种数据结构在数据量非常大的时候会影响Peer节点读取数据的性能。

基于Fabric这样的存储特性,在设计Fabric系统的时候需要对Channel储存方式进行相关的设计。

在这里插入图片描述
在这里插入图片描述

9.4 Chaincode

猜你喜欢

转载自blog.csdn.net/boss2967/article/details/83089564