title: Hyperledger Fabric: Timeout Expired while starting chaincode on "Peer Chaincode Instantiate" command
body: <p>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: </p>
  
  <p><strong>Command to instantiate chaincode:</strong></p>
  
  <pre><code>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')"
  </code></pre>
  
  <p><strong>Error Message received:</strong></p>
  
  <pre><code>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)
  </code></pre>
  
  <p>I tried rectifying this issue by adding the following attributes in "peer-base.yaml file"</p>
  
  <pre><code>- CORE_CHAINCODE_EXECUTETIMEOUT=300s
  - CORE_CHAINCODE_DEPLOYTIMEOUT=300s
  </code></pre>
  
  <p>Although, I am still receiving this particular error.</p>
  
  <p>Following are my docker container configurations:</p>
  
  <p><strong>peer-base.yaml File:</strong></p>
  
  <pre><code>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
  </code></pre>
  
  <p><strong>cli - container configuration in "docker-compose-cli.yaml" file:</strong></p>
  
  <pre><code>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
  </code></pre>
  
  <p><strong>peer configuration in "docker-compose-base.yaml" file:</strong></p>
  
  <pre><code>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
  </code></pre>
  
  <p><strong>Orderer Configuration in "docker-compose-base.yaml" file:</strong></p>
  
  <pre><code>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
  </code></pre>
  
  <p>I also reviewed the peer's docker container logs (using docker logs ) and received the following logs:</p>
  
  <pre><code>Launch -&gt; 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 -&gt; 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) 
  </code></pre>
  
  <p><strong>Following logs were received on installing chaincode:</strong> </p>
  
  <pre><code>2018-08-03 09:44:55.822 UTC [msp] GetLocalMSP -&gt; DEBU 001 Returning existing local MSP
  2018-08-03 09:44:55.822 UTC [msp] GetDefaultSigningIdentity -&gt; DEBU 002 Obtaining default signing identity
  2018-08-03 09:44:55.822 UTC [chaincodeCmd] checkChaincodeCmdParams -&gt; INFO 003 Using default escc
  2018-08-03 09:44:55.822 UTC [chaincodeCmd] checkChaincodeCmdParams -&gt; INFO 004 Using default vscc
  2018-08-03 09:44:55.822 UTC [chaincodeCmd] getChaincodeSpec -&gt; DEBU 005 java chaincode disabled
  2018-08-03 09:44:58.270 UTC [golang-platform] getCodeFromFS -&gt; DEBU 006 getCodeFromFS github.com/hyperledger/fabric/peer/chaincode
  2018-08-03 09:45:02.089 UTC [golang-platform] func1 -&gt; DEBU 007 Discarding GOROOT package bytes
  2018-08-03 09:45:02.089 UTC [golang-platform] func1 -&gt; DEBU 008 Discarding GOROOT package encoding/json
  2018-08-03 09:45:02.089 UTC [golang-platform] func1 -&gt; DEBU 009 Discarding GOROOT package fmt
  2018-08-03 09:45:02.090 UTC [golang-platform] func1 -&gt; DEBU 00a Discarding provided package github.com/hyperledger/fabric/core/chaincode/shim
  2018-08-03 09:45:02.090 UTC [golang-platform] func1 -&gt; DEBU 00b Discarding provided package github.com/hyperledger/fabric/protos/peer
  2018-08-03 09:45:02.090 UTC [golang-platform] func1 -&gt; DEBU 00c Discarding GOROOT package strconv
  2018-08-03 09:45:02.090 UTC [golang-platform] func1 -&gt; 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 -&gt; DEBU 00e done
  2018-08-03 09:45:02.090 UTC [container] WriteFileToPackage -&gt; 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 -&gt; DEBU 010 Sign: plaintext: 0AE3070A5B08031A0B089EC890DB0510...EC7BFE1B0000FFFFEE433C37001C0000
  2018-08-03 09:45:02.122 UTC [msp/identity] Sign -&gt; DEBU 011 Sign: digest: E5160DE95DB096379967D959FA71E692F098983F443378600943EA5D7265A82C 
  2018-08-03 09:45:02.230 UTC [chaincodeCmd] install -&gt; DEBU 012 Installed remotely response:&lt;status:200 payload:"OK" &gt;
  2018-08-03 09:45:02.230 UTC [main] main -&gt; INFO 013 Exiting..... 
  </code></pre>