首页 > 解决方案 > 如何在单通道上的 Hyperledger Fabric 上的两个链码之间共享数据?

问题描述

我已经开始学习 Hyperledger Fabric 和 Composer。我可以使用 Composer 创建一个简单的业务网络并将其部署在 Fabric 上,但我有一个问题。假设我有 2 个 BNA(在单通道上实例化)文件,它们都具有相同的命名空间 ( org.example) 并且具有相同的参与者名称,因为 Customer (标识符将是org.example.Customer)。有什么方法可以访问由第一个业务网络应用程序在另一个业务网络应用程序中创建的参与者?从逻辑上讲,我能想到的是,由于两者都已在具有不同链代码和相同模型文件的同一通道中实例化,因此数据应该是可以交叉访问的。但事实并非如此。

标签: hyperledger-fabrichyperledgerhyperledger-composer

解决方案


尽管链码在安装在同一通道上时共享相同的分类帐(并且由于业务网络只是链码,这也适用于它们)。Fabric 仍然通过它的链码 id 对链码可以读/写的数据进行分区。因此,当您将 2 个业务网络安装到同一通道上时,它们将具有不同的链码 id,因此它们的数据是单独分区的。

正如另一个答案中提到的(尽管链接不太正确),您可以做的是利用 composer 的功能来调用与正在执行的业务网络相同甚至不同的通道上的另一个业务网络。由于 2 个业务网络位于同一通道上,您不仅可以读取信息,还可以调用可以更改信息的事务。(如果业务网络在不同的渠道上,您只能阅读信息)。

本教程的正确链接在这里 https://hyperledger.github.io/composer/latest/tutorials/invoke-composer-network 不幸的是,本教程相当基础,仅提供了如何与其他业务网络交互的一瞥。


推荐阅读