简体   繁体   English

Hyperledger Fabric:在“对等链码实例化”命令上启动链码时,超时已过期

[英]Hyperledger Fabric: Timeout Expired while starting chaincode on “Peer Chaincode Instantiate” command

I am trying to instantiate an installed chaincode using the "Peer Chaincode Instantiate" command (as below). 我正在尝试使用“对等链码实例化”命令实例化已安装的链码(如下所示)。 On execution of the command, I am receiving the following error message: 执行命令时,我收到以下错误消息:

Command to instantiate chaincode: 实例化链码的命令:

peer chaincode instantiate -o orderer.proofofownership.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/proofofownership.com/orderers/orderer.proofofownership.com/msp/tlscacerts/tlsca.proofofownership.com-cert.pem -C dmanddis -n CreateDiamond -v 1.0 -c '{"Args":[]}' -P "OR ('DiamondManufacturerMSP.peer','DistributorMSP.peer')"

Error Message received: 收到错误消息:

Error: Error endorsing chaincode: rpc error: code = Unknown desc = timeout expired while starting chaincode CreateDiamond:1.0(networkid:dev,peerid:peer0.dm.proofofownership.com,tx:1a96ecc8763e214ee543ecefe214df6025f8e98f2449f2b7877d04655ddadb49)

I tried rectifying this issue by adding the following attributes in "peer-base.yaml file" 我尝试通过在“ peer-base.yaml文件”中添加以下属性来纠正此问题

- CORE_CHAINCODE_EXECUTETIMEOUT=300s
- CORE_CHAINCODE_DEPLOYTIMEOUT=300s

Although, I am still receiving this particular error. 虽然,我仍然收到此特定错误。

Following are my docker container configurations: 以下是我的Docker容器配置:

peer-base.yaml File: peer-base.yaml文件:

services:
peer-base:
image: hyperledger/fabric-peer:x86_64-1.1.0
environment:
  - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
  # the following setting starts chaincode containers on the same
  # bridge network as the peers
  # https://docs.docker.com/compose/networking/
  #- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=proof_of_ownership_pow
  #- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=pow
  #- CORE_LOGGING_LEVEL=INFO
  - CORE_LOGGING_LEVEL=DEBUG
  - CORE_PEER_TLS_ENABLED=true
  - CORE_CHAINCODE_EXECUTETIMEOUT=300s
  - CORE_CHAINCODE_DEPLOYTIMEOUT=300s
  #- CORE_PEER_TLS_ENABLED=false
  - 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
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
command: peer node start

cli - container configuration in "docker-compose-cli.yaml" file: cli-“ docker-compose-cli.yaml”文件中的容器配置:

cli:
container_name: cli
image: hyperledger/fabric-tools:x86_64-1.1.0
tty: true
stdin_open: true
environment:
  - GOPATH=/opt/gopath
  - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
  - CORE_LOGGING_LEVEL=DEBUG
  #- CORE_LOGGING_LEVEL=INFO
  - CORE_PEER_ID=cli
  - CORE_PEER_ADDRESS=peer0.dm.proofofownership.com:7051
  - CORE_PEER_LOCALMSPID=DiamondManufacturerMSP
  - CORE_PEER_TLS_ENABLED=true
  - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/dm.proofofownership.com/peers/peer0.dm.proofofownership.com/tls/server.crt
  - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/dm.proofofownership.com/peers/peer0.dm.proofofownership.com/tls/server.key
  - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/dm.proofofownership.com/peers/peer0.dm.proofofownership.com/tls/ca.crt
  - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/dm.proofofownership.com/users/Admin@dm.proofofownership.com/msp
  - CORE_PEER_CHAINCODELISTENADDRESS=peer0.dm.proofofownership.com:7052
  #- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=host
  #- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=pow
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/chaincode
    #- ./chaincode/CreateDiamond/go:/opt/gopath/src/github.com/chaincode/
    - ./chaincode/CreateDiamond:/opt/gopath/src/github.com/hyperledger/fabric/peer/chaincode/
    - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
    - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/
    - ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts
depends_on:
  - orderer.proofofownership.com
  - peer0.dm.proofofownership.com
  - peer1.dm.proofofownership.com 
  - peer0.dist.proofofownership.com
  - peer1.dist.proofofownership.com
#network_mode: host
networks:
  - pow

peer configuration in "docker-compose-base.yaml" file: “ docker-compose-base.yaml”文件中的对等配置:

peer0.dm.proofofownership.com:
container_name: peer0.dm.proofofownership.com
extends:
  file: peer-base.yaml
  service: peer-base
environment:
  - CORE_PEER_ID=peer0.dm.proofofownership.com
  #- CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/dm.proofofownership.com/users/Admin@dm.proofofownership.com/msp
  #- CORE_PEER_MSPCONFIGPATH=/home/john/Proof-Of-Ownership/crypto-config/peerOrganizations/dm.proofofownership.com/users/Admin@dm.proofofownership.com/msp
  - CORE_PEER_ADDRESS=peer0.dm.proofofownership.com:7051
  - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.dm.proofofownership.com:7051
  - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.dm.proofofownership.com:7051
  - CORE_PEER_LOCALMSPID=DiamondManufacturerMSP
  - CORE_PEER_CHAINCODELISTENADDRESS=peer0.dm.proofofownership.com:7052
  #- CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/dm.proofofownership.com/peers/peer0.dm.proofofownership.com/tls/ca.crt
  #- CORE_PEER_TLS_ROOTCERT_FILE=/home/john/Proof-Of-Ownership/crypto-config/peerOrganizations/dm.proofofownership.com/peers/peer0.dm.proofofownership.com/tls/ca.crt
volumes:
    - /var/run/:/host/var/run/
    - ../crypto-config/peerOrganizations/dm.proofofownership.com/peers/peer0.dm.proofofownership.com/msp:/etc/hyperledger/fabric/msp
    - ../crypto-config/peerOrganizations/dm.proofofownership.com/peers/peer0.dm.proofofownership.com/tls:/etc/hyperledger/fabric/tls
    - peer0.dm.proofofownership.com:/var/hyperledger/production
ports:
  - 7051:7051
  - 7053:7053

Orderer Configuration in "docker-compose-base.yaml" file: “ docker-compose-base.yaml”文件中的订购者配置:

orderer.proofofownership.com:
container_name: orderer.proofofownership.com
image: hyperledger/fabric-orderer:x86_64-1.1.0
environment:
  # CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE Newly Added
  #- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=proof_of_ownership_pow
  #- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=pow
  - ORDERER_GENERAL_LOGLEVEL=DEBUG
  - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
  - ORDERER_GENERAL_GENESISMETHOD=file
  #- ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
  - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/genesis.block
  - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
  - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
  # enabled TLS
  - ORDERER_GENERAL_TLS_ENABLED=true
  #- ORDERER_GENERAL_TLS_ENABLED=false
  - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
  - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
  - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
  # New Addition
  - CONFIGTX_ORDERER_ORDERERTYPE=solo
  - CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT=10
  - CONFIGTX_ORDERER_BATCHTIMEOUT=2s
  - CONFIGTX_ORDERER_ADDRESSES=[127.0.0.1:7050]
#working_dir: /opt/gopath/src/github.com/hyperledger/fabric
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderer
command: orderer
volumes:
- ../channel-artifacts/genesis.block:/var/hyperledger/orderer/genesis.block
- ../crypto-config/ordererOrganizations/proofofownership.com/orderers/orderer.proofofownership.com/msp:/var/hyperledger/orderer/msp
- ../crypto-config/ordererOrganizations/proofofownership.com/orderers/orderer.proofofownership.com/tls/:/var/hyperledger/orderer/tls
- orderer.proofofownership.com:/var/hyperledger/production/orderer
ports:
  - 7050:7050

I also reviewed the peer's docker container logs (using docker logs ) and received the following logs: 我还查看了对等方的docker容器日志(使用docker logs),并收到了以下日志:

Launch -> ERRO 3eb launchAndWaitForRegister failed: timeout expired while starting chaincode CreateDiamond:1.0(networkid:dev,peerid:peer0.dm.proofofownership.com,tx:cc34a20176d7f09e1537b039f3340450e08f6447bf16965324655e72a2a58623)
2018-08-01 12:59:08.739 UTC [endorser] simulateProposal -> ERRO 3ed [dmanddis][cc34a201] failed to invoke chaincode name:"lscc" , error: timeout expired while starting chaincode CreateDiamond:1.0(networkid:dev,peerid:peer0.dm.proofofownership.com,tx:cc34a20176d7f09e1537b039f3340450e08f6447bf16965324655e72a2a58623) 

Following logs were received on installing chaincode: 收到有关安装chaincode的以下日志:

2018-08-03 09:44:55.822 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2018-08-03 09:44:55.822 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2018-08-03 09:44:55.822 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc
2018-08-03 09:44:55.822 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc
2018-08-03 09:44:55.822 UTC [chaincodeCmd] getChaincodeSpec -> DEBU 005 java chaincode disabled
2018-08-03 09:44:58.270 UTC [golang-platform] getCodeFromFS -> DEBU 006 getCodeFromFS github.com/hyperledger/fabric/peer/chaincode
2018-08-03 09:45:02.089 UTC [golang-platform] func1 -> DEBU 007 Discarding GOROOT package bytes
2018-08-03 09:45:02.089 UTC [golang-platform] func1 -> DEBU 008 Discarding GOROOT package encoding/json
2018-08-03 09:45:02.089 UTC [golang-platform] func1 -> DEBU 009 Discarding GOROOT package fmt
2018-08-03 09:45:02.090 UTC [golang-platform] func1 -> DEBU 00a Discarding provided package github.com/hyperledger/fabric/core/chaincode/shim
2018-08-03 09:45:02.090 UTC [golang-platform] func1 -> DEBU 00b Discarding provided package github.com/hyperledger/fabric/protos/peer
2018-08-03 09:45:02.090 UTC [golang-platform] func1 -> DEBU 00c Discarding GOROOT package strconv
2018-08-03 09:45:02.090 UTC [golang-platform] func1 -> DEBU 00d skipping dir: /opt/gopath/src/github.com/hyperledger/fabric/peer/chaincode/go
2018-08-03 09:45:02.090 UTC [golang-platform] GetDeploymentPayload -> DEBU 00e done
2018-08-03 09:45:02.090 UTC [container] WriteFileToPackage -> DEBU 00f Writing file to tarball: src/github.com/hyperledger/fabric/peer/chaincode/CreateDiamond.go
2018-08-03 09:45:02.122 UTC [msp/identity] Sign -> DEBU 010 Sign: plaintext: 0AE3070A5B08031A0B089EC890DB0510...EC7BFE1B0000FFFFEE433C37001C0000
2018-08-03 09:45:02.122 UTC [msp/identity] Sign -> DEBU 011 Sign: digest: E5160DE95DB096379967D959FA71E692F098983F443378600943EA5D7265A82C 
2018-08-03 09:45:02.230 UTC [chaincodeCmd] install -> DEBU 012 Installed remotely response:<status:200 payload:"OK" >
2018-08-03 09:45:02.230 UTC [main] main -> INFO 013 Exiting..... 

It is likely that your chaincode is failing on start-up. 您的链码很有可能在启动时失败。 You might want to try using the development mode tutorial approach to debug your chaincode. 您可能想尝试使用开发模式教程方法来调试链码。 It is possible that the chaincode process is failing. 链码过程可能失败。 By executing from within the container, you can view the logs to see what might not be working for you. 通过在容器内执行,您可以查看日志以查看可能对您不起作用的内容。

The devmode tutorial is here . devmode教程在这里 You will simply need to replace the tutorial's chaincode with your own. 您只需要用您自己的替换链式代码即可。

In the peer configuration, you specified a different port for the chaincode endpoint than the peer adress (chaincode endpoint port 7052, peer adress on port 7051): 在对等配置中,您为链码端点指定了与对等地址不同的端口(链码端点端口7052,端口7051上的对等地址):

CORE_PEER_CHAINCODELISTENADDRESS=peer0.dm.proofofownership.com:7052

But this port is not exposed. 但是此端口未暴露。 Please add this to your peer port configuration: 请将其添加到您的对等端口配置中:

- 7052:7052

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM