如何在单通道 Hyperledger Fabric 上的两个链代码之间共享数据?

How to share data between two chaincodes on Hyperledger Fabric on Single Channel?

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

是否提供了有关如何从一个 bna 与另一个 bna 进行交互的教程。

此处 link 官方 Hyperledger Composer 文档。

https://hyperledger.github.io/composer/latest/tutorials/invoke-composer-network

虽然链码在安装在同一通道上时共享相同的账本(并且由于业务网络只是链码,这也适用于它们)。 Fabric 仍然根据链代码 ID 对链代码可以 read/write 的数据进行分区。因此,当您将 2 个业务网络安装到同一个频道时,它们将具有不同的链代码 ID,因此它们的数据将单独分区。

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

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