0

I was setting up hyperledger caliper to test a fabcar network and got ECONNREFUFUSED error multiple times. It said that it failed to enroll admin. I setup the test network using ./startFabric.sh javascript in fabcar repo of fabric-samples. Then I used docker-compose to start caliper( used docker-compose up in caliper-benchmarks ). This is the docker-compose file that I used:

version: '2'

services:
    caliper:
        container_name: caliper
        image: hyperledger/caliper:0.3.2
        command: launch master --caliper-flow-only-test --caliper-fabric-gateway-usegateway --caliper-fabric-gateway-discovery 
        environment:
        - CALIPER_BIND_SUT=fabric:2.1.0
        - CALIPER_BENCHCONFIG=benchmarks/samples/fabric/fabcar/config1.yaml
        - CALIPER_NETWORKCONFIG=networks/fabric/network-config.yaml
        volumes:
        - ~/caliper-benchmarks:/hyperledger/caliper/workspace
        networks:
          - net_test

networks:
  net_test:
    external: "true"

This was my network-config.yaml file:


name: Fabric
version: "1.0"
mutual-tls: false

caliper:
    blockchain: fabric
    #command:
        #start: export FABRIC_VERSION=2.1.0;export FABRIC_CA_VERSION=1.4.4;docker-compose -f networks/fabric/naman/docker-compose/2org1peercouchdb_solo_raft/docker-compose-tls.yaml up -d;sleep 3s
        #end: docker-compose -f networks/fabric/naman/docker-compose/2org1peercouchdb_solo_raft/docker-compose-tls.yaml down;(test -z \"$(docker ps -aq)\") || docker rm $(docker ps -aq);(test -z \"$(docker images dev* -q)\") || docker rmi $(docker images dev* -q);rm -rf /tmp/hfc-*

info:
    Version: 2.1.0
    Size: 2 Orgs with 1 Peer
    Orderer: Raft
    Distribution: Single Host
    StateDB: CouchDB

clients:
    admin.Org1:
        client:
            organization: Org1
            connection:
                timeout:
                    peer:
                        endorser: 300
                    orderer: 300
                    
            #credentialStore:
                #path: /tmp/hfc-kvs/org1
                #cryptoStore:
                    #path: /tmp/hfc-cvs/org1
            #clientPrivateKey:
                #path: networks/fabric/naman/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/40fa9f923f527b11be8c05bb1a2d166a5c2cc43ee2d425b53cdb82836479206d_sk
            #clientSignedCert:
                #path: networks/fabric/naman/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/cert.pem

    admin.Org2:
        client:
            organization: Org2
            connection:
                timeout:
                    peer:
                        endorser: 300
                    orderer: 300            
            #credentialStore:
                #path: /tmp/hfc-kvs/org2
                #cryptoStore:
                    #path: /tmp/hfc-cvs/org2
            #clientPrivateKey:
                #path: networks/fabric/naman/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/cdc22e2ec274bf9d5ec0700b420c5e7423a2be73112f3bdc6565d7d45f9ae643_sk
            #clientSignedCert:
                #path: networks/fabric/naman/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/cert.pem
    User1:
        client:
            organization: Org1
            connection:
                timeout:
                    peer:
                        endorser: 300
                    orderer: 300    
    
    User2:
        client:
            organization: Org2
            connection:
                timeout:
                    peer:
                        endorser: 300
                    orderer: 300 
                    
                    
wallet: networks/wallet
channels:
    mychannel:
        configBinary: networks/mychannel.tx
        created: true
        #definition:
            #capabilities: []
            #consortium: 'SampleConsortium'
            #msps: ['Org1MSP', 'Org2MSP']
            #version: 0
        orderers:
        - orderer.example.com
        peers:
            peer0.org1.example.com:
                eventSource: true
            peer0.org2.example.com:
                eventSource: true
            #peer1.org1.example.com:
                #eventSource: true
            #peer1.org2.example.com:
                #eventSource: true

        chaincodes:
        #- id: marbles
         # version: v0
          #language: node
          #path: src/fabric/naman/samples/marbles/node
          #metadataPath: src/fabric/naman/samples/marbles/node/metadata
        - id: fabcar_1
          version: "1.0"
          language: node
          path: src/fabric/samples/fabcar/javascript1

organizations:
    Org1:
        mspid: Org1MSP
        peers:
        - peer0.org1.example.com
        certificateAuthorities:
        - ca.org1.example.com
        adminPrivateKey:
            path: networks/fabric/naman/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/5f63f8056561fdd7e62566d62d3f3fddeff12836e3151ec160ef228df008e56b_sk
        signedCert:
            path: networks/fabric/naman/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/cert.pem

    Org2:
        mspid: Org2MSP
        peers:
        - peer0.org2.example.com
        #- peer1.org2.example.com
        certificateAuthorities:
        - ca.org2.example.com
        adminPrivateKey:
            path: networks/fabric/naman/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/fc78c38deead140e8164625a839c44966371fcb17608362c2c78a506670bd290_sk
        signedCert:
            path: networks/fabric/naman/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/cert.pem

orderers:
    orderer.example.com:
        url: grpcs://localhost:7050
        grpcOptions:
            ssl-target-name-override: orderer.example.com
        tlsCACerts:
            path: networks/fabric/naman/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
peers:
  peer0.org1.example.com:
    url: grpcs://localhost:7051
    tlsCACerts:
      pem: |
        -----BEGIN CERTIFICATE-----
        MIICJjCCAc2gAwIBAgIUOKOEL9yThPFiI22Rj2ehP2/8BpEwCgYIKoZIzj0EAwIw
        cDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH
        EwZEdXJoYW0xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
        Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwNjMwMDcxNjAwWhcNMzUwNjI3MDcxNjAw
        WjBwMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExDzANBgNV
        BAcTBkR1cmhhbTEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMT
        Y2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHeO
        KBmJfaW5TmEVYDJPFUuibx8O+ju3qhHIXFbCnfjz91WnoIUhQXxtfs2Ajyr2ywWk
        N9T15plIKgGBe5YZB6+jRTBDMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG
        AQH/AgEBMB0GA1UdDgQWBBQYlGorkJ3HFJu/uGPNy753+gbMmDAKBggqhkjOPQQD
        AgNHADBEAiAe2nP1fUp4UtqMqVEyd9yzMPNbMBjVA3pFtsw5AThu6AIgPF30jUUm
        Ey2vOMKY6mmfZalsJIcyp6ysxPfDaMnq09I=
        -----END CERTIFICATE-----
        
    grpcOptions:
      ssl-target-name-override: peer0.org1.example.com
      hostnameOverride: peer0.org1.example.com
      
  peer0.org2.example.com:
    url: grpcs://localhost:9051
    tlsCACerts:
      pem: |
        -----BEGIN CERTIFICATE-----
        MIICHzCCAcWgAwIBAgIUGyDeO2bl0XWI29+/h+MNiybkdaowCgYIKoZIzj0EAwIw
        bDELMAkGA1UEBhMCVUsxEjAQBgNVBAgTCUhhbXBzaGlyZTEQMA4GA1UEBxMHSHVy
        c2xleTEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eub3Jn
        Mi5leGFtcGxlLmNvbTAeFw0yMDA2MzAwNzE2MDBaFw0zNTA2MjcwNzE2MDBaMGwx
        CzAJBgNVBAYTAlVLMRIwEAYDVQQIEwlIYW1wc2hpcmUxEDAOBgNVBAcTB0h1cnNs
        ZXkxGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2NhLm9yZzIu
        ZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQlkzwJM7JneAQo
        VVrvGGJSzhIryum1oXjNEx01rlc0IawgRzMZdeD10kPIFc0xnTyfCwIJCoVNnS/B
        cCuU/WvFo0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBATAd
        BgNVHQ4EFgQUG68pu74VjkUe6MxLutjnBKC0VvowCgYIKoZIzj0EAwIDSAAwRQIh
        AKH17YHSHWrGSbwHMNt7TtnQo/IpKyr2P10jHKIVgEoKAiBNic1oFFzyO/xV74ju
        8Al0TaGFj222ThdzyT3JrZyGqw==
        -----END CERTIFICATE-----
        
    grpcOptions:
      ssl-target-name-override: peer0.org2.example.com
      hostnameOverride: peer0.org2.example.com

certificateAuthorities:
  ca.org1.example.com:
    url: https://localhost:7054
    caName: ca-org1
    tlsCACerts:
      pem: |
        -----BEGIN CERTIFICATE-----
        MIICJjCCAc2gAwIBAgIUOKOEL9yThPFiI22Rj2ehP2/8BpEwCgYIKoZIzj0EAwIw
        cDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH
        EwZEdXJoYW0xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
        Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwNjMwMDcxNjAwWhcNMzUwNjI3MDcxNjAw
        WjBwMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExDzANBgNV
        BAcTBkR1cmhhbTEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMT
        Y2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHeO
        KBmJfaW5TmEVYDJPFUuibx8O+ju3qhHIXFbCnfjz91WnoIUhQXxtfs2Ajyr2ywWk
        N9T15plIKgGBe5YZB6+jRTBDMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG
        AQH/AgEBMB0GA1UdDgQWBBQYlGorkJ3HFJu/uGPNy753+gbMmDAKBggqhkjOPQQD
        AgNHADBEAiAe2nP1fUp4UtqMqVEyd9yzMPNbMBjVA3pFtsw5AThu6AIgPF30jUUm
        Ey2vOMKY6mmfZalsJIcyp6ysxPfDaMnq09I=
        -----END CERTIFICATE-----
        
    httpOptions:
      verify: false
    registrar:
      - enrollId: admin
        enrollSecret: adminpw
      
  ca.org2.example.com:
    url: https://localhost:8054
    caName: ca-org2
    tlsCACerts:
      pem: |
        -----BEGIN CERTIFICATE-----
        MIICHzCCAcWgAwIBAgIUGyDeO2bl0XWI29+/h+MNiybkdaowCgYIKoZIzj0EAwIw
        bDELMAkGA1UEBhMCVUsxEjAQBgNVBAgTCUhhbXBzaGlyZTEQMA4GA1UEBxMHSHVy
        c2xleTEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eub3Jn
        Mi5leGFtcGxlLmNvbTAeFw0yMDA2MzAwNzE2MDBaFw0zNTA2MjcwNzE2MDBaMGwx
        CzAJBgNVBAYTAlVLMRIwEAYDVQQIEwlIYW1wc2hpcmUxEDAOBgNVBAcTB0h1cnNs
        ZXkxGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2NhLm9yZzIu
        ZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQlkzwJM7JneAQo
        VVrvGGJSzhIryum1oXjNEx01rlc0IawgRzMZdeD10kPIFc0xnTyfCwIJCoVNnS/B
        cCuU/WvFo0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBATAd
        BgNVHQ4EFgQUG68pu74VjkUe6MxLutjnBKC0VvowCgYIKoZIzj0EAwIDSAAwRQIh
        AKH17YHSHWrGSbwHMNt7TtnQo/IpKyr2P10jHKIVgEoKAiBNic1oFFzyO/xV74ju
        8Al0TaGFj222ThdzyT3JrZyGqw==
        -----END CERTIFICATE-----
        
    httpOptions:
      verify: false
    registrar:
      - enrollId: admin
        enrollSecret: adminpw   

This is the benchmark-config file used:

---
test:
  workers:
    type: local
    number: 1
  rounds:
  - label: Query all cars.
    txDuration: 30
    rateControl:
      type: fixed-backlog
      opts:
        unfinished_per_client: 5
    arguments:
      assets: 10 
      startKey: '1'
      endKey: '50'
    callback: benchmarks/samples/fabric/fabcar/queryAllCars.js
  - label: Query a car.
    txDuration: 30
    rateControl:
      type: fixed-backlog
      opts:
        unfinished_per_client: 5
    arguments:
      assets: 10 
    callback: benchmarks/samples/fabric/fabcar/queryCar.js
  - label: Create a car.
    txDuration: 30
    rateControl:
      type: fixed-backlog
      opts:
        unfinished_per_client: 5
    callback: benchmarks/samples/fabric/fabcar/createCar.js
monitor:
  type:
  - docker
  docker:
    name:
    - all
  interval: 1 

This is the error I was getting:

aliper | 2020-06-26T14:15:31.749Z - error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054], stack=Error: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:7054]
caliper | at ClientRequest.request.on (/home/node/.npm-global/lib/node_modules/fabric-ca-client/lib/FabricCAClient.js:484:12)
caliper | at ClientRequest.emit (events.js:198:13)
caliper | at TLSSocket.socketErrorListener (_http_client.js:392:9)
caliper | at TLSSocket.emit (events.js:198:13)
caliper | at emitErrorNT (internal/streams/destroy.js:91:8)
caliper | at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
caliper | at process._tickCallback (internal/process/next_tick.js:63:19)

I was using fabric 2.1.0 and caliper 0.3.2. I specified net-test in docker-compose to make sure caliper container is in the same network as fabric. Can someone please help?

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
  • 1
    You've set the CA endpoints as localhost. Because you are running containerized caliper localhost is not available. You need to use the service name instead of localhost, expose the ports in docker-compose, and make sure both caliper and your fabric components are running on the same docker network. – lindluni Jul 04 '20 at 19:15
  • @lindluni where do I get the service name from ? – Naman Gupta Jul 05 '20 at 07:35
  • In the docker-compose file, under services, its just the name of each stanza, so if you look at your caliper compose file, under services, the entry is named `caliper` that would be how you would refer to it. So for other services you refer to them by the same name you declared under the services section in your docker-compose file. But just remember, they need to be on the same docker network – lindluni Jul 06 '20 at 04:33
  • @lindluni I changed localhost to caliper in the url for certifacate authorities.... I got the following error: ``` error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 172.18.0.12:7054], stack=Error: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 172.18.0.12:7054] ``` On inspecting net_test(network on which fabric is running) it does not show me a caliper container but on inspecting the caliper container it shows me its running on "net_test" network mode. – Naman Gupta Jul 06 '20 at 07:58

0 Answers0