Определите одноранговый узел / организацию, выполняющий код цепи, из кода цепи [Fabric 1.2 или 1.3] - PullRequest
0 голосов
/ 09 января 2019

Я работаю с частными коллекциями данных (PDC) и пытаюсь настроить отдельный PDC для каждой организации, имеющей только 1 члена (т.е. саму организацию). Например, в сети из 3 организаций я ищу создание 3 частных коллекций данных:

1) "org1-private" только с Org1 в качестве участника, 2) "org2-private" только с Org2 в качестве участника, 3) "org3-private" только с Org3 в качестве участника

Когда клиент вызывает транзакцию, данные должны быть разделены только между двумя организациями. Клиентское приложение отправит транзакцию двум соответствующим узлам организации, но в коде цепочки, чтобы записать в правильный PDC данной организации, код цепочки должен знать, на какой организации / узле он выполняется.

Каков наилучший способ найти текущий партнер / организацию из цепочки кода в Fabric 1.2?

Примечание. Я понимаю, что для решения этой проблемы могут быть созданы PDC со всеми возможными парами Orgs. В моем эксперименте существует строгое требование НЕ создавать частные коллекции данных для каждой пары.

  • попытался вызвать GetLocalMSP из пакета: "github.com/hyperledger/fabric/msp/mgmt", но он возвращает адрес памяти

  • GetLocalMSP (). GetIdentifier () возвращает nil

    импорт ( mspmgmt "github.com/hyperledger/fabric/msp/mgmt" )

    fmt.Println (mspmgmt.GetLocalMSP ()) // печатает адрес памяти id, _: = mspmgmt.GetLocalMSP (). GetIdentifier () fmt.Println (id) // печатает nil

1 Ответ

0 голосов
/ 10 января 2019

Вы можете использовать библиотеку цепочек кодов идентификации клиента.

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

Это вернет MSPID из сертификата, использующего код цепи:

mspid, err := cid.GetMSPID(stub)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...