天天看點

hyperledger caliper的使用

Caliper是一個區塊鍊性能評估架構,它允許使用者通過預定義使用用例來測試不同的區塊鍊解決方案,并獲得一組性能測試結果。

目前支援的區塊鍊解決方案有:

  • Hyperledger Burrow
  • Hyperledger Composer
  • Hyperledger Fabric
  • Hyperledger Iroha
  • Hyperledger Sawtooth

目前支援的性能名額有:

  • Success rate (成功率)
  • Transaction/Read throughput(交易吞吐量)
  • Transaction/Read latency(minimum, maximum, average, percentile)(交易延時,包括最大值、最小值、平均值、百分比)
  • Resource consumption (CPU, Memory, Network IO,…)(資源消耗,包括CPU、記憶體、網絡IO等)

準備:

保證以下工具正确安裝

  • NodeJS 8 (LTS), 9, or 10 (LTS) 我們不支援更高版本因為依賴鍊不支援
  • node-gyp
  • Docker
  • Docker-compose

編譯Caliper

Caliper被分成了packages,使用Lerna管理,Lerna是一個管理JavaScript 多個packages工程的工具,為了編譯Caliper,

要先拉取需要的依賴庫,然後引導(bootstrap)Caliper工程。注意如果你修改了任何基本代碼(base code),就有必要重新編譯一次工程。

  • 在Caliper 根目錄下執行 

    npm install,在本地安裝基本依賴庫

  • 在Caliper 根目錄下執行 

    npm run repoclean

     確定所有的包是幹淨的
  • 執行 

    npm run bootstrap

     去引導 包在Caliper倉庫中(Run 

    npm run bootstrap

     to bootstrap the packages in the Caliper repository)。 這将會安裝所有的包依賴和連結任何交叉依賴。完成安裝需要一些時間。如果按ctrl+c鍵中斷,請先恢複package.json檔案,然後再執行npm run bootstrap。

不要帶上sudo執行以上的三個指令,因為它可能會引起bootstrap過程失敗。

運作一個Benchmark

Benchmark可以使用Caliper CLI來運作。我們準備釋出Caliper包到npm上。

安裝Caliper CLI:

我們還沒有釋出Caliper到npm上,但是可以通過我們的測試腳本獲得Caliper CLI,腳本位置<CaliperRoot>/packages/caliper-tests-integration/scripts/run-integration-tests.sh。這個測試腳本需要設定一個環境變量為了選擇一個指定的擴充卡,請注意這隻是out CI系統的一個要求。

步驟:

  1. 如果你還沒編譯Caliper工程,請根據上面的步驟編譯好。
  2. 為了獲得Caliper CLI,在Caliper根目錄下運作以下指令
export BENCHMARK=fabric-ccp
./packages/caliper-tests-integration/scripts/run-integration-tests.sh           

The above will start an npm proxy server (Verdaccio), publish the Caliper modules to the server, globally install the packages, and finally run a traget benchmark. The result of the benchmark is not important at this time; if the benchmark commences, then you have the Caliper packages installed globally on the machine that issued the command. 

目前Caliper支援以下擴充卡:

  • Burrow: @monax/[email protected]
  • Composer: [email protected]
  • Fabric: [email protected]
  • Iroha: [email protected]
  • Sawtooth: [email protected]

Compatibility List:

DLT Client Compatibilty
Fabric v1.0 [email protected] [email protected] [email protected]
Fabric v1.1 [email protected] [email protected] [email protected]
Fabric v1.2 [email protected] [email protected] [email protected]
Fabric v1.3 [email protected] [email protected] [email protected]
Fabric v1.4 [email protected] [email protected] [email protected]

假如你想測試 Hyperledger Fabric v1.1, 就需要修改 

caliper-fabric-ccp

 擴充卡,使用 

[email protected], [email protected], [email protected]

.

Note: When the Caliper packages are published to npm, we will be publishing versions for the above compatibility requirements and will update the compatibility table with published Caliper versions that you will be able to obtain using 

npm install -g caliper-<package>@<version>

運作一個Benchmark示例:

所有預定義的 benchmarks 都能在benchmark 檔案夾裡找到. The Caliper CLI has the notion of a workspace, which contains your benchmark configuration and test files.

使用Caliper CLI 指令行執行Benchmark

caliper benchmark run -w <path to workspace> -c <benchmark config> -n <blockchain config>           
  • -w : path to a workspace directory (required)
  • -c : relative path from the workspace to the benchmark configuration file (required).
  • -n : relative path from the workspace to the config file of the blockchain network under test (required).

假設你在caliper根目錄下,以下指令會執行一個測試案例:

caliper benchmark run -w ./packages/caliper-samples -c benchmark/simple/config.yaml -n network/fabric-v1.4/2org1peercouchdb/fabric-ccp-node.yaml           

繼續閱讀