Hyperledger Fabric 和 Sawtooth 有啥区别? [关闭]
Posted
技术标签:
【中文标题】Hyperledger Fabric 和 Sawtooth 有啥区别? [关闭]【英文标题】:What's the difference between Hyperledger Fabric and Sawtooth? [closed]Hyperledger Fabric 和 Sawtooth 有什么区别? [关闭] 【发布时间】:2018-04-11 22:42:07 【问题描述】:Hyperledger Fabric 和 Hyperledger Sawtooth 都是用于构建分布式账本应用程序的平台,支持可插拔共识机制和智能合约(链码)。
那么两者的主要区别是什么?何时选择一个而不是另一个来实施区块链解决方案?
【问题讨论】:
这里有一些基本的想法:data-design.org/blog/… 这里:sdxcentral.com/articles/news/… 【参考方案1】:以下是在 Hyperledger Fabric 和 Hyperledger Sawtooth 之间进行选择时需要考虑的重要区别:
许可/无许可
Hyperledger Sawtooth 支持许可和无许可的区块链网络。 Sawtooth 采用灵活的方法使用角色和权限。
Hyperledger Fabric 仅支持获得许可的区块链网络。 Fabric 通过可插拔的成员服务提供商 (MSP) 采用规范/明确定义的方法,从而实现更严格的治理框架。
共识算法
Sawtooth 使用基于英特尔软件保护扩展 (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 作为状态数据库时)
【讨论】:
hub andspoke 和star network 不是一回事吗? 您提到 Sawtooth 支持非常大的网络。我认为它使用了一些类似 BFT 的共识,这些都不是很可扩展。是吗? 除了上述几点之外,拜占庭容错支持也是 Sawtooth 和 Fabric 之间的另一个主要区别。 Fabric 中运行的每个共识算法都无法提供拜占庭容错支持,它只支持崩溃容错。但 Sawtooth 的共识算法 PoET 是拜占庭容错支持的算法。这意味着 Sawtooth 带有拜占庭容错支持。【参考方案2】:Hyperledger Sawtooth 支持许可和无许可的区块链实现,而 Hyperledger Fabric 仅支持许可的区块链实现。
【讨论】:
【参考方案3】:关于你的第二个问题:
When to choose one over the other to implement a blockchain solution?
在我看来,对于业务而言,定义的区别在于 Hyperledger Fabric 允许您将数据子集保持为参与者子集的私有。
我相信每个现实生活中的商业网络最终都会需要这个。
【讨论】:
【参考方案4】:在我看来,Hyperledger Sawtooth 更多的是与资产管理和跟踪相关,基本上与资产的出处和真实性有关。
就 Hyperledger Fabric 而言,它是纯 DLT,具有企业智能合约功能。
【讨论】:
Hyperledger Sawtooth 和 Fabric 都是通用的,并且有相当多的重叠。两者都是许可的企业 DLT 技术。 Sawtooth 更像是一个纯粹的区块链平台。以上是关于Hyperledger Fabric 和 Sawtooth 有啥区别? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Hyperledger Fabric 核心模块Fabric-ca-server