Как включить обнаружение роли при присоединении к каналу от партнера - PullRequest
0 голосов
/ 12 февраля 2020

У меня возникает следующая ошибка при попытке выполнить транзакцию с использованием службы обнаружения из Fabri c Java SDK

org.hyperledger.fabric.sdk.exception.ServiceDiscoveryException: The channel is not configured with any peers with the 'discover' role

Я подключился к каналу с помощью команды одноранговой оболочки, а не Fabri c Java SDK. Как настроить эту роль обнаружения в канале, если он уже подключен?

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Я придумал точную недостающую часть кода. Надеюсь, это поможет кому-то с подобной проблемой. Это было просто вопрос добавления необходимых peerRoles в виде @david_k комментариев:

У меня было:

channel.addPeer(peer);

и замена его на исправленную проблему:

channel.addPeer(peer, createPeerOptions().setPeerRoles(EnumSet.of(PeerRole.SERVICE_DISCOVERY, PeerRole.LEDGER_QUERY, PeerRole.EVENT_SOURCE, PeerRole.CHAINCODE_QUERY)));
0 голосов
/ 12 февраля 2020

Концепция роли discover - это концепция Fabri c Java SDK. Когда вы создаете определение канала с помощью SDK и добавляете к нему одноранговый узел, вам необходимо определить, что этот одноранговый узел имеет роль обнаружения.

Это все обрабатывается для вас, если вы используете fabri c -gateway - java пакет SDK, а не пакет fabri c -sdk- java. Пакет fabri c -gateway- java обеспечивает более простую возможность ввода клиентских приложений fabri c в java, хотя и не так мощно, как использование fabri c -sdk- java.

...