Использование RAFT в структуре получило ошибку rpc: code = Unavaliable

У меня есть 3 узла заказчиков и 5 одноранговых узлов в моей фабричной сети.

И я попытался использовать консенсус raft в своей фабричной сети, но в журналах заказов я получил такую ​​ошибку:

2021-04-03 07:13:03.556 UTC [orderer.consensus.etcdraft] logSendFailure -> DEBU 1dc6 Failed to send StepRequest to 3, because: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 172.20.0.17:7548: connect: connection refused" channel=orderer-system-channel node=1

вот основные настройки одного из трех узлов заказов в docker-compose.yaml:

      - FABRIC_LOGGING_SPEC=debug
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_BOOTSTRAPMETHOD=file
      - ORDERER_GENERAL_BOOTSTRAPFILE=/etc/hyperledger/fabric/genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer
      - ORDERER_GENERAL_TLS_ENABLED=true
      - ORDERER_GENERAL_TLS_PRIVATEKEY=/etc/hyperledger/tls/orderer/server.key
      - ORDERER_GENERAL_TLS_CERTIFICATE=/etc/hyperledger/tls/orderer/server.crt
      - ORDERER_GENERAL_TLS_ROOTCAS=[/etc/hyperledger/tls/orderer/ca.crt]
      - ORDERER_GENERAL_CLUSTER_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_CLUSTER_LISTENPORT=7055
      - ORDERER_GENERAL_CLUSTER_SERVERCERTIFICATE=/etc/hyperledger/tls/orderer/server.crt
      - ORDERER_GENERAL_CLUSTER_SERVERPRIVATEKEY=/etc/hyperledger/tls/orderer/server.key
      - ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/etc/hyperledger/tls/orderer/server.crt
      - ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/etc/hyperledger/tls/orderer/server.key
      - ORDERER_GENERAL_CLUSTER_ROOTCAS=[/etc/hyperledger/tls/orderer/ca.crt]
      - ORDERER_GENERAL_TLS_CLIENTAUTHREQUIRED
      - ORDERER_GENERAL_TLS_CLIENTROOTCAS
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: orderer
    volumes:
      - ../fabric/genesis.block:/etc/hyperledger/fabric/genesis.block
      - ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer1.food.com/msp:/etc/hyperledger/msp/orderer
      - ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer1.food.com/tls/:/etc/hyperledger/tls/orderer
      - orderer1.food.com:/var/hyperledger/production/orderer
    ports:
      - 7050:7050
      - 7550:7055

и это основные настройки в configtx.yaml для "Orderer":

Orderer: &OrdererDefaults

  # Orderer Type: The orderer implementation to start
  OrdererType: etcdraft

  # Addresses used to be the list of orderer addresses that clients and peers
  # could connect to.  However, this does not allow clients to associate orderer
  # addresses and orderer organizations which can be useful for things such
  # as TLS validation.  The preferred way to specify orderer addresses is now
  # to include the OrdererEndpoints item in your org definition
  Addresses:
    - orderer1.food.com:7050
    - orderer2.food.com:7049
    - orderer3.food.com:7048

  EtcdRaft:
    Consenters:
      - Host: orderer1.food.com
        Port: 7550
        ClientTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer1.food.com/tls/server.crt
        ServerTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer1.food.com/tls/server.crt
      - Host: orderer2.food.com
        Port: 7549
        ClientTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer2.food.com/tls/server.crt
        ServerTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer2.food.com/tls/server.crt
      - Host: orderer3.food.com
        Port: 7548
        ClientTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer3.food.com/tls/server.crt
        ServerTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer3.food.com/tls/server.crt

  BatchTimeout: 2s

  BatchSize:

    MaxMessageCount: 10

    AbsoluteMaxBytes: 99 MB

    PreferredMaxBytes: 512 KB

  Organizations:

  Policies:
    Readers:
      Type: ImplicitMeta
      Rule: "ANY Readers"
    Writers:
      Type: ImplicitMeta
      Rule: "ANY Writers"
    Admins:
      Type: ImplicitMeta
      Rule: "MAJORITY Admins"
    BlockValidation:
      Type: ImplicitMeta
      Rule: "ANY Writers"

и вот мой файл crypto-config.yaml, используемый для генерации крипто-конфигурации для узлов-заказчиков:

OrdererOrgs:
  # ---------------------------------------------------------------------------
  # Orderer
  # ---------------------------------------------------------------------------
  - Name: Orderer
    Domain: food.com
    EnableNodeOUs: true
    Specs:
      - Hostname: orderer1
        SANS:
          - localhost
      - Hostname: orderer2
        SANS:
          - localhost
      - Hostname: orderer3
        SANS:
          - localhost

кто-нибудь знает, как решить эту проблему?

может быть порт неправильный, в портах тестовой сети похоже на эти lifegoeson.cn:8888/image/g4U5

李可以 03.04.2021 11:34

порт все "7050". Порты не конфликтуют? Могу я узнать подробности? Например, настройки docker-compose? @ 李 可以

Mikasa JD 03.04.2021 13:10

Я знаю, в чем ошибся. Связь плотного кластера была в сети докеров. Поэтому я должен установить порты «7055», которые я установил в docker-compose. Спасибо за напоминание. @ 李 可以

Mikasa JD 03.04.2021 13:55
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
39
0

Другие вопросы по теме