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