Hyperledger Fabric:世界各州,频道和“超级探险家”与“超级作曲家历史学家”

问题描述 投票:1回答:1

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

1.)世界各州

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

enter image description here

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

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

2.)频道和世界状态

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

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

此外,亚当和鲍勃之间有一个渠道。亚当和莎拉之间还有第二个通道。

显然,这意味着

  • Sarah看不到Adam和Bob之间的交易
  • 鲍勃看不到亚当和萨拉之间的交易

假设有一个名为“addCommentToProfile”的事务,可用于向其他配置文件添加注释。

假设Sarah发送交易“addCommentToProfile”,添加评论“你的头发看起来非常好!”到Adam的个人主页。

显然,Bob不会看到交易(因为它只是Adam和Sarah之间渠道的一部分。)

但这是交易的结果(一个新的评论“你的头发看起来非常好!”在Adam的个人资料中)也是看不见的?

换句话说,鉴于亚当参与两个不同的渠道 - 亚当还有两个不同的世界状态 - 一个是鲍勃可见的,一个是萨拉可见的?

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

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 Framework,那么“Hyperledger Explorer”简称为“Hyperledger Composer Historian”)?或者他们是两个不同的东西?如果它们是不同的东西:我怎样才能阻止业务网络的参与者访问“Hyperledger Explorer”记录?

hyperledger-fabric hyperledger-composer
1个回答
1
投票

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

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

3.)作曲家和资源管理器 - 完全不同。 Composer构建于Fabric之上,可以从底层Fabric创建抽象级别,并创建简化的编程模型。然后,Composer包含了一个Historian功能,使审计变得简单。

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

如果您选择不使用Composer,则History是Blockchains的关键功能,而Native Fabric编程模型允许您访问对象的History,但它并不像Composer中的Historian功能那么容易。

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

© www.soinside.com 2019 - 2024. All rights reserved.