Hyperledger Orderer ‹-› одноранговое соединение разрывается через некоторое время в MS Azure

У меня в облаке 2 разных машины.

Контейнеры на первой машине:

orderer.mydomain.com
peer0.org1.mydomain.com
db.peer0.org1.mydomain.com
ca.org1.mydomain.com

Контейнеры на второй машине:

peer0.org2.mydomain.com
db.peer0.org2.mydomain.com
ca.org2.mydomain.com

Я запускаю их обоих. Я могу заставить их обоих присоединиться к одному каналу. Я развертываю BNA, экспортированную из Hyperledger Composer, для обоих партнеров. Я отправляю транзакции на peer0.org1.mydomain.com и запрашиваю и получаю те же результаты от peer0.org2.mydomain.com.

Пока все работает отлично.

Однако через 5-10 минут одноранговый узел на второй машине (peer0.org2) отключается от заказчика. Когда я отправляю транзакции в org1, я могу запрашивать их у org1 и видеть результаты. Но org2 отключается. Не принимает новый TX. (соединение с заказчиком пропало) Я могу запросить org2 и увидеть старые результаты.

Я добавил CORE_CHAINCODE_KEEPALIVE = 30 к моим одноранговым переменным env. Я вижу действия по сохранению активности в журналах пиров org2. Но мою проблему не решило.

Следует отметить: контейнеры находятся в сети докеров, называемой «базовой». Эта сеть использовалась на моем локальном компьютере. Однако он по-прежнему работает в облаке.

В журналах заказов:

Error sending to stream: rpc error: code = Internal desc = transport is closing

Это происходит каждый раз, когда я пытаюсь. Но когда я запускаю эти контейнеры на своем локальном компьютере, они без проблем остаются подключенными.

EDIT1: после проверки журналов: peer0.org2 получает все tx и отправляет их заказчику. Заказчик получает запросы от однорангового узла, но не может обновлять одноранговые узлы. Я могу подключиться как к requestUrl, так и к eventUrl на проблемном одноранговом узле. Нет проблем с сетью.


person Baran Baygan    schedule 23.09.2017    source источник
comment
Предоставьте конфигурацию (переменные среды и т. Д.) Одноранговых узлов. Также, если вы можете последовательно воспроизвести проблему, не могли бы вы предоставить нам журнал трассировки tcpdump для анализа?   -  person yacovm    schedule 23.09.2017
comment
@yacovm Я добавил все файлы config и docker compose в свой вопрос после вашего комментария.   -  person Baran Baygan    schedule 23.09.2017
comment
на самом деле это похоже на то, о чем стоит сообщить проекту JIRA: jira.hyperledger.org/secure /Dashboard.jspa.   -  person Artem Barger    schedule 24.09.2017


Ответы (1)


Думаю, я нашел проблему. Речь идет о сети MS Azure. Через 4 минуты лазурь отключает неактивные соединения:

https://discuss.pivotal.io/hc/en-us/articles/115005583008-Azure-Networking-Connection-idle-for-more-than-4-minutes

РЕДАКТИРОВАТЬ1:

Да, проблема была в MS Azure. Если кто-то пытается запустить Hyperledger в Azure, имейте в виду, что если одноранговый узел простаивает более 4 минут, лазурное время отключает TCP-соединения. Вы можете настроить его на тайм-аут в 30 минут. Это не ошибка, но нас раздражало то, что мы не могли понять, почему он не работал через 4 минуты.

Таким образом, вы можете использовать свой собственный сервер или другое облачное решение или использовать Azure, адаптировавшись к их правилам.

person Baran Baygan    schedule 24.09.2017
comment
Есть ли репозиторий на github с вашей конфигурацией фабричной сети, на котором можно было бы учиться? Поделись, пожалуйста. - person appbootup; 02.04.2018