#hyperledger-fabric
#hyperledger-fabric
Вопрос:
Я хочу использовать сбор частных данных в своей сети. Поэтому я добавил
ошибка = заглушка.PutPrivateData («Приватные данные», ключ, ДАННЫЕ)
в моем цепном коде создаются функции Assets.
Предварительно я создал коллекцию, в которой 2 организации могли получить доступ к этим личным данным и для этого иметь их в своих сторонних хранилищах:
[{
"name": "privateData",
"policy": "OR('Org1MSP.member','Org2MSP.member')",
"requiredPeerCount": 0,
"maxPeerCount": 3,
"blockToLive":0,
"memberOnlyRead": true
}]
Когда я теперь создаю ресурс личные данные с помощью Org1, все прошло успешно. Я мог бы создать данные, а также могу успешно считывать данные в цепочке (с обычным запросом getState) и личные данные
valAsBytes, ошибка: = заглушка.GetPrivateData («Приватные данные», ключ)
Когда я теперь идентифицируюсь как одноранговый узел Org2MSP и выполняю запрос на чтение личных данных с точно таким же запросом сверху, он сообщает мне об этой ошибке:
GET_STATE failed: transaction ID: fc4de5a8a987765ab0ab4b6bc4f767249b4f74aefdad7e0036782faa4d95494e: private data matching public hash version is not available. Public hash version = amp;version.Height{BlockNum:0x2, TxNum:0x0}, Private data version = (*version.Height)
В руководстве Hyperledger Fabric сообщается, что при появлении этой ошибки вызывающая организация не имеет доступа к этим данным. Но я добавил эту организацию в соответствующую политику в коллекции.
У вас есть идеи, что здесь пошло не так? Что я должен изменить? Я пытался поменять политики / настроить configtx и т.д., Но ничего не получилось.
Комментарии:
1. Ok nvm, я сделал это сейчас. Все сделано правильно в приведенном выше. Я просто забыл запустить обновления канала. Теперь все работает нормально.
2. Как я могу запускать обновления канала?