【问题标题】:Hyperledger Fabric: world states, channels and "hyperledger explorer" vs "hyperledger composer historian"Hyperledger Fabric:世界状态、通道和“hyperledger explorer”与“hyperledger composer historian”
【发布时间】:2019-02-16 09:11:14
【问题描述】:

我有几个关于 Hyperledger-Fabric 的问题,但我在文档中没有找到明确的答案。

1.) 世界状态

账本由区块链(包含交易)和世界状态(存储在数据库中)组成。每笔交易都永久存储在区块链中。此外,似乎数据库不仅存储键/变量的当前值,还存储过去的版本(参见文档中的下图):

那么我的理解是正确的,即分类帐不仅保存所有交易,而且还保存所有曾经存在的世界状态? 如果是这样,为什么将所有状态从状态 0 保存到当前状态?为什么不只保存 a) 所有交易和 b) 只保存当前的世界状态?这还不够吗?

                    ****************************

2.) 频道和世界状态

假设我有一个 Hyperledger-Fabric 应用程序,不同的成员可以在其中评论彼此的个人资料图片。

进一步假设有三个成员(“组织”):Adam、Bob 和 Sara。

此外,Adam 和 Bob 之间还有一个通道。亚当和莎拉之间还有第二个频道。

显然,这意味着

  • Adam 和 Bob 之间的交易对 Sarah 不可见
  • Adam 和 Sarah 之间的交易对 Bob 不可见

假设有一个名为“addCommentToProfile”的事务,可用于将 cmets 添加到其他配置文件中。

假设 Sarah 发送交易“addCommentToProfile”,添加评论“你的头发看起来很不错!”到亚当的个人资料。

显然,交易对 Bob 是不可见的(因为它只是 Adam 和 Sarah 之间通道的一部分。)

但是交易的结果(亚当的个人资料上的一条新评论“你的头发看起来很不错!”)也是不可见的吗?

换一种说法,鉴于亚当参与两个不同的渠道 - 亚当是否也有两种不同的世界状态 - 一种对 Bob 可见,另一种对 Sarah 可见?

                 ****************************

3.) “Hyperledger Explorer”与“Hyperledger Composer Historian”

有“Hyperledger Composer Historian”(https://hyperledger.github.io/composer/v0.16/business-network/historian)和“Hyperledger Explorer”(https://www.hyperledger.org/projects/explorer

它们是一样的吗(即如果使用 Hyperledger Composer 框架,那么“Hyperledger Explorer”就简称为“Hyperledger Composer Historian”)?还是它们是两种不同的东西? 如果它们是不同的东西:如何防止业务网络的参与者访问“Hyperledger Explorer”记录?

【问题讨论】:

    标签: hyperledger-fabric hyperledger-composer


    【解决方案1】:

    1.) 世界状态 - 状态数据库不包含历史,虽然有版本号,但只有当前版本存储在状态数据库中。

    2.) 频道 - 频道是完全独立的,因此在您的示例中,Adam 有 2 个配置文件,每个频道都有一个。您的链码(智能合约)将在每个通道上单独安装和实例化。

    3.) Composer 和 Explorer - 完全不同。 Composer 构建在 Fabric 之上,以从底层 Fabric 创建一个抽象级别,并创建一个简化的编程模型。然后,Composer 包含了一个 Historian 功能以简化审计。

    您应该知道,Composer (IBM) 的主要代码贡献者已决定显着减少 Composer 的开发工作量,并专注于通过 Fabric Node SDK 改善开发人员体验。更多details of the decision are here。因此,如果您在短期内计划一个快速的 POC 或 Demo,Composer 非常有帮助,但如果您正在寻找一个重要的正在进行的开发项目,您可能需要仔细考虑。

    如果你选择不使用 Composer,History 是区块链的关键特性,原生 Fabric 编程模型允许你访问对象的 History,但它不像 Composer 中的 Historian 特性那么简单。

    Hyperledger Explorer 是 Hyperledger Fabric 的友好查看器(现在可以通过 REST API 调用事务)。

    【讨论】:

    • 非常感谢您的回答...这是非常重要的信息...从这个问题中出现了一个后续问题并给出了答案...我创建了一个新的在此处发布此后续问题:stackoverflow.com/questions/52295535/… ... 如果您也知道此后续问题的答案,请随时回复。
    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多