从链码[Fabric 1.2或1.3]

时间:2019-01-09 16:25:58

标签: hyperledger-fabric

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

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

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

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

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

  • 尝试从包“ github.com/hyperledger/fabric/msp/mgmt”中调用GetLocalMSP,但它返回一个内存地址

  • GetLocalMSP()。GetIdentifier()返回nil

    导入(   mspmgmt“ github.com/hyperledger/fabric/msp/mgmt” )

    fmt.Println(mspmgmt.GetLocalMSP())//打印内存地址 id,_:= mspmgmt.GetLocalMSP()。GetIdentifier() fmt.Println(id)//打印nil

1 个答案:

答案 0 :(得分:0)

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

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

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

mspid, err := cid.GetMSPID(stub)