Я столкнулся с этой конкретной проблемой при развертывании очень простой сети блокчейнов на Docker Swarm с использованием Hyperledger Fabri c v1.4.4. В нем есть 2 организации (по 2 одноранговых узла), 5 заказчиков (консенсус Raft), 2 CA (по одному для каждой организации) и 4 couchDB (по 1 на каждого участника).
Проблема возникает, когда я пытаюсь присоединиться сверстники каналов, которые я только что создал. Сообщение, которое отображается на терминале:
Ошибка: ошибка при получении клиента индоссатора для канала: клиенту индоссанта не удалось подключиться к peer0org1: 7051: не удалось создать новое соединение: превышен крайний срок контекста
И когда я go через журналы на этом узле, я вижу сообщение, которое привлекло мое внимание:
createTransport -> DEBU 13 c grp c: addrConn.createTransport не удалось подключиться к {peer1car1: 8051 0}. Ошибка: ошибка подключения: des c = "транспорт: сбой подтверждения аутентификации: x509: сертификат действителен для peer1.org1, peer1, а не peer1org1". Переподключение ...
И фактическое сообщение об ошибке:
UT C [core.comm] ServerHandshake -> ERRO 1b9 TLS handshake с ошибкой удаленной ошибки: tls: bad сертификат сервера = удаленный адрес PeerServer = 10.0.2.7: 50504
Затем я начал искать файл crypto-config.yaml и docker -compose.yaml, используемый для развертывания моего стека. В файле crypto-config.yaml я объявил ключ домена de как «org1», и, как вы можете видеть в журналах, сертификат действителен для peer1org1. Но вот проблема, когда я объявляю имя службы "peer0.org1", я получаю сообщение об ошибке от Swarm, в котором говорится, что это недопустимое имя.
Я знаю, я знаю. Сообщение в журнале предназначено для другого участника, но есть ли изменение, которое связано с этой проблемой? Любые идеи о том, как решить эту проблему?
По другой теме: я новичок в мире контейнерных оркестров и хотел бы узнать ваше мнение. Вы бы использовали Kubernetes или Swarm для развертывания сети блокчейнов Hyperledger Fabri c в производстве?