我想在我的网络中使用私人数据收集。因此,我添加了
err = stub.PutPrivateData(“ privateData”,key,DATA)
在我的ChainCode中创建资产功能。
之前,我创建了一个集合,其中有2个组织可以访问此私有数据并将其保存在其SideDB中:
[{
"name": "privateData",
"policy": "OR('Org1MSP.member','Org2MSP.member')",
"requiredPeerCount": 0,
"maxPeerCount": 3,
"blockToLive":0,
"memberOnlyRead": true
}]
当我现在使用Org1创建资产+私有数据时,一切都成功了。我可以创建数据,也可以读取链上数据(使用常规查询GetState)成功并私有数据
valAsBytes,错误:= stub.GetPrivateData(“ privateData”,键)
当我现在确定为Org2MSP的对等节点并使用上面完全相同的查询对私有数据进行读取查询时,它会告诉我此错误:
GET_STATE failed: transaction ID: fc4de5a8a987765ab0ab4b6bc4f767249b4f74aefdad7e0036782faa4d95494e: private data matching public hash version is not available. Public hash version = &version.Height{BlockNum:0x2, TxNum:0x0}, Private data version = (*version.Height)
Hyperledger Fabric教程告诉我,当出现此错误时,调用组织无法访问此数据。但是我将此组织添加到了集合中的相关策略中。
您知道这里出了什么问题吗?我应该改变什么?我尝试交换策略/调整configtx等,但没有解决。