我正在与私有数据收集(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
答案 0 :(得分:0)
您可以使用客户端身份链代码库。
https://github.com/hyperledger/fabric/tree/master/core/chaincode/lib/cid
这将从调用链码的证书中返回MSPID:
mspid, err := cid.GetMSPID(stub)