докерная версия игровой площадки композитора не может подключиться к локальной среде выполнения hlf 1.0.0-alpha

Я следил за быстрым запуском Hyperledger Composer для Hyperledger Fabric 1.0.0-alpha, и у меня есть работающая Hyperledger Fabric, работающая локально. Я загрузил последний (0.7.2) образ докера для игровой площадки композитора и запустил его в соответствии с инструкциями концентратора докеров, но я не могу подключиться к моему локально работающему hlfv1, когда я определяю URL-адреса

"type": "hlfv1",
"orderers": [
    "grpc://localhost:7050"
],
"ca": "http://localhost:7054",
"peers": [
    {
        "requestURL": "grpc://localhost:7051",
        "eventURL": "grpc://localhost:7053"
    },
    {
        "requestURL": "grpc://localhost:7056",
        "eventURL": "grpc://localhost:7058"
    }
],
"keyValStore": "/home/ubuntu/.hfc-key-store",
"channel": "mychannel",
"mspID": "Org1MSP",
"deployWaitTime": "300",
"invokeWaitTime": "100"

Пользовательский интерфейс зависает с вращающимся значком на кнопке. В чем проблема?


person david_k    schedule 22.05.2017    source источник


Ответы (1)


Это связано с тем, что docker-compose запускает среду выполнения Hyperledger Fabric в собственной сети. Если вы следовали краткому руководству, то созданная сеть будет называться «hlfv1_default». Когда вы запускаете другой док-контейнер, если вы явно не укажете, какую сеть вы хотите, чтобы он был частью, он будет добавлен в «мост». Это изолирует среды друг от друга. Посмотреть сети можно с помощью команды

docker network ls

Чтобы контейнеры Docker Composer взаимодействовали с вашей локальной фабрикой, вам необходимо убедиться, что она подключена к локальной сети фабрики. Например, если ваша локальная структура находится в сети hlfv1_default, вы можете подключить игровую площадку композитора к этой сети с помощью команды

docker run --network hlfv1_default --name composer-playground --publish 8080:8080 --detach hyperledger/composer-playground

После того, как вы это сделаете, вы можете создать профиль подключения, однако вы не можете использовать локальный хост, вы должны использовать имена хостов, созданные с помощью docker-compose. Для быстрого запуска в настоящее время, который использует hlf v1.0.0-alpha (в отличие от alpha2), вы должны использовать профиль подключения, который выглядит как

"type": "hlfv1",
"orderers": [
    "grpc://orderer0:7050"
],
"ca": "http://ca0:7054",
"peers": [
    {
        "requestURL": "grpc://peer0:7051",
        "eventURL": "grpc://peer0:7053"
    },
    {
        "requestURL": "grpc://peer1:7056",
        "eventURL": "grpc://peer1:7058"
    }
],
"keyValStore": "/home/composer/.hfc-key-store",
"channel": "mychannel",
"mspID": "Org1MSP",
"deployWaitTime": "300",
"invokeWaitTime": "100"

обратите внимание на замену localhost именами служб из файла docker-compose, используемого для запуска локальной структуры: «orderer0», «ca0», «peer0», «peer1».

Полезным инструментом является команда docker network inspect, которая покажет вам, какие контейнеры используют эту сеть.

person david_k    schedule 22.05.2017
comment
Вы были правы, они использовали разные сети. Однако проблема остается прежней: пользовательский интерфейс зависает с вращающимся значком на кнопке. - person neuromouse; 28.05.2017
comment
Были ли какие-либо данные в журналах игровой площадки docker logs composer-playground? - person david_k; 28.05.2017
comment
Эта ошибка из логов выглядит актуальной: 0|composer | Ошибка: Ошибка подключения 0|композитор | at ClientDuplexStream._emitStatusIfDone (/usr/local/lib/node_modules/composer-playground/node_modules/fabric-client/node_modules/grpc/src/node/src/client.js:201:19) 0|композитор | at ClientDuplexStream._readsDone (/usr/local/lib/node_modules/composer-playground/node_modules/fabric-client/node_modules/grpc/src/node/src/client.js:169:8) 0|композитор | в readCallback (/usr/local/lib/node_modules/composer-playground/node_modules/fabric-client/node_modules/grpc/src/node/src/client.js:229:12) - person neuromouse; 28.05.2017
comment
Следующая строка: PM2 | Приложение [composer-playground] с идентификатором [0] и pid [74], завершено с кодом [1] через сигнал [SIGINT] - person neuromouse; 28.05.2017
comment
В вашем случае определенно проблема со связью. Существует также известная проблема, из-за которой пользовательский интерфейс зависает с сообщением о развертывании образца сети. - person david_k; 29.05.2017