【51CTO.com快译】Hyperledger Explorer是一款功能强大的实用程序,让用户可以创建对用户友好的基于Web的应用程序。它是一种区块链仪表板,提供了查看、调用、部署和查询原始区块链数据和网络信息的功能,包括存储在账本中的块细节、链代码和事务。
如果读者不熟悉Hyperledger项目,强烈建议看一下《Hyperledger系列和Hyperledger区块链生态系统简介》与《Hyperledger设计理念和框架架构》这两篇文章。
Hyperledger Explorer是一个高度维护的开源浏览器,可以直接在macOS和Ubuntu上配置和构建。截至本文发稿时,Hyperledger Explorer还没有上线。最新版本v0.3.8支持Fabric v1.3。
到处碰到错误很常见,尤其是在与版本及/或架设环境有关的问题方面。为了节省调试时间,我为你可能遇到的一些错误加入了注释和推荐的修复方法。
Hyperledger Explorer的配置
运行Hyperledger Explorer之前,我们应检查Explorer的配置,配置在explorerconfig.json文件中予以定义。
根据项目的具体需求更新以下信息:
- 同步将在哪里运行,这可以是Exlporer(本地),也可以是另一个独立位置(主机)
- 区块链网络的类型(Fabric)
- 区块链数据与Explorer同步的频次
运行Hyperledger Explorer应用程序
执行以下步骤以运行Hyperledger应用程序:
1.使用vi编辑器或你所选择的编辑器,根据需要进行修改:
- 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. 现在从另一个终端启动Explorer。使用Explorer完毕后,应停止Explorer和节点服务器:
- cd blockchain-explorer/
- sudo ./start.sh
- # To stop Explorer, use this command:
- sudo ./stop.sh
3. 可以检查日志文件:[logs/console/console-yyyy-mm-dd.log]中的错误状态。如果一切情况良好,你会看到以下内容:
- 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. 控制台日志可能会显示Explorer错误,比如以下:
- 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. (/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. (/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. 只要运行npm重构、随后再次启动Explorer,就可以修复这个错误:
- 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
- ...
注意:有一个应用程序日志[logs/app/app.log],如果运行Explorer应用程序时遇到任何错误,它提供了比控制台日志更详细的信息。
6. 另一方面,Explorer start.sh在后台运行。想观察进度,可以针对app.log文件使用tail命令:
- tail -f logs/app/app.log
7. 现在我们可以从浏览器:http://localhost:8080启动Explorer。
8. 如果你在AWS EC2上运行,需要执行另外两步。把localhost换成你实例的公共IP地址,增添或修改与EC2实例有关的安全组,允许来自TCP端口8080的入站流量。如果一切正常,你应该会看到Explorer仪表板的默认页面。此后,你可以浏览该应用程序,查看并监控各个区块链数据:
现在你已成功构建了Hyperledger Explorer应用程序,将它与Hyperledger Fabric框架集成起来,并利用Explorer在浏览器上直观地显示区块链网络数据。
原文标题:Running Blockchain Applications in Hyperledger Explorer,作者:Matt Zand和Brian Wu
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】