У меня в облаке 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 на проблемном одноранговом узле. Нет проблем с сетью.