Hyperledger-fabric: ошибка подключения при развертывании кода цепочки

#go #hyperledger #hyperledger-fabric

#Вперед #hyperledger #hyperledger-fabric

Вопрос:

Я пытаюсь протестировать пример цепочки кодов fabric02 с помощью docker. Я новичок 🙂

Это мой docker-compose.yml :

 membersrvc:
  image: hyperledger/fabric-membersrvc
  command: membersrvc

vp0:
  image: hyperledger/fabric-peer
  environment:
    - CORE_PER_ID=vp0
    - CORE_PEER_ADDRESSAUTODETECT=true
    - CORE_VM_ENDPOINT=http://0.0.0.0:2375
    - CORE_LOGGING_LEVEL=DEBUG
  command: sh -c "sleep 5; peer node start --peer-chaincodedev"

vp1:
  extends:
    service: vp0
  environment:
    - CORE_PEER_ID=vp1
    - CORE_PEER_DISCOVERY_ROOTNODE=vp0:7051
  links:
    - vp0

vp2:
  extends:
    service: vp0
  environment:
    - CORE_PEER_ID=vp2
    - CORE_PEER_DISCOVERY_ROOTNODE=vp0:7051
  links:
    - vp0
  

и я запускаю (я ссылался на страницу настройки цепного кода в Fabric):

Терминал 1 :

$ docker-compose up

Терминал 2 :

$ cd /hyperledger/examples/chaincode/go/chaincode_example02

$ CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02

Терминал 3 :

$ peer chaincode deploy -n mycc -c '{"Args": ["init", "a","100", "b", "200"]}'

Он хорошо работает в терминале 1,2. Но терминал 3 показывает ошибку подключения.

 2016/10/21 04:39:15 grpc: addrConn.resetTransport failed to create client
transport: connection error: desc = "transport: dial tcp 0.0.0.0:7051:
getsockopt: connection refused"; Reconnecting to {"0.0.0.0:7051" <nil>}
Error: Error building chaincode: Error trying to connect to local peer: 
grpc: timed out when dialing
  

В чем проблема?

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

1. какую версию fabric вы используете?

2. @SufiyanGhori, возможно, последняя версия. Я использовал эту команду для загрузки : git clone ssh://LFID@gerrit.hyperledger.org:29418/fabric amp;amp; scp -p -P 29418 LFID@gerrit.hyperledger.org:hooks/commit-msg fabric/.git/hooks/

3. @SufiyanGhori git branch показывает только master . git log показывает, что 4b53c7c04b8502de108040ef4ff81f4de0d257d2 является самой последней.

4. @SufiyanGhori Благодарю вас за ваши ответы. (1) Я попытался загрузить последние обновления, и это показало ту же ошибку. (2) Я использовал ваш пример кода, он сработал, но показал другую ошибку в терминале 3. Error: Error building chaincode: rpc error: code = 2 desc = Error getting chaincode package bytes: Cannot generate hashcode from empty chaincode path Сейчас я пытаюсь найти решение…

Ответ №1:

Похоже, вам не хватает инструкций compose для сопоставления требуемых портов из контейнера docker с хост-машиной (где вы пробуете одноранговую команду). Таким образом, возможно, что одноранговый процесс прослушивает порт 7051 внутри вашего однорангового контейнера docker, но это соединение недоступно для одноранговой команды, используемой вне этого контейнера в терминале 3.

Вы можете сопоставить порты, используя тег ‘ports’. например:

 membersrvc:
  image: hyperledger/fabric-membersrvc
  ports:
    - "7054:7054"
  command: membersrvc

vp0:
  image: hyperledger/fabric-peer
  ports:
    - "7050:7050"
    - "7051:7051"
    - "7053:7053"
  environment:
    - CORE_PER_ID=vp0
    - CORE_PEER_ADDRESSAUTODETECT=true
    - CORE_VM_ENDPOINT=http://0.0.0.0:2375
    - CORE_LOGGING_LEVEL=DEBUG
  command: sh -c "sleep 5; peer node start --peer-chaincodedev"
  

Прежде чем вы сделаете это peer chaincode deploy ... в терминале 3, вы можете проверить, прослушивает ли одноранговый процесс порт 7051, используя

 netstat -lnptu |grep 7051