Hyperledger Fabric v0.6 с использованием Docker Toolbox

Я использую Docker Toolbox в Windows для запуска Hyperledger Fabric v0.6. Peer и CA успешно запущены. Когда я запускаю следующую команду:

CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02.

В итоге с ошибкой:

"Ошибка при попытке подключения к локальному узлу: grpc: время ожидания истекло при наборе номера"

Я изменил 0.0.0.0:7051 на внутренний IP-адрес файла dockerfile_vp0_1, 172.17.0.3 :7051, но в итоге получил ту же ошибку.

Я следую инструкциям с https://github.com/hyperledger/fabric/blob/v0.6.1-preview/docs/Setup/Chaincode-setup.md, а также я нахожусь за корпоративным брандмауэром.

Не могли бы вы помочь?

Я так понимаю, что CORE_PEER_ADDRESS — это IP-адрес пира, тогда что такое CORE_VM_ENDPOINT?


person aksh    schedule 03.01.2017    source источник
comment
Может кто-нибудь, пожалуйста, помогите мне с вышеуказанным запросом.   -  person aksh    schedule 05.01.2017


Ответы (1)


Ключевым фактором является место, где запускается команда CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02.

Я могу воспроизвести те же результаты, что и при запуске docker-compose up, получении кода chaincode_example02 на хосте Windows, построении кода цепочки в Windows и последующем открытии нового окна Docker Quickstart. Я изменил каталог на каталог $GOPATH/src/github.com/chaincode_example02, а затем выполнил указанную выше команду. Результаты совпадают с результатами, указанными в вопросе.

Выполнение команды из контейнера Docker для однорангового образа должно привести к другим результатам.

  1. После запуска docker-compose up на основе файла docker-compose.yml откройте другое окно Docker Quickstart.
  2. Перейдите в файловую систему однорангового узла с помощью команды, подобной этой: docker exec -it <substitute container name>_vp0_1 bash. Чтобы найти имя контейнера, вы можете сначала запустить docker ps.
  3. Оказавшись в одноранговой файловой системе, вы можете проверить используемые порты, просмотрев файл /opt/gopath/src/github.com/hyperledger/fabric/peer/core.yaml. «listenAddress» для однорангового узла отмечен как 0.0.0.0:7051.
  4. Команду netstat -an можно использовать для проверки того, что порт 7051 находится в состоянии прослушивания.
  5. Если партнер не прослушивает порт 7051, убедитесь, что запущена команда peer node start --peer-chaincodedev. Это должно было произойти из-за файла docker-compose.yml, поскольку это последний оператор в этом файле.
  6. Перейдите к /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 в одноранговой файловой системе и запустите go build.
  7. Оставайтесь в том же каталоге chaincode_example02 и выполните команду CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS:0.0.0.0.7051 ./chaincode_example02.
person Andrew Tharp    schedule 06.01.2017
comment
Я выполнил шаги, которые вы упомянули, и команда работает нормально. Спасибо. Если мне нужно разместить измененный чейнкод, нужно ли размещать его в контейнере докеров? Кроме того, я хотел бы использовать Node HFC SDK для Hyperledger с помощью Docker Toolbox. Существуют ли какие-либо документы, которые помогут мне использовать Node HFC SDK с помощью Docker Toolbox? - person aksh; 13.01.2017
comment
Chaincode работает в контейнере Docker. Однако в Hyperledger Fabric версии 0.6.1 нет функций для обновления чейнкода после его развертывания. Что касается клиента Hyperledger Fabric, я не думаю, что существует специальная документация по использованию Docker Toolbox. Основная документация по клиенту Hyperledger Fabric доступна по адресу console.ng.bluemix. .net/docs/services/blockchain/etn_sdk.html. - person Andrew Tharp; 18.01.2017