Ошибка при вызове цепного кода «Ошибка: неизвестный флаг: --peerAddresses» Учебное пособие по первой сети Hyperledger Fabric - PullRequest
0 голосов
/ 13 июня 2018

Я примерно следовал за http://hyperledger -fabric.readthedocs.io / en / latest / build_network.html # Устранение неполадок , чтобы создать свою первую сеть, и выполнил шаги, включающие в себя установку, istantiating, запросыchaincode.Тем не менее, я получаю следующую ошибку при вызове цепного кода.

root@5a0be253ef6e:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C testhimani123456 -n mycc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["invoke","a","b","10"]}'
Error: unknown flag: --peerAddresses
Usage:
  peer chaincode invoke [flags]

Flags:
  -C, --channelID string   The channel on which this command should be executed
  -c, --ctor string        Constructor message for the chaincode in JSON format (default "{}")
  -n, --name string        Name of the chaincode

Global Flags:
      --cafile string                       Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoint
      --certfile string                     Path to file containing PEM-encoded X509 public key to use for mutual TLS communication with the orderer endpoint
      --clientauth                          Use mutual TLS when communicating with the orderer endpoint
      --keyfile string                      Path to file containing PEM-encoded private key to use for mutual TLS communication with the orderer endpoint
      --logging-level string                Default logging level and overrides, see core.yaml for full syntax
  -o, --orderer string                      Ordering service endpoint
      --ordererTLSHostnameOverride string   The hostname override to use when validating the TLS connection to the orderer.
      --tls                                 Use TLS when communicating with the orderer endpoint
      --transient string                    Transient map of arguments in JSON encoding
  -v, --version                             Display current version of fabric peer server

Я проигнорировал часть, касающуюся переменных среды.enter image description here Я не понял, куда его включить.Я попытался добавить поля, которые отсутствовали в файле docker-compose-base.yaml , но он дал мне ошибки при выполнении команды docker exec -it cli bash, сказав, что для cli нет контейнера.Поэтому я решил пойти с оригинальным файлом, полностью игнорируя шаг.

Ответы [ 2 ]

0 голосов
/ 20 июня 2018

(наконец-то знаете, как это использовать) На самом деле нашли решение благодаря другу.

«Вызов однорангового цепного кода» не имеет флага «peerAddresses».Код, указанный в учебной документации по Hyperledger, может быть устаревшим или неправильным.

Это можно увидеть в справочной документации: https://hyperledger -fabric.readthedocs.io / en / release-1.1 / commands/peerchaincode.html

Таким образом, удаление peerAddresses и запись чего-то подобного может исправить ошибку.

peer chaincode invoke -o orderer.example.com:7050  --tls --cafile    /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem  -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}'
0 голосов
/ 13 июня 2018

Проблема была решена путем изменения инстанцирования цепного кода путем изменения "и" на "или".Так как я пропустил шаг переменных среды, по умолчанию было peer0.org1 (то есть org1MSP).Ничего не было установлено для org2MSP.Таким образом, он не имел права выдавать разрешения в первую очередь.

peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer')"
...