Ошибка запуска сети hyperledger-composer после обновления версии Fabric и Composer - PullRequest
0 голосов
/ 05 ноября 2018

Я обнаружил ошибку при запуске сети hyperledger-composer, на которую нет ответа в composer-wiki.

✖ Starting business network definition. This may take a minute...
Error: Error trying to start business network. Error: No valid responses from any peers. 
Response from attempted peer comms was an error: Error: transaction returned with failure: can't find PEM header: undefined 
Command failed

Проверка предварительных условий,

  • Ткань 1,2
  • Композитор 0.20.4
  • Узел 8.12.0
  • Докер 18.01.1
  • «Сетевая установка композитора» прошла успешно, файл появился в окне подключения докера по адресу / var / hyperleder / production / chaincodes

После запуска команды «composer network start», «docker ps» показывает новый экземпляр docker с именем:

dev-peer0.org1.example.com-<<business-network-name>>-0.0.7

Но любая попытка пропинговать это приводит к сбою вроде этого:

Error: Error trying to ping. Error: make sure the chaincode <<business-network-name>> has been successfully instantiated and try again: getccdata composerchannel/<<business-network-name>> responded with error: could not find chaincode with name '<<business-network-name>>'

Проверка журнала dev-peer0 заканчивается следующим:

2018-11-05T05:03:18.227Z [4264161f] ERROR    :Composer                 :Init()                    can't find PEM header: undefined
2018-11-05T05:03:18.227Z [4264161f] VERBOSE  :Composer                 :@PERF Init()              Total (ms) duration for txnID [4264161fc30a61c70884d4c7efb460fea6a755d07bc4852875c393346795227a]: 929.00
2018-11-05T05:03:18.228Z ERROR [lib/handler.js] [composerchannel-4264161f]Calling chaincode Init() returned error response [can't find PEM header: undefined]. Sending ERROR message back to peer 

Соответствующая ошибка в журнале peer0 намного больше:

2018-11-05 05:03:18.229 UTC [endorser] SimulateProposal -> ERRO 439d [composerchannel][4264161f] failed to invoke chaincode name:"lscc" , error: transaction returned with failure: can't find PEM header: undefined
github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Execute
    /opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:202
github.com/hyperledger/fabric/core/endorser.(*SupportImpl).Execute
    /opt/gopath/src/github.com/hyperledger/fabric/core/endorser/support.go:131
github.com/hyperledger/fabric/core/endorser.(*Endorser).callChaincode
    /opt/gopath/src/github.com/hyperledger/fabric/core/endorser/endorser.go:173
github.com/hyperledger/fabric/core/endorser.(*Endorser).SimulateProposal
    /opt/gopath/src/github.com/hyperledger/fabric/core/endorser/endorser.go:287
github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposal
    /opt/gopath/src/github.com/hyperledger/fabric/core/endorser/endorser.go:501
github.com/hyperledger/fabric/core/handlers/auth/filter.(*expirationCheckFilter).ProcessProposal
    /opt/gopath/src/github.com/hyperledger/fabric/core/handlers/auth/filter/expiration.go:61
github.com/hyperledger/fabric/core/handlers/auth/filter.(*filter).ProcessProposal
    /opt/gopath/src/github.com/hyperledger/fabric/core/handlers/auth/filter/filter.go:31
github.com/hyperledger/fabric/protos/peer._Endorser_ProcessProposal_Handler
    /opt/gopath/src/github.com/hyperledger/fabric/protos/peer/peer.pb.go:112
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).processUnaryRPC
    /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:923
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).handleStream
    /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1148
github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1
    /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:637
runtime.goexit
    /opt/go/src/runtime/asm_amd64.s:2361
2018-11-05 05:03:18.229 UTC [endorser] SimulateProposal -> DEBU 439e [composerchannel][4264161f] Exit

С тех пор, как это последнее сработало, я обновил композитор с 0.19 до 0.20.4 и взял Fabric с 1.1 до 1.2.

Googling предполагает, что такого рода ошибка «не удается найти заголовок PEM: undefined» связана с изменением подписи ключа. После сноса Fabric я перезапустил ./createPeerAdminCard.sh - есть ли другая карта или аналогичная, которую нужно заново создать, чтобы разместить последние версии?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Отвечая на последнее замечание от @Capn Sparrow

"параметры -A и -S команды запуска сети композитора должны быть установлены соответственно на admin и adminpw."

Это правильное и ожидаемое поведение: -)

с помощью команды composer network start -A и -S указывают существующего пользователя в ЦС, для которого требуется новый набор учетных данных (сертификат и ключи), для которого затем привязывается к Composer Участник системы.

Когда вы используете «стандартную среду разработки», для этого в ЦС настраивается пользователь с именем «admin» с секретом «adminpw». Если вы создали свою собственную Fabric с нуля, вы можете выбрать имя и секрет вашего первого пользователя по умолчанию. В качестве альтернативы вы можете работать с клиентским программным обеспечением fabric-ca для создания дополнительных пользователей в CA.

0 голосов
/ 06 ноября 2018

Спасибо @R Тэтчер за то, что направил меня в правильном направлении. Все это было связано с несовпадением карт, и было решено путем очистки всего и повторного запуска.

В частности, в / fabric-dev-server:

./stopFabric.sh 
./teardownFabric.sh
composer card list
composer card delete -c admin@<business-network-name>
composer card delete -c PeerAdmin@hlfv1
./startFabric.sh
./createPeerAdminCard.sh

Затем перейдите в каталог composer / business-network-name:

composer network install --card PeerAdmin@hlfv1 --archiveFile business-network-name\@0.0.7.bna 
composer network start -c PeerAdmin@hlfv1 -n business-network-name -V 0.0.7 -A admin -S adminpw --file networkadmin.card
composer card import --file networkadmin.card --card admin@business-network-name
composer network ping -c admin@business-network-name

Так что да, речь шла о несовпадении карт, а не об их очистке как части нового развертывания.

Хотя это и не является частью исходной проблемы, также стоит отметить, что параметры -A и -S команды запуска сети композитора должны быть установлены соответственно на admin и adminpw. См. Вопрос композитора # 3781 .

...