#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