首页 文章

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

提问于
浏览
1

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

1.)世界各州

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

enter image description here

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

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

2.) Channels 和世界状态

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

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

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

显然,这意味着

Sarah看不到Adam和Bob之间的

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

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

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

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

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

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

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

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”记录?

1 回答

  • 1

    1.) World State - 状态数据库不包含历史记录,尽管有版本号,但只有当前版本存储在状态数据库中 .

    2.) Channels - Channels 是完全独立的,所以在你的例子中,Adam有两个配置文件,每个 Channels 一个 . 您的链代码(智能合约)将在每个渠道上单独安装和实例化 .

    3.) Composer 和资源管理器 - 完全不同 . 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调用事务) .

相关问题