当前位置:首页 > 物联网 > 区块链
[导读] Hyperledger Caliper:测量区块链性能的工具 Hyperleder Caliper。Caliper项目最初于2017年5月启动,全球信息与通信技术公司华为积极参与了该项目

Hyperledger Caliper:测量区块链性能的工具

Hyperleder Caliper。Caliper项目最初于2017年5月启动,全球信息与通信技术公司华为积极参与了该项目的设计和开发。Hyperledger Caliper是一个区块链基准测试工具,让项目可以不间断地跟踪不同区块链实现的性能特性。Hyperledger Caliper初始版本的重点是每秒事务数(TPS)、延迟和资源利用率。

区块链技术日益受到人们的关注,但是,你在为业务问题创建解决方案之前,却无法测试各种可用区块链平台的性能。为了解决这一痛点,Hyperledger社区提供了一个名为“Hyperledger Caliper”的工具,可用来测试区块链平台的性能。

Hyperledger Caliper

Caliper是一个区块链性能基准测试框架,它允许用户使用预定义的用例测试不同的区块链解决方案,并获得一组性能测试结果。

目前支持的性能指标:

成功率

事务吞吐量

事务延迟(最小值、最大值、平均值、百分比)

资源消耗(CPU、内存、网络IO等)

架构

适配层

使用适配层将现有的区块链系统集成到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交互的必要信息。

下面是一个基准测试配置文件示例:

先决条件:

· 确保已经安装下列工具:

· NodeJS 8.X

· node-gyp

· Docker

· Docker-compose

git clone https://github.com/hyperledger/caliper.git

要在本地安装依赖项,请在caliper文件夹中运行npm install。

安装区块链SDK:

Fabic

在根文件夹中运行:

npm install grpc@1.10.1 fabric-ca-client fabric-client

Sawtooth

安装依赖项:

npm install protocol-buffers

使用存储库安装sawtooth JavaScript SDK。

run npm install sawtooth-sdk in the root folder

在根文件夹中运行:

npm install sawtooth-sdk

Iroha

安装Iroha库

在Caliper的根文件夹中运行:

npm install -no-save iroha-lib@0.1.7

Composer

安装依赖项:

更新主package.json文件,包含所需的Composer和Fabic模块,然后运行npm install来安装。

运行基准测试:

在基准测试文件夹中,可以找到所有预定义的基准测试。

要开始基准测试,只需在根文件夹中运行它即可:

node benchmark/simple/main.js -c yourconfig.json -n yournetwork.json

参数-c:指定基准测试的配置文件。如果不指定此参数,则config.json将用作默认值。

参数-n:指定被测区块链网络的配置文件。如果不指定此参数,则在基准测试配置文件中指定文件地址。

注意:

·你还可以使用npm脚本来运行基准测试。

npm运行列表:

》 caliper@0.1.0 list /home/hurf/caliper

》 node 。/scripts/list.js

可用基准测试:

drm

simple

使用特定配置文件来运行基准测试:

npm test — — simple -c 。/benchmark/simple/config.json -n./benchmark/simple/fabric.json

》 caliper@0.1.0 test /home/hurf/caliper

》 node 。/scripts/test.js “simple” “-c” “。/benchmark/simple/config.json” “-n” “。/benchmark/simple/fabric.json”

。..。..

使用去中心化Client进行基准测试:

1. 启动ZooKeeper服务;

2. 通过运行节点。/src/comm/client/zoo-client.js zookeeper-server或npm run startclient — — zookeeper-server分别在目标计算机上启动Client。

例如:

$ npm run startclient — 10.229.42.159:2181

》 caliper@0.1.0 startclient /home/hurf/caliper

》 node 。/src/comm/client/zoo-client.js “10.229.42.159:2181”

Connected to ZooKeeper

Created client node:/caliper/clients/client_1514532063571_0000000006

Created receiving queue at:/caliper/client_1514532063571_0000000006_in

Created sending queue at:/caliper/client_1514532063571_0000000006_out

WaiTIng for messages at:/caliper/client_1514532063571_0000000006_in.。..。.

3. 将配置文件中的Client类型设置修改为zookeeper。

例如:

“clients”: {

“type”: “zookeeper”,

“zoo” : {

“server”: “10.229.42.159:2181”,

“clientsPerHost”: 5

}

}

4. 像往常一样,在任何机器上启动基准测试。

注意:

· Zookeeper用于注册Client和交换信息。启动的Client将在/caliper/clients/下添加新的znode。基准测试检查目录以了解有多少Client,并根据工作负载为每个Client分配任务。

· Client之间没有自动时间同步。你应该手动同步目标计算机之间的时间,例如使用“ntpdate”命令。

· 区块链配置文件必须存在于运行Client的计算机上,且文件的相对路径(相对于caliper文件夹)必须相同。配置中的所有引用文件也必须存在。

编写你自己的基准测试

Caliper提供了一组nodejs NBI(北向接口),供应用程序与后端区块链系统交互。查看src/comm/blockchain.js来了解NBI。多重适配器实现将NBI转换为不同的区块链协议。因此,开发人员可以编写一次基准测试,并在不同的区块链系统中运行它。

一般来说,要编写一个新的caliper基准测试,你需要:

· 为想要测试的系统编写智能合约

· 使用caliper NBI编写一个测试流。Caliper提供了一个默认的基准测试引擎,它可以插拔并可配置,可以轻松地集成新的测试。有关更多的详细信息,请参阅基准测试引擎。

· 编写配置文件来定义后端网络和基准测试参数。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

物联网设备数量呈指数级增长,其身份认证安全与区块链智能合约的可靠性成为制约行业发展的关键瓶颈。本文将从区块链物联网身份认证的底层原理出发,结合Hyperledger Fabric智能合约漏洞扫描与性能基准测试技术,系统阐...

关键字: 区块链 物联网 身份认证

在万物互联的M2M(机器对机器)通信时代,设备间的安全交互成为核心挑战。传统中心化认证体系因单点故障、数据泄露风险及高运维成本,难以满足物联网设备指数级增长的安全需求。区块链技术凭借去中心化、不可篡改和智能合约自动执行等...

关键字: 区块链 M2M

当前电力行业正经历着前所未有的变革。新型电力系统的建设加速推进,分布式新能源、电动汽车、储能设备等新型电力元素大规模接入,使得电力系统的供需互动更加复杂。与此同时,区块链技术凭借其去中心化、不可篡改、可追溯等特性,在金融...

关键字: 电力鸿蒙 区块链

香港2025年4月13日 /美通社/ -- 香港应用科技研究院 (应科院) 于第50届“日内瓦国际发明展”中成绩斐然,荣获16个奖项,其中包括1项评审团嘉许金奖、4项“金奖”、7项“银奖”及4项铜奖。今届获奖项目涵盖人工...

关键字: 人工智能 感测器 区块链 模型

在马来西亚获得政府间(G2G独特 认可的人工智能实验室将汇聚全球领先区块链、人工智能及机器人企业的合作 马来西亚吉隆坡2025年4月11日 /美通社/ -- 马来...

关键字: 人工智能 智能实验室 区块链 身份验证

在数字化时代,物联网(IoT)和区块链技术都备受关注,前者将无数设备连接成庞大网络,后者则以去中心化、不可篡改等特性重塑信任机制。当这两者相遇,碰撞出了创新的火花,区块链技术在物联网领域展现出巨大的应用潜力,为物联网的发...

关键字: 物联网 区块链 数字化

对于奢侈品牌,假冒伪劣产品和恶意灰色市场交易是一个长期存在的挑战。事实上,如今假冒市场被视为全球最大的非法贸易领域。经合组织(OECD)估计,2019 年其规模约为 4640 亿美元,占世界贸易总额的 2.5%,显然,对...

关键字: NFC防伪技术 半导体 区块链

区块链科普系列活动(一) 北京2024年12月24日 /美通社/ -- 在这个日新月异的科技时代,区块链与先进计算正以前所未有的速度推动着各行各业的变革。为了助力区块链及先进计算领域的创业者、从业人员把握时代脉搏,引领...

关键字: 区块链 亚马逊 数字化 AWS

区块链技术在物联网中的应用日益广泛,其去中心化、数据不可篡改和透明性等特点为物联网带来了诸多优势。以下将详细介绍区块链技术在物联网中的几个主要应用领域:

关键字: 区块链 物联网
关闭