Это связано с тем, что 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