Сеть с приложением Hyperledger на android не предоставляет одноранговых узлов - PullRequest
0 голосов
/ 16 июня 2020
• 1000 *, при вызове Network network = gateway.getNetwork("mychannel"); возникает ошибка: IllegalArgumentException: одноранговые узлы не предоставлены .

Из-за сетевого аргумента getChaincodeQueryPeersForOrganization(DefaultQueryHandlers.java:50) он не дает мне набор одноранговых узлов и вызывает ошибка SingleQueryHandler.java:29.

Я думаю о файле connection-org2.yaml , но не вижу, что не так. (По умолчанию Java приложение не работает правильно)

Как я могу указать правильную сеть с правильными узлами?

Полная ошибка:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: iti.paper.ch.paper_test, PID: 9568
    java.lang.IllegalArgumentException: No peers provided
        at org.hyperledger.fabric.gateway.impl.query.SingleQueryHandler.<init>(SingleQueryHandler.java:29)
        at org.hyperledger.fabric.gateway.DefaultQueryHandlers.lambda$static$0(DefaultQueryHandlers.java:30)
        at org.hyperledger.fabric.gateway.-$$Lambda$DefaultQueryHandlers$A9xv6yy6Ls07YnjWxZKkScD7PTQ.create(Unknown Source:0)
        at org.hyperledger.fabric.gateway.DefaultQueryHandlers.create(DefaultQueryHandlers.java:73)
        at org.hyperledger.fabric.gateway.impl.NetworkImpl.<init>(NetworkImpl.java:54)
        at org.hyperledger.fabric.gateway.impl.GatewayImpl.getNetwork(GatewayImpl.java:252)
        at iti.paper.ch.paper_test.Issue.main(Issue.java:56)
        at iti.paper.ch.paper_test.MainActivity$1.onClick(MainActivity.java:29)

1 Ответ

0 голосов
/ 08 июля 2020

Ваш SDK использует connection-org2.yaml для заполнения представления сети в значительной степени на стороне клиента. Об остальном позаботится обнаружение службы, на случай, если впоследствии произойдут какие-либо изменения. и укажите роли партнеров. Ошибка, которую вы видите, связана с тем, что не существует одноранговых узлов, определенных с ролями запрос цепочки ing. Вы делаете это, изменяя профиль подключения и добавляя детали, подобные этому ..

  channels: //name if the channel
    mychannel:
     peers:
      peer0.org2.example.com:
       endorsingPeer: false //this is a role
       chaincodeQuery: true //this is a role
       discover: true // this is a role
      peer1.org2.example.com:
       endorsingPeer: false
       chaincodeQuery: true
       discover: true

Попробуйте это и перезапустите вашу сеть. Имейте в виду, что скрипты по умолчанию также регенерируют любые профили подключения с помощью шаблона.

...