首页 > 解决方案 > 从链码 [Fabric 1.2 或 1.3] 中识别执行链码的 Peer/Org

问题描述

我正在使用私有数据集合 (PDC) 并尝试为每个只有 1 个成员的组织(即组织本身)设置一个单独的 PDC。例如,在 3 org 网络中,我希望创建 3 个私有数据集合:

1)“org1-private”只有 Org1 作为成员,2)“org2-private”只有 Org2 作为成员,3)“org3-private”只有 Org3 作为成员

当客户端调用事务时,数据只需要在 2 个组织之间共享。客户端应用程序会将事务发送到 2 个相关的 Org 对等点,但在链码中,要写入给定组织上的正确 PDC,链码需要知道它正在哪个 Org/Peer 上执行。

从 Fabric 1.2 的链码中找到当前对等/组织的最佳方法是什么?

注意:我了解可以创建具有所有可能的组织对的 PDC 来解决此问题。在我的实验中,严格要求不要为每对创建私有数据集合。

标签: hyperledger-fabric

解决方案


您可以使用客户端身份链代码库。

https://github.com/hyperledger/fabric/tree/master/core/chaincode/lib/cid

这将从调用链码的证书中返回 MSPID:

mspid, err := cid.GetMSPID(stub)

推荐阅读