Hyperledger Caliper 安裝使用分析
阿新 • • 發佈:2019-01-09
簡介
一個賬本效能基準測試框架,它允許使用者用預定義的用例來測試不同的賬本解決方案,並得到一組效能測試結果。
這個基準框架的核心是一個能夠翻譯資訊的“適配層”,Caliper能夠安裝智慧合約,呼叫合約,並且查詢各種分散式賬本的狀態,繼而更好地評估其效力。
在可控環境內所支援的區塊鏈上進行壓力測試,並且生成相關結果,其中包括交易成功率、每秒交易次數、交易結算耗時、以及所有操作的資源消耗(比如CPU和記憶體)等
而且是大華為的。
目前支援區塊鏈賬本:
- fabric v1.0+,
- sawtooth 1.0+
- Iroha 1.0 beta-3
目前支援的效能指標:
- 成功率
- 延遲最大值、最小值、平均值、75%延遲時長,
- 吞吐量
- 資源消耗情況 CPU(max和avg) 記憶體(max和avg) 網路IO等
同類工具
安裝依賴(針對Fabric的)(括號中為我當前的環境):
- Node.js 8.X(node -v v8.11.2 npm -v 3.10.10 )
- node-gyp
- Docker(docker -v Docker version 18.03.0-ce, build 0520e24)
- Docker-compose(docker-compose -v docker-compose version 1.16.1, build 6d1ac21)
- npm install -g [email protected]
- npm install [email protected] [email protected]
npm ls | grep fabric
前期因為,fabric使用v1.1.0,但fabric-client使用了v1.2.0,造成鏈碼例項化失敗,提示
Cannot read property 'getUpdates' of undefined
原始碼
https://github.com/hyperledger/caliper.git
放在/opt/gopath/src/github.com/hyperledger/caliper,然後cd caliper,執行npm install 確保無錯誤提示(v*P*n)
執行
node ./benchmark/simple/main.js -c ./config.json -n ./fabric.json
- -c : 基準測試配置檔案, 如果不設定,預設使用 config.json .
- -n : 賬本網路的配置檔案. 如果不設定, 預設使用config.json中設定的 blockchain config值.
OPEN
Query
結果彙總
報告
最後會生成一個html報告 下載
分析
根據Benchmark的config.json配置檔案,測試主要包括open(開通賬戶,賬本的寫效能)和query(查詢賬戶,賬本的讀效能)兩個型別
open 的tps 分別設定50、100、150 ,在1000次交易結果顯示100時吞吐量相對最高。
query的tps分別設定100、200,在5000次交易結果100時吞吐量相對最高。
另外發現open開通賬戶時oderer節點cpu處於使用中,query查詢賬戶時oderer節點cpu接近0,和fabric交易過程吻合。
自定義效能測試
初步需要修改一下幾個地方:首先是config.json、fabric.json和crypto-config,鏈碼等
問題倉庫
https://github.com/hyperledger/caliper/issues