blockchain - Hyperledger Fabric 和 Sawtooth 有什么区别?

标签 blockchain hyperledger-fabric hyperledger

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

2年前关闭。




Improve this question




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

那两者的主要区别是什么?何时选择一个而不是另一个来实现区 block 链解决方案?

最佳答案

以下是在 Hyperledger Fabric 和 Hyperledger Sawtooth 之间进行选择时需要考虑的重要区别:

  • 许可/无许可
  • Hyperledger Sawtooth 支持许可和无许可的区 block 链网络。 Sawtooth 具有使用角色和权限的灵活方法。
  • Hyperledger Fabric 仅支持许可的区 block 链网络。 Fabric 通过可插拔的成员服务提供商 (MSP) 提供了一种规范/定义明确的方法,可实现更严格的治理框架。
  • 共识算法
  • Sawtooth 使用基于英特尔软件保护扩展 (SGX) 的耗时证明 (PoET) 来选举领导者根据随机等待时间来切割 block ,这是一种比传统工作证明更节能的方法,可以扩展到非常大的网络。
  • Fabric 支持可插入的共识算法将事务排序到 block 中,自 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 中,有多个隐私级别。您可以定义“ channel ”以在一组参与者之间实现完全的数据隔离,其中每个 channel 本质上都是它自己的私有(private)区 block 链。或者,当参与者需要在同一个区 block 链上进行交易时,您可以使用“私有(private)数据收集”,但将数据保密给交易者的子集(以及潜在的监管机构/审计员)。私有(private)数据是点对点共享的,哈希值存储在区 block 链上作为证据,以便所有对等方都可以验证交易。此外,您可以利用 Identity Mixer 来保持交易提交者的匿名性。
  • 交易流程
  • Hyperledger Sawtooth 支持 Order-Execute-Commit 的传统区 block 链流程。
  • Hyperledger Fabric 支持独特的背书模型,其中交易最初在一组对等点上执行,并遵循 Execute-Order-Commit 模型。可以在契约(Contract)级别或数据级别定义所需的背书人集。这种方法提高了可扩展性,防止合约代码中的不确定性,并使交易能够在如上所述的一组交易者之间私下执行。
  • 杂项
  • Hyperledger Sawtooth 支持将事务批处理作为工作单元,即批处理中的所有事务都已提交或没有提交。
  • Hyperledger Sawtooth 包含一个(通用)REST API 服务器
  • Hyperledger Fabric 支持来自智能合约链码的查询,可以使用键范围查询或 JSON 查询(​​当使用 CouchDB 作为状态数据库时)
  • 关于blockchain - Hyperledger Fabric 和 Sawtooth 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47023945/

    相关文章:

    hyperledger-fabric - 通过 cryptogen 创建的用户和通过 Fabric CA Server 注册的用户之间的区别

    go - 如何在Fabric SDK Go中添加集合配置?

    cryptography - 如何将导出的 Cosmos SDK 私钥转换为 Keplr 或 Metamask 可以导入的格式?

    java - 无法在 super 账本结构中调用链码

    hyperledger - 如何将区 block 链与 Hyperledger Fabric 连接起来?

    bash - super 账本结构 - docker 容器错误

    javascript - 如何将 json 文件(或 JavaScript 对象)上传到 NextJS 中的 IPFS?

    blockchain - 为什么我收到以下 Chainlink 错误 : cannot estimate gas

    ubuntu - 如何解决此错误?错误 : failed to create deliver client: failed to create new connection: context deadline exceeded

    go - 使用 docker 在本地运行链码时遇到问题