CN116974649B - 基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置 - Google Patents

基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置 Download PDF

Info

Publication number
CN116974649B
CN116974649B CN202311077873.8A CN202311077873A CN116974649B CN 116974649 B CN116974649 B CN 116974649B CN 202311077873 A CN202311077873 A CN 202311077873A CN 116974649 B CN116974649 B CN 116974649B
Authority
CN
China
Prior art keywords
fault simulation
chaosblade
blockchain
creating
node
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.)
Active
Application number
CN202311077873.8A
Other languages
English (en)
Other versions
CN116974649A (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.)
East China Branch Of China Institute Of Electronic Technology Standardization
Northwestern Polytechnical University
Original Assignee
East China Branch Of China Institute Of Electronic Technology Standardization
Northwestern Polytechnical University
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 East China Branch Of China Institute Of Electronic Technology Standardization, Northwestern Polytechnical University filed Critical East China Branch Of China Institute Of Electronic Technology Standardization
Priority to CN202311077873.8A priority Critical patent/CN116974649B/zh
Publication of CN116974649A publication Critical patent/CN116974649A/zh
Application granted granted Critical
Publication of CN116974649B publication Critical patent/CN116974649B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及计算机网络与区块链技术领域,尤其涉及一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置,其中方法包括:准备统一的自定义环境配置文件,读取配置文件,创建区块链;区块链创建之后,导入Go语言的ethclient包并调用API函数,随后对已创建的区块链进行自动检测,检测后返回检测结果;通过配置文件创建节点故障模拟方案,读取故障模拟方案,调用ChaosBlade进行故障模拟;区块链故障模拟时,通过检测测试区块链运行状态自动生成报告。本申请能够有效解决区块链需要手动进行部署配置、缺乏快速有效的检测机制以及如何进行故障或者异常情况模拟的问题。

Description

基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的 方法及装置
技术领域
本申请涉及计算机网络与区块链技术领域,尤其涉及一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,随着计算机网络技术的不断发展,区块链越来越多地应用在各个领域。
但是目前区块链的部署配置大多都是通过手动进行,需要复杂的配置和手动操作,否则容易出现配置错误、版本不匹配等问题,从而对测试人员搭建测试环境带来很多的挑战和困难;此外区块链系统部署完成后,缺乏快速有效的检测机制,包括节点状态,基本的交易,交易时间等;同时由于区块链系统通常由多个节点和智能合约组成,涉及到复杂的网络和数据交互。这使得测试过程变得复杂,为了验证和提高区块链系统的可靠性,测试必须模拟和验证在各种异常情况下,系统能够维持一致性并正确地处理故障和攻击,需要找到工具来进行各种异常情况的模拟。
综上所述,如何解决区块链需要手动部署配置、缺乏快速有效的检测机制以及如何进行故障或者异常情况模拟是目前需要解决的问题。
发明内容
本申请提供了一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置,能够解决区块链手动进行部署配置、缺乏快速有效的检测机制以及故障或者异常情况的模拟是目前需要解决的问题。本申请提供如下技术方案:
第一方面,本申请提供一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法,所述方法包括:
准备统一的自定义环境配置文件,读取配置文件,创建区块链;
区块链创建之后,导入Go语言的ethclient包并调用API函数,随后对已创建的区块链进行自动检测,检测后返回检测结果;
通过配置文件创建节点故障模拟方案,读取故障模拟方案,调用ChaosBlade进行故障模拟;
区块链故障模拟时,通过检测测试区块链运行状态自动生成报告。
在一个具体的可实施方案中,所述配置文件包括创世区块的配置信息和节点配置信息,创世区块配置信息主要包括链ID,出块难度等;节点配置信息主要包括节点数量,IP地址,端口号等;
所述读取配置文件,创建区块链包括:首先读取创世区块的配置信息,并生成对应的创世块文件,执行初始化,随后再读取节点的配置信息,根据节点数量、IP地址以及端口号等创建并启动节点,同时自动创建测试账号。
在一个具体的可实施方案中,所述对已创建的区块链进行自动检测中,检测包括当前区块高度,节点数量,状态,进行测试交易,连续进行交易计算平均交易时间,以及创建并测试智能合约。
在一个具体的可实施方案中,所述通过配置文件创建节点故障模拟方案,读取故障模拟方案,调用ChaosBlade进行故障模拟包括:
通过配置文件创建节点故障模拟方案,模拟各个节点发生不同的故障,可模拟的故障包括CPU出现高负载、内存异常占用、网络延迟或丢包比例过高等;程序读取故障模拟方案后,调用ChaosBlade进行故障模拟。
在一个具体的可实施方案中,所述区块链故障模拟时,通过检测测试区块链运行状态自动生成报告包括:当区块链故障模拟发生时,程序通过检测区块高度,节点状态,重复进行交易测试,检查交易时间,重复创建和调用智能合约等测试区块链运行状态,和初始结果比较,最终生成比较的结果报告。
第二方面,本申请提供一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的系统,采用如下的技术方案:
一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的装置,包括:
区块链创建模块,用于准备统一的自定义环境配置文件,读取配置文件,创建区块链;
区块链检测模块,用于区块链创建之后,导入Go语言的ethclient包并调用API函数,随后对已创建的区块链进行自动检测,检测后返回检测结果;
故障模拟模块,用于通过配置文件创建节点故障模拟方案,读取故障模拟方案,调用ChaosBlade进行故障模拟;
报告生成模块,用于区块链故障模拟时,通过检测测试区块链运行状态自动生成报告。
第三方面,本申请提供一种电子设备,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法。
第四方面,本申请提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求1至7任一项所述的一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法。
综上所述,本申请的有益效果至少包括:
1)通过自定义配置文件,灵活定义区块链全局参数和节点数量等,通过Go语言读取配置自动执行,实现了快速、可靠和自动化的区块链部署。相较于传统的手动部署方式,自动化部署能够大大提高部署效率,减少人工错误,并确保部署的一致性和可重复性,提供了测试效率。
2)将ChaosBlade技术与区块链结合,实现故障方案自定义和故障引入,通过自动读取和触发,可模拟各种故障和异常情况,可评估系统在不稳定环境下的鲁棒性和可靠性,为区块链系统的容错和恢复能力提供了有效的验证手段。
3)通过程序自动测试,可以对区块链交易和合约等项目进行检测,同时通过详尽的报告可反映区块链的详细状况,结合系统在故障场景下表现可用来评估系统的可靠性,以便开发团队和管理人员分析和优化系统的性能。
通过减少手动操作,引入自动化工具或脚本自动执行配置任务,通过标准配置文件和模版进行区块链本地测试环境的搭建和启动;通过在代码中调用区块链基本的命令行的方式进行区块链状态检测,如获取区块高度,获取节点状态,获取账号余额,转账交易,获取交易时间等,同自动显示检测结果报告;通过ChaosBlade对节点引入各种故障情况,如CPU,内存,网络等各种异常场景,协助区块链可靠性测试;能够有效解决区块链需要手动进行部署配置、缺乏快速有效的检测机制以及如何进行故障或者异常情况模拟的问题。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
图1是本申请一个实施例提供的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法的流程示意图。
图2是本申请一个实施例提供的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的系统架构图。
图3是本申请一个实施例提供的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的装置的流程示意图。
图4是本申请一个实施例提供的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的电子设备的结构框图。
附图标记:310、区块链创建模块;320、区块链检测模块;330、故障模拟模块;340、报告生成模块。
具体实施方式
下面结合附图和实施例,对本申请的具体实施方式做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
首先,对于本申请所涉及的若干名词进行介绍。
区块链技术是一种分布式数据库技术,通过使用密码学和共识算法,可以确保数据的透明性、不可篡改性和去中心化特性。随着区块链技术的发展,它已经广泛应用于金融、供应链管理、物联网等众多领域,并在保护数据安全和促进交易可追溯性方面展现出巨大潜力。
混沌测试(Chaos Testing)是一种测试方法,通过在系统中引入故障、异常和不可预测的情况,以评估系统的容错性和稳定性。混沌测试旨在模拟真实环境中的各种故障情况,以验证系统在面对异常情况时的行为和表现。
ChaosBlade是一个功能强大的混沌工程工具,专门用于进行混沌测试。它由阿里巴巴集团开发,并于2017年开源。ChaosBlade提供了丰富的故障注入和异常模拟功能,可以模拟网络延迟、CPU负载等各种情况。通过使用ChaosBlade,测试人员可以有针对性地注入故障,观察系统的响应和恢复能力,从而更好地了解系统的弱点和改进空间。
在区块链领域,ChaosBlade可以用于对区块链系统进行混沌测试,以验证系统的容错能力和稳定性。通过使用ChaosBlade评估系统在这些异常情况下的表现和恢复能力。这有助于发现潜在的问题,改进系统的鲁棒性,并提高区块链系统的可靠性。
本申请的主要实现工具包括Go程序、Geth以太坊客户端、ethclient、JSON以及ChaosBlade等。
参照图1,是本申请一个实施例提供的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法的流程示意图,该方法至少包括以下几个步骤:
步骤101,准备创世区块和节点的统一配置文件。
首先准备统一的自定义的环境配置文件,具体的,环境配置文件的格式为JSON格式,可选地,也可以是XML格式或者YAML格式等,本申请不对配置文件的格式作出限制。
在实施中,配置文件包括创世区块的配置信息和节点配置信息,创世区块配置信息主要包括链ID,出块难度等。节点配置信息主要包括节点数量,IP地址,端口号等。
步骤102,读取配置文件,创建区块链。
配置文件准备好之后,Go程序读取步骤101中的配置文件,具体的,首先读取创世区块的配置信息,并生成对应的创世块文件(genesis.json),执行初始化,随后再读取节点的配置信息,根据节点数量、IP地址以及端口号等创建并启动节点,同时自动创建测试账号。
通过Go语言读取配置自动执行,实现了快速、可靠和自动化的区块链部署。相较于传统的手动部署方式,自动化部署能够大大提高部署效率,减少人工错误,更为地灵活定义区块链全局参数和节点数量,并确保部署的一致性和可重复性,提供了测试效率。
步骤103,对区块链进行快速初始检测。
区块链创建之后,导入Go语言的ethclient包并调用API函数,用Go初始化以太坊客户端是和区块链交互所需的基本步骤,因此导入Go语言的ethclient包是一个必要条件。
随后对已创建的区块链进行自动检测,检测包括当前区块高度、节点数量、状态、进行测试交易、连续进行交易计算平均交易时间、以及创建并测试智能合约,检测后返回所有检测结果。
通过程序自动测试,可以对区块链交易和合约等项目进行检测,同时通过详尽的报告可反映区块链的详细状况,结合系统在故障场景下表现可用来评估系统的可靠性,以便开发团队和管理人员分析和优化系统的性能。
步骤104,区块链节点故障模拟。
通过配置文件创建节点故障模拟方案,模拟各个节点发生不同的故障,可模拟的故障包括CPU出现高负载、内存异常占用、网络延迟或丢包比例过高等;程序读取故障模拟方案后,调用ChaosBlade进行故障模拟。
将ChaosBlade技术与区块链结合,实现故障方案自定义和故障引入,通过自动读取和触发,可模拟各种故障和异常情况,可评估系统在不稳定环境下的鲁棒性和可靠性,为区块链系统的容错和恢复能力提供了有效的验证手段。
步骤105,区块链可靠测试和报告。
当区块链故障模拟发生时,程序通过检测区块高度,节点状态,重复进行交易测试,检查交易时间,重复创建和调用智能合约等测试区块链运行状态,和初始结果比较,并自动生成报告。
接下来举例说明:通过配置文件来创建一个以太坊测试网络。首先,根据预定义的配置文件,配置其中创世区块的一些常用参数,如区块链ID,随机数等,根据参数,程序中会根据配置自动生成genesis.json文件,用作之后创建的基础。然后,再根据预定的配置,准备节点配置信息,节点配置信息包括节点IP,网络端口,网络ID等。配置文件都准备好之后,程序通过使用自动生成的创世文件,调用客户端,创建各个区块链的节点,并保证相互链接。创建完成后,开始进行状态检测,包括区块链高度,节点数量,同时通过客户端创建交易,连续创建多笔交易检测平均交易时间,并对智能合约进行检测,检测后返回所有检测结果,汇总上述的步骤,形成检测的报告。准备的预设故障方案如配置某个节点CPU满载个数,例如2;设置CPU负载百分比,例如50;设置某个节点磁盘填充,例如size40000;设置节点磁盘的使用率,例如80;设置节点内存负载率,例如70;设置网络延迟时间,例如time3000,上述故障方案均是通过ChaosBlade的命令行实现,通过引入各种故障情况来观察此时区块链的可靠性,此时重复调用区块链高度,节点数量,创建交易等,和初始结果比较,最终形成比较的结果报告。
图2是本申请一个实施例提供的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的系统架构图。如图2所示,系统包括:
1)底层计算机网络和硬件层。计算机网络层和硬件层提供了底层的网络基础设施,以支持上层的应用和服务。
2)中间区块链层。位于计算机网络层之上是区块链层,提供了区块链的节点管理、账本记录、加密解密、共识机制等。
3)区块链API层。构建在区块链之上的应用程序接口(API)层,它允许开发人员与区块链进行交互,执行各种操作,如发送交易、查询数据等。
4)ChaosBlade故障检测模块,ChaoBlase本身包括了Agent组件、不同的实验模块(如内存、CPU、网络以及磁盘)、监控和日志模块以及故障模拟检测模块,通过CLI进行交互并执行故障模拟方案。
5)创建和检测模块,包括了读取创建模块、初始检测模块和检测报告模块,通过读取创世块配置文件和节点配置文件创建区块链。
6)故障比对和报告层:用于生成和展示故障比对报告。在系统经历了ChaosBlade模块引入故障的测试之后,这一层会收集并分析系统的行为。
应用程序通过区块链API与区块链交互,区块链层处理交易和数据,ChaosBlade模块引入故障来测试系统的鲁棒性,区块链自动部署检测模块用于部署和检测区块链网络。最后,在故障比对和报告层,系统的行为和性能将被分析并生成相应的报告,各个模块和层次之间的交互都通过Go进行调用和通信。
综上所述,通过减少手动操作,引入自动化工具或脚本自动执行配置任务,通过标准配置文件和模版进行区块链本地测试环境的搭建和启动;通过在代码中调用区块链基本的命令行的方式进行区块链状态检测,如获取区块高度,获取节点状态,获取账号余额,转账交易,获取交易时间等,同自动显示检测结果报告;通过ChaosBlade对节点引入各种故障情况,如CPU,内存,网络等各种异常场景,协助区块链可靠性测试;能够有效解决区块链需要手动进行部署配置、缺乏快速有效的检测机制以及如何进行故障或者异常情况模拟的问题。
图3是本申请一个实施例提供的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的装置的流程示意图。该装置至少包括以下几个模块:
区块链创建模块310,用于准备统一的自定义环境配置文件,读取配置文件,创建区块链;
区块链检测模块320,用于区块链创建之后,导入Go语言的ethclient包并调用API函数,随后对已创建的区块链进行自动检测,检测后返回检测结果;
故障模拟模块330,用于通过配置文件创建节点故障模拟方案,读取故障模拟方案,调用ChaosBlade进行故障模拟;
报告生成模块340,用于区块链故障模拟时,通过检测测试区块链运行状态自动生成报告。
相关细节参考上述方法实施例。
图4是本申请一个实施例提供的电子设备的框图。该设备至少包括处理器401和存储器402。
处理器401可以包括一个或多个处理核心,比如:4核心处理器、8核心处理器等。处理器401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器401所执行以实现本申请中方法实施例提供的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法。
在一些实施例中,电子设备还可选包括有:外围设备接口和至少一个外围设备。处理器401、存储器402和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
当然,电子设备还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,计算机可读存储介质中存储有程序,程序由处理器加载并执行以实现上述方法实施例的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法。
可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,计算机可读存储介质中存储有程序,程序由处理器加载并执行以实现上述方法实施例的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

Claims (5)

1.一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法,其特征在于,所述方法包括:
准备统一的自定义环境配置文件,读取配置文件,创建区块链;所述配置文件包括创世区块的配置信息和节点配置信息,创世区块配置信息包括链ID,出块难度;节点配置信息包括节点数量,IP地址,端口号;所述读取配置文件,创建区块链包括:首先读取创世区块的配置信息,并生成对应的创世块文件,执行初始化,随后再读取节点的配置信息,根据节点数量、IP地址以及端口号创建并启动节点,同时自动创建测试账号;
区块链创建之后,导入Go语言的ethclient包并调用API函数,随后对已创建的区块链进行自动检测,检测后返回检测结果;
通过配置文件创建节点故障模拟方案,读取故障模拟方案,调用ChaosBlade进行故障模拟;所述通过配置文件创建节点故障模拟方案,读取故障模拟方案,调用ChaosBlade进行故障模拟包括:通过配置文件创建节点故障模拟方案,模拟各个节点发生不同的故障,可模拟的故障包括CPU出现高负载、内存异常占用、网络延迟或丢包比例过高;程序读取故障模拟方案后,调用ChaosBlade进行故障模拟;
区块链故障模拟时,通过检测测试区块链运行状态自动生成报告,包括:当区块链故障模拟发生时,程序通过检测区块高度,节点状态,重复进行交易测试,检查交易时间,重复创建和调用智能合约测试区块链运行状态,和初始结果比较,最终生成比较的结果报告。
2.根据权利要求1所述的基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法,其特征在于,所述对已创建的区块链进行自动检测中,检测包括当前区块高度,节点数量,状态,进行测试交易,连续进行交易计算平均交易时间以及创建并测试智能合约。
3.一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的装置,其特征在于,包括:
区块链创建模块(310),用于准备统一的自定义环境配置文件,读取配置文件,创建区块链;所述配置文件包括创世区块的配置信息和节点配置信息,创世区块配置信息包括链ID,出块难度;节点配置信息包括节点数量,IP地址,端口号;所述读取配置文件,创建区块链包括:首先读取创世区块的配置信息,并生成对应的创世块文件,执行初始化,随后再读取节点的配置信息,根据节点数量、IP地址以及端口号创建并启动节点,同时自动创建测试账号;
区块链检测模块(320),用于区块链创建之后,导入Go语言的ethclient包并调用API函数,随后对已创建的区块链进行自动检测,检测后返回检测结果;
故障模拟模块(330),用于通过配置文件创建节点故障模拟方案,读取故障模拟方案,调用ChaosBlade进行故障模拟;所述通过配置文件创建节点故障模拟方案,读取故障模拟方案,调用ChaosBlade进行故障模拟包括:通过配置文件创建节点故障模拟方案,模拟各个节点发生不同的故障,可模拟的故障包括CPU出现高负载、内存异常占用、网络延迟或丢包比例过高;程序读取故障模拟方案后,调用ChaosBlade进行故障模拟;
报告生成模块(340),用于区块链故障模拟时,通过检测测试区块链运行状态自动生成报告,包括:当区块链故障模拟发生时,程序通过检测区块高度,节点状态,重复进行交易测试,检查交易时间,重复创建和调用智能合约测试区块链运行状态,和初始结果比较,最终生成比较的结果报告。
4.一种电子设备,其特征在于,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求1至2任一项所述的一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法。
5.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求1至2任一项所述的一种基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法。
CN202311077873.8A 2023-08-25 2023-08-25 基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置 Active CN116974649B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311077873.8A CN116974649B (zh) 2023-08-25 2023-08-25 基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311077873.8A CN116974649B (zh) 2023-08-25 2023-08-25 基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置

Publications (2)

Publication Number Publication Date
CN116974649A CN116974649A (zh) 2023-10-31
CN116974649B true CN116974649B (zh) 2024-02-13

Family

ID=88478034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311077873.8A Active CN116974649B (zh) 2023-08-25 2023-08-25 基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置

Country Status (1)

Country Link
CN (1) CN116974649B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110933189A (zh) * 2020-02-10 2020-03-27 北京启迪区块链科技发展有限公司 基于Fabric的区块链网络部署方法、装置、设备和介质
CN112256388A (zh) * 2020-10-15 2021-01-22 深圳壹账通智能科技有限公司 基于容器的区块链网络部署方法、装置、设备及存储介质
CN112291119A (zh) * 2020-12-28 2021-01-29 腾讯科技(深圳)有限公司 区块链网络测试方法、装置、介质及电子设备
CN116055308A (zh) * 2023-02-10 2023-05-02 青岛闪收付信息技术有限公司 一种供应链金融平台的底层区块链网络部署方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110933189A (zh) * 2020-02-10 2020-03-27 北京启迪区块链科技发展有限公司 基于Fabric的区块链网络部署方法、装置、设备和介质
CN112256388A (zh) * 2020-10-15 2021-01-22 深圳壹账通智能科技有限公司 基于容器的区块链网络部署方法、装置、设备及存储介质
CN112291119A (zh) * 2020-12-28 2021-01-29 腾讯科技(深圳)有限公司 区块链网络测试方法、装置、介质及电子设备
CN116055308A (zh) * 2023-02-10 2023-05-02 青岛闪收付信息技术有限公司 一种供应链金融平台的底层区块链网络部署方法及装置

Also Published As

Publication number Publication date
CN116974649A (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
CN102402481B (zh) 异步程序代码的模糊测试
Lai A survey of communication protocol testing
CN106095677B (zh) 基于Robot Framework实现的RESTful Webservice接口自动化测试方法
Robidoux et al. Automated modeling of dynamic reliability block diagrams using colored Petri nets
CN111881014B (zh) 一种系统测试方法、装置、存储介质及电子设备
CN107526676B (zh) 一种跨系统测试方法及装置
CN116028292B (zh) 用于远程直接内存访问仿真验证的仿真验证系统及方法
CN110071822A (zh) 一种针对5g核心网基础设施的测试装置及测试方法
CN111258913A (zh) 算法自动测试方法、装置、计算机系统及可读存储介质
US20070157134A1 (en) Method for testing a hardware circuit block written in a hardware description language
CN113590454A (zh) 测试方法、装置、计算机设备和存储介质
CN112650676A (zh) 软件测试方法、装置、设备及存储介质
CN103049374B (zh) 一种自动化测试的方法及装置
CN110704314A (zh) 一种嵌入式软件测试的故障注入方法
US9507616B1 (en) Methods, systems, and computer readable media for emulating computer processing usage patterns on a virtual machine
CN116257438A (zh) 接口测试用例的更新方法及相关设备
CN107679423A (zh) 分区完整性检查方法及装置
CN113360386B (zh) 交换芯片驱动测试方法、装置、电子设备和存储介质
CN116974649B (zh) 基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置
WO2023124314A1 (zh) 混合cpu架构设备的微服务测试方法、系统及相关装置
Yammanuru et al. Enabling enterprise blockchain appdev teams
CN113722133B (zh) 一种内存泄漏检测方法、装置及设备
CN111984523B (zh) 消息处理任务测试方法、装置、系统、设备及介质
CN111858205B (zh) 一种芯片调试方法和系统
CN114077503A (zh) 一种仿真代理调用方法、装置、计算机设备和存储介质

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
TA01 Transfer of patent application right

Effective date of registration: 20240119

Address after: Room 110, building A4, bio nano Park, 218 Xinghu street, Suzhou Industrial Park, Jiangsu 215000

Applicant after: East China branch of China Institute of electronic technology standardization

Applicant after: Northwestern Polytechnical University

Address before: Room 110, Building A4, Bionano Park, No. 218 Xinghu Street, Industrial Park, Suzhou City, Jiangsu Province, 215124

Applicant before: East China branch of China Institute of electronic technology standardization

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant