Тайм-аут соединения при установке цепного кода с использованием fabric-sdk-go - PullRequest
0 голосов
/ 11 июня 2018

У меня проблема в том, что при установке цепного кода с использованием fabric-sdk-go всегда есть тайм-аут grpcs.Запрос GRCPS выполняется с локального компьютера в его контейнеры-докеры.

ErrorMsg:

lscc.getinstalledchaincodes сбой: сбой SendProposal: обработка транзакции для endorser [localhost: 7051]: EndorserКод статуса клиента: (2) CONNECTION_FAILED.Описание: истекло время ожидания соединения [localhost: 7051]

ENV:

Mac OSX

Версия докера: 18.03.1-ce

docker-compose версия 1.21.1, сборка 5a3f1a3

fabric-sdk-go: master

Локальная сеть фабрики настроена официальной фабрикойПример: .

docker-compose.yaml: Gist

local network-config.yaml: Gist

клиентское приложение go: Гист

Что-то не так с моим network-config.yaml ???

Что я пробовал:

  1. Попытка отключить CORE_PEER_TLS_CLIENTAUTHREQUIRED в docker-compose.yaml, не удалось ..

  2. Отредактированный файл / etc / hosts со строкой 127.0.0.1 peer1-xiaoyudian ..., не удалось ..

  3. Увеличены параметры peer.timeout.connections и других параметров таймаута в network-config.yaml, не удалось ..

  4. УвеличеноgrpcOptions.keep-alive-time в network-config.yaml, не удалось ..

  5. Изменен хост peers.xxxx.url с локального хоста на домен в network-config.yaml, не удалось ...

  6. Добавлен entityMathcers в network-config.yaml, не удалось ...

  7. Failed ....

Ответ: Кто-то из rocket.chat сказал мне:

  1. run: экспорт GRPC_GO_LOG_SEVERITY_LEVEL = ошибка
  2. run: экспорт GRPC_GO_LOG_VERBOSITY_LEVEL = 2
  3. в коде клиента добавьте эту строку: grpclog.SetLogger (logger)

И в журнале говорится, что это проблема с сертификатом для рукопожатия с пирами.

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

См. https://github.com/hyperledger/fabric-sdk-go/tree/master/test/fixtures/config/overrides о том, как URL-адреса переопределяются для использования localhost.В вашем случае вы должны использовать local_entity_matchers.yaml & local_orderers_peers_ca.yaml, объединенные в предоставленных примерах.

Еще одна вещь, которую я заметил в вашем network-config.yaml, отображаемое имя хоста совпадает с фактическим именем партнера.Entity Matcher не пинает здесь.См. Сопоставления сущностей, использованные в приведенном выше примере.

0 голосов
/ 12 июня 2018

Вы можете попробовать изменить localhost на домен в сети.Пример: с peer: localhost -> peer1-xiaoyudian ... с orderer: localhost -> orderer1-themis ... то же самое с ca, и используйте matcher для сопоставления имени партнера, orderer, ca с вашимIP-адрес.

...