Hyperledger Fabric和Sawtooth有什么区别?

37

Hyperledger FabricHyperledger Sawtooth都是用于构建分布式账本应用的平台,支持可插拔共识机制和智能合约(链码)。

它们之间的主要区别是什么?在实现区块链解决方案时选择其中一个的标准是什么?


1
这里有一些基本的想法:http://www.data-design.org/blog/hyperledger-project-fabric-sawtooth-lake-whats-all-this - Dalton Cézane
这里是:https://www.sdxcentral.com/articles/news/whats-the-difference-between-the-5-hyperledger-blockchain-projects/2017/09/ - Dalton Cézane
4个回答

59

在选择Hyperledger Fabric和Hyperledger Sawtooth之间需要考虑以下重要区别:

  • 许可/无许可

    • Hyperledger Sawtooth支持许可和无许可的区块链网络。Sawtooth使用角色和权限的灵活方法。

    • Hyperledger Fabric只支持许可的区块链网络。Fabric通过可插拔的成员服务提供商(MSP)提供规范化/明确定义的方法,从而实现更紧密的治理框架。

  • 共识算法

    • Sawtooth基于Intel的软件保护扩展(SGX)使用经过时间验证的证明(PoET)来选举领导者,根据随机等待时间切割块,比传统的工作量证明更加节能,能够实现对非常大的网络的扩展。

    • Fabric支持可插拔的共识算法来将交易排序到块中,自版本v1.0以来提供了Kafka支持,同时Raft和BFT的实现正在开发中。

  • 智能合约语言

    • Hyperledger Sawtooth支持Go、JavaScript、Java、Python、Rust和Ethereum Solidity等基于合约的语言。

    • Hyperledger Fabric支持Go、JavaScript、Java和Ethereum Solidity等基于合约的语言。

  • 隐私

    • 在Hyperledger Sawtooth中,同行可以访问所有交易数据。

    • 在Hyperledger Fabric中,有多个隐私级别。您可以定义“通道”以实现一组参与者之间的完全数据隔离,其中每个通道本质上是其自己的私有区块链。或者当参与者需要在同一区块链上进行交易但需要将数据保持私有时,可以使用“私有数据集合”。私有数据是点对点共享的,散列作为证据存储在区块链上,以便所有同行都可以验证交易。此外,您可以利用Identity Mixer来保护交易提交者的匿名性。

  • 交易流程

    • Hyperledger Sawtooth支持传统的区块链流程,即Order-Execute-Commit。

    • Hyperledger Fabric支持独特的认可模型,其中交易最初在一组对等节点上执行,并遵循Execute-Order-Commit模型。所需背书人的集合可以在合同级别或数据级别定义。这种方法提高了可伸缩性,在合同代码中防止非确定性,并允许如上所述在一组交易者之间私下执行交易。

  • 其他

    • Hyperledger Sawtooth支持将事务批处理作为工作单元,即批处理中的所有事务都被提交或全部不提交。

    • Hyperledger Sawtooth包括一个(通用的)REST API服务器。

    • Hyperledger Fabric支持从智能合约链码查询,可以使用键范围查询或JSON查询(在使用CouchDB作为状态数据库时)。


4
"轮毂与辐条不就是星型网络吗?" - user2939415
你提到Sawtooth支持非常大的网络。我认为它使用了一些类BFT共识算法,而这些算法并不是非常可扩展的。它们是吗? - Grigory
除了上述提到的要点之外,拜占庭容错支持也是Sawtooth和Fabric之间的另一个主要区别。在Fabric中运行的每个共识算法都无法提供拜占庭容错支持,它只支持崩溃容错。但是,Sawtooth的共识算法PoET是一种支持拜占庭容错的算法。这意味着Sawtooth具有拜占庭容错支持。 - Dushan

3

Hyperledger Sawtooth支持权限控制和无权限控制的区块链实现,而Hyperledger Fabric仅支持权限控制的区块链实现。


1
关于你的第二个问题:

When to choose one over the other to implement a blockchain solution?

在我看来,业务的定义区别在于Hyperledger Fabric允许您将数据的子集保留为参与者的子集私有。我认为每个现实生活中的业务网络最终都需要这个功能。

-8
在我看来,Hyperledger Sawtooth 更多地涉及资产管理和跟踪,基本上与资产的来源和真实性有关。
就 Hyperledger Fabric 而言,它是一种纯粹的分布式账本技术,具备为企业提供智能合约功能的能力。

Hyperledger Sawtooth和Fabric都是通用型的,且有相当大的重叠部分。两者都是授权的企业级DLT技术。Sawtooth更多地是一个纯区块链平台。 - Dan Anderson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接