Узел-заказчик завершает работу в течение нескольких секунд после выполнения команды «network. sh up» - PullRequest
2 голосов
/ 14 января 2020

Я изучаю Hyperledger Fabri c из авторизованной документации и следую инструкциям, приведенным здесь .

Я выполнил следующие шаги в соответствии с документацией для установки и запуска примеров приложений.

  1. Установлены все необходимые компоненты согласно документации.
  2. Клонированный репозиторий github из https://github.com/hyperledger/fabric-samples.
  3. Ран bootstrap. sh скрипт согласно командам, упомянутым в файле readme.md (без указания какой-либо указанной c версии в качестве параметров командной строки, думая, что она установит правильные последние версии). Эта команда загрузила все двоичные файлы в папку bin.
  4. Выполнена команда sudo ./network.sh up в папке test-network. Он показал, что запущены 2 одноранговых узла и 1 узел-заказчик.

Однако, когда я попытался создать канал с использованием ./network.sh createChannel, он выдал ошибку как

Ошибка: не удалось создать клиент доставки: клиенту orderer не удалось подключиться к localhost: 7050: не удалось создать новое соединение: ошибка соединения: des c = "транспорт: ошибка при наборе номера: набрать tcp 127.0.0.1:7050: соединение: соединение отклонено" !!!!!!!!!!!!!!! Не удалось создать канал !!!!!!!!!!!!!!!! ========= ОШИБКА !!! Не удалось выполнить сценарий конца-2-конца =========== Ошибка !!! Ошибка создания канала

Итак, когда я проверил состояние узлов с помощью docker ps -a, он дал мне следующий вывод.

ИД КОНТЕЙНЕРА ИЗОБРАЖЕНИЕ КОМАНДА СОЗДАННЫЕ ИМЕНА СОСТОЯНИЯ ПОРТОВ СОСТОЯНИЯ

978968f8e11e hyperledger / fabri c -peer: последний "запуск узла однорангового узла" Около минуты a go Вверх Около минуты 0.0.0.0:9051->9051/tcp peer0.org2.example.com

89914237b249 hyperledger / fabri c -заказчик: последний "заказчик" Около минуты a go Выход (2) Около минуты a go orderer.example.com

7e79abb2aefa hyperledger / fabri c -peer: последний "запуск узла peer" Около минуты a go Up Около минуты 0.0.0.0:7051->7051/tcp peer0.org1.example.com

0fa38487cdf4 hello-world "/ hello" 4 часа a go Exited (0) 4 часа a go brave_galileo

Я также получаю следующее предупреждение всякий раз, когда пытаюсь выполнить network.sh команда -

LOCAL_VERSION = 1.4.4 Базовое изображение0.4.18

DOCKER_IMAGE_VERSION = 1.4.4

======= ============ ПРЕДУПРЕЖДЕНИЕ ===================

Local Fabri c двоичные файлы и docker изображения несинхронно c. Это может вызвать проблемы.

================================================= ===

Я не знаю, где проверить, какие двоичные файлы применимы к каким docker изображениям.

Я пробовал несколько способов сохранить узел заказа, делая все с нуля , предоставляя права доступа ко всем папкам с образцами fabri c, последовательность запуска по сети. sh, перезагружая сеть. sh и еще несколько вещей, о которых я могу думать, но все равно я не могу сохранить узел-заказчик жив.

Также я заметил, что в документации упоминается утверждение, что Устанавливают бинарные файлы и файлы конфигурации Hyperledger Fabri c, определяемые платформой c, для версии, указанной в каталоги / bin и / config в fabri c -samples

Однако я не нашел ни одной папки bin и config в данном репозитории github.

Ответы [ 3 ]

1 голос
/ 20 января 2020

После множества попыток проб и ошибок я наконец-то смог заставить его работать.

Прежде всего, я переустановил пример проекта fabri c, используя следующую команду, и убедился, что у меня есть правильные двоичные файлы и docker изображений (вместо того, чтобы собирать все последние) -

# Fetch bootstrap.sh from fabric repository using
curl -sS https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh -o ./scripts/bootstrap.sh
# Change file mode to executable
chmod +x ./scripts/bootstrap.sh
# Download binaries and docker images - **check out the version below**
./scripts/bootstrap.sh 1.4.4 -s

С этим я мог избавиться от предупреждений, с которыми я имел отношение к несинхронным c локальным файлам fabri c и docker images.

После этого я попытался выполнить следующие шаги по устранению неполадок, которые привели меня к проблемной области -

  1. Я выполнил все вышеперечисленные команды ./network.sh, но не смог чтобы сохранить узел заказчика.

  2. Я решил выполнить каждую сеть. sh команду вручную в командной строке, поскольку она входит в сценарий последовательно. При этом я увидел, что нет проблем с функциями checkPrereqs и createOrgs. CreateOrgs функция становится успешной в обоих направлениях - с использованием инструмента шифрования и CA.

  3. Я закомментировал createConsortium функцию и выполнил команду ./network.sh up, которая поддержала узел заказчика.

  4. Обнаружено, что createConsortium пытается сгенерировать блок genesis в папке system-genesis-block и по какой-то причине вместо создания файла с именем genesis -block , была папка только для чтения с именем genesis-block , из-за которой команда configtxgen не выполнялась.

Таким образом, я удалил чтение -только разрешения этого блока и удалили папку genesis-block и повторно запустите команду ./network.sh down и ./network.sh up после отмены комментариев функции createConsortium, что привело к генерации блока genesis файл , а не папка и, таким образом, наконец, мне удалось сохранить живой узел заказчика.

После этого я мог успешно создать канал с помощью следующей команды.

./network.sh createChannel
0 голосов
/ 27 февраля 2020

Благодаря лучшему ответу мне удалось получить скрипт ./network.sh createChannel, работающий с изменением разрешений файла блока генезиса :

chmod 664 system-genesis-block/genesis.block
0 голосов
/ 27 января 2020

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

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