在Hyperledger Explorer中運行區(qū)塊鏈應(yīng)用
譯文【51CTO.com快譯】Hyperledger Explorer是一款功能強大的實用程序,讓用戶可以創(chuàng)建對用戶友好的基于Web的應(yīng)用程序。它是一種區(qū)塊鏈儀表板,提供了查看、調(diào)用、部署和查詢原始區(qū)塊鏈數(shù)據(jù)和網(wǎng)絡(luò)信息的功能,包括存儲在賬本中的塊細(xì)節(jié)、鏈代碼和事務(wù)。
如果讀者不熟悉Hyperledger項目,強烈建議看一下《Hyperledger系列和Hyperledger區(qū)塊鏈生態(tài)系統(tǒng)簡介》與《Hyperledger設(shè)計理念和框架架構(gòu)》這兩篇文章。
Hyperledger Explorer是一個高度維護的開源瀏覽器,可以直接在macOS和Ubuntu上配置和構(gòu)建。截至本文發(fā)稿時,Hyperledger Explorer還沒有上線。最新版本v0.3.8支持Fabric v1.3。
到處碰到錯誤很常見,尤其是在與版本及/或架設(shè)環(huán)境有關(guān)的問題方面。為了節(jié)省調(diào)試時間,我為你可能遇到的一些錯誤加入了注釋和推薦的修復(fù)方法。
Hyperledger Explorer的配置
運行Hyperledger Explorer之前,我們應(yīng)檢查Explorer的配置,配置在explorerconfig.json文件中予以定義。
根據(jù)項目的具體需求更新以下信息:
- 同步將在哪里運行,這可以是Exlporer(本地),也可以是另一個獨立位置(主機)
- 區(qū)塊鏈網(wǎng)絡(luò)的類型(Fabric)
- 區(qū)塊鏈數(shù)據(jù)與Explorer同步的頻次
運行Hyperledger Explorer應(yīng)用程序
執(zhí)行以下步驟以運行Hyperledger應(yīng)用程序:
1.使用vi編輯器或你所選擇的編輯器,根據(jù)需要進行修改:
- 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. 現(xiàn)在從另一個終端啟動Explorer。使用Explorer完畢后,應(yīng)停止Explorer和節(jié)點服務(wù)器:
- cd blockchain-explorer/
- sudo ./start.sh
- # To stop Explorer, use this command:
- sudo ./stop.sh
3. 可以檢查日志文件:[logs/console/console-yyyy-mm-dd.log]中的錯誤狀態(tài)。如果一切情況良好,你會看到以下內(nèi)容:
- 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重構(gòu)、隨后再次啟動Explorer,就可以修復(fù)這個錯誤:
- 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
- ...
注意:有一個應(yīng)用程序日志[logs/app/app.log],如果運行Explorer應(yīng)用程序時遇到任何錯誤,它提供了比控制臺日志更詳細(xì)的信息。
6. 另一方面,Explorer start.sh在后臺運行。想觀察進度,可以針對app.log文件使用tail命令:
- tail -f logs/app/app.log
7. 現(xiàn)在我們可以從瀏覽器:http://localhost:8080啟動Explorer。
8. 如果你在AWS EC2上運行,需要執(zhí)行另外兩步。把localhost換成你實例的公共IP地址,增添或修改與EC2實例有關(guān)的安全組,允許來自TCP端口8080的入站流量。如果一切正常,你應(yīng)該會看到Explorer儀表板的默認(rèn)頁面。此后,你可以瀏覽該應(yīng)用程序,查看并監(jiān)控各個區(qū)塊鏈數(shù)據(jù):
現(xiàn)在你已成功構(gòu)建了Hyperledger Explorer應(yīng)用程序,將它與Hyperledger Fabric框架集成起來,并利用Explorer在瀏覽器上直觀地顯示區(qū)塊鏈網(wǎng)絡(luò)數(shù)據(jù)。
原文標(biāo)題:Running Blockchain Applications in Hyperledger Explorer,作者:Matt Zand和Brian Wu
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】