Hyperledger Fabric和Hyperledger Sawtooth都是用于构建分布式账本应用的平台,支持可插拔共识机制和智能合约(链码)。
它们之间的主要区别是什么?在实现区块链解决方案时选择其中一个的标准是什么?
Hyperledger Fabric和Hyperledger Sawtooth都是用于构建分布式账本应用的平台,支持可插拔共识机制和智能合约(链码)。
它们之间的主要区别是什么?在实现区块链解决方案时选择其中一个的标准是什么?
在选择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作为状态数据库时)。
Hyperledger Sawtooth支持权限控制和无权限控制的区块链实现,而Hyperledger Fabric仅支持权限控制的区块链实现。
When to choose one over the other to implement a blockchain solution?