CN113726613A - 面向Fabric区块链的性能测试方法 - Google Patents

面向Fabric区块链的性能测试方法 Download PDF

Info

Publication number
CN113726613A
CN113726613A CN202111046056.7A CN202111046056A CN113726613A CN 113726613 A CN113726613 A CN 113726613A CN 202111046056 A CN202111046056 A CN 202111046056A CN 113726613 A CN113726613 A CN 113726613A
Authority
CN
China
Prior art keywords
fabric
chain
performance
test
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111046056.7A
Other languages
English (en)
Other versions
CN113726613B (zh
Inventor
杨鹏
钟闰禄
余明辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Panyu Polytechnic
Original Assignee
Guangzhou Panyu Polytechnic
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Panyu Polytechnic filed Critical Guangzhou Panyu Polytechnic
Priority to CN202111046056.7A priority Critical patent/CN113726613B/zh
Publication of CN113726613A publication Critical patent/CN113726613A/zh
Application granted granted Critical
Publication of CN113726613B publication Critical patent/CN113726613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/14Arrangements for monitoring or testing data switching networks using software, i.e. software packages

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种面向Fabric区块链的性能测试方法,在超级账本测试链部署流程中输入Fabric网络配置参数配置测试链,读取并部署链码到Fabric网络中;链码被编译并直接在Docker环境中的本机上运行,设计一些类似于排序的智能合约进行测试,用于监控Fabric的计算性能;部署一些IO密集型链码,执行一些关键值元组的读写操作,用于监控Faric的输入输出性能;通过部署面向共识的Fabric链码用于监控Fabric共识机制的性能。通过模拟大量系统用户对Fabric区块链系统完成性能测试,部署并度量三种不同的链码性能后,最终自动生成面向Fabric区块链系统的性能测试报告。

Description

面向Fabric区块链的性能测试方法
技术领域
本发明属于计算机软件测试领域,特别是面向超级账本Hyperledger Fabric区块链系统的性能测试。
背景技术
区块链自从被提出之后,已受到越来越多研究机构和研究人员的关注,其发展可分为1.0、2.0和3.0共三个阶段:区块链1.0是以比特币Bitcoin为代表的加密货币,它的出现使去中心化交易成为可能;区块链2.0是以太坊Ethereum区块链平台为代表,以太坊修复了比特币项目的缺陷,同时支持通用智能合约;区块链3.0是以超级账本HyperledgerFabric(简称Fabric)区块链平台为代表,它加速了更多区块链商业项目的落地和资本市场的关注。超级账本是Linux基金会牵头发起的开源项目,共包括10大子项目,其中IBM贡献的Fabric项目最受关注。它将区块链技术引入到联盟账本的应用场景,成员节点在得到授权后方可加入。链码是Fabric中的智能合约,它以代码的形式将复杂的业务逻辑固定在Fabric系统中。当满足特定条件时,链码会被执行。因此,将智能合约与区块链结合,可以使区块链技术应用场景更加广泛。
共识是指要让全网大多数节点(至少51%)都认为数据真是可靠的过程。区块链网络中每个节点必须维护完全相同的账本数据。由于各个节点产生数据的时间不同、获取数据的来源未知,节点故障、网络拥塞带来的数据异常难以预测,且存在节点故意广播错误数据的可能性。因此,如何在不可信的环境下实现账本数据的全网统一是区块链共识层需要解决的关键问题。交易到了区块链之后,首先经过排序,随后以区块为单位一批一批数据的进行共识确认,该阶段比较漫长。在更坏的情况下,交易会因队列拥堵而没有被打包进区块中,导致确认时延更长。因此,区块链的共识性能成为当前区块链研究热点。为了准确的评估超级账本区块链在不同配置下的性能表现情况,需要针对特定配置,模拟真实生产情况对区块链系统发起性能测试,监控响应性能指标。因此,提出一种面向Fabric区块链的性能测试方法。
发明内容
本发明提供一种面向Fabric区块链的性能测试方法,通过部署超级账本测试链,设计三种不同的链码分别面向区块链计算性能、输入输出性能和共识性能进行度量,最终将测量结果统一保存,输出为整体测试报告。
为了解决以上技术问题,本申请采用的技术方案是:一种面向Fabric区块链的性能测试方法,其特征是包括以下步骤:步骤A,Fabric测试链部署,在超级账本测试链部署流程中输入Fabric网络配置参数配置测试链,读取并部署链码到Fabric网络中;步骤B,面向计算的Fabric链码性能度量,在Fabric中,链码被编译并直接在Docker环境中的本机上运行,设计一些类似于排序的智能合约进行测试,用于监控Fabric的计算性能;步骤C,面向输入输出的Fabric链码性能度量,在Fabric中,部署一些IO密集型链码,执行一些关键值元组的读写操作,用于监控Faric的输入输出性能;步骤D,面向共识的Fabric链码性能度量,通过部署面向共识的Fabric链码用于监控Fabric共识机制的性能。
优选地,步骤A中,首先根据Fabric网络配置参数配置Fabric测试链,之后读取Fabric网络配置参数中的链码配置并完成面向计算的Fabric链码、面向输入输出的Fabric链码及面向共识的Fabric链码的部署。
优选地,步骤B中,根据Fabric计算性能测试配置及交易脚本启动测试,随机选择一个客户端作为交易发起方,以该客户端为发起账户调用交易脚本发起交易,使用面向计算的Fabric链码执行交易,记录返回延迟时间、单位时间内返回的交易数量,以相等时间间隔持续以上步骤直至达到指定总时间,计算吞吐量与延迟指标的平均值、最大值与中位数。
优选地,步骤C中,根据Fabric输入输出性能测试配置及交易脚本启动测试,随机选择一个客户端作为交易发起方,以该客户端为发起账户调用交易脚本发起交易,使用面向输入输出的Fabric链码执行交易,记录返回延迟时间、单位时间内返回的交易数量,以相等时间间隔持续以上步骤直至达到指定总时间,计算吞吐量与延迟指标的平均值、最大值与中位数。
优选地,步骤E中,根据Fabric共识性能测试配置及交易脚本启动测试,随机选择一个客户端作为交易发起方,以该客户端为发起账户调用交易脚本发起交易,使用面向共识的Fabric链码执行交易,记录返回延迟时间、单位时间内返回的交易数量,以相等时间间隔持续以上步骤直至达到指定总时间,计算吞吐量与延迟指标的平均值、最大值与中位数。
与现有技术相比,本申请取得了以下有益效果:通过模拟大量系统用户对Fabric区块链系统完成性能测试,部署并度量三种不同的链码性能后,最终自动生成面向Fabric区块链系统的性能测试报告,共识确认时延短,链码被编译并直接在Docker环境中的本机机器上运行,没有执行高级EVM字节代码相关的开销,Hyperledger在速度和内存使用方面更加高效,能够在降低测试人员的测试门槛,提高测试效率的基础上,适用多种区块链平台。
附图说明
图1为面向Fabric区块链的性能测试方法实施的流程图。
图2为图1中Fabric测试链部署的流程图。
图3为图1中面向计算的性能指标度量的流程图。
图4为图1中面向输入输出的性能指标度量的流程图。
图5为图1中面向共识的性能指标度量的流程图。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所述附图说明如下。
如图1所示,本发明实施的面向Fabric区块链的性能测试方法,模拟大量系统用户对Hyperledger Fabric(简称Fabric)区块链系统完成性能测试,最终自动生成Fabric区块链系统的性能测试报告。首先部署超级账本测试链用于后续性能测试,之后部署并度量三种不同的链码性能,最终输出整体测试报告。
步骤A,Fabric测试链部署。在超级账本测试链部署流程中首先需要输入Fabric网络配置。其中,Fabric网络配置中包括节点配置、链码配置。系统可根据节点配置配置测试链,之后,读取并部署链码到Fabric网络中。图2为Fabric试链部署的流程图,用于按照要求部署Fabric测试链。详细步骤如下:1,在起始状态输入Fabric网络配置FNC=<PC,CC=<CC_Calculation、CC_IO、CC_Consensus>>;2,基于PC配置Fabric测试链FTC;3,读取并部署链码配置中的CC_Calculation;4,读取并部署链码配置中的CC_IO;5,读取并部署链码配置中的CC_Consensus;6,输出FTC,结束状态。
步骤B,面向计算的Fabric链码性能度量。在Fabric中,链码被编译并直接在Docker环境中的本机机器上运行,没有执行高级EVM字节代码相关的开销,Hyperledger在速度和内存使用方面更加高效。设计一些类似于排序的智能合约进行测试,用于监控Fabric的计算性能。图3为面向计算的性能指标度量的流程图,用于度量Fabric测试链计算性能指标。详细步骤如下:1,在起始状态输入Fabric计算性能测试配置FTC=<TS、CC_Calculation、Time>;2,读取FTC中交易脚本TS;3,启动测试;4,随机选择一个客户端作为交易发起方From_Cli;5,以From_Cli为发起账户调用TS发起交易;6,使用CC_Calculation链码执行交易;7,记录返回延迟时间RDT_Cal;8,记录单位时间内返回的交易数量RTN_Cal;9,等待间隔时间WT;10,判断测试时间是否已到Time,若否则执行步骤3;11,计算RDT_Cal平均值RDT_Cal_AVG、最大值RDT_Cal_MAX、中位数RDT_Cal_MIN;12,计算RTN_Cal平均值RTN_Cal_AVG、最大值RTN_Cal_MAX、中位数RTN_Cal_MIN;13,输出吞吐量与延迟指标数据TTD_Cal=<RDT_Cal、RTN_Cal>,结束状态。
步骤C,面向输入输出的Fabric链码性能度量。Fabric采用简单的键值数据模型。在Fabric中,部署一些IO密集型链码,执行一些关键值元组的读写操作,用于监控Faric的输入输出性能。图4为面向计算的性能指标度量的流程图,用于度量Fabric测试链输入输出性能指标。详细步骤如下:1,在起始状态输入Fabric输入输出性能测试配置FTC=<TS、CC_IO、Time>;2,读取FTC中交易脚本TS;3,启动测试;4,随机选择一个客户端作为交易发起方From_Cli;5,以From_Cli为发起账户调用TS发起交易;6,使用CC_IO链码执行交易;7,记录返回延迟时间RDT_IO;8,记录单位时间内返回的交易数量RTN_IO;9,等待间隔时间WT;10,判断测试时间是否已到Time,若否则执行步骤3;11,计算RDT_IO平均值RDT_IO_AVG、最大值RDT_IO_MAX、中位数RDT_IO_MIN;12,计算RTN_IO平均值RTN_IO_AVG、最大值RTN_IO_MAX、中位数RTN_IO_MIN;13,输出吞吐量与延迟指标数据TTD_IO=<RDT_IO、RTN_IO>,结束状态。
步骤D,面向共识的Fabric链码性能度量。该类链码在执行过程中不做任何具体操作,只是单纯返回结果,这类智能合约在执行和存储时不会有额外操作,对区块链的性能影响体现在共识协议上,通过部署面向共识的Fabric链码用于监控Fabric共识机制的性能。图5为面向计算的性能指标度量的流程图,用于度量Fabric测试链共识性能指标。详细步骤如下:1,在起始状态下输入Fabric计算性能测试配置FTC=<TS、CC_Consensus、Time>;2,读取FTC中交易脚本TS;3,启动测试;4,随机选择一个客户端作为交易发起方From_Cli;5,以From_Cli为发起账户调用TS发起交易;6,使用CC_Consensus链码执行交易;7,记录返回延迟时间RDT_Consensus;8,记录单位时间内返回的交易数量RTN_Consensus;9,等待间隔时间WT;10,判断测试时间是否已到Time,若否则执行步骤3;11,计算RDT_Consensus平均值RDT_ConsensusAVG、最大值RDT_Consensus_MAX、中位数RDT_Consensus_MIN;12,计算RTN_Consensus平均值RTN_Consensus_AVG、最大值RTN_Consensus_MAX、中位数RTN_Consensus_MIN;13,输出吞吐量与延迟指标数据TTD_Consensus=<RDT_Consensus、RTN_Consensus>,结束状态。
本发明使用三类链码对Fabric区块链的不同特性进行性能测试,组合生成性能测试报告,实现对Fabric区块链的性能测试。

Claims (5)

1.一种面向Fabric区块链的性能测试方法,其特征是包括以下步骤:
步骤A,Fabric测试链部署,在超级账本测试链部署流程中输入Fabric网络配置参数配置测试链,读取并部署链码到Fabric网络中;
步骤B,面向计算的Fabric链码性能度量,在Fabric中,链码被编译并直接在Docker环境中的本机上运行,设计一些类似于排序的智能合约进行测试,用于监控Fabric的计算性能;
步骤C,面向输入输出的Fabric链码性能度量,在Fabric中,部署一些IO密集型链码,执行一些关键值元组的读写操作,用于监控Faric的输入输出性能;
步骤D,面向共识的Fabric链码性能度量,通过部署面向共识的Fabric链码用于监控Fabric共识机制的性能。
2.根据权利要求1中所述的面向Fabric区块链的性能测试方法,其特征是步骤A中,首先根据Fabric网络配置参数配置Fabric测试链,之后读取Fabric网络配置参数中的链码配置并完成面向计算的Fabric链码、面向输入输出的Fabric链码及面向共识的Fabric链码的部署。
3.根据权利要求1中所述的面向Fabric区块链的性能测试方法,其特征是步骤B中,根据Fabric计算性能测试配置及交易脚本启动测试,随机选择一个客户端作为交易发起方,以该客户端为发起账户调用交易脚本发起交易,使用面向计算的Fabric链码执行交易,记录返回延迟时间、单位时间内返回的交易数量,以相等时间间隔持续以上步骤直至达到指定总时间,计算吞吐量与延迟指标的平均值、最大值与中位数。
4.根据权利要求1中所述的面向Fabric区块链的性能测试方法,其特征是步骤C中,根据Fabric输入输出性能测试配置及交易脚本启动测试,随机选择一个客户端作为交易发起方,以该客户端为发起账户调用交易脚本发起交易,使用面向输入输出的Fabric链码执行交易,记录返回延迟时间、单位时间内返回的交易数量,以相等时间间隔持续以上步骤直至达到指定总时间,计算吞吐量与延迟指标的平均值、最大值与中位数。
5.根据权利要求1中所述的面向Fabric区块链的性能测试方法,其特征是步骤E中,根据Fabric共识性能测试配置及交易脚本启动测试,随机选择一个客户端作为交易发起方,以该客户端为发起账户调用交易脚本发起交易,使用面向共识的Fabric链码执行交易,记录返回延迟时间、单位时间内返回的交易数量,以相等时间间隔持续以上步骤直至达到指定总时间,计算吞吐量与延迟指标的平均值、最大值与中位数。
CN202111046056.7A 2021-09-07 2021-09-07 面向Fabric区块链的性能测试方法 Active CN113726613B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111046056.7A CN113726613B (zh) 2021-09-07 2021-09-07 面向Fabric区块链的性能测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111046056.7A CN113726613B (zh) 2021-09-07 2021-09-07 面向Fabric区块链的性能测试方法

Publications (2)

Publication Number Publication Date
CN113726613A true CN113726613A (zh) 2021-11-30
CN113726613B CN113726613B (zh) 2022-04-15

Family

ID=78682293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111046056.7A Active CN113726613B (zh) 2021-09-07 2021-09-07 面向Fabric区块链的性能测试方法

Country Status (1)

Country Link
CN (1) CN113726613B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361314A (zh) * 2022-08-24 2022-11-18 星环信息科技(上海)股份有限公司 一种面向Hyperledger Fabric 2.0性能评估方法
CN116909931A (zh) * 2023-09-12 2023-10-20 广州民航信息技术有限公司 一种针对Fabric区块链的性能检测系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783364A (zh) * 2018-12-14 2019-05-21 深圳先进技术研究院 一种区块链性能测试系统及方法
CN112073254A (zh) * 2019-06-11 2020-12-11 南京慕测信息科技有限公司 一种面向以太坊区块链的性能测试方法
CN113326197A (zh) * 2021-06-11 2021-08-31 南京工业大学 一种面向Diem区块链的性能测试方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783364A (zh) * 2018-12-14 2019-05-21 深圳先进技术研究院 一种区块链性能测试系统及方法
CN112073254A (zh) * 2019-06-11 2020-12-11 南京慕测信息科技有限公司 一种面向以太坊区块链的性能测试方法
CN113326197A (zh) * 2021-06-11 2021-08-31 南京工业大学 一种面向Diem区块链的性能测试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CANHUI WANG 等: "Performance Characterization and Bottleneck Analysis of Hyperledger Fabric", 《2020 IEEE 40TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS (ICDCS)》 *
LUCA FOSCHINI 等: "Hyperledger Fabric Blockchain: Chaincode Performance Analysis", 《ICC 2020 - 2020 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361314A (zh) * 2022-08-24 2022-11-18 星环信息科技(上海)股份有限公司 一种面向Hyperledger Fabric 2.0性能评估方法
CN116909931A (zh) * 2023-09-12 2023-10-20 广州民航信息技术有限公司 一种针对Fabric区块链的性能检测系统
CN116909931B (zh) * 2023-09-12 2023-12-26 广州民航信息技术有限公司 一种针对Fabric区块链的性能检测系统

Also Published As

Publication number Publication date
CN113726613B (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
CN113726613B (zh) 面向Fabric区块链的性能测试方法
CN108170590B (zh) 一种区块链系统的测试系统和方法
Shang et al. Assisting developers of big data analytics applications when deploying on hadoop clouds
CN109101680B (zh) 基于GitLab-CI的FPGA原型自动验证方法及系统
CN110633200A (zh) 用于测试智能合约的方法和设备
Doyle et al. An empirical study of the evolution of PHP web application security
JP6142705B2 (ja) オブジェクト指向言語のための記号テストドライバの反復生成
CN117034821B (zh) 用于芯片设计前端仿真验证的回归验证方法及介质
CN111897742B (zh) 生成智能合约测试案例的方法和装置
CN107608873B (zh) 软件测试方法和系统及测试平台
CN110851352A (zh) 一种模糊测试系统及终端设备
CN114996126A (zh) 一种针对eosio智能合约的漏洞检测方法及系统
CN110515755A (zh) 接口功能验证方法、装置、设备及计算机可读存储介质
CN112527312A (zh) 一种嵌入式系统的测试方法和测试装置
CN107066391A (zh) 测试用例的处理方法以及系统
CN109684205A (zh) 系统测试方法、装置、电子设备及存储介质
JP6155050B2 (ja) 情報処理装置の論理検証方法及びプログラム
JP3965068B2 (ja) ハードウェア設計を検証するための統合テストケース言語
US9684744B2 (en) Verification of system assertions in simulation
CN113934642A (zh) 一种基于动静态结合的软件兼容性测试方法
Yuan et al. A method for detecting buffer overflow vulnerabilities
CN117992358B (zh) 基于区块链的智能合约跨合约测试方法及装置
CN110333998B (zh) 一种网络化控制cps系统的智能化测试场景编排方法
Timo et al. Fault detection in timed FSM with timeouts by SAT-solving
Zhang et al. ICTDroid: Parameter-Aware Combinatorial Testing for Components of Android Apps

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant