Hyperledger Fabric 和 Sawtooth 有什么区别?
What's the difference between Hyperledger Fabric and Sawtooth?
两者Hyperledger Fabric and Hyperledger Sawtooth都是构建分布式账本应用程序的平台,支持可插入的共识机制和智能合约(链码)。
它们之间的主要区别是什么?何时选择其中一个来实施区块链解决方案?
Hyperledger Sawtooth 支持许可和非许可区块链实施,而 Hyperledger Fabric 仅支持许可区块链实施。
在我看来,Hyperledger Sawtooth 与资产管理和跟踪更相关,基本上与资产的出处和真实性有关。
就 Hyperledger Fabric 而言,它是具有企业智能合约功能的纯 DLT。
以下是在 Hyperledger Fabric 和 Hyperledger Sawtooth 之间进行选择时需要考虑的重要区别:
Permissioned/Permissionless
Hyperledger Sawtooth 同时支持许可和非许可区块链网络。 Sawtooth 具有使用角色和权限的灵活方法。
Hyperledger Fabric 仅支持经过许可的区块链网络。 Fabric 有一种 prescriptive/well-defined 方法,通过可插入的成员服务提供商 (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 中,有多个级别的隐私。您可以定义“通道”以实现一组参与者之间的完全数据隔离,其中每个通道本质上都是其自己的私有区块链。或者,当参与者需要在同一区块链上进行交易时,您可以使用“私人数据收集”,但将数据保密给一部分交易者(并且可能 regulators/auditors)。私有数据是点对点共享的,哈希值存储在区块链上作为证据,以便所有节点都可以验证交易。此外,您可以利用 Identity Mixer 来保护交易提交者的匿名性。
交易流程
Hyperledger Sawtooth支持Order-Execute-Commit的传统区块链流程。
Hyperledger Fabric 支持独特的背书模型,其中交易最初在一组对等节点上执行,并遵循执行-订单-提交模型。所需的背书者集可以在合同级别或数据级别定义。这种方法提高了可扩展性,防止合同代码中的不确定性,并使交易能够在如上所述的一组交易者之间私下执行。
其他
Hyperledger Sawtooth 支持将事务批处理作为一个工作单元,即要么提交批处理中的所有事务,要么提交其中的 none 个。
Hyperledger Sawtooth 包括一个(通用的)REST API 服务器
Hyperledger Fabric 支持来自智能合约链代码的查询,使用键范围查询或 JSON 查询(当使用 CouchDB 作为状态数据库时)
关于你的第二个问题:
When to choose one over the other to implement a blockchain solution?
在我看来,业务的决定性区别在于 Hyperledger Fabric 允许您将数据子集保留给一部分参与者。
我相信每个现实生活中的商业网络最终都会需要这个。
两者Hyperledger Fabric and Hyperledger Sawtooth都是构建分布式账本应用程序的平台,支持可插入的共识机制和智能合约(链码)。
它们之间的主要区别是什么?何时选择其中一个来实施区块链解决方案?
Hyperledger Sawtooth 支持许可和非许可区块链实施,而 Hyperledger Fabric 仅支持许可区块链实施。
在我看来,Hyperledger Sawtooth 与资产管理和跟踪更相关,基本上与资产的出处和真实性有关。
就 Hyperledger Fabric 而言,它是具有企业智能合约功能的纯 DLT。
以下是在 Hyperledger Fabric 和 Hyperledger Sawtooth 之间进行选择时需要考虑的重要区别:
Permissioned/Permissionless
Hyperledger Sawtooth 同时支持许可和非许可区块链网络。 Sawtooth 具有使用角色和权限的灵活方法。
Hyperledger Fabric 仅支持经过许可的区块链网络。 Fabric 有一种 prescriptive/well-defined 方法,通过可插入的成员服务提供商 (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 中,有多个级别的隐私。您可以定义“通道”以实现一组参与者之间的完全数据隔离,其中每个通道本质上都是其自己的私有区块链。或者,当参与者需要在同一区块链上进行交易时,您可以使用“私人数据收集”,但将数据保密给一部分交易者(并且可能 regulators/auditors)。私有数据是点对点共享的,哈希值存储在区块链上作为证据,以便所有节点都可以验证交易。此外,您可以利用 Identity Mixer 来保护交易提交者的匿名性。
交易流程
Hyperledger Sawtooth支持Order-Execute-Commit的传统区块链流程。
Hyperledger Fabric 支持独特的背书模型,其中交易最初在一组对等节点上执行,并遵循执行-订单-提交模型。所需的背书者集可以在合同级别或数据级别定义。这种方法提高了可扩展性,防止合同代码中的不确定性,并使交易能够在如上所述的一组交易者之间私下执行。
其他
Hyperledger Sawtooth 支持将事务批处理作为一个工作单元,即要么提交批处理中的所有事务,要么提交其中的 none 个。
Hyperledger Sawtooth 包括一个(通用的)REST API 服务器
Hyperledger Fabric 支持来自智能合约链代码的查询,使用键范围查询或 JSON 查询(当使用 CouchDB 作为状态数据库时)
关于你的第二个问题:
When to choose one over the other to implement a blockchain solution?
在我看来,业务的决定性区别在于 Hyperledger Fabric 允许您将数据子集保留给一部分参与者。
我相信每个现实生活中的商业网络最终都会需要这个。