Hyperledger Caliper 安装使用分析

简介

一个帐本性能基准测试框架容许用户预约义用例测试不一样帐本解决方案获得性能测试结果

这个基准框架的核心是一个可以翻译信息的“适配层”,Caliper可以安装智能合约,调用合约,而且查询各类分布式帐本的状态,继而更好地评估其效力。
html

在可控环境内所支持的区块链上进行压力测试,而且生成相关结果,其中包括交易成功率、每秒交易次数、交易结算耗时、以及全部操做的资源消耗(好比CPU和内存)等
node

并且是大华为的。git

目前支持区块链帐本:

  1. fabric v1.0+,
  2. sawtooth 1.0+
  3. Iroha 1.0 beta-3

目前支持的性能指标:

  • 成功率
  • 延迟最大值、最小值、平均值、75%延迟时长,
  • 吞吐量
  • 资源消耗状况 CPU(max和avg)  内存(max和avg) 网络IO等

同类工具 

ooibc88/blockbench

安装依赖(针对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 grpc@1.10.1
  • npm install fabric-ca-client@1.1.0 fabric-client@1.1.0  备注经过一下命令检查肯定支持的版本
    npm ls | grep fabric

前期由于,fabric使用v1.1.0,但fabric-client使用了v1.2.0,形成链码实例化失败,提示github

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)docker


运行

node ./benchmark/simple/main.js -c ./config.json -n ./fabric.json
  • -c : 基准测试配置文件, 若是不设置,默认使用 config.json .
  • -n : 帐本网络的配置文件. 若是不设置, 默认使用 config.json中设置的 blockchain config值.

OPENnpm



Queryjson



结果汇总网络



报告

最后会生成一个html报告 下载app



分析

根据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

相关文章
相关标签/搜索