如何从不同的链码访问同一个账本?

How to access same ledger from different chaincodes?

假设我有 2 个节点(peer0 和 peer1)和 2 个链码(1.完全权限 2.only 查询)。

我希望 peer0 拥有完整的调用权限,而 peer1 仅具有可用的查询,但安装和实例化不同的链代码会创建不同的分类帐,因此来自 peer1 的查询始终为空。

那么我怎样才能从不同的链代码访问同一个账本呢?

key-value 数据的范围实际上是 channel/chaincode(这意味着它不在通道范围内,通道中的每个链代码实例管理自己的状态)。

所以,如果你想 "share" key/value 链代码之间的状态,唯一的方法就是总是让一个链代码调用另一个链代码,或者你可以稍微扩展一下并创建一个第三个链码,它简单地管理 get/put 操作,并让其他链码在处理 "shared" 状态时始终调用它。