Пытаюсь использовать консенсус Raft в Hyperledger Fabric 1.4.1, но получаю SERVICE_UNAVAILABLE — ошибка лидера Raft отсутствует

#hyperledger-fabric

#hyperledger-fabric

Вопрос:

В настоящее время я работаю над своим проектом последнего года, и мне нужна помощь в отношении Raft.

Я создаю сеть с помощью Hyperledger Fabric 1.4.1, используя руководство «Создание вашей первой сети», и я хочу вручную сгенерировать артефакты, канал, присоединиться к каналу… Я выбрал Raft в качестве алгоритма консенсуса. Но я получаю сообщение об ошибке:

 Error: got unexpected status: SERVICE_UNAVAILABLE -- no Raft leader
 

Вот мой код: code

Что мне делать?

Ответ №1:

Существует проблема при запуске сетевого сеанса. Для создания docker-compose вам нужно добавить еще 1 файл. проблема в том, что ваш сценарий raft не вызывается при запуске сетевого сеанса

вместо docker-compose -f docker-compose-cli.yaml up -d

попробуйте поместить

 docker-compose -f docker-compose-cli.yaml -f docker-compose-etcdraft2.yaml up -d
 

Ответ №2:

Поскольку вы используете 1.4.1, вам, вероятно, следует использовать Raft, а не Kafka для механизма согласования заказов.

Чтобы использовать Raft, вы должны иметь возможность запускать:

./byfn.sh up -o etcdraft

Если вы должны / действительно хотите использовать Kafka:

./byfn.sh up -o kafka

Комментарии:

1. Но я хочу сам запускать команды. Я ввожу следующую команду: ../bin/configtxgen -profile SampleDevModeKafka -channelId byfn-sys-channel -outputBlock ./channel-artifacts/genesis.block но позже при добавлении канала я получаю сообщение об ошибке. Даже с Плотом. Должен ли я что-то изменить в файлах yaml?

2. чтобы узнать, нужно ли что-то менять, предоставьте нам соответствующие фрагменты кода

3. Хорошо, я обновил свой вопрос и добавил код. @kajuken

4. не могли бы вы добавить к вопросу журналы контейнера orderer? также — имейте в виду, что для стабилизации orderer требуется несколько секунд после его запуска.