0

I set up hyperledger fabric network by reading this document Hyperledger Fabric consortium on Azure Kubernetes Service (AKS). Network side everything worked properly. Now I wanted to set up hyperledger fabric explorer for this network. In order to do that, I did the follwing steps,

  1. git clone https://github.com/hyperledger/blockchain-explorer.git
  2. git checkout tags/v1.0.0-rc2
  3. app/persistence/fabric/postgreSQL/db
  4. ./createdb.sh
  5. ./main.sh install
  6. Replaced the connection profile (app/platform/fabric/connection-profile/first-network.json) like the following,
    {
      "certificateAuthorities": {
        "ca.xxxxxxxxxxxxx.eastus.aksapp.io": {
          "caName": "ca.org1",
          "tlsCACerts": {
            "pem": "-----BEGIN CERTIFICATE-----dfsajk-----END CERTIFICATE-----\n"
          },
          "url": "grpcs://ca.xxxxxxxxxxxxx.eastus.aksapp.io:443"
        }
      },
      "client": {
        "tlsEnable": true,
        "adminUser": "admin.org1",
        "adminPassword": "",
        "enableAuthentication": false,
        "connection": {
          "timeout": {
            "orderer": "300",
            "peer": {
              "endorser": "300"
            }
          }
        },
        "organization": "org1"
      },
    "channels": {
        "hrschannel": {
            "orderers": ["orderer1.yyyyyyyyyyyyyyyyyyyyy.eastus.aksapp.io"],
            "peers": {
                "peer1.xxxxxxxxxxxxx.eastus.aksapp.io": {}
            }
        }
    },
      "name": "org1",
      "organizations": {
        "org1": {
          "certificateAuthorities": [
            "org1CA"
          ],
          "mspid": "org1",
          "peers": [
            "peer1.xxxxxxxxxxxxx.eastus.aksapp.io"
          ]
        }
      },
      "peers": {
        "peer1.xxxxxxxxxxxxx.eastus.aksapp.io": {
          "grpcOptions": {
            "hostnameOverride": "peer1.xxxxxxxxxxxxx.eastus.aksapp.io",
            "ssl-target-name-override": "peer1.xxxxxxxxxxxxx.eastus.aksapp.io"
          },
          "tlsCACerts": {
            "pem": "-----BEGIN CERTIFICATE-----jjdadjijfifawj-----END CERTIFICATE-----\n"
          },
          "url": "grpcs://peer1.xxxxxxxxxxxxx.eastus.aksapp.io:443"
        }
      },
      "version": "1.0.0",
      "wallet": "org1"
    }

But I got the following error here tail -f logs/console/console-2020-07-08.log

false 'ssl-certs' '/home/css/delete/blockchain-explorer/ssl-certs'
******* Initialization started for hyperledger fabric platform ******, { 'first-network': 
   { name: 'first-network',
     profile: './connection-profile/first-network.json' } }
 client_configs.name  first-network  client_configs.profile  ./connection-profile/first-network.json
FabricUtils.createFabricClient 
config.client.tlsEnable  true
FabricConfig, this.config.channels  hrschannel
initializeChannelFromDiscover  hrschannel
 FabricClient.discover_results  endpoint  { host: 'orderer1.1111111111111111111.eastus.aksapp.io',
  port: 443 }

initializeChannelFromDiscover.discoveryProtocol  grpcs  requesturl  grpcs://orderer1.1111111111111111111.eastus.aksapp.io:443 

 FabricClient.discover_results  endpoint  { host: 'orderer2.1111111111111111111.eastus.aksapp.io',
  port: 443 }

initializeChannelFromDiscover.discoveryProtocol  grpcs  requesturl  grpcs://orderer2.1111111111111111111.eastus.aksapp.io:443 

 FabricClient.discover_results  endpoint  { host: 'orderer3.1111111111111111111.eastus.aksapp.io',
  port: 443 }

initializeChannelFromDiscover.discoveryProtocol  grpcs  requesturl  grpcs://orderer3.1111111111111111111.eastus.aksapp.io:443 

2020-07-08T16:15:30.879Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:443
FabricUtils.createDetachClient 
initializeListener, client_name, client  first-network { name: 'first-network',
  profile: './connection-profile/first-network.json' }


Please open web browser to access :http://localhost:8080/


pid is 13408



Sync process is started for the network : [first-network] and client : [first-network]
config.client.tlsEnable  true
FabricConfig, this.config.channels  hrschannel
(node:13836) DeprecationWarning: grpc.load: Use the @grpc/proto-loader module with grpc.loadPackageDefinition instead
An identity for the admin user: admin.org1 already exists in the wallet
initializeChannelFromDiscover  hrschannel
 FabricClient.discover_results  endpoint  { host: 'orderer1.1111111111111111111.eastus.aksapp.io',
  port: 443 }

initializeChannelFromDiscover.discoveryProtocol  grpcs  requesturl  grpcs://orderer1.1111111111111111111.eastus.aksapp.io:443 

 FabricClient.discover_results  endpoint  { host: 'orderer2.1111111111111111111.eastus.aksapp.io',
  port: 443 }

initializeChannelFromDiscover.discoveryProtocol  grpcs  requesturl  grpcs://orderer2.1111111111111111111.eastus.aksapp.io:443 

 FabricClient.discover_results  endpoint  { host: 'orderer3.1111111111111111111.eastus.aksapp.io',
  port: 443 }

initializeChannelFromDiscover.discoveryProtocol  grpcs  requesturl  grpcs://orderer3.1111111111111111111.eastus.aksapp.io:443 

2020-07-08T16:15:37.490Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:443
SyncServices.synchNetworkConfigToDB client  first-network  channel_name  hrschannel
2020-07-08T16:15:40.744Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:443
<<<<<<<<<<<<<<<<<<<<<<<<<< Synchronizer Error >>>>>>>>>>>>>>>>>>>>>
Error: Orderer with name "orderer2.1111111111111111111.eastus.aksapp.io:443" not assigned to this channel
    at Channel.getOrderer (/home/css/delete/blockchain-explorer/node_modules/fabric-network/node_modules/fabric-client/lib/Channel.js:928:10)
    at FabricClient.switchOrderer (/home/css/delete/blockchain-explorer/app/platform/fabric/FabricClient.js:681:27)
    at FabricClient.getGenesisBlock (/home/css/delete/blockchain-explorer/app/platform/fabric/FabricClient.js:611:26)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)
<<<<<<<<<<<<<<<<<<<<<<<<<< Closing client processor >>>>>>>>>>>>>>>>>>>>>
req.body { user: 'admin', password: 'adminpw', network: 'first-network' }
Network: first-network enableAuthentication false

Please help me to fix this issue.

Chintan Rajvir
  • 514
  • 4
  • 15
Gurunath
  • 189
  • 12
  • Can you please explain what is the resource referenced using `Failed to connect before the deadline URL:grpcs://localhost:443` as present near the end of the error logs. – Chintan Rajvir Jul 09 '20 at 14:32
  • @ChintanRajvir Thanks for your response. I am also debugging the same. I did not give such link (grpcs://localhost:443) anywhere. I do not know from where the application takes this reference. – Gurunath Jul 09 '20 at 15:13

1 Answers1

0

At this moment, you can't fix this error because pem string format in connection profile is not supported by Explorer. But you'll be able to expect that Explorer supports it soon.

  • Update

    • In Hyperledger Explorer v1.1.1, the support of PEM string format in connection profile has been added. So if you use the latest version v1.1.1 of Hyperledger Explorer, it should work.
nekia
  • 54
  • 9