Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

什么是一个Fabric网络

  一个Fabric许可的网络是一个为应用程序客户和管理员提供账本服务的技术基础架构。大部分情况下,多个机构合并成一个联盟组成网络,他们的权限是一些列策略决定的,这些策略是在网络初始配置时,联盟同意创建。此外,网络策略会随着时间推移改变,但是需要要有联盟中的机构同意。
  这个文档将会引导你了解机构在,配置和部署fabric网络时,形成channel在网络中交易时,要做的决策,同时在网络的整个生命周期中如何去修改这个决策。你也将会学习到这些决策是怎样嵌入到Fabric的体系结构和组件中的。
  谁应该读这个
  在这个主题中,我们会聚焦网络的一些主要组件,他们为什么存在以及什么时候使用他们。这个主题对区块链架构师和区块链网络管理员是有用的。区块链应用程序开发者可能也会有兴趣。这将是一篇概念性文档,如果你喜欢深入到技术细节,我们鼓励你查看这个网站上的其他可用技术文档。
  

区块链网络的业务需求-例子

  机构RA、RB、RC、RD决定共同投资一个Fabric区块链网络。机构RA将贡献3个peer节点,同时RA会有2个客户应用程序将要消费区块链网络的服务。机构RB将贡献4个peer节点,以及1个客户应用程序。机构RC将贡献3个peer节点和2个客户应用程序。机构RD将贡献4个order节点。机构RA和RB已经决定组成一个联盟,同时在他俩之间开发一个独立的应用程序channel。机构RB和RC也已决定组成两一个联盟同时也在它俩之间开发一个独立的应用程序channel。每一个应用程序channel有它自己的策略。
  

一个网络的组成部分

  一个网络由如下组成:

网络服务的用户

  • 属于机构的客户应用程序   
  • 区块链网络管理员的客户

网络策略和身份

  Fabric CA颁发证书用于网络中的机构认证。一个网络上可以有一个或者多个CA,同时机构能够选择使用它们自己的CA。另外,属于联盟中机构的客户应用程序使用证书去认证交易提案,同时peer节点使用它们去给提案背书,同时提交交易到账本,如果他们是有效的话。
  

Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

上图的解释如下:
有一个Fabric网络N以及网络策略NP1以及排序服务O。
C1 channel由通道策略CP1管理。
C1 channel是由RARB联盟建立。
C1 channel是由ordering服务O和peer节点 P1、P2以及已经被分配权限和C1交易的客户应用程序A1、A2组成。
客户应用程序A1属于RA机构。
证书颁发机构CA1服务于机构RA。
peer2节点维护着与channel C1关联的账本L1以及channel C2关联的账本L2.
peer2使用链码S4和S5.
ordering服务O的的orderer节点属于RD组织。

创建网络

  网络是由联盟的定义创建 ,它包括它的客户、peer节点、channel和ordering 服务。ordering服务是网络的管理点,因为它包括网络中channel的配置。每个channel的配置包括了channel的政策和每个channel上的每个会员信息会员信息。
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

定义一个联盟

  一个联盟是由两个或以上的网络上的机构组成的。联盟是由需要彼此交易业务的机构定义的。同时他们必须同意网络管理的政策。
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

为联盟创建一个channel

  channel是用于连接网络组建和/或成员客户端的应用程序。channel通过在ordering server上生成配置区块的方式来创建,该区块用来评估channel配置的有效性。channel的作用是他们允许数据的隔离性和机密性。交易的机构必须通过channel的身份认证才能它交互。通道由它们配置的策略管理。
    Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

Peer节点和channel

  通过机构加入channel的方式,属于它们的peer节点也加入了,同时网络上能有多个peer节点。Peer节点能同时承担多个角色:
  

  • 背书peer-策略中定义的特殊节点,用来模拟执行智能合约交易,同时会给客户应用程序一个提议返回(背书)。

  • 提交peer-验证排序交易区块同时提交(写/追加)它维护的一个账本拷贝区块中。

      因为所有的peer节点都维护着一个它们加入的每个一个channel的账本拷贝。所有的peer节点都是提交peer。但是,只有智能合约,背书策略定义的peer节点才是背书节点。一个peer节点能进一步被定义成如下角色:
      锚节点-在channel配置中定义,是一个channel加入的机构在网络中将被发现的第一个peer
      领导peer-存在网络中,代表包含着多个peer节点的机构与ordering服务通信。
      Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

应用程序和智能合约

  智能合约链码必须被安装实例化在一个peer节点上为了一个客户端应用程序能调用智能合约。客户端应用程序是网络外,唯一一个交易提交可以被创建的地方。当交易被一个客户端应用程序提议,智能合约被模拟在复制账本上执行的背书节点调用,同时发送提交响应(背书)到他们的客户端应用程序。客户端应用程序将这些返回结合到一个交易,然后广播它们到ordering服务。
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

越来越多的网络

  当没有一个理论限制网络能发展到多大规模,所以随着网络增长,为了优化网络吞吐量,稳定性和伸缩性而去考虑设计是很重要的。评估网络策略,调节大量peer节点的gossip protocal协议的实现都是潜在的考虑。
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

简化的视觉词汇

  在下面的段落中,我们能看到有两个客户端应用程序连接到一个有两个peer节点和一个ordering 服务的channel上。由于只有一个channel,该例里面也只有一个逻辑账本。在这个单个channel的例子里,P1和P2有着一样的拷贝账本(L1)和智能合约-也称为链码(S4)。
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

增加另外的联盟定义

  当联盟被定义和增加到一个已存在的channel,我们必须修改channel配置通过发送一个channel修改交易配置到ordering service。如果这个交易是有效的,ordering服务将会创建一个新的配置区块。网络上的Peer节点将必须验证ordering服务创建的新channel配置,同时如果他们验证通过新的区块,再修改他们的channel配置。重要的需要注意的是,channel配置修改交易是被系统链码处理的,系统链码被区块链网络管理员调用,同时不被客户端应用程序交易提议调用。
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

增加一个新的channel

  机构是用来构成和加入channel的,随着网络的增长,增加机构能修正channe的配置。当新增一个channel到网络中,它的策略与同一个网络中的其它channel的策略依然是分离开的。
  在这个例子中,ordering 服务商的channel1和channel2配置将依然是和其它分离配置开的。
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)
  
  

增加另一个peer节点

  在这个例子中,属于机构3的p3节点被增加到了C2中。注意,虽然网络中可以有多个ordering 服务,这个理中只有一个ordering服务来统治多个channel。在这个例子中,C2的channel策略是与C1隔离的,P3也与C1隔离,因为它仅通过C2进行身份验证。
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)

增加一个peer节点到多个channel

  在这个例子中,P2已将加入到了C2中。P2将保证C1和C2以及他们关联交易的私密性和隔离性。另外,客户端应用程序A3页将会被C1隔离。ordering 服务通过评估所有channel上,所有node节点策略和数字签名,来维护网络治理和channel的隔离。
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)
  
  网络完全形成
  在这个例子中,网络被开发成包含多个客户端应用程序、peer节点和channels,它们都连接着同一个ordering服务。P2是唯一一个连接C1和C2的peer节点,它保证了它们彼此之间的隔离性以及它们数据的私密性。在这个例子中,现在有两个逻辑账本,一个用于C1,一个用于C2。
  简单的视图
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)
  更好的排布
  Hyperledger Fabric 官方最新翻译---关键概念(四)(Hyperledger Fabric Network)