Не удалось подключиться к конечной точке для второго узла в Hyperledger

У меня есть мой docker-compose.yml следующим образом:

version: '2'

networks:
  basic:

services:
  ca.example.com:
    image: hyperledger/fabric-ca
    environment:
      - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
      - FABRIC_CA_SERVER_CA_NAME=ca.example.com
      - FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem

      # change the keyfile everytime the generate.sh is used 
      - FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/763ce512db70fbfc91ffcd4ad01d074d3a012ae2488a42dbb1a47a9ce8895de8_sk
    ports:
      - "7054:7054"
    command: sh -c 'fabric-ca-server start -b admin:adminpw'
    volumes:
      - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
    container_name: ca.example.com
    networks:
      - basic

  orderer.example.com:
    container_name: orderer.example.com
    image: hyperledger/fabric-orderer
    environment:
      - FABRIC_LOGGING_SPEC=info
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer/msp
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderer
    command: orderer
    ports:
      - 7050:7050
    volumes:
        - ./config/:/etc/hyperledger/configtx
        - ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/:/etc/hyperledger/msp/orderer
        - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/:/etc/hyperledger/msp/peerOrg1
        - ./crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/:/etc/hyperledger/msp/peer1rg1
    networks:
      - basic

  peer0.org1.example.com:
    container_name: peer0.org1.example.com
    image: hyperledger/fabric-peer
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_PEER_ID=peer0.org1.example.com
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_LISTENADDRESS=0.0.0.0:7051
      - FABRIC_LOGGING_SPEC=info
      - CORE_CHAINCODE_LOGGING_LEVEL=info
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/peer/


      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_basic

      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984

      - CORE_PEER_GOSSIP_ENDPOINT=peer0.org1.example.com:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    # command: peer node start --peer-chaincodedev=true
    ports:
      - 7051:7051
      - 7053:7053
    volumes:
        - /var/run/:/host/var/run/
        - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/msp/peer
        - ./crypto-config/peerOrganizations/org1.example.com/users:/etc/hyperledger/msp/users
        - ./config:/etc/hyperledger/configtx
    depends_on:
      - orderer.example.com
      - couchdb
    networks:
      - basic

  couchdb:
    container_name: couchdb
    image: hyperledger/fabric-couchdb
    # Populate the COUCHDB_USER and COUCHDB_PASSWORD to set an admin user and password
    # for CouchDB.  This will prevent CouchDB from operating in an "Admin Party" mode.
    environment:
      - COUCHDB_USER=
      - COUCHDB_PASSWORD=
    ports:
      - 5984:5984
    networks:
      - basic

  cli:
    container_name: cli
    image: hyperledger/fabric-tools
    tty: true
    environment:
      - GOPATH=/opt/gopath
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - FABRIC_LOGGING_SPEC=info
      - CORE_PEER_ID=cli
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp
      - CORE_CHAINCODE_KEEPALIVE=10
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: /bin/bash
    volumes:
        - /var/run/:/host/var/run/
        - ./../chaincode/:/opt/gopath/src/github.com/
        - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
        - ./config:/opt/gopath/src/github.com/hyperledger/fabric/peer
        - ./config:/etc/hyperledger/configtx/
    networks:
        - basic
    #depends_on:
    #  - orderer.example.com
    #  - peer0.org1.example.com
    #  - couchdb

  couchdb1:
      container_name: couchdb1
      image: hyperledger/fabric-couchdb
      environment:
        - COUCHDB_USER=
        - COUCHDB_PASSWORD=
      ports:
        - "9984:5984"
      networks:
        - basic

  peer1.org1.example.com:
      container_name: peer1.org1.example.com
      image: hyperledger/fabric-peer
      working_dir: /opt/gopath/src/github.com/hyperledger/fabric
      command: peer node start
      environment:
        - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
        - CORE_PEER_ID=peer1.org1.example.com
        - CORE_PEER_ADDRESS=peer1.org1.example.com:8051
        - CORE_PEER_LISTENADDRESS=0.0.0.0:8051
        - FABRIC_LOGGING_SPEC=info
        - CORE_CHAINCODE_LOGGING_LEVEL=info
        - CORE_PEER_LOCALMSPID=Org1MSP
        - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/peer/

        - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_basic

        - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
        - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb1:5984

        - CORE_PEER_GOSSIP_ENDPOINT=peer1.org1.example.com:8051
        - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:8051
        #- FABRIC_LOGGING_SPEC=info
        # - CORE_PEER_TLS_ENABLED=true
        # - CORE_PEER_GOSSIP_USELEADERELECTION=true
        # - CORE_PEER_GOSSIP_ORGLEADER=false
        # - CORE_PEER_PROFILE_ENABLED=true
        # - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
        # - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
        # - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
      volumes:
        - /var/run/:/host/var/run/
        - ./crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/msp/peer
        - ./crypto-config/peerOrganizations/org1.example.com/users:/etc/hyperledger/msp/users
        - ./config:/etc/hyperledger/configtx
      depends_on:
        - orderer.example.com
        - couchdb1
      ports:
        - 8051:8051
      networks:
        - basic

Когда я запускаю Fabric, все контейнеры правильно поднимаются, но если я просматриваю журналы отдельных контейнеров, все выглядит нормально, кроме peer1, который говорит:

2019-07-19 08:05:35.831 UTC [cceventmgmt] HandleChaincodeDeploy -> INFO 03e Channel [mychannel]: Chaincode [Name=traceability, Version=1.0, Hash=[]byte{0xec, 0xe8, 0x2f, 0xd6, 0x66, 0xe8, 0x39, 0x5f, 0x9a, 0xc5, 0x1d, 0x93, 0x7a, 0xed, 0xc6, 0x43, 0xaf, 0xfa, 0xa0, 0xca, 0x4c, 0x99, 0xb4, 0x8b, 0x0, 0x39, 0x2a, 0xdf, 0xfc, 0xea, 0x7e, 0x44}] is not installed hence no need to create chaincode artifacts for endorsement
2019-07-19 08:05:35.850 UTC [kvledger] CommitWithPvtData -> INFO 03f [mychannel] Committed block [1] with 1 transaction(s) in 22ms (state_validation=5ms block_commit=6ms state_commit=8ms)
*2019-07-19 08:05:39.546 UTC [gossip.discovery] func1 -> WARN 040 Could not connect to Endpoint: 127.0.0.1:7051, InternalEndpoint: 127.0.0.1:7051, PKI-ID: <nil>, Metadata:  : context deadline exceeded*
2019-07-19 08:05:42.808 UTC [gossip.privdata] StoreBlock -> INFO 041 [mychannel] Received block [2] from buffer
2019-07-19 08:05:42.809 UTC [committer.txvalidator] Validate -> INFO 042 [mychannel] Validated block [2] in 0ms
2019-07-19 08:05:42.835 UTC [kvledger] CommitWithPvtData -> INFO 043 [mychannel] Committed block [2] with 1 transaction(s) in 26ms (state_validation=3ms block_commit=8ms state_commit=13ms)
*2019-07-19 08:06:07.547 UTC [gossip.discovery] func1 -> WARN 044 Could not connect to Endpoint: 127.0.0.1:7051, InternalEndpoint: 127.0.0.1:7051, PKI-ID: <nil>, Metadata:  : context deadline exceeded*

Кто-нибудь знает, как это исправить? Я думаю, что это какая-то проблема, связанная с конфигурацией моего файла docker-compose, но я не знаю, что не так, я вижу другую конфигурацию в Интернете.

Это мои контейнеры:

CONTAINER ID        IMAGE                                                                                                          COMMAND                  CREATED             STATUS              PORTS                                            NAMES
d99aec3ed5b0        dev-peer0.org1.example.com-traceability-1.0-76b4798b7a60d0b2659c39b86072164c35face709e8536003ba90ad0d0211f7c   "chaincode -peer.add…"   5 minutes ago       Up 5 minutes                                                         dev-peer0.org1.example.com-traceability-1.0
1f2ec12ac129        hyperledger/fabric-tools                                                                                       "/bin/bash"              6 minutes ago       Up 6 minutes                                                         cli
deb0d9f11159        hyperledger/fabric-peer                                                                                        "peer node start"        6 minutes ago       Up 6 minutes        0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp   peer0.org1.example.com
fc9b07f9d487        hyperledger/fabric-peer                                                                                        "peer node start"        6 minutes ago       Up 6 minutes        0.0.0.0:8051->8051/tcp                           peer1.org1.example.com
aad71ba93cc1        hyperledger/fabric-orderer                                                                                     "orderer"                6 minutes ago       Up 6 minutes        0.0.0.0:7050->7050/tcp                           orderer.example.com
8f73d314f8ec        hyperledger/fabric-ca                                                                                          "sh -c 'fabric-ca-se…"   6 minutes ago       Up 6 minutes        0.0.0.0:7054->7054/tcp                           ca.example.com
89af426d3101        hyperledger/fabric-couchdb                                                                                     "tini -- /docker-ent…"   6 minutes ago       Up 6 minutes        4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp       couchdb
aff4a66215a1        hyperledger/fabric-couchdb                                                                                     "tini -- /docker-ent…"   6 minutes ago       Up 6 minutes        4369/tcp, 9100/tcp, 0.0.0.0:9984->5984/tcp       couchdb1
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
2 391
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте внести следующие изменения и снова поднять докер -

 peer0.org1.example.com : 
        - CORE_PEER_GOSSIP_ENDPOINT=peer0.org1.example.com:7051
        - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051

с участием

peer0.org1.example.com :
    - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:8051
    - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051

И в

peer1.org1.example.com :
 - CORE_PEER_GOSSIP_ENDPOINT=peer1.org1.example.com:8051
 - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:8051

с участием

peer1.org1.example.com :
    - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051
    - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:8051

Я сделал то, что вы сказали, но все равно получаю: 2019-07-19 08:56:33.714 UTC [gossip.discovery] func1 -> WARN 042 Не удалось подключиться к конечной точке: 127.0.0.1:7051, InternalEndpoint: 127.0.0.1:7051 , PKI-ID: <nil>, Метаданные: : крайний срок контекста превышен

Riki95 19.07.2019 10:56

Запросите 127.0.0.1:7051 в firefox и проверьте, получаете ли вы какой-либо ответ или нет..?

Artho 19.07.2019 10:59

В браузере нет, но, как вы можете видеть с помощью docker ps, контейнер прослушивает этот порт. Я отредактировал и вставил свои контейнеры выше.

Riki95 19.07.2019 11:04

Это означает, что одноранговый порт не открыт, поэтому вы столкнулись с такой проблемой, если порт откроется, вы получите ответ по telnet/firefox.

Artho 19.07.2019 11:07

обратитесь к этому - stackoverflow.com/questions/56871941/…

Artho 19.07.2019 11:48

Привет @Artho, скажем, если я запущу один узел в начале, только CORE_PEER_GOSSIP_EXTERNALENDPOINT определено, чтобы указывать на его внешнюю конечную точку. Как мне настроить другие переменные в этом случае при добавлении новых одноранговых узлов в ту же организацию? Кроме того, допустим, что данный peer0 также является якорным узлом.

Chintan Rajvir 19.05.2020 16:02

Я нашел небольшую опечатку в файле docker-compose.

в разделе одноранговый узел1CORE_PEER_GOSSIP_EXTERNALENDPOINT должен быть установлен на собственный адрес пира, то есть peer1.org1.example.com:8051 вместо peer0.org1.com:8051. можете ли вы исправить это, посмотрите, работает ли он, если нет, то прокомментируйте.

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