hyperledger-fabrichyperledgeribm-blockchainibp-vscode-extension

Error connecting Hyperledger Fabric local BYFN network to IBM Blockchain Platform VS Code Extension


I am running a local instance of the BYFN network from the fabric-samples repo with the following command:

git checkout tags/v1.4.6
cd first-network
./byfn.sh up -a -n -i 1.4.6

I am then trying to connect with IBP VS Code extension using the following nodes file I created based on the created Network:

[
  {
    "name": "peer0.org1.example.com",
    "api_url": "grpcs://localhost:7051",
    "type": "fabric-peer",
    "msp_id": "Org1MSP",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNWekNDQWY2Z0F3SUJBZ0lSQU10NWtsWVhDbFJYaVYvVTJ6d0pvSEl3Q2dZSUtvWkl6ajBFQXdJd2RqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIekFkQmdOVkJBTVRGblJzCmMyTmhMbTl5WnpFdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpBeE1qSXpNVFkxTmpBd1doY05NekF4TWpJeE1UWTEKTmpBd1dqQjJNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRQpCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWZNQjBHCkExVUVBeE1XZEd4elkyRXViM0puTVM1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDkKQXdFSEEwSUFCQ1dRVDM4aHlFL1pseDdxU0tMS0pRcnpJNTZSYUp6cnZLY1B6Tm1xc2k5dmRJNmFuRE9QekRzMgpOWHVHeGJTY3drLzR5a3Rac3E2cFg5VjFVU2VqaHN1amJUQnJNQTRHQTFVZER3RUIvd1FFQXdJQnBqQWRCZ05WCkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBcEJnTlYKSFE0RUlnUWdrUkdteWlSQmlXT0JUUDhFSmo2enl3aXlXMXFrUE9KRVpvN2lTeE40S0drd0NnWUlLb1pJemowRQpBd0lEUndBd1JBSWdMMkc4VDZ0bVdKeHJRc3hyVDNUTDNvUkYvUmVmbWp2YkNvSnpoc2xJKzMwQ0lCU0RRdC9NCmNyUHJyOHNybFBSeTNXakRWUlhjTGo0ZGkzSEdENG42WGFRRgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
  },
  {
    "name": "peer1.org1.example.com",
    "api_url": "grpcs://localhost:8051",
    "type": "fabric-peer",
    "msp_id": "Org1MSP",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNWekNDQWY2Z0F3SUJBZ0lSQU10NWtsWVhDbFJYaVYvVTJ6d0pvSEl3Q2dZSUtvWkl6ajBFQXdJd2RqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIekFkQmdOVkJBTVRGblJzCmMyTmhMbTl5WnpFdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpBeE1qSXpNVFkxTmpBd1doY05NekF4TWpJeE1UWTEKTmpBd1dqQjJNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRQpCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWZNQjBHCkExVUVBeE1XZEd4elkyRXViM0puTVM1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDkKQXdFSEEwSUFCQ1dRVDM4aHlFL1pseDdxU0tMS0pRcnpJNTZSYUp6cnZLY1B6Tm1xc2k5dmRJNmFuRE9QekRzMgpOWHVHeGJTY3drLzR5a3Rac3E2cFg5VjFVU2VqaHN1amJUQnJNQTRHQTFVZER3RUIvd1FFQXdJQnBqQWRCZ05WCkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBcEJnTlYKSFE0RUlnUWdrUkdteWlSQmlXT0JUUDhFSmo2enl3aXlXMXFrUE9KRVpvN2lTeE40S0drd0NnWUlLb1pJemowRQpBd0lEUndBd1JBSWdMMkc4VDZ0bVdKeHJRc3hyVDNUTDNvUkYvUmVmbWp2YkNvSnpoc2xJKzMwQ0lCU0RRdC9NCmNyUHJyOHNybFBSeTNXakRWUlhjTGo0ZGkzSEdENG42WGFRRgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
  },
  {
    "name": "ca.org1.example.com",
    "api_url": "https://localhost:7054",
    "type": "fabric-ca",
    "ca_name": "ca-org1",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNVVENDQWZpZ0F3SUJBZ0lSQUpTTFNxaVB4b3puSDJSVTl6cXlJNXd3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NakF4TWpJek1UWTFOakF3V2hjTk16QXhNakl4TVRZMU5qQXcKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NUzVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkpMNVI1K2ttUHJ2S1ZrSE1yak01MTE5bFJOMEdOM3dhUm1jQUZpb1lhTjcvV1BvVmFVNGJzV0ZEbC8wcG9NdgpFc05qeHRCaVI2K0NCdnMyWmtObTNkMmpiVEJyTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVCkJnZ3JCZ0VGQlFjREFnWUlLd1lCQlFVSEF3RXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWcKeUROYmovNk5rL3NSNmpmR1FFeFpnajY2S3VtUTQzR0hBL1NLZUtGUCt0Y3dDZ1lJS29aSXpqMEVBd0lEUndBdwpSQUlnQ2QyMnNMME90SDNtZnRDTmFPZzJNZlpQVHRjdEVqbkcwblRUdUlFMW1oUUNJRFdMSURhUmg2UmFhekhwCk9vWjRjVENpc3hiaU8xclI5eVUrMUg5aUdWL2IKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
    "enroll_id": "admin",
    "enroll_secret": "adminpw"
  },
  {
    "name": "orderer.example.com",
    "api_url": "grpcs://localhost:7050",
    "type": "fabric-orderer",
    "msp_id": "OrdererMSP",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNRekNDQWVtZ0F3SUJBZ0lRUFp6Wld0L0pkT1BRZG9Sdjgwem5NekFLQmdncWhrak9QUVFEQWpCc01Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4R2pBWUJnTlZCQU1URVhSc2MyTmhMbVY0CllXMXdiR1V1WTI5dE1CNFhEVEl3TVRJeU16RTJOVFl3TUZvWERUTXdNVEl5TVRFMk5UWXdNRm93YkRFTE1Ba0cKQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdQpZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUm93R0FZRFZRUURFeEYwYkhOallTNWxlR0Z0CmNHeGxMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQko0YmlxMnhrcGo4NGNBZnZTWEgKV1dCWlN6U3oyZXVIYysrQ3F0dXBDYXZTM1Y3c2ZSSzFKb3l5QndlazIzRjVpRXY3akhwUHlrUHVUVStycTAxYgpRdHVqYlRCck1BNEdBMVVkRHdFQi93UUVBd0lCcGpBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFnWUlLd1lCCkJRVUhBd0V3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFwQmdOVkhRNEVJZ1FnQy9HSzhNUDV0S0hSTWJQSWNOZkoKejh6L2ZlTmx1cXRmSThqL3V0YW5CV1F3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUpSRDZoOVJFejlBcmlSSwpXcWRhSnZKQVhjaVFOYk9Wa0MxWHlvR3FZWVF2QWlCcWFaRHRuY2lWcUtzSUR5dUJQaTBucS83OTBpVUF0dUp2CmhPcFJNOGtEZUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
  },
  {
    "name": "peer0.org2.example.com",
    "api_url": "grpcs://localhost:9051",
    "type": "fabric-peer",
    "msp_id": "Org2MSP",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNXRENDQWY2Z0F3SUJBZ0lSQUx5c1Fpdk1JVzRDTWdON0s3bmV1TGN3Q2dZSUtvWkl6ajBFQXdJd2RqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIekFkQmdOVkJBTVRGblJzCmMyTmhMbTl5WnpJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpBeE1qSXpNVFkxTmpBd1doY05NekF4TWpJeE1UWTEKTmpBd1dqQjJNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRQpCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWZNQjBHCkExVUVBeE1XZEd4elkyRXViM0puTWk1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDkKQXdFSEEwSUFCTldtKy9TS3ZsV2FvQUViUUZyTGdMQml6b0o5eDNLbDVISHFya1hsMU1YS3Q2MjRKd1BTOXBMdApReFBUN2x6VGhib0pYZlVocE1ZQmdGQVJqTHp0eXNLamJUQnJNQTRHQTFVZER3RUIvd1FFQXdJQnBqQWRCZ05WCkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBcEJnTlYKSFE0RUlnUWdBaWE1WCtEZnRZRFVGVVN3SVJEUEJCc2hIdVdLVzlGVTdNb04vRVllNmM4d0NnWUlLb1pJemowRQpBd0lEU0FBd1JRSWhBSjN2bk1NcUlsVUMvWUlzdVJFOGIwcDE1TE80NlFYK0VucXBmcGVJc2hkMkFpQis3cjdKCkNWTDhKUW9tZlJSeCszbUVua0NIOGoxL0x5YW5xV3IrWkdQNkhnPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
  },
  {
    "name": "peer1.org2.example.com",
    "api_url": "grpcs://localhost:10051",
    "type": "fabric-peer",
    "msp_id": "Org2MSP",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNXRENDQWY2Z0F3SUJBZ0lSQUx5c1Fpdk1JVzRDTWdON0s3bmV1TGN3Q2dZSUtvWkl6ajBFQXdJd2RqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIekFkQmdOVkJBTVRGblJzCmMyTmhMbTl5WnpJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpBeE1qSXpNVFkxTmpBd1doY05NekF4TWpJeE1UWTEKTmpBd1dqQjJNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRQpCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWZNQjBHCkExVUVBeE1XZEd4elkyRXViM0puTWk1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDkKQXdFSEEwSUFCTldtKy9TS3ZsV2FvQUViUUZyTGdMQml6b0o5eDNLbDVISHFya1hsMU1YS3Q2MjRKd1BTOXBMdApReFBUN2x6VGhib0pYZlVocE1ZQmdGQVJqTHp0eXNLamJUQnJNQTRHQTFVZER3RUIvd1FFQXdJQnBqQWRCZ05WCkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBcEJnTlYKSFE0RUlnUWdBaWE1WCtEZnRZRFVGVVN3SVJEUEJCc2hIdVdLVzlGVTdNb04vRVllNmM4d0NnWUlLb1pJemowRQpBd0lEU0FBd1JRSWhBSjN2bk1NcUlsVUMvWUlzdVJFOGIwcDE1TE80NlFYK0VucXBmcGVJc2hkMkFpQis3cjdKCkNWTDhKUW9tZlJSeCszbUVua0NIOGoxL0x5YW5xV3IrWkdQNkhnPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
  },
  {
    "name": "ca.org2.example.com",
    "api_url": "https://localhost:8054",
    "type": "fabric-ca",
    "ca_name": "ca-org2",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNVVENDQWZpZ0F3SUJBZ0lSQVBBdHVvQlMrdCtnOVRRRGRTSzRJN013Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NakF4TWpJek1UWTFOakF3V2hjTk16QXhNakl4TVRZMU5qQXcKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NaTVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkw2Q2wrV3ZLVmR3UmtZWmdtUVdmdDMwQUxQTXBDbFBuYm9QcVB3d2VMU2ZCU3k4dHp3dnZYSU9xWGlWQ2UyVwpzbFlneDFXMVprTG9aYXNzNkU3cnNRYWpiVEJyTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVCkJnZ3JCZ0VGQlFjREFnWUlLd1lCQlFVSEF3RXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWcKUXJXTllISDV0VWhHUkFneDI1aWsxdXJQSUNKRkxjVGg4YnJMcjdXTy83c3dDZ1lJS29aSXpqMEVBd0lEUndBdwpSQUlnTGJSc3EvaEcveG9pMjc4eFZDdmQxQXpXY0JWNUdsTG51TjlzZmlSdW5Ka0NJRFAxSksxOTIwaXFTZlBKCmQ4TnBDb1VJME5MQmtZNnNrYkQ2T3FvbUs5TjQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
    "enroll_id": "admin",
    "enroll_secret": "adminpw"
  }
]

The pem for peer*.org*.example.com is the base64 encoded version of the certificate in

first-network/crypto-config/peerOrganizations/org*.example.com/tlsca/tlsca.org*.example.com-cert.pem


The pem for orderer.example.com is the base64 encoded version of the certificate in

first-network/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem


The pem for ca.org*.example.com is the base64 encoded version of the certificate in

first-network/crypto-config/peerOrganizations/org*.example.com/ca/ca.org*.example.com-cert.pem


Next, I am creating the wallets for Org1, Org2 and Orderer by providing the signcerts and keystore files in

first-network/crypto-config/(peer|orderer)Organizations/org*.example.com/users/Admin@org*.example.com/msp

For CA, I chose the option use ID and secret to enroll a new identity to create new identities in Org1 and Org2 wallets. Now, when I try to connect to the environment, the extension is giving the error below:

Error connecting to environment Byfn: Error querying channels: 14 UNAVAILABLE: failed to connect to all addresses

As an aside, I am able to import the connection-org*.json files to create a new gateway and see the channel in the extension, but an not able to create a new environment to install/instantiate new chaincodes.

Extension Version: v1.0.40

How do I resolve this issue and connect the VS Code extension to my local BYFN network ?


Solution mentioned by @david_k below works. For the sake of completeness, here's my updated files:

nodes.json

[
  {
    "name": "peer0.org1.example.com",
    "api_url": "grpcs://peer0.org1.example.com:7051",
    "type": "fabric-peer",
    "msp_id": "Org1MSP",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNWakNDQWYyZ0F3SUJBZ0lRVHk2dUNOTW9Xclc5VHMzdW55dDVHekFLQmdncWhrak9QUVFEQWpCMk1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWZNQjBHQTFVRUF4TVdkR3h6ClkyRXViM0puTVM1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TURFeU1qUXhOVEl6TURCYUZ3MHpNREV5TWpJeE5USXoKTURCYU1IWXhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSApFdzFUWVc0Z1JuSmhibU5wYzJOdk1Sa3dGd1lEVlFRS0V4QnZjbWN4TG1WNFlXMXdiR1V1WTI5dE1SOHdIUVlEClZRUURFeFowYkhOallTNXZjbWN4TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMEQKQVFjRFFnQUVxOHJNenpNeVhDVHlXU3RMaXcxNVEzTTE1RWdHbzFpSmdMQVgvR3ZOdUxxMTlKQ1NuMkpmZnkrcAo3cUpIWWN4WGMwUGVjdlFQaHhVa0VHOUkzS2UzaDZOdE1Hc3dEZ1lEVlIwUEFRSC9CQVFEQWdHbU1CMEdBMVVkCkpRUVdNQlFHQ0NzR0FRVUZCd01DQmdnckJnRUZCUWNEQVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUNrR0ExVWQKRGdRaUJDQjJOek9mbUIzTmRJZ0UyVlBQT0VjT25UeFpyWmdkMU5HeGVJVm5XbDRwSFRBS0JnZ3Foa2pPUFFRRApBZ05IQURCRUFpQXBtRTE1Q1NKcSswemx2QTlkK1MraUF1SENoK0FJdmIrVGRpTFhQSW5NeXdJZ0NrNlFLQ0d0CjRlQ1hSdElEdVExRGI5WWx5NFJLTkx0SHpjNVkvODdOOWxzPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
  },
  {
    "name": "peer1.org1.example.com",
    "api_url": "grpcs://peer1.org1.example.com:8051",
    "type": "fabric-peer",
    "msp_id": "Org1MSP",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNWakNDQWYyZ0F3SUJBZ0lRVHk2dUNOTW9Xclc5VHMzdW55dDVHekFLQmdncWhrak9QUVFEQWpCMk1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWZNQjBHQTFVRUF4TVdkR3h6ClkyRXViM0puTVM1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TURFeU1qUXhOVEl6TURCYUZ3MHpNREV5TWpJeE5USXoKTURCYU1IWXhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSApFdzFUWVc0Z1JuSmhibU5wYzJOdk1Sa3dGd1lEVlFRS0V4QnZjbWN4TG1WNFlXMXdiR1V1WTI5dE1SOHdIUVlEClZRUURFeFowYkhOallTNXZjbWN4TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMEQKQVFjRFFnQUVxOHJNenpNeVhDVHlXU3RMaXcxNVEzTTE1RWdHbzFpSmdMQVgvR3ZOdUxxMTlKQ1NuMkpmZnkrcAo3cUpIWWN4WGMwUGVjdlFQaHhVa0VHOUkzS2UzaDZOdE1Hc3dEZ1lEVlIwUEFRSC9CQVFEQWdHbU1CMEdBMVVkCkpRUVdNQlFHQ0NzR0FRVUZCd01DQmdnckJnRUZCUWNEQVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUNrR0ExVWQKRGdRaUJDQjJOek9mbUIzTmRJZ0UyVlBQT0VjT25UeFpyWmdkMU5HeGVJVm5XbDRwSFRBS0JnZ3Foa2pPUFFRRApBZ05IQURCRUFpQXBtRTE1Q1NKcSswemx2QTlkK1MraUF1SENoK0FJdmIrVGRpTFhQSW5NeXdJZ0NrNlFLQ0d0CjRlQ1hSdElEdVExRGI5WWx5NFJLTkx0SHpjNVkvODdOOWxzPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
  },
  {
    "name": "ca.org1.example.com",
    "api_url": "https://ca.org1.example.com:7054",
    "type": "fabric-ca",
    "ca_name": "ca-org1",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNVRENDQWZlZ0F3SUJBZ0lRVVVaaW1HRGg0alRDd3FmS3dqdHd0REFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREV5TWpReE5USXpNREJhRncwek1ERXlNakl4TlRJek1EQmEKTUhNeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVJrd0Z3WURWUVFLRXhCdmNtY3hMbVY0WVcxd2JHVXVZMjl0TVJ3d0dnWURWUVFECkV4TmpZUzV2Y21jeExtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUKWms4ZC9rRElyemxhWVY0cVdCL3V4Y1hiNDRhSzE5dUdXcWk1UEpsZjY3b0p3SHNidEF6REhuR0dlaVkvcWNMaApQVEQwZUhqOHQ1YkVCK24rVFhoOFNhTnRNR3N3RGdZRFZSMFBBUUgvQkFRREFnR21NQjBHQTFVZEpRUVdNQlFHCkNDc0dBUVVGQndNQ0JnZ3JCZ0VGQlFjREFUQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01Da0dBMVVkRGdRaUJDQ0MKTHQ1dUFlWmZMQ1dRZi9HbjQxdTZaR3BnS0ZUaGNOd1NHbllraWF4OWN6QUtCZ2dxaGtqT1BRUURBZ05IQURCRQpBaUFsYUhoSVh0VFhHY2k0RjBsVTVtR1BEb3VqbWZwbm5USEFOVXoyRGUvSzRnSWdFZnMrRWE0eG9IR1pOUE45ClcyYzVwTjFhU3g1Mm5CTGFRQUhjWEkrME00bz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
    "enroll_id": "admin",
    "enroll_secret": "adminpw"
  },
  {
    "name": "orderer.example.com",
    "api_url": "grpcs://orderer.example.com:7050",
    "type": "fabric-orderer",
    "msp_id": "OrdererMSP",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNRekNDQWVxZ0F3SUJBZ0lSQUtNSmd3dkloS1IxamtndXhIYlE1eHd3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB5TURFeU1qUXhOVEl6TURCYUZ3MHpNREV5TWpJeE5USXpNREJhTUd3eEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SUXdFZ1lEVlFRS0V3dGxlR0Z0Y0d4bExtTnZiVEVhTUJnR0ExVUVBeE1SZEd4elkyRXVaWGhoCmJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSVHY4TEFreldqelp0V3N3THcKNERiNnhZa3MrNlhEa2JmWE9jdEVmWTcwVUZDdmJFUEk3MmwvRGlwdnVQR29kL1VkWjF4Q3Freitoc1hBMGhqYwo2Y0JybzIwd2F6QU9CZ05WSFE4QkFmOEVCQU1DQWFZd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3SUdDQ3NHCkFRVUZCd01CTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSU04RWFPV05WenFOV2hqcDh2L0oKRTRCTUE4TkZFbWxLaHljbWVlZnlIQWQ3TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUV3Qzk3M3pyV2pXeUZQYQp2Y3NWSlNScWZ0NWo0OFFDMjZnR2syN2Q3eGlWQWlCcTRJcVpOK2phNlE4SmZnYnZNRXphb2Z1U1dJTE91NzdhCmk3ZjkvbmFmbnc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
  },
  {
    "name": "peer0.org2.example.com",
    "api_url": "grpcs://peer0.org2.example.com:9051",
    "type": "fabric-peer",
    "msp_id": "Org2MSP",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNWekNDQWYyZ0F3SUJBZ0lRR3ZTeks4TytCQXpZd1NiSDZHK0JRVEFLQmdncWhrak9QUVFEQWpCMk1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWZNQjBHQTFVRUF4TVdkR3h6ClkyRXViM0puTWk1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TURFeU1qUXhOVEl6TURCYUZ3MHpNREV5TWpJeE5USXoKTURCYU1IWXhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSApFdzFUWVc0Z1JuSmhibU5wYzJOdk1Sa3dGd1lEVlFRS0V4QnZjbWN5TG1WNFlXMXdiR1V1WTI5dE1SOHdIUVlEClZRUURFeFowYkhOallTNXZjbWN5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMEQKQVFjRFFnQUVub1Nrd1lYdXJrTElKK1J6OEFpYTJQYUU5cGRoL2ZTZUdjUTM4Smt6dXh6aDh2Z2oxOUlwZjRTKwoxQ2FwZ0ZLOFQ2bE95dGNRWURnaS9uL0U0SWdhUjZOdE1Hc3dEZ1lEVlIwUEFRSC9CQVFEQWdHbU1CMEdBMVVkCkpRUVdNQlFHQ0NzR0FRVUZCd01DQmdnckJnRUZCUWNEQVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUNrR0ExVWQKRGdRaUJDQ1VJU2FLWUNhZUhTWFRPUG5lcnQzOE8vWHVyU0NxcXp2NU5KTmFieVM5MURBS0JnZ3Foa2pPUFFRRApBZ05JQURCRkFpRUE3clBueVVHb05zQ09uc1I3b29WRVJFaXRqdVVnWHNkbWtzTjduNy85NTdvQ0lFRWVjZmN5ClU1a0J0bGxpNlN4WjBLQlcwU0tQU2IyMUovanMydFNXWE0wdAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
  },
  {
    "name": "peer1.org2.example.com",
    "api_url": "grpcs://peer1.org2.example.com:10051",
    "type": "fabric-peer",
    "msp_id": "Org2MSP",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNWekNDQWYyZ0F3SUJBZ0lRR3ZTeks4TytCQXpZd1NiSDZHK0JRVEFLQmdncWhrak9QUVFEQWpCMk1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWZNQjBHQTFVRUF4TVdkR3h6ClkyRXViM0puTWk1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TURFeU1qUXhOVEl6TURCYUZ3MHpNREV5TWpJeE5USXoKTURCYU1IWXhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSApFdzFUWVc0Z1JuSmhibU5wYzJOdk1Sa3dGd1lEVlFRS0V4QnZjbWN5TG1WNFlXMXdiR1V1WTI5dE1SOHdIUVlEClZRUURFeFowYkhOallTNXZjbWN5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMEQKQVFjRFFnQUVub1Nrd1lYdXJrTElKK1J6OEFpYTJQYUU5cGRoL2ZTZUdjUTM4Smt6dXh6aDh2Z2oxOUlwZjRTKwoxQ2FwZ0ZLOFQ2bE95dGNRWURnaS9uL0U0SWdhUjZOdE1Hc3dEZ1lEVlIwUEFRSC9CQVFEQWdHbU1CMEdBMVVkCkpRUVdNQlFHQ0NzR0FRVUZCd01DQmdnckJnRUZCUWNEQVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUNrR0ExVWQKRGdRaUJDQ1VJU2FLWUNhZUhTWFRPUG5lcnQzOE8vWHVyU0NxcXp2NU5KTmFieVM5MURBS0JnZ3Foa2pPUFFRRApBZ05JQURCRkFpRUE3clBueVVHb05zQ09uc1I3b29WRVJFaXRqdVVnWHNkbWtzTjduNy85NTdvQ0lFRWVjZmN5ClU1a0J0bGxpNlN4WjBLQlcwU0tQU2IyMUovanMydFNXWE0wdAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
  },
  {
    "name": "ca.org2.example.com",
    "api_url": "https://ca.org2.example.com:8054",
    "type": "fabric-ca",
    "ca_name": "ca-org2",
    "pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNVVENDQWZpZ0F3SUJBZ0lSQUl4Zzg4bEtDeVpxTC9kZHhVbnBuY293Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NakF4TWpJME1UVXlNekF3V2hjTk16QXhNakl5TVRVeU16QXcKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NaTVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkVoMExpTTZjS1ZkK1I4K0krNHRSbk1hK3owT1JRbFQ2V2VyS2szaU1RNTgzc0J5WlBDQ2kreWRWZkQ3RFhoOQoyLzArSlhFNld3clVCMW9ZUHVWeDNBZWpiVEJyTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVCkJnZ3JCZ0VGQlFjREFnWUlLd1lCQlFVSEF3RXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWcKazNkZUppd1cwZzl5SXU1eXVTVFR0YzN3bHdadlJyMEFJWHAwU0xycHd1TXdDZ1lJS29aSXpqMEVBd0lEUndBdwpSQUlnRmpGUXJjODk1UFN2TFZBcHhacGV6RUVpSzJsZjJuaC9PRWNoQVlUVWFZd0NJQ2FadmI4eDhhU2l0Qmx2Cmk3SEhyQlVBV0c5MUpCTXkyWTdWUjNRR0NmZ0YKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
    "enroll_id": "admin",
    "enroll_secret": "adminpw"
  }
]

/etc/hosts

127.0.0.1       localhost peer0.org1.example.com peer1.org1.example.com peer0.org2.example.com peer1.org2.example.com orderer.example.com ca.org1.example.com ca.org2.example.com
...

Solution

  • The problem is the TLS certs will have hostnames such as "peer0.org1.example.com" and yet you are declaring the remote host as "localhost" in the node files and as they don't match, the TLS connection will fail. The reason it works for the connection profiles is that they have the option to specify a hostname override.

    As far as I know you don't have that option in the blockchain extension node files. But you can easily solve the problem by updating your hosts (/etc/hosts) file to map names such as peer0.org1.example.com, peer1.org1.example.com to localhost. Then you can change your node files to use the expected host names rather than localhost.