hyperledger-fabric documention官方文档

  • ##介绍
    Hyperledger Fabric 是分布式账本解决方案的平台,采用模块化架构,提供高安全性、弹性、灵活性和可扩展性。它被设计为支持以可插拔方式实现不同组件,并适应复杂的经济生态系统。
    • ###私有和许可
    • ###通道
      一些参与者可能是竞争对手,并且不希望他们做出的每笔交易都被每个参与者知晓,例如,他们只向某些参与者提供的特殊价格,而其他人不是。如果两个参与者组成一个通道,那么只有这两个参与者拥有该通道的账本副本,而其他参与者没有。
  • ##区块链
    • ###一个分布式账本
      • ####区块链账本通常被描述为 去中心化的 ,因为它会被复制到许多网络参与者中,每个参与者都在 协作 维护账本。
      • ####不可修改,可被用作证明系统
    • ###智能合约:提供对账本的受控访问
      用 链码 编写,当该应用程序需要与账本交互时,由区块链外部的应用程序调用。在大多数情况下,链码只与账本的数据库、世界状态(例如,查询)交互,而不与交易日志交互。
    • ###共识:保持账本在整个网络中同步的过程
      • ####交易必须按照发生的顺序写入账本,即使它们可能位于网络中不同的参与者集合之中。为此,必须建立交易的顺序,且必须采用一种方法来拒绝错误(或恶意)插入到账本中的非法交易。例如,PBFT(实用拜占庭容错算法)可以为文件副本提供一种机制,使其能够保持各个副本的一致性,即使在发生损坏的情况下也是如此。或者,在比特币中,通过称为挖矿的过程进行排序,其中竞争计算机竞相解决加密难题,该难题定义所有过程随后构建的顺序。
      • ####当区块中交易的订单和结果满足明确的策略标准检查时,最终会达成共识。这些检查和平衡发生在交易的生命周期中,并包括使用背书策略来指定哪些特定成员必须背书某个交易类以及系统链码,以确保强制执行和维护这些策略。在提交之前,节点将使用这些系统链码来确保存在足够的背书,并且它们来自适当的实体。此外,在包含交易的任何区块附加到账本之前,将进行版本控制检查,在此期间,账本的当前状态为同意。此最终检查可防止双重花费操作和可能危及数据完整性的其他威胁,并允许针对非静态变量执行功能。
      • ####除了发生的大量背书、验证和版本检查之外,交易流的所有方向上还发生着持续的身份验证。访问控制列表在网络的层级上实现(排序服务到通道),并且当交易提议通过不同的体系结构组件时,有效负载被重复签名、确认和验证。总而言之,共识不仅限于一批交易的商定订单;相反,它是一种总体特征,是在交易从提案到背书的过程中进行的持续验证的副产品。
    • ###共享账本
      • ####世界状态
        世界状态组件描述了在给定时间点的账本的状态。它是账本的数据库
      • ####交易日志
        记录产生世界状态中当前值的所有交易;这是世界状态的更新历史。然后,账本包括世界状态数据库和交易日志历史记录。交易日志不需要是可插拔的。它只记录区块链网络使用的账本数据库前后的值。
      • ####特性
        使用基于键的查找、范围查询和组合键查询来查询和更新账本 - 使用富查询语言的只读查询(如果使用 CouchDB 作为状态数据库) - 只读历史记录查询(查询键的账本历史记录),以支持数据溯源方案 - 包含链码读取的键/值的版本(读集)以及链码写入的键/值(写集)的交易 - 包含每个背书节点的签名,并提交给排序服务的交易 - 按顺序打包到区块,并从排序服务“分发”到通道上的节点的交易 - 节点根据背书策略验证交易并执行策略 - 在附加区块之前,执行版本检查以确保链码执行以后读取的资产的状态未发生更改 - 一旦交易被验证并提交,就不可改变 - 通道的账本包含了定义策略、访问控制列表和其他相关信息的配置区块 - 通道包含 Membership Service Provider 的程序实例,允许从不同的证书颁发机构派生加密材料
    • ###区块链网络
    • 一个为应用程序提供账本及智能合约(chaincode)服务的技术基础设施

      • R4 被分配作为网络的初始者,它有权设置网络的初始版本。R4 不会在网络中去进行任何的业务交易。**R1 和 R2 在整个网络中有进行私有通信的需求,R2 和 R3 也是。
      • 组织 R1 有一个客户端的应用能够在通道 C1 中进行业务的交易。**组织 R2 有一个客户端应用可以在通道 C1 和 C2 中进行类似的工作。组织 R3 可以在通道 C2 中做这样的工作。
      • 节点 P1 维护了 C1 的账本 L1 的副本。节点 P2 维护了 C1 的账本 L1 和 C2 的账本 L2 的副本。节点 P3 维护了 C2 的账本 L2 的副本。
      • 这个网络是根据在网络配置 NC4 中指定的规则来进行管理的,整个网络由组织 R1 和 R4 管理。通道 C1 是根据在通道配置 CC1 中指定的规则来管理的,这个通道由组织 R1 和 R2 管理。通道 C2 是根据在 通道配置 CC2 中指定的规则来管理的,这个通道由组织 R2 和 R3 管理
      • 这有一个排序服务 O4 作为这个网络 N 的一个网络管理员节点,并且使用系统通道。排序服务同时也支持应用通道 C1 和 C2,来对交易进行排序、加入区块然后分发。每个组织都有一个首选的 CA。
    • ###创建网络

      • 在我们的示例网络 N 中,排序服务 O4 由一个单独的节点组成,是根据一个网络配置 NC4 来进行配置的。在网络层面上,证书颁发机构 CA4 被用来向管理员和组织 R4 的网络节点分配身份信息。*
        证书颁发机构:CA4,它会被用来给管理者和网络节点颁发证书
        CA4 在我们的网络中扮演着重要的角色,因为它会分配 X.509 证书,这个证书能够用来识别属于组织 R4 的组件。由 CA 颁发的证书也可以用来为交易提供签名,来表明一个组织对交易的结果进行背书,背书是一笔交易可以被接受并记录到账本上的前提条件。
      • 可添加网络管理员


        尽管排序节点 O4 是运行在 R4 的基础设施上的,如果 R1 能够访问到的话就可以共享管理的权限。也就是说 R1 或者 R4 可以更新这个网络配置 NC4 来允许组织 R2 进行网络维护中的部分功能。通过这种方式,尽管 R4 运行着排序服务,但是 R1 在其中也具有着全部的管理员权限,R2 具有有限的创建新联盟的权限。排序服务通常是多节点的,也可以被配置为在不同组织中的不同节点上。比如,我们可能会在 R4 中运行 O4 并连接到 O2,O2 是在组织 R1 中的另一个排序节点。通过这种方式,我们就有了一个多节点、多组织的管理结构。
      • 定义联盟


        络管理员定义了一个包含两个成员的联盟 X1,包含组织 R1 和 R2。这个联盟的定义被存储在了网络配置 NC4 中,会在接下来的网络开发中被使用。CA1 和 CA2 是这两个组织对应的证书颁发机构。*
        由于 NC4 的配置方式,只有 R1 和 R4 能够创建新的联盟。这个图标显示了一个新的联盟 X1,它定义了 R1 和 R2 是它的联盟组织。我们也看到了 CA2 也被添加进来标识来自 R2 的用户。注意一个联盟可以包含任意数量的组织,这里我们仅包含了两个组织作为一个最简单的配置。
        我们能够看到联盟定义了网络中的一部分组织,他们共享了彼此能够交易的需求,在这个示例中就是 R1 和 R2 能够进行交易。这对于一组有着共同的目标的组织来说是有意义的。
      • 为联盟创建通道

        • 使用联盟 X1 为 R1 和 R2 创建的的通道 C1。这个通道通过通道配置 CC1 来进行管理,完全独立于网络配置。CC1 是由 R1 和 R2 管理的,他们在 C1 上具有同等的权利。R4 在 CC1 中是没有任何权利的。
        • 尽管 C1 是网络 N 中的一部分,它还是跟这个网络非常不同的。同时也要注意到组织 R3 和 R4 并没有在这个通道中,因为这个通道仅仅是为了处理在 R1 和 R2 之间进行的交易的。在上一步中,我们看到了 R4 是如何能够为 R1 分配权限来创建新的联盟。R4 同样也允许 R1 来创建通道。在这个图中,组织 R1 和 R4 创建了通道 C1。再次强调,一个通道可以包含任意数量的组织,但是我们目前只包含了两个组织,这是一个最简单的配置。
        • cc1是通道规则,只有被添加到cc1的用户才能跟c1通道交互
        • 一旦通道创建,只有通道配置指定组织才能控制。NC4任何改动不会对CC1造成影响。比如如果联盟定义 X1 被改动了,它不会影响通道 C1 的成员
      • 节点和账本


        一个 Peer 节点 P1 加入了通道 C1。物理上 P1 会存储账本 L1 的副本。P1 和 O4 可以使用通道 C1 来进行通信。​
        • Peer 节点是存储区块链账本副本的网络组件
          P1 的配置中一个关键部分就是一个由 CA1 颁发的 X.509 身份信息,它将 P1 和组织 R1 关联了起来。当 P1 启动之后,它就可以使用排序 O4 加入通道C1。当 O4 收到这个加入请求,它会使用通道配置 CC1 来决定 P1 在这个通道中的权限。比如,CC1 决定 P1 是否能够向账本 L1 中读取或写入信息。
      • 应用程序和智能合约链码


        智能合约 S5 被安装在了 P1 上。在组织 R1 中的客户端应用 A1 可以通过 Peer 节点 P1 使用 S5 来访问账本。A1、P1 和 O4 都加入了通道 C1,他们都可以使用由这个通道提供的通信设施。
        • 在我们的例子中,客户端应用 A1 是跟组织 R1 相关联的,尽管它处在 Fabric 区块链网络的外边,但它是可以通过通道 C1 跟网络相连的。
        • 客户端应用 A1 需要通过智能合约 S5 来获得账本 L1。
        • 把智能合约想象为管理交易,链码则管理着智能合约应该如何被打包部署
        • 定义链码
          链码会被安装在组织的 Peer 节点上,一个组织必须要批准一个链码定义,才能使用已经安装的智能合约来查询账本和为交易背书。
        • 背书策略
        • 调用智能合约
      • 完成网络


        这个网络通过增加新组织 R2 的基础设施变得更大了。具体来说,R2 添加了 Peer 节点 P2,它会存有账本 L1 的一个副本,和链码 S
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值