4

I'm trying to instantiate Hyperledger Fabric Fabcar Nodejs chaincode but getting the below error.

/var/hyperledger/fabric-samples/chaincode/fabcar/typescript# peer chaincode instantiate \
    -C mychannel -n fabcar  -v 1.0 -l node -c '{"Args":[]}' \
    -P "OR('Org1MSP.member','Org2MSP.member')"
[chaincodeCmd] InitCmdFactory -> INFO 001 Retrieved channel (mychannel) orderer endpoint: ord1.orderers:7050
[chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default escc
[chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default vscc
Error: could not assemble transaction, err proposal response was not successful, error code 500, msg error starting container: \
error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 \
"cp: cannot stat '/chaincode/input/src/.': No such file or directory"

The marbles_2 got installed, instantiated, invoked and queried without issues. So I assume my set up is fine in Minikube (--vm-driver=none option) Kubernetes cluster (using stable helm charts).

This is how manifests look like:

apiVersion: v1
kind: ConfigMap
metadata:
  name: peer0-hlf-peer--peer
  labels:
    app: hlf-peer
    heritage: "Helm"
    release: "peer0"
    chart: hlf-peer-1.2.10
data:
  CORE_PEER_ADDRESSAUTODETECT: "true"
  CORE_PEER_ID: peer0
  CORE_PEER_NETWORKID: nid1
  # If we have an ingress, we set hostname to it
  # Otherwise we use CORE_PEER_ADDRESSAUTODETECT to auto-detect its address
  CORE_PEER_LISTENADDRESS: 0.0.0.0:7051
  CORE_PEER_EVENTS_ADDRESS: 0.0.0.0:7053
  CORE_PEER_COMMITTER_ENABLED: "true"
  CORE_PEER_PROFILE_ENABLED: "true"
  CORE_PEER_DISCOVERY_PERIOD: 60s
  CORE_PEER_DISCOVERY_TOUCHPERIOD: 60s
  CORE_PEER_LOCALMSPID: "Org3MSP"
  CORE_PEER_MSPCONFIGPATH: /var/hyperledger/msp
  ###########
  # Logging #
  ###########
  # CORE_LOGGING_LEVEL: 
  CORE_LOGGING_PEER: "info"
  CORE_LOGGING_CAUTHDSL: "warning"
  CORE_LOGGING_GOSSIP: "info"
  CORE_LOGGING_LEDGER: "info"
  CORE_LOGGING_MSP: "warning"
  CORE_LOGGING_POLICIES: "warning"
  CORE_LOGGING_GRPC: "error"
  FABRIC_LOGGING_SPEC: "info"
  ##########
  # Gossip #
  ##########
  CORE_PEER_GOSSIP_BOOTSTRAP: ""
  CORE_PEER_GOSSIP_ENDPOINT: ""
  CORE_PEER_GOSSIP_EXTERNALENDPOINT: ""
  CORE_PEER_GOSSIP_ORGLEADER: "false"
  CORE_PEER_GOSSIP_USELEADERELECTION: "true"
  ##########
  # TLS    #
  ##########
  CORE_PEER_TLS_ENABLED: "false"
  CORE_PEER_TLS_CERT_FILE: "/var/hyperledger/tls/server/pair/tls.crt"
  CORE_PEER_TLS_KEY_FILE: "/var/hyperledger/tls/server/pair/tls.key"
  CORE_PEER_TLS_ROOTCERT_FILE: "/var/hyperledger/tls/server/cert/cacert.pem"
  CORE_PEER_TLS_CLIENTAUTHREQUIRED: "false"
  # This is fixed prior to starting the peer
  CORE_PEER_TLS_CLIENTROOTCAS_FILES: "/var/hyperledger/tls/client/cert/*"
  CORE_PEER_TLS_CLIENTCERT_FILE: "/var/hyperledger/tls/client/pair/tls.crt"
  CORE_PEER_TLS_CLIENTKEY_FILE: "/var/hyperledger/tls/client/pair/tls.key"
  CORE_VM_ENDPOINT: unix:///host/var/run/docker.sock
  CORE_LEDGER_STATE_STATEDATABASE: "CouchDB"
  # Containers in the same pod share the host
  CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS: couchdb-peer0-hlf-couchdb:5984
  PEER_CFG_PATH: /var/hyperledger/config
  FABRIC_CFG_PATH: /var/hyperledger/fabric_cfg
  GODEBUG: "netdns=go"
  ADMIN_MSP_PATH: /var/hyperledger/admin_msp
  ORD_TLS_PATH: /var/hyperledger/tls/ord/cert
---
# Source: hlf-peer/templates/pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: peer0-hlf-peer
  labels:
    app: hlf-peer
    heritage: "Helm"
    release: "peer0"
    chart: hlf-peer-1.2.10
spec:
  accessModes:
    - "ReadWriteOnce"
  resources:
    requests:
      storage: "1Gi"
---
# Source: hlf-peer/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: peer0
  labels:
    app: hlf-peer
    heritage: "Helm"
    release: "peer0"
    chart: hlf-peer-1.2.10
spec:
  type: ClusterIP
  ports:
    - port: 7051
      targetPort: 7051
      protocol: TCP
      name: request
    - port: 7053
      targetPort: 7053
      protocol: TCP
      name: event
  selector:
    app: hlf-peer
    release: peer0
---
# Source: hlf-peer/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: peer0-hlf-peer
  labels:
    app: hlf-peer
    heritage: "Helm"
    release: "peer0"
    chart: hlf-peer-1.2.10
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hlf-peer
      release: peer0
  # Ensure we allow our pod to be unavailable, so we can upgrade
  strategy:
    rollingUpdate:
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: hlf-peer
        heritage: "Helm"
        release: "peer0"
        chart: hlf-peer-1.2.10
    spec:
      volumes:
        - name: data
          persistentVolumeClaim:
            claimName: peer0-hlf-peer
        - name: dockersocket
          hostPath:
            path: /var/run/docker.sock
        - name: id-cert
          secret:
            secretName: peer0-idcert
        - name: id-key
          secret:
            secretName: peer0-idkey
        - name: cacert
          secret:
            secretName: peer0-cacert
        - name: tls
          secret:
            secretName: peer0-tls-pair
        - name: tls-rootcert
          secret:
            secretName: org3-tls-cacert
        - name: tls-client
          secret:
            secretName: peer0-tls-pair
        - name: tls-clientrootcert
          secret:
            secretName: org3-tls-cacert
        - name: admin-cert
          secret:
            secretName: peer0-admincert
        - name: admin-key
          secret:
            secretName: peer0-adminkey
        - name: ord-tls-rootcert
          secret:
            secretName: orderers-tls-cacert
      hostname: peer0
      subdomain: org3
      containers:
        - name: peer
          image: "hyperledger/fabric-peer:1.4.3"
          imagePullPolicy: IfNotPresent
          ports:
            - name: request
              containerPort: 7051
              protocol: TCP
            - name: event
              containerPort: 7053
              protocol: TCP
          livenessProbe:
            exec:
              command:
              - ls
              - /var/hyperledger
            initialDelaySeconds: 5
            periodSeconds: 5
          # TODO: Improve readiness probe (ideally `ps aux | awk '$11=="orderer"'`)
          readinessProbe:
            exec:
              command:
              - ls
              - /var/hyperledger
            initialDelaySeconds: 15
          command:
            - bash
            - -c
            - |
              # To avoid having separate secrets for CouchDB and HLF
              export CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=$COUCHDB_USER
              export CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=$COUCHDB_PASSWORD

              while [ ! -d /var/hyperledger/admin_msp/admincerts ] || [ -z "$(ls -A /var/hyperledger/admin_msp/admincerts)" ];
              do
                echo "\033[0;31m /var/hyperledger/admin_msp/admincerts must contain Peer admin certificates files \033[0m"
                sleep 60
              done

              while [ ! -d ${CORE_PEER_MSPCONFIGPATH}/signcerts ];
              do
                echo "\033[0;31m ${CORE_PEER_MSPCONFIGPATH}/signcerts directory must exist \033[0m"
                sleep 60
              done

              if [ ! -d ${FABRIC_CFG_PATH} ]
              then
                mkdir -p ${FABRIC_CFG_PATH}
                cp -r /etc/hyperledger/fabric/core.yaml ${FABRIC_CFG_PATH}
                ls ${FABRIC_CFG_PATH}
              fi

              if [ $CORE_PEER_TLS_CLIENTAUTHREQUIRED ]
              then
                export CORE_PEER_TLS_CLIENTROOTCAS_FILES=$(ls -d $CORE_PEER_TLS_CLIENTROOTCAS_FILES)
              fi

              echo ">\033[0;35m peer node start \033[0m"
              peer node start
          envFrom:
            - secretRef:
                name: couchdb-peer0-hlf-couchdb
            - configMapRef:
                name: peer0-hlf-peer--peer
          volumeMounts:
            - mountPath: /var/hyperledger
              name: data
            - mountPath: /host/var/run/docker.sock
              name: dockersocket
            - mountPath: /var/hyperledger/msp/signcerts
              name: id-cert
            - mountPath: /var/hyperledger/msp/keystore
              name: id-key
            - mountPath: /var/hyperledger/msp/cacerts
              name: cacert
            - mountPath: /var/hyperledger/admin_msp/cacerts
              name: cacert
            - mountPath: /var/hyperledger/tls/server/pair
              name: tls
            - mountPath: /var/hyperledger/tls/server/cert
              name: tls-rootcert
            - mountPath: /var/hyperledger/tls/client/pair
              name: tls-client
            - mountPath: /var/hyperledger/tls/client/cert
              name: tls-clientrootcert
            - mountPath: /var/hyperledger/tls/ord/cert
              name: ord-tls-rootcert
            - mountPath: /var/hyperledger/admin_msp/admincerts
              name: admin-cert
            - mountPath: /var/hyperledger/admin_msp/signcerts
              name: admin-cert
            - mountPath: /var/hyperledger/msp/admincerts
              name: admin-cert
            - mountPath: /var/hyperledger/admin_msp/keystore
              name: admin-key
          resources:
            {}
Moazzem Hossen
  • 2,276
  • 1
  • 19
  • 30

0 Answers0