Hyperledger Fabric和Hyperledger Sawtooth都是构建分布式分类帐应用程序的平台,支持可插入的共识机制和智能合约(链代码)。
之间有什么主要区别?什么时候选择一个来实现区块链解决方案?
答案 0 :(得分:46)
以下是在Hyperledger Fabric和Hyperledger Sawtooth之间进行选择时需要考虑的重要差异:
<强>有权限/ Permissionless 强>
Hyperledger Sawtooth支持许可和无权限的区块链网络。 Sawtooth使用角色和权限采用灵活的方法。
Hyperledger Fabric仅支持经过许可的区块链网络。 Fabric通过可插入的成员服务提供商(MSP)实现了规范/明确定义的方法,从而实现更严格的治理框架。
共识算法
Sawtooth使用基于英特尔软件保护扩展(SGX)的经过时间证明(PoET)来选出领导者根据随机等待时间削减数据块,这是一种比传统工作证明更节能的方法扩展到非常大的网络。
Fabric支持可插入的一致性算法,可以将事务排序为块,自版本v1.0开始提供Kafka支持,开发中使用Raft和BFT实现。
智能合约语言
Hyperledger Sawtooth支持Go,JavaScript,Java,Python,Rust和以太坊符合性合同。
Hyperledger Fabric支持Go,JavaScript,Java和以太坊符合性合同。
隐私强>
在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作为状态数据库时)
答案 1 :(得分:2)
Hyperledger Sawtooth支持允许和无权限的区块链实现,而Hyperledger Fabric仅支持允许的区块链实现。
答案 2 :(得分:0)
第二个问题:
When to choose one over the other to implement a blockchain solution?
在我看来,业务的根本区别是Hyperledger Fabric允许您将一部分数据保留给参与者的一部分。
我相信每个现实生活中的业务网络最终都会要求这样做。
答案 3 :(得分:-7)
在我看来,Hyperledger Sawtooth是更相关的资产管理和跟踪,基本上与资产的出处和真实性有关。
就Hyperledger Fabric而言,它是纯DLT,具有智能合约功能,适用于企业。