Ошибка контейнера при создании канала во время работы fabcar (fabric-sample) - PullRequest
0 голосов
/ 30 июня 2018

Освоение Hyperledger и попытка запустить учебник fabcar по Hyperledger-Fabric, но каждый раз при попытке создания канала в скрипте startFabric.sh я получаю сообщение об ошибке.

Вот ошибка:

Ошибка ответа от демона: контейнер 3640f4fca98aef120a2069292a3fc613954a0fbe7c625a31c2843ec643462 не работает

Запустил все предварительные требования и перечисленные команды, клонировал последние образцы фабрики, обновил узел, попытался увеличить время запуска. Но все же есть эта ошибка. Если кто-нибудь знает, где я иду не так, буду очень признателен за помощь в решении. Заранее спасибо.

Возможно, стоит упомянуть, что я работаю в Windows 7 и использую Docker Toolbox.

Вывод startFabric.sh показан ниже.

$ ./startFabric.sh node

# don't rewrite paths for Windows Git Bash users
export MSYS_NO_PATHCONV=1

docker-compose -f docker-compose.yml down
Stopping ca.example.com ... done
Stopping couchdb        ... done
Removing peer0.org1.example.com ... done
Removing orderer.example.com    ... done
Removing ca.example.com         ... done
Removing couchdb                ... done
Removing network net_basic

docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdb
Creating network "net_basic" with the default driver
Creating ca.example.com      ... done
Creating couchdb             ... done
Creating orderer.example.com ... done
Creating peer0.org1.example.com ... done

# wait for Hyperledger Fabric to start
# incase of errors when running later commands, issue export FABRIC_START_TIMEOUT=<larger number>
export FABRIC_START_TIMEOUT=10
#echo ${FABRIC_START_TIMEOUT}
sleep ${FABRIC_START_TIMEOUT}

# Create the channel
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
Error response from daemon: Container 4ebfce361f3e71dd2d678efca1dbf1853cc5387b491f706917b8c54013ec6a80 is not running

вывод Docker PS:

$ docker ps
CONTAINER ID        IMAGE                        COMMAND                  CRED             STATUS              PORTS                                      AMES
2d93296f3cb1        hyperledger/fabric-couchdb   "tini -- /docker-entâ¦"   13nutes ago      Up 13 minutes       4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcpcouchdb
6b8638d0ecaf        hyperledger/fabric-ca        "sh -c 'fabric-ca-seâ¦"   13nutes ago      Up 13 minutes       0.0.0.0:7054->7054/tcp                    ca.example.com

docker ps -a вывод:

$ docker ps -a
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS                      PORTS                                        NAMES
4ebfce361f3e        hyperledger/fabric-peer      "peer node start"        15 minutes ago      Exited (1) 15 minutes ago                                                peer0.org1.example.com
1187120cdcd0        hyperledger/fabric-orderer   "orderer"                15 minutes ago      Exited (1) 15 minutes ago                                                orderer.example.com
2d93296f3cb1        hyperledger/fabric-couchdb   "tini -- /docker-entâ¦"   15 minutes ago      Up 15 minutes               4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp   couchdb
6b8638d0ecaf        hyperledger/fabric-ca        "sh -c 'fabric-ca-seâ¦"   15 minutes ago      Up 15 minutes               0.0.0.0:7054->7054/tcp                       ca.example.com

Ответы [ 4 ]

0 голосов
/ 22 января 2019

Для меня эта проблема была вызвана передачей тома из WSL (Windows Subsystem для Linux - доступна в Windows 10) в Docker. Используйте Kitematic для просмотра ваших док-контейнеров (см. Скриншот ниже и обратите внимание, как путается папка). Нажмите на контейнер и перейдите в «Настройки» и «Объемы». При изменении громкости вручную он работал правильно.

В моем случае, docker автоматически меняет \ c на C: image

Мне удалось решить эту проблему с помощью этого трюка: https://superuser.com/questions/1195215/docker-client-on-wsl-creates-volume-path-problems/1203233 WSL монтирует диски Windows в / mnt / (поэтому / mnt / c / = C :). Если мы создадим точку привязки / c /, это позволит Docker правильно интерпретировать это как C: \

Вот процесс:

Свяжите диск и загрузите матрицу в каталог пользователя Windows, используя следующий набор команд (по одной за раз)

sudo mkdir /c

sudo mount --bind /mnt/c /c

cd /c/Users/YOUR_WINDOWS_USERNAME #(go to C:\Users to see what its called)

mkdir blockchain #(or whatever you want to call it)

cd blockchain

curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz

tar -xvf fabric-dev-servers.tar.gz

cd ~/fabric-dev-servers

export FABRIC_VERSION=hlfv12

./downloadFabric.sh

Теперь вы сможете успешно запустить Fabric

./startFabric.sh

Он может попросить вас поделиться диском C с докером. Вы должны сделать это. Вы можете проверить точки монтирования объема и контейнеры в Kitematic, как показано ниже

image

0 голосов
/ 03 июля 2018

Фактическая проблема заключается в том, что местоположение /etc/hyperledger/msp/peer/signcerts недоступно. Почему-то кажется, что Docker Toolbox ищет это место в домашнем каталоге. Итак, проверьте домашний каталог в Docker VM, используя echo $HOME (в моем случае это C:/Users/knwny) и затем поместите папку fabric-samples в это место. Это решило проблему для меня.

0 голосов
/ 12 июля 2018

Получил эту работу, повторно выполнив инструкции по установке ткани: http://hyperledger -fabric.readthedocs.io / en / latest / prereqs.html

Следующая процедура была полностью выполнена в учетной записи Windows с правами администратора

Начальные шаги:

  • Установить переменную среды GOPATH
  • Проверено, что Go правильно строит исполняемые файлы

Все последующие шаги в powershell в режиме администратора

  • Запустил npm install npm@5.6.0 -g
  • sudo apt-get install python (обратите внимание, что для меня эта команда завершилась неудачно, но все равно имел python и, похоже, работал нормально, так как не мог найти sudo)
  • Проверено, что Python 2.7 установлен правильно
  • Установить git config --global core.autocrlf false
  • Установить git config --global core.longpaths true
  • Запустил npm install --global windows-build-tools
  • Запуск npm install --global grpc

Выполнил следующее в Git Bash, потому что cURL не работал в powershell:

  • curl -sSL http: / /bit.ly/2ysbOFE | bash -s 1.2.0

Обратите внимание, что для успешной работы вышеуказанной команды мне нужно было запустить Docker в оболочке, то есть запустить Docker Toolbox с установленным сценарием start.sh (я запустил Git Bash и работал нормально).

Наконец, в registerUser.js и enrollAdmin.js изменили локальный хост, чтобы он был IP-адресом, указанным в докере при запуске.

fabric_ca_client = new Fabric_CA_Client('http://localhost:7054', null , '', crypto_suite);

После этого я перезапустил Fabric-samples 1) first-network и 2) fabcar, и они работали, как и ожидалось! Я думаю, что я пропустил GoPath и не смог успешно установить команду cURL при первой попытке.

Спасибо Nhat Duy и knwny за помощь в решении этой проблемы.

0 голосов
/ 02 июля 2018

Попробуйте сделать:

  • Удалить все контейнеры - docker rm -f $ (docker ps -aq)

  • Удаление сети - удаление сети в Docker

  • Удалить образ цепочки (если есть) - docker rmi dev-peer0.org1.example.com

  • Перезапустить докер

  • Запустите startFabric.sh еще раз.

Надеюсь, вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...