Ошибка рукопожатия TLS при создании канала Hyperledger Fabric с несколькими заказчиками организации - PullRequest
0 голосов
/ 18 марта 2019

Сценарий: У меня две организации с двумя коллегами в каждой организации.Теперь я хочу, чтобы каждая организация также предоставила узел-заказчик.

Ниже мой crypto-config.yaml файл:

OrdererOrgs:

  - Name: Orderer1
    Domain: org1.xyz.com
    Template:
    Count: 1

  - Name: Orderer2
    Domain: org2.xyz.com
    Template:
    Count: 1

Ниже мой configtx.yaml file:

 - &OrdererOrg1

    Name: OrdererOrg01
    ID: Orderer1MSP
    MSPDir: crypto-config/ordererOrganizations/org1.xyz.com/msp
    Policies:
        Readers:
            Type: Signature
            Rule: "OR('Orderer1MSP.member')"
        Writers:
            Type: Signature
            Rule: "OR('Orderer1MSP.member')"
        Admins:
            Type: Signature
            Rule: "OR('Orderer1MSP.admin')"

- &OrdererOrg2

    Name: OrdererOrg02
    ID: Orderer2MSP
    MSPDir: crypto-config/ordererOrganizations/org2.xyz.com/msp
    Policies:
        Readers:
            Type: Signature
            Rule: "OR('Orderer2MSP.member')"
        Writers:
            Type: Signature
            Rule: "OR('Orderer2MSP.member')"
        Admins:
            Type: Signature
            Rule: "OR('Orderer2MSP.admin')"

Ниже мой docker-compose-cli.yaml файл:

services:

     orderer.xyz.com:
        extends:
        file:   base/docker-compose-base.yaml
        service: orderer.xyz.com
        container_name: orderer.xyz.com
        networks:
         - byfn

    orderer0.xyz.com:
       extends:
       file:   base/docker-compose-base.yaml
       service: orderer0.xyz.com
       container_name: orderer0.xyz.com
       networks:
        - byfn

Я пытаюсь создать канал с помощью следующей команды:

peer channel create -o orderer.xyz.com:7050 -t 60s -c bay -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/org1.xyz.com/orderers/orderer0.org1.xyz.com/msp/tlscacerts/tlsca.org1.xyz.com-cert.pem

Я получаю следующие ОШИБКА в журналах контейнера Orderer при созданииканал:

[core.comm] ServerHandshake -> ERRO 015 Сбой квитирования TLS с ошибкой удаленной ошибки: tls: bad Certificate {"server": "Orderer", "remote address": "172.22.0.18: 48594 "}

Итак, возможно ли, что для организаций, предоставляющих одноранговые узлы, также будет предоставлен узел-заказчик, или отдельная третья организация будет предоставлять узлы-заказчики (как отмечено в учебных пособиях)?И почему я получаю эту ошибку?

Спасибо за ваше время и дайте мне знать, если вам потребуется дополнительная информация.

Ответы [ 4 ]

1 голос
/ 21 марта 2019

Я наконец-то смог найти реальную причину этой проблемы.Проблема была связана с именем службы контейнеров заказов в файле docker-compose-cli.yaml .Имя службы должно соответствовать имени, указанному в файле crypto-config.yaml в соответствии с шаблоном hostname.domain.

Итак, я изменил конфигурацию заказа в docker-compose-cli.yaml файл, как показано ниже:

services:

  orderer0.telco1.vodworks.com:
    extends:
      file:   base/docker-compose-base.yaml
      service: orderer.vodworks.com
    container_name: orderer.vodworks.com
    networks:
      - byfn

  orderer0.telco2.vodworks.com:
    extends:
      file:   base/docker-compose-base.yaml
      service: orderer0.vodworks.com
    container_name: orderer0.vodworks.com
    networks:
      - byfn

После этого я изменил команды peer channel в скрипте .sh и utils.sh сценариев путем добавления правильного имени заказчиков.После этих нескольких изменений я смог успешно запустить свою сеть и проверил это развертывание, также установив цепные коды.

Благодаря @ arnaud-j-le-hors за образец приложения, которое помогло мне выяснить,этот выпуск.

0 голосов
/ 04 июня 2019

в моем случае я получил эту ошибку

[core.comm] ServerHandshake -> ERRO 025 TLS handshake failed with error remote error: tls: internal error {"server": "Orderer", "remote address": "190.22.189.42:40746"}

Когда я использую Fabric SDK для подключения к Fabric Network, в которой используется TLS.Для решения этой проблемы необходимо убедиться, что профиль подключения использует свойство hostnameOverride в разделе Orderer, например,

orderers:

orderer.example.com: url: grpcs: // localhost: 7050

# these are standard properties defined by the gRPC library
# they will be passed in as-is to gRPC client constructor
grpcOptions:
  hostnameOverride: orderer.example.com
  grpc-max-send-message-length: 15
  grpc.keepalive_time_ms: 360000
  grpc.keepalive_timeout_ms: 180000

Пожалуйста, проверьте следующий пример для получения дополнительной информации: https://github.com/hyperledger/fabric-sdk-java/blob/master/src/test/fixture/sdkintegration/network_configs/network-config-tls.yaml

На самом деле я работал над этой ошибкой и, наконец, нашел решение

Для получения дополнительной информации, обучения ткани или разработкиБлокчейн решения для бизнеса и правительства, основанные на Hyperledger Fabric в Чили и Латинской Америке, пожалуйста, посетите www.blockchainempresarial.com

0 голосов
/ 19 марта 2019

Я не эксперт здесь, но я не уверен, почему вы пытаетесь подключиться к orderer.xyz.com? У меня есть одна настройка, которая выглядит как то, что вы пытаетесь сделать, и для этого вы должны дать имя каждому из упорядочивающих узлов, которые вы хотите создать, добавив следующие строки в ваш файл crypto-config (для обоих заказчиков) :

Specs:
  - Hostname: orderer

И вы должны определить два соответствующих контейнера, один с именем orderer.org1.xyz.com, а другой orderer.org2.xyz.com в вашем файле компоновки.

После этого вы сможете создать канал, связавшись с orderer.org1.xyz.com.

0 голосов
/ 18 марта 2019

Я не знаю, как вы определили структуру организаций и пиров в вашей сети, но, просматривая путь, указанный вами для --cacert и файлов конфигурации, мне кажется, что telco1.vodworks.com не указан будучи организацией-заказчиком.

В целом, я могу спросить, вы уверены, что путь для --cacert правильный?

...