Raviteja
Raviteja

Reputation: 107

Error while installing Chaincode in Hyperledger Fabric Network

I have created a basic network with a peer, couch DB , orderer, and a CA. Able to bring the network up but when trying to install the chain code written in typescript it throws the following error.

Error: Error Message

docker- compose.yaml:

version: "2"

networks:
  miqlave:

services:
  ca.miqlave.com:
    image: hyperledger/fabric-ca
    environment:
      - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
      - FABRIC_CA_SERVER_CA_NAME=ca.miqlave.com
      - FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.suja.miqlave.com-cert.pem
      - FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/7173c628839f14e9b1e4dbf6f73e60798c8fcf4a38cf9a6453080b0363d6a0cc_sk
    ports:
      - "7054:7054"
    command: sh -c 'fabric-ca-server start -b admin:adminpw'
    volumes:
      - ./crypto-config/peerOrganizations/suja.miqlave.com/ca/:/etc/hyperledger/fabric-ca-server-config
    container_name: ca.miqlave.com
    networks:
      - miqlave

  orderer.miqlave.com:
    container_name: orderer.miqlave.com
    image: hyperledger/fabric-orderer
    environment:
      - FABRIC_LOGGING_SPEC=info
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer/msp
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderer
    command: orderer
    ports:
      - 7050:7050
    volumes:
      - ./config/:/etc/hyperledger/configtx
      - ./crypto-config/ordererOrganizations/miqlave.com/orderers/orderer.miqlave.com/:/etc/hyperledger/msp/orderer
      - ./crypto-config/peerOrganizations/suja.miqlave.com/peers/peer0.suja.miqlave.com/:/etc/hyperledger/msp/peerOrg1
    networks:
      - miqlave

  peer0.suja.miqlave.com:
    container_name: peer0.suja.miqlave.com
    image: hyperledger/fabric-peer
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_PEER_ID=peer0.suja.miqlave.com
      - FABRIC_LOGGING_SPEC=info
      - CORE_CHAINCODE_LOGGING_LEVEL=info
      - CORE_PEER_LOCALMSPID=SujaMSP
      - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/peer/
      - CORE_PEER_ADDRESS=peer0.suja.miqlave.com:7051 
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_miqlave
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984
      - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=
      - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: peer node start
    # command: peer node start --peer-chaincodedev=true
    ports:
      - 7051:7051
    volumes:
      - /var/run/:/host/var/run/
      - ./crypto-config/peerOrganizations/suja.miqlave.com/peers/peer0.suja.miqlave.com/msp:/etc/hyperledger/msp/peer
      - ./crypto-config/peerOrganizations/suja.miqlave.com/users:/etc/hyperledger/msp/users
      - ./config:/etc/hyperledger/configtx
      # - ./SmartContract:/opt/gopath/src/github.com/
    depends_on:
      - orderer.miqlave.com
      - couchdb
    networks:
      - miqlave

  couchdb:
    container_name: couchdb
    image: hyperledger/fabric-couchdb
    environment:
      - COUCHDB_USER=
      - COUCHDB_PASSWORD=
    ports:
      - 5984:5984
    networks:
      - miqlave

  cli:
    container_name: cli
    image: hyperledger/fabric-tools
    tty: true
    environment:
      - GOPATH=/opt/gopath
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - FABRIC_LOGGING_SPEC=info
      - CORE_PEER_ID=cli
      - CORE_PEER_ADDRESS=peer0.suja.miqlave.com:7051
      - CORE_PEER_LOCALMSPID=SujaMSP
      - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/suja.miqlave.com/users/[email protected]/msp
      - CORE_CHAINCODE_KEEPALIVE=10
    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/
      - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
    networks:
      - miqlave 

Im able to successfully start the network , create channelnd add peer to the channel using the following commands:

 - docker-compose -f docker-compose.yml up -d ca.miqlave.com orderer.miqlave.com peer0.suja.miqlave.com couchdb
 -  docker exec -e "CORE_PEER_LOCALMSPID=SujaMSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/[email protected]/msp" peer0.suja.miqlave.com peer channel create -o orderer.miqlave.com:7050 -c miqlavechannel -f /etc/hyperledger/configtx/channel.tx 
 - docker exec -e "CORE_PEER_LOCALMSPID=SujaMSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/[email protected]/msp" peer0.suja.miqlave.com peer channel join -b miqlavechannel.block

The above commands executed successfully. When installing the chaincode using following command hyperledger throws error.

deploycontract.sh:

CC_SRC_LANGUAGE = "typescript"
CC_RUNTIME_LANGUAGE=node # chaincode runtime language is node.js
    CC_SRC_PATH=/opt/gopath/src/github.com/chaincode #/fabcar/typescript
    echo Compiling TypeScript code into JavaScript ...
    pushd ../SmartContract/typescript/
    npm install
    npm run build
    popd
    echo Finished compiling TypeScript code into JavaScript

CONFIG_ROOT=/opt/gopath/src/github.com/hyperledger/fabric/peer
ORG1_MSPCONFIGPATH=${CONFIG_ROOT}/crypto-config/peerOrganizations/suja.miqlave.com/users/[email protected]/msp
ORG1_TLS_ROOTCERT_FILE=${CONFIG_ROOT}/crypto-config/peerOrganizations/suja.miqlave.com/peers/peer0.suja.miqlave.com/tls/ca.crt
ORDERER_TLS_ROOTCERT_FILE=${CONFIG_ROOT}/crypto-config/ordererOrganizations/miqlave.com/orderers/orderer.miqlave.com/msp/tlscacerts/tlsca.miqlave.com-cert.pem

echo "Installing smart contract on peer0.suja.miqlave.com"
docker exec \
  -e CORE_PEER_LOCALMSPID=SujaMSP \
  -e CORE_PEER_ADDRESS=peer0.suja.miqlave.com:7051 \
  -e CORE_PEER_MSPCONFIGPATH=${ORG1_MSPCONFIGPATH} \
  -e CORE_PEER_TLS_ROOTCERT_FILE=${ORG1_TLS_ROOTCERT_FILE} \
  peer0.suja.miqlave.com \
  peer chaincode install \
    -n miqlavecc \
    -v 1.0 \
    -p "$CC_SRC_PATH" \
    -l "$CC_RUNTIME_LANGUAGE"

Upvotes: 0

Views: 438

Answers (1)

Narendranath Reddy
Narendranath Reddy

Reputation: 4133

@Ravi,

Please remove this from your command

‘CORE_PEER_MSPCONFIGPATH’

You are already passing this in the CLI env and it is correct

The path you are passing in the command which is wrong path so just remove and try it

Upvotes: 1

Related Questions