Running Blockchain Applications in Hyperledger Explorer

26

Hyperledger Explorer is a powerful utility that allows users to create user-friendly web-based applications. It is a blockchain dashboard and provides the ability to view, invoke, deploy, and query raw blockchain data and network information, including block details, chain codes, and transactions stored in the ledger.

For those who are not familiar with Hyperledger project Intro to Hyperledger Family and Hyperledger Blockchain Ecosystem and Hyperledger Design Philosophy and Framework Architecture articles are strongly recommended.

Hyperledger Explorer is a highly maintainable and open source browser that can be configured and built natively on macOS and Ubuntu. At the time of writing, Hyperledger Explorer has not yet gone live. The latest release, v0.3.8, supports Fabric v1.3.

It is common to encounter errors here and there, especially around issues related to versions and/or setting up environments. To save time while debugging, I have included notes, along with recommended fixes, for some of errors you might run into while walking through this recipe.

In our previous tutorials, we learned how to i- Work with Hyperledger Explorer and its Development Environment ii- Install Hyperledger Explorer and its PostgreSQL Database, iii- Configure Explorer to connect to a blockchain network like Fabric and iv- Build a Hyperledger Explorer application. This recipe as a next step will show you how to run the Hyperledger Explorer application.

Hyperledger Explorer Configuration

Before running Hyperledger Explorer, we should examine the configuration of Explorer, which is defined in the explorerconfig.json file.

Update the following information according to the individual needs of the project:

  • Where the synchronization will be running, which is either explorer (local) or from a different location standalone (host)
  • The type of blockchain network (Fabric)
  • How often the blockchain data will synchronize with explorer

Run Hyperledger Explorer Application

Execute the following steps to run your Hyperledger application:

1. Use the vi editor or your editor of choice to make the modifications as needed:

	cd blockchain-explorer/app

	vi explorerconfig.json

# Here we will run local with Explorer, update the "sync" property as needed to # as below:

"sync": {

"type": "local",

"platform": "fabric",

"blocksSyncTime": "3"

}

}

2. Now, start Explorer from another Terminal. When you are done using Explorer, you should stop Explorer and the node server:

	cd blockchain-explorer/

	sudo ./start.sh

# To stop Explorer, use this command:

	sudo ./stop.sh

3. You can check for error statuses in the log file: [logs/console/console-yyyy-mm-dd.log]. If everything goes well, you will see the following:

postgres://hppoc:password@127.0.0.1:5432/fabricexplorer

(node:14817) DeprecationWarning: grpc.load: Use the @grpc/proto-

loader module with

grpc.loadPackageDefinition instead

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

pid is 14817

postgres://hppoc:password@127.0.0.1:5432/fabricexplorer

...

4. The console log might show an Explorer error, such as the following:

postgres://hppoc:password@127.0.0.1:5432/fabricexplorer <<<<<<<<<<<<<<<<<<<<<<<<<< Explorer Error >>>>>>>>>>>>>>>>>>>>>

{ Error: The gRPC binary module was not installed. This may be fixed by running "npm rebuild"

Original error: Cannot find module '/home/ubuntu/blockchain-explorer/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node'

at Object.<anonymous> (/home/ubuntu/blockchain-explorer/node_modules/grpc/src/grpc_extension.js:43:17)

at Module._compile (module.js:653:30)

at Object.Module._extensions..js (module.js:664:10)

at Module.load (module.js:566:32)

at tryModuleLoad (module.js:506:12)

at Function.Module._load (module.js:498:3)

at Module.require (module.js:597:17)

at require (internal/module.js:11:18)

at Object.<anonymous> (/home/ubuntu/blockchain-explorer/node_modules/grpc/src /client_interceptors.js:145:12)

at Module._compile (module.js:653:30) code: 'MODULE_NOT_FOUND' } Received kill signal, shutting down gracefullyClosed out connections

5. This may be fixed by running npm rebuild and then starting Explorer again:

	cd ~/blockchain-explorer/

	npm rebuild

> grpc@1.14.2 install /home/ubuntu/blockchain-explorer/node_modules/grpc

> node-pre-gyp install --fallback-to-build --library=static_library

...

Note: There is an application log, [logs/app/app.log], that provides more information than the console log if there are any errors when running the Explorer application.

6. On the other hand, Explorer start.sh runs in the background. To observe the progression, you could use the tail command for the app.log file:

	tail -f logs/app/app.log

7. We can now launch Explorer from a browser: http://localhost:8080.

8. If you are running on AWS EC2, you will need to carry out a further two steps. Replace the localhost with your instance’s public IP address and add or modify a security group associate with the EC2 instance to allow inbound traffic from TCP port 8080. If everything is good, you should see the explorer DASHBOARD default page. From here, you can navigate to the application to check and monitor various blockchain data:

You have now successfully built the Hyperledger Explorer application, integrated it with the Hyperledger Fabric framework, and utilized Explorer to visualize the blockchain network data on the browser.

About Authors

This article is written by Matt Zand (Founder of High School Technology Services) in collaboration with Brian Wu who is a senior blockchain instructor at Coding Bootcamps.