區塊鏈性能評價工具Hyperledger Caliper

Hyperledger Caliper

https://github.com/hyperledger/caliper

https://github.com/cao0507/Hyperledger-caliper

Caliper 是一個區塊鏈性能基準測試框架,它允許用戶使用預定義的用例測試不同的區塊鏈解決方案,並獲得一組性能測試結果。

目前支持的性能指標:

  • 成功率
  • 事務吞吐量
  • 事務延遲(最小值、最大值、平均值、百分比)
  • 資源消耗(CPU、內存、網絡 IO 等)

架構

https://static001.geekbang.org/resource/image/69/b2/69616bc3843645f9f56704189367b1b2.jpg

適配層

使用適配層將現有的區塊鏈系統集成到 Caliper 框架中。每個適配器通過使用相應的區塊鏈的原生 SDK RESTful API 來實現區塊鏈的 Caliper NBI

接口和核心層

接口和核心層實現核心功能,併爲上行應用程序(up-applications)提供了北向接口,共四種 NBI

  1. 區塊鏈操作接口:包含在後端區塊鏈上部署智能合約、調用合約、從分類賬查詢狀態等操作。
  2. 資源監控器:包含啓動、停止監控器和獲取後端區塊鏈系統的資源消耗狀態的操作,包括 CPU、內存、網絡 IO 等。目前提供了兩種監控器,一種是監控本地和遠程 docker 容器,另一種是監控本地進程。
  3. 性能分析器:包含讀取預定義性能統計數據(包括 TPS、延遲、成功率等)和打印基準測試結果的操作。在調用區塊鏈 NBI 時記錄關鍵指標,例如事務的創建時間和提交時間、事務結果等。
  4. 報告生成器:包含用於生成 HTML 格式測試報告的操作。

應用層

應用層包含針對典型區塊鏈場景實現的測試。每個測試都有一個配置文件,用於定義後端區塊鏈網絡和測試參數。

內置了一個默認基準測試引擎,用來幫助開發人員理解框架,並快速實現自己的測試。開發人員可以在沒有框架的情況下直接使用 NBI 來實現他們的測試。

基準測試引擎:

Master

Master 實現了一個包含三個階段的默認測試流:

  1. 準備階段:在此階段,Master 使用區塊鏈配置文件創建並初始化內部區塊鏈對象,按照配置中指定的方式部署智能合約,並啓動監控器對象來監控後端區塊鏈系統的資源消耗。
  2. 測試階段: Master 根據基準測試配置文件啓動一個循環測試、來執行測試。任務將根據定義的工作負載生成並分配給 Client。將存儲客戶的性能統計返回,以供以後分析。
  3. 報告階段:分析每一輪測試的所有客戶端統計數據,並自動生成 HTML 格式報告。

Client

Local Client

在這種模式下,Master 使用 Node.js 集羣模塊分叉多個 Local Client 來進行實際的測試工作。

Zookeeper Client

在這種模式下,多個 Zookeeper Client 獨立啓動。Zookeeper 客戶端將在啓動後註冊並監控測試任務。測試之後,將創建一個包含性能統計結果的 znode

Caliper 示例報表格式:

配置文件:

使用兩種配置文件。一個是基準測試配置文件,它定義了類似工作負載的基準測試。

另一個是區塊鏈配置文件,它指定了有助與 SUT 交互的必要信息。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章