Ошибка при проверке транзакции создания канала для создания нового канала в сети Hyperledger Fabri c - PullRequest
0 голосов
/ 02 апреля 2020

Фон

Я пытаюсь завершить sh руководство по эксплуатации Fabri c CA , чтобы лучше понять детали настройки TLS. Тем не менее, я застрял на Create and Join Channel part.

Аналогичный вопрос был задан здесь на peer-channel-creation-fails-in-hyperledger-fabri c, но иногда одни и те же ошибки могут иметь разные причины.

Я безуспешно следовал инструкциям вышеупомянутого решения. Ошибка, которую я получаю при попытке создать канал:

Error: got unexpected status: BAD_REQUEST -- error validating channel creation transaction for new channel 'mychannel', could not successfully apply update to template configuration: error authorizing update: error validating DeltaSet: policy for [Group]  /Channel/Application not satisfied: implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Admins' sub-policies to be satisfied

Среда

Мои версии для Docker изображений:

  • Docker версия двигателя: 19.03.8;
  • Docker Изображение и версия CA: hyperledger / fabri c -ca: 1.4.6;
  • Docker Изображение и версия peer: hyperledger / fabri c -peer: 2.0;
  • Docker Изображение и версия заказа: hyperledger / fabri c -заказчик: 2.0;
  • Docker Изображение и версия инструментов (CLI): hyperledger / fabri c -инструменты: 2.0.

Воспроизведение ошибки

Я создал репозиторий на GitHub, куда я поместил коды, на которые ссылаются ссылки: fabri c -ca-operations-guide .

  1. Я начинаю с выполнения tearup-docker-cas.sh, чтобы создать все образы Docker для ЦС и, следовательно, структуры каталогов в / tmp / hyperledger / :

    curl -sSL https://raw.githubusercontent.com/hanesbarbosa/fabric-ca-operations-guide/master/tearup-docker-cas.sh | bash -s

  2. Когда я проверяю, что все изображения запущены и работают, с помощью команды docker ps Я создаю криптографический материал, используя setup-crypto.sh:

    curl -sSL https://raw.githubusercontent.com/hanesbarbosa/fabric-ca-operations-guide/master/setup-crypto.sh | bash -s

  3. Затем я загружаю файл configtx.yaml в мой текущий каталог:

    curl -sSL https://raw.githubusercontent.com/hanesbarbosa/fabric-ca-operations-guide/master/configtx.yaml -o ./configtx.yaml

  4. Теперь я готов установить переменную среды FABRIC_CFG_PATH , чтобы я мог создать блок генеза и транзакцию канала с помощью сценария create_genesis_block_channel_tx.sh. Артефакты будут доступны по адресу / tmp / hyperledger / org0 / orderer / :

    curl -sSL https://raw.githubusercontent.com/hanesbarbosa/fabric-ca-operations-guide/master/create_genesis_block_channel_tx.sh | bash -s

  5. Поскольку блок генезиса доступен, Теперь мы можем создать изображение заказа, используя tearup-docker-peers.sh. Этот скрипт также создает все инструменты пиров и контейнеров:

    curl -sSL https://raw.githubusercontent.com/hanesbarbosa/fabric-ca-operations-guide/master/tearup-docker-peers.sh | bash -s

После шага 5 Я готов создать канал , Поэтому я использую следующую команду для использования контейнера cli-org1 :

docker exec -it cli-org1 bash -c "export CORE_PEER_MSPCONFIGPATH=/tmp/hyperledger/org1/admin/msp; peer channel create -c mychannel -f /tmp/hyperledger/assets/mychannel.tx -o orderer1-org0:7050 --outputBlock /tmp/hyperledger/assets/mychannel.block --tls --cafile /tmp/hyperledger/org1/peer1/tls-msp/tlscacerts/tls-0-0-0-0-7052.pem"

В этот момент я получаю сообщение об ошибке:

Error: got unexpected status: BAD_REQUEST -- error validating channel creation transaction for new channel 'mychannel', could not successfully apply update to template configuration: error authorizing update: error validating DeltaSet: policy for [Group]  /Channel/Application not satisfied: implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Admins' sub-policies to be satisfied

Когда я хочу очистить все для начала sh Я просто выполнить:

curl -sSL https://raw.githubusercontent.com/hanesbarbosa/fabric-ca-operations-guide/master/teardown-docker.sh | bash -s

Исправление попыток

  • Я всегда пробую новую попытку с набором криптографических материалов и изображений fre sh, поэтому я всегда выполняю шаг 6 из Воспроизведение секция ошибки перед повторной попыткой;
  • Я создаю канал на шаге 4 как администратор организации;
  • Я проверяю, есть ли у TLS заказчик root сертификат подписи в списке (все используют один и тот же CA для сертификатов TLS);
  • Переменная среды ORDERER_GENERAL_LOGLEVEL установлена ​​на «отладку» в образе заказчика, так что у меня могут быть более подробные ошибки;
  • Я попытался подписать транзакцию создания канала ( mychannel.tx ) перед тем, как выполнить команду peer channel create, чтобы убедиться, что это не отсутствие подписи, но в ошибке упоминается / Канальная / прикладная * групповая политика , которая в данном случае является неявным мета-типом, где правило "ЛЮБЫЕ Администраторы" ;
    Organizations:

    # Policies defines the set of policies at this level of the config tree
    # For Application policies, their canonical path is
    #   /Channel/Application/<PolicyName>

    Policies: &ApplicationDefaultPolicies
        LifecycleEndorsement:
            Type: ImplicitMeta
            Rule: "MAJORITY Endorsement"
        Endorsement:
            Type: ImplicitMeta
            Rule: "MAJORITY Endorsement"
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        Admins:
            Type: ImplicitMeta
            Rule: "ANY Admins"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...