Hyperledger Fabric:世界状态、通道和 "hyperledger explorer" 与 "hyperledger composer historian"
Hyperledger Fabric: world states, channels and "hyperledger explorer" vs "hyperledger composer historian"
我有几个关于 Hyperledger-Fabric 的问题,我没有在文档中找到明确的答案。
1.) 世界状态
分类帐由区块链(包含交易)和世界状态(存储在数据库中)组成。每笔交易都永远存储在区块链中。此外,数据库似乎不仅存储了 keys/variables 的当前值,而且还存储了过去的版本(请参阅文档中的下图):
那么我的理解是否正确,分类帐不仅保存所有交易,还保存曾经存在的所有世界状态?
如果是这样,为什么要保存从状态 0 到当前状态的所有状态?为什么不只保存 a) 所有交易和 b) 仅保存当前世界状态?这还不够吗?
****************************
2.) 通道和世界状态
假设我有一个 Hyperledger-Fabric 应用程序,不同的成员可以在其中评论彼此的个人资料图片。
进一步假设有三个成员 ("organisations"):Adam、Bob 和 Sara。
此外,Adam 和 Bob 之间存在一个通道。 Adam 和 Sarah 之间还有第二个通道。
显然,这意味着
- Adam 和 Bob 之间的交易对 Sarah 不可见
- 鲍勃看不到亚当和莎拉之间的交易
假设有一个名为 "addCommentToProfile" 的事务,可用于向其他配置文件添加评论。
假设 Sarah 发送交易 "addCommentToProfile",将评论 "your hair looks very good!" 添加到 Adam 的个人资料。
显然,这笔交易对 Bob 是不可见的(因为它只是 Adam 和 Sarah 之间通道的一部分。)
但是交易的结果(Adam 个人资料上的新评论 "your hair looks very good!")也是不可见的吗?
换句话说,鉴于 Adam 参与了两个不同的频道 - Adam 是否也有两种不同的世界状态 - 一种对 Bob 可见,一种对 Sarah 可见?
****************************
3.) "Hyperledger Explorer" 对比 "Hyperledger Composer Historian"
有"Hyperledger Composer Historian" (https://hyperledger.github.io/composer/v0.16/business-network/historian) and there is "Hyperledger Explorer" (https://www.hyperledger.org/projects/explorer)
它们是一回事吗(即,如果使用 Hyperledger Composer Framework,那么 "Hyperledger Explorer" 就简称为 "Hyperledger Composer Historian")?或者它们是两种不同的东西?
如果它们不同 things:how 我可以阻止业务网络的参与者访问 "Hyperledger Explorer" 记录吗?
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 是 Blockchains 的关键特性,原生的 Fabric 编程模型允许你访问一个对象的 History,但它不像 Composer 中的 Historian 特性那么容易。
Hyperledger Explorer 是 Hyperledger Fabric 的友好查看器(现在可以通过 REST API 调用交易)。
我有几个关于 Hyperledger-Fabric 的问题,我没有在文档中找到明确的答案。
1.) 世界状态
分类帐由区块链(包含交易)和世界状态(存储在数据库中)组成。每笔交易都永远存储在区块链中。此外,数据库似乎不仅存储了 keys/variables 的当前值,而且还存储了过去的版本(请参阅文档中的下图):
那么我的理解是否正确,分类帐不仅保存所有交易,还保存曾经存在的所有世界状态? 如果是这样,为什么要保存从状态 0 到当前状态的所有状态?为什么不只保存 a) 所有交易和 b) 仅保存当前世界状态?这还不够吗?
****************************
2.) 通道和世界状态
假设我有一个 Hyperledger-Fabric 应用程序,不同的成员可以在其中评论彼此的个人资料图片。
进一步假设有三个成员 ("organisations"):Adam、Bob 和 Sara。
此外,Adam 和 Bob 之间存在一个通道。 Adam 和 Sarah 之间还有第二个通道。
显然,这意味着
- Adam 和 Bob 之间的交易对 Sarah 不可见
- 鲍勃看不到亚当和莎拉之间的交易
假设有一个名为 "addCommentToProfile" 的事务,可用于向其他配置文件添加评论。
假设 Sarah 发送交易 "addCommentToProfile",将评论 "your hair looks very good!" 添加到 Adam 的个人资料。
显然,这笔交易对 Bob 是不可见的(因为它只是 Adam 和 Sarah 之间通道的一部分。)
但是交易的结果(Adam 个人资料上的新评论 "your hair looks very good!")也是不可见的吗?
换句话说,鉴于 Adam 参与了两个不同的频道 - Adam 是否也有两种不同的世界状态 - 一种对 Bob 可见,一种对 Sarah 可见?
****************************
3.) "Hyperledger Explorer" 对比 "Hyperledger Composer Historian"
有"Hyperledger Composer Historian" (https://hyperledger.github.io/composer/v0.16/business-network/historian) and there is "Hyperledger Explorer" (https://www.hyperledger.org/projects/explorer)
它们是一回事吗(即,如果使用 Hyperledger Composer Framework,那么 "Hyperledger Explorer" 就简称为 "Hyperledger Composer Historian")?或者它们是两种不同的东西? 如果它们不同 things:how 我可以阻止业务网络的参与者访问 "Hyperledger Explorer" 记录吗?
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 是 Blockchains 的关键特性,原生的 Fabric 编程模型允许你访问一个对象的 History,但它不像 Composer 中的 Historian 特性那么容易。
Hyperledger Explorer 是 Hyperledger Fabric 的友好查看器(现在可以通过 REST API 调用交易)。