Я хочу использовать частный сбор данных в моей сети.Поэтому я добавил
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, err: = 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 и т. Д., Но ничего не получилось.