Hyperledger Caliper 安装使用分析
简介
一个账本性能基准测试框架,它允许用户用预定义的用例来测试不同的账本解决方案,并得到一组性能测试结果。
这个基准框架的核心是一个能够翻译信息的“适配层”,Caliper能够安装智能合约,调用合约,并且查询各种分布式账本的状态,继而更好地评估其效力。
在可控环境内所支持的区块链上进行压力测试,并且生成相关结果,其中包括交易成功率、每秒交易次数、交易结算耗时、以及所有操作的资源消耗(比如CPU和内存)等
而且是大华为的。
目前支持区块链账本:
- fabric v1.0+,
- sawtooth 1.0+
- Iroha 1.0 beta-3
目前支持的性能指标:
- 成功率
- 延迟最大值、最小值、平均值、75%延迟时长,
- 吞吐量
- 资源消耗情况 CPU(max和avg) 内存(max和avg) 网络IO等
同类工具
/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,造成链码实例化失败,提示
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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验