Hyperledger Fabric:技术概述 [Part I]

结构允许网络中的不同类型的参与者,这有利于链代码的分布式执行的执行顺序验证范式。

作者辩称,执行顺序验证相对于比特币和以太坊等区块链中常见的执行顺序范例具有优势。

认可对等方(认可方)执行(认可)智能合约(链码),并向区块链客户端返回已提交交易的验证输出,其中包含认可对等方的签名。此过程允许并行执行并处理不确定的代码。 Chaincode是Fabric网络中的核心元素,因为它规定了成员参与者应遵循的规则。它在Docker容器中运行,因此与共享分类账隔离。链码有两种类型:应用链码,执行应用逻辑并使用gRPC消息和系统链码与对等方通信,在配置通道上运行并用于存储生态系统的配置,例如MSP的定义, OSN的网络地址,有关共识的配置,订购服务参数以及有关如何更改通道配置的规则。 来源:https://hyperledger-fabric.readthedocs.io/en/release-1.4/peers/peers.html链代码可以动态部署,并且通常在网络上同时运行。它直接在对等方的流程上运行。配置通道存储MSP的定义,OSN的网络地址,关于共识的配置,订购服务参数以及有关如何调整通道配置的规则。

Chaincode针对世界状态数据执行交易建议,因为世界状态可以直接访问这些密钥的最新值。鉴于此,无需遍历整个事务日志并计算其值。

最终,chaincode的目标是修改共享分类帐。每个对等方都包含一个由块存储组成的分类帐组件,该组件存储包含交易的块和对等交易管理器(PTM)。每个通道都有一个不同的分类帐,因为通道强制执行链码和数据隔离。

通道允许参与者在有权可视化交易子集的参与者子集之间建立通信路径。

例如,在同一个网络中,可能有一个对等方的子集,它们只能访问某种交易。除通道外,Fabric还支持私有数据,这允许通道上组织的已定义子集将其数据与其他组织隔离。具体来说,具有权限的组织可以认可,提交或查询私有数据,这些数据在逻辑上与通道分类帐数据分开。如有争议,可以共享私人数据。为了进一步保护隐私,私有数据的哈希将通过订购程序而不是数据本身进行传递。它是点对点而不是通过块分发的。当必须防止对交易数据进行订购服务节点保密时,使用私有数据集合而不是渠道是一种解决方案。资料来源:https://vitalflux.com/hyperledger-fabric-channels-private-blockchain-deep-dive/

Fabric引入了一种混合复制模型,该模型将主动复制和被动复制(主备份复制,已移植到不受信任的环境)结合在一起。

关于主动复制或状态机复制,分类帐状态仅反映经过验证的交易和
就其订购达成共识。被动复制发生在背书者将事务处理的结果发送到提交节点时。 Fabric包含围绕数据的三个主要元素:世界状态,对应于分布式分类帐的版本化键值存储;交易日志,存储所有交易的历史记录(PTM); NoSQL数据库(例如CouchDB)存储世界状态。可以限制用户访问以查看和编辑特定字段,并且仅授权只读权限。与LevelDB相比,CouchDB支持针对整个区块链数据的复杂数据查询,使其成为数据分析和审计的合适解决方案。 LevelDB是另一个用于存储世界状态的内置选项。

它是一个简单,快速的键值存储库,提供了从字符串键到字符串值的有序映射。

虽然Fabric没有内置的加密货币,但可以使用链码创建基础令牌,该令牌可以表示资产或执行特定操作的权限。

可以通过交易在网络参与者之间交易所此类资产。

参与者可以在网络上拥有一个或多个对等节点。 Fabric在其模型上定义了几种对等节点:

  1. 致力于同行。每个对等方都维护分类帐当前状态的当前快照,作为键值存储。这样的对等体不能调用chaincode函数。
  2. 认可同行。支持者对等方已安装chaincode。当他们收到交易建议时,他们在隔离的容器上模拟交易执行。基于该模拟,此类对等方准备交易建议,然后将其发送给订购方对等方。背书者对等方的存在避免了所有对等方顺序执行事务。
  3. 订购者同级。订购者接收认可的交易并将其组装成块。在对交易进行分组之后,订购者通过将这样的区块传播到提交的对等方来确保共识,在此对它们进行验证,然后将其提交到共享分类账。订购者
    对等方记录有效和无效的交易,而其他对等方仅包含有效的交易。
  4. 对等体的类型。资料来源:https://hyperledger-fabric.readthedocs.io/en/release-1.4/peers/peers.html

此外,Fabric定义了锚点对等点和领导者对等点。

锚点对等点是组织对等点与外部对等点之间的中介。

领导对等方负责将交易从订购者分发到委托对等方。

Fabric解决方案的体系结构:为了达成共识,并假设在Hyperledger Fabric网络中存在部分信任的假设,Fabric使用了一种基于许可投票的方案,该方案可实现低延迟。

背书策略定义了对等方将使用的基于投票的方案,因此定义了每个对等方在交易有效性方面的权重。

遵循执行顺序验证范式的事务流如下:

  1. 交易建议。代表组织的区块链客户端创建交易提案,并将其发送给认可政策中定义的同行。提议包含有关提议者身份,交易有效负载,随机数和交易标识符的信息。
  2. 执行(背书):背书包含交易的模拟。背书者产生一个写集,其中包含密钥及其修改的值,以及一个读集。签注方也检查交易执行的正确性。背书将作为提案回复发送,其中包含写集,读集,交易ID,背书人的ID和背书人的签名。当客户收集到足够的认可(需要具有相同的执行结果)时,它将创建交易并将其发送给订购服务。认可阶段消除了任何最终的不确定性。
  3. 订单:背书之后,便是由订购者执行的订购阶段。订购服务检查在给定通道上提交交易建议的区块链客户端是否具有适当的权限(广播和接收权限)。排序产生的块包含每个通道按顺序排序的认可交易。该排序使网络可以达成共识。订购者将交易的输出广播给所有对等方。
  4. 验证。首先,每个对等方通过检查交易是否遵循相应的签注策略来验证接收到的交易。此后,将依次对块中的所有事务运行读写冲突检查。对于每笔交易,它会将读取中心化的密钥版本与分类账上当前的密钥版本进行比较。它检查值是否相同。如果它们不匹配,则对等方将丢弃该事务。最后,更新分类帐,其中分类帐将创建的块追加到其头部。分类帐附加有效性检查的结果,包括无效的交易。
  5. 执行订单验证摘要。来源:https://akeo.tech/blog/blockchain-and-dlt/understanding-hyperledger-fabric/在下一篇文章中,将对会员服务提供商,订购服务和同行八卦进行分析和讨论,非常感谢阅读。 You Rock Rock我是TécnicoLisboa的博士研究人员,我在这里教授以用户为中心的设计。我是Hyperledger和Linux基金 supported支持和资助的基于Hyperledger Fabric的访问控制项目的导师。目前,我是葡萄牙政府的区块链开发人员。我愿意合作并讨论区块链技术?如果您喜欢区块链和开源,请务必查看我的Github赞助商页面?参考资料:

  • Elli Androulaki,Yacov Manevich,Srinivasan Muralidharan,Chet Murthy,Binh Nguyen,Manish Sethi,Gari Singh,Keith Smith,Alessandro Sorniotti,Chrysoula Stathakopoulou和Et al。 Hyperledger Fabric:适用于许可的分布式操作系统
    区块链2018年第十三届EuroSys会议论文集
  • 超级账本基金会。 Hyperledger Fabric文档,2018年.URL https://hyperledger-fabric.readthedocs.io/en/release-1.4。于2018-11-12访问
  • Marko Vukolic。重新考虑许可的区块链。在ACM关于区块链,加密货币和合约的研讨会论文集,第3-7页,2017年
资讯来源:由0x资讯编译自HACKERNOON。版权归作者所有,原文链接:https://hackernoon.com/a-hyperleder-fabric-summarized-overview-z91jz3zje。未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢