CN111949531B - 区块链网络的测试方法、装置、介质及电子设备 - Google Patents
区块链网络的测试方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN111949531B CN111949531B CN202010797517.3A CN202010797517A CN111949531B CN 111949531 B CN111949531 B CN 111949531B CN 202010797517 A CN202010797517 A CN 202010797517A CN 111949531 B CN111949531 B CN 111949531B
- Authority
- CN
- China
- Prior art keywords
- block chain
- code
- nodes
- test
- network
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请的实施例提供了一种区块链网络的测试方法、装置、计算机可读介质及电子设备。该区块链网络的测试方法包括:在待测试的区块链网络的源代码中插入用于修改所述区块链网络中的节点信息的代码,得到测试代码;之后触发所述区块链网络中的区块链节点执行所述测试代码,并获取所述区块链节点执行所述测试代码后生成的运行结果;以基于所述运行结果确定各所述区块链节点之间的共识状态,最后基于所述共识状态生成所述区块链网络的测试结果。本申请实施例的技术方案实现了区块链网络的自动化测试,提高了区块链网络测试的效率,同时提高了区块链节点测试的精确性和全面性,进一步增强了区块链网络应对各种攻击的防护性能。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种区块链网络的测试方法、装置、计算机可读介质及电子设备。
背景技术
区块链是一种多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也就是分布式账本技术。其可应用于各种行业中,例如医疗、物联以及人工智能等领域。在很多情况下对区块链网络进行测试时,一般都是通过人工手动修改区块链配置的方式进行测试,这种方式自动化程度低、工作量大,无法精确全面的完成对区块链网络的测试,进而可能导致区块链网络容易受到外界的攻击。
发明内容
本申请的实施例提供了一种区块链网络的测试方法、装置、计算机可读介质及电子设备,进而至少在一定程度上可以提高区块链网络测试的效率,同时提高区块链节点测试的精确性和全面性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种区块链网络的测试方法,包括:在待测试的区块链网络的源代码中插入用于修改所述区块链网络中的节点信息的代码,得到测试代码;触发所述区块链网络中的区块链节点执行所述测试代码,并获取所述区块链节点执行所述测试代码后生成的运行结果;基于所述运行结果确定各所述区块链节点之间的共识状态;基于所述共识状态生成所述区块链网络的测试结果。
根据本申请实施例的一个方面,提供了一种区块链网络的测试装置,包括:插入单元,用于在待测试的区块链网络的源代码中插入用于修改所述区块链网络中的节点信息的代码,得到测试代码;运行单元,用于触发所述区块链网络中的区块链节点执行所述测试代码,并获取所述区块链节点执行所述测试代码后生成的运行结果;共识单元,用于基于所述运行结果确定各所述区块链节点之间的共识状态;测试单元,用于基于所述共识状态生成所述区块链网络的测试结果。
在本申请的一些实施例中,基于前述方案,所述插入单元包括:接口检测单元,用于检测所述区块链网络的源代码中的用于获取区块链节点地址的接口,将检测到的接口位置作为所述源代码的插桩点;代码插入单元,用于在所述源代码的插桩点处注入用于修改所述区块链网络中的节点信息的代码,得到所述测试代码。
在本申请的一些实施例中,基于前述方案,所述区块链网络的测试装置还包括:选择单元,用于在所述区块链网络的区块链节点中,选择执行所述测试代码的目标节点;下发单元,用于将所述测试代码对应的可执行文件下发至所述目标节点,以触发所述目标节点执行所述测试代码。
在本申请的一些实施例中,基于前述方案,所述选择单元配置为:基于区块链网络的共识策略确定需要选择的目标节点的数量;根据所述目标节点的数量,从所述区块链网络的节点中选取相应数量的区块链节点作为所述目标节点。
在本申请的一些实施例中,基于前述方案,所述下发单元包括:代码编译单元,用于对所述测试代码进行编译,生成所述测试代码对应的可执行文件;文件下发单元,用于将所述测试代码对应的可执行文件下发至所述目标节点中,以替换所述目标节点中存储的所述区块链网络的源代码所对应的可执行文件。
在本申请的一些实施例中,基于前述方案,所述代码编译单元配置为:激活所述用于修改所述区块链网络中的节点信息的代码,生成中间文件;基于所述中间文件对所述测试代码进行编译,生成二进制的可执行文件。
在本申请的一些实施例中,基于前述方案,所述文件下发单元配置为:若执行所述测试代码对应的可执行文件的目标节点数量为一个,则获取所述目标节点的机器信息;基于所述机器信息,将所述测试代码对应的可执行文件下发至所述目标节点。
在本申请的一些实施例中,基于前述方案,所述文件下发单元配置为:若执行所述测试代码对应的可执行文件的目标节点数量为至少两个,则获取所述至少两个目标节点的服务器信息;基于所述服务器信息,将所述测试代码对应的可执行文件下发至所述至少两个目标节点。
在本申请的一些实施例中,基于前述方案,所述运行单元包括:信息获取单元,用于获取用于触发所述测试代码对应的可执行文件运行的触发信息;触发运行单元,用于基于所述触发信息,触发所述区块链网络中的区块链节点执行所述测试代码对应的可执行文件,以基于所述区块链网络中修改后的区块链节点执行所述可执行文件对应的功能,生成所述运行结果。
在本申请的一些实施例中,基于前述方案,所述触发运行单元配置为:获取所述源代码的测试用例;基于所述触发信息,触发所述区块链网络中的节点基于所述测试用例执行所述可执行文件。
在本申请的一些实施例中,基于前述方案,所述共识单元包括:节点确定单元,用于基于所述运行结果确定所述运行结果对应的全部节点,以及所述全部节点中属于所述区块链网络的目标区块链节点;比例确定单元,用于基于所述目标区块链节点在所述全部节点中的占比,确定共识比例;状态确定单元,用于基于所述共识比例和设定阈值之间的关系,确定所述共识状态。
在本申请的一些实施例中,基于前述方案,所述测试单元包括:结果生成单元,用于若所述共识状态为所述共识比例大于设定阈值,则生成所述区块链网络通过测试的测试结果。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的区块链网络的测试方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的区块链网络的测试方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的区块链网络的测试方法。
在本申请的一些实施例所提供的技术方案中,通过在待测试的区块链网络的源代码中插入修改节点信息的代码,得到测试代码,以在测试过程中运行该测试代码,来自动修改区块链网络中的节点信息,并基于修改之后的区块链节点执行相应的功能,最后基于运行结果得到的各区块链节点之间的共识状态得到测试结果。实现了区块链网络的自动化测试,提高了区块链网络测试的效率,同时提高了区块链节点测试的精确性和全面性,进一步增强了区块链网络应对各种攻击的防护性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请实施例提供的分布式系统应用于区块链系统的一个可选的结构示意图;
图2示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图3示意性示出了根据本申请的一个实施例的区块链网络的测试方法的流程图;
图4示意性示出了根据本申请的一个实施例的插入代码的示意图;
图5示意性示出了根据本申请的一个实施例的区块链网络中攻击节点和区块链节点的示意图;
图6示意性示出了根据本申请的一个实施例的一种基于测试用例测试区块链网络的示意图;
图7示意性示出了根据本申请的一个实施例的基于运行结果确定各区块链节点之间的共识状态的流程图;
图8示意性示出了根据本申请的一个实施例的区块链网络进行女巫攻击的测试方案的框图;
图9示意性示出了根据本申请的一个实施例的区块链网络的测试装置;
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本申请实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
以分布式系统为区块链系统为例,参见图1,图1是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,Peer ToPeer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块,新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
在本实施例中的区块链网络中,将云技术运用于本实施例的区块链网络中。具体的,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
其中,云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。云安全主要研究方向包括:1.云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2.安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3.云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
本实施例中区块链网络可以基于云技术来实现,也会面临云技术中的各种安全问题,因此,本实施例中通过对区块链网络进行测试,来检测网络中可能存在的一些漏洞和隐患,进而提高区块链网络和云的安全性。
图2示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
在本申请的一个实施例中,在云中的各服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,例如本实施例中的区块链网络。还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
如图2所示,系统架构中包括至少两个区块链节点,如图2中的区块链节点201~204,除此之外还包括区块链网络的测试装置205。
应该理解,图2中的区块链节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的区块链节点,作为多个区块链节点组成的节点集群等。
本实施例中,区块链网络的测试装置205在待测试的区块链网络的源代码中插入用于修改区块链网络中的节点信息的代码,得到测试代码;之后触发区块链网络中的区块链节点执行测试代码,并获取区块链节点执行测试代码后生成的运行结果;以基于运行结果确定各区块链节点之间的共识状态,最后基于共识状态生成区块链网络的测试结果。通过在源代码中插入修改节点信息的代码,以在测试过程中运行该代码,来自动修改区块链网络中的节点信息,以基于修改之后的区块链节点执行相应的功能,实现了区块链网络的自动化测试,提高了区块链网络测试的效率,同时提高了区块链节点测试的精确性和全面性。
需要说明的是,本申请实施例所提供的区块链网络的测试方法一般由区块链网络的测试装置205执行,相应地,区块链网络的测试装置一般设置于终端设备等计算机设备中。但是,在本申请的其它实施例中,服务器也可以具有相似的功能,从而执行本申请实施例所提供的区块链网络的测试的方案。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图3示出了根据本申请的一个实施例的区块链网络的测试方法的流程图,该区块链网络的测试方法可以由服务器来执行,该服务器可以是图3中所示的服务器。参照图3所示,该区块链网络的测试方法至少包括步骤S310至步骤S340,详细介绍如下:
在步骤S310中,在待测试的区块链网络的源代码中插入用于修改区块链网络中的节点信息的代码,得到测试代码。
在本申请的一个实施例中,先获取待测试的区块链网络的源代码,本实施例中的源代码用于表示区块链网络运行时候所用的源代码,或者区块链网络中的区块链节点中存储、且经过共识的源代码。
在本申请的一个实施例中,用于修改区块链网络中节点信息的代码可以是用户编写的代码,也可以是直接获取到的代码。本实施例中听过将修改区块链网络中节点信息的代码插入到区块链网络的源代码中对应的位置处,以得到测试代码。
示例性的,本实施例中用于修改区块链网络中的节点信息的代码可以为基于女巫攻击的理论生成的代码,以基于该代码来修改区块链节点的信息,或者在区块链网络中生成新的、虚拟的区块链节点。
在本申请的一个实施例中,步骤S310中在待测试的区块链网络的源代码中插入用于修改区块链网络中的节点信息的代码,得到测试代码的过程,包括如下步骤:检测区块链网络的源代码中的用于获取区块链节点地址的接口,将检测到的接口位置作为源代码的插桩点;在源代码的插桩点处注入用于修改区块链网络中的节点信息的代码,得到测试代码。
图4为本申请实施例提供的一种插入代码的示意图。
如图4所示,在本申请的一个实施例中,对于区块链网络中的源代码420,通过检测区块链网络中的源代码420中用于获取区块链节点地址的接口,以将接口位置作为源代码的插桩点430。在源代码420的插桩点430处注入用于修改区块链网络中的节点信息的代码420,得到测试代码440。
本实施例中将用于修改区块链网络中的节点信息的代码插入到区块链网络的源代码中,得到测试代码,以在进行测试时直接运行测试代码,得到相应的运行结果。通过这种方式提高了区块链网络测试的效率。
在本申请的一个实施例中,步骤S320中触发区块链网络中的区块链节点执行测试代码,并获取区块链节点执行测试代码后生成的运行结果的过程之前,包括步骤S3201~S3202,详细说明如下:
在步骤S3201中,在区块链网络的区块链节点中,选择执行测试代码的目标节点。
在本申请的一个实施例中,在区块链网络的区块链节点中,选择执行测试代码的目标节点时,可以在区块链节点中随机选择的方式进行,也可以是选择较为活跃的区块链节点,还可以是选择数据处理量较多的区块链等等。
本实施例中可以基于区块链网络的共识策略确定需要选择的目标节点的数量,再根据目标节点的数量,从区块链网络的节点中选取相应数量的区块链节点作为目标节点。
具体的,本实施例中区块链网络的共识策略为:假设分布式系统拥有n台节点,并假设整个系统拜占庭节点,即攻击节点不超过m台,且n大于或者等于3m+1。则整个系统可正常运行,即容许n/3个节点出现异常。基于上述区块链网络的共识策略,本实施中可以基于当前区块链网络中的区块链节点的数量,确定需要选择的目标节点的数量。以基于目标节点的数量,从区块链网络的节点中选取相应数量的区块链节点作为目标节点。
具体的,本实施例中目标节点的数量可以小于区块链节点总数的三分之二、也可以为区块链节点总数的三分之二,还可以大于区块链节点总数的三分之二。具体可以根据区块链网络的情况或者实际的测试环境来确定。本实施例中通过设定不同数量的目标节点,以基于不同数量的目标节点运行测试代码,实现对区块链网络的测试。
在步骤S3202中,将测试代码对应的可执行文件下发至目标节点,以触发目标节点执行测试代码。
在本申请的一个实施例中,在确定了目标节点之后,将测试代码对应的可执行文件下发至目标节点中,以指示目标节点执行该测试代码,并且,指示区块链网络中的其它区块链节点执行源代码对应的测试代码。
在本申请的一个实施例中,步骤S3202中将测试代码对应的可执行文件下发至目标节点的过程,具体包括:对测试代码进行编译,生成测试代码对应的可执行文件。具体的,通过激活用于修改区块链网络中的节点信息的代码,生成中间文件;基于中间文件对测试代码进行编译,生成二进制的可执行文件。之后,将测试代码对应的可执行文件下发至目标节点中,以替换目标节点中存储的区块链网络的源代码所对应的可执行文件。
具体的,在基于中间文件对测试代码进行编译,生成二进制的可执行文件时,基于携带用于修改区块链网络中的节点信息的中间文件的代码,自动编译项目工程,生成二进制文件,并按照共识场景下发可执行文件到各个区块链节点。其中,所下发的区块链节点即上述提及的目标节点。
在本申请的一个实施例中,步骤将测试代码对应的可执行文件下发至目标节点中,包括如下步骤:若执行测试代码对应的可执行文件的目标节点数量为一个,则获取目标节点的机器信息;基于机器信息,将测试代码对应的可执行文件下发至目标节点。
在本申请的一个实施例中,步骤将测试代码对应的可执行文件下发至目标节点中,包括如下步骤:若执行测试代码对应的可执行文件的目标节点数量为至少两个,则获取至少两个目标节点的服务器信息;基于服务器信息,将测试代码对应的可执行文件下发至至少两个目标节点。
在本申请的一个实施例中,通过获取目标节点的信息,以基于目标节点的信息实现可执行文件的下发。具体的,对于选择单节点来执行可执行文件,则获取的是单节点的机器信息。其中,机器信息可以是该节点的IP地址、配置信息等;如果选择多节点攻击,即存在多个目标节点的情况下,则需要获取各个目标节点的IP地址信息等,并基于这些信息来配置多节点的服务信息,以基于服务器信息在多个目标节点之间运行可执行文件。
在步骤S320中,触发区块链网络中的区块链节点执行测试代码,并获取区块链节点执行测试代码后生成的运行结果。
在本申请的一个实施例中,在生成测试代码之后,触发区块链网络中的区块链节点执行该测试代码,在运行测试代码的过程中,基于测试代码中的用于修改区块链网络中节点信息的代码,生成虚拟的区块链节点,以基于这些节点以及区块链网络中的其它原有的区块链节点,运行对应的功能,得到执行测试代码后生成的运行结果。
图5为本申请实施例提供的区块链网络中攻击节点和区块链节点的示意图。
如图5所示,在区块链网络中存在正常运行的区块链节点510,如果没有身份认证机构,用户创建节点是不需要代价的,也就是说攻击者可以十分轻易地去伪造身份加入网络,例如生成攻击节点520。之后他们会试图去获取网络中大量的节点IP信息,并根据此做出一些恶意行为,例如发出大量虚假节点IP信息、误导节点间的正常信息传递以及延缓网络通信等。
本实施例中在运行测试代码中,基于测试代码中的用于修改区块链网络中的节点信息的代码会生成虚拟的区块链代码,以在区块链网络中实现虚假节点加入。在区块链网络运行时在遵循区块链网络协议的基础上,任何网络节点都可以向区块链网络发送节点加入请求消息;收到请求消息的区块链节点会立即做出响应,回复其邻居节点信息。利用这个过程,女巫攻击者就可以获取大量的区块链网络节点信息来分析区块链网络拓扑,以便更高效地对区块链网络进行攻击或破坏。
除此之外,本实施例中用于修改区块链网络中的节点信息的代码的功能还可以误导区块链网络节点的路由选择,具体的,节点间路由信息的实时交互是保证区块链网络正常运行的关键因素之一。节点只需定时地向其邻居节点宣告自己的在线情况,就能保证自己被邻居节点加入到其路由表中。恶意的女巫入侵者通过这个过程,可以入侵正常区块链节点的路由表,误导其路由选择。本实施例中用于修改区块链网络中的节点信息的代码的功能还可以进行虚假资源发布,具体的,女巫攻击者一旦入侵区块链网络节点的路由表,就可以随意发布自己的虚假资源。
本实施例中通过在测试代码中注入用于修改区块链节点信息的代码,以使得可以在运行测试代码时,基于用于修改区块链节点信息的代码生成对应的攻击操作,以此来完成该对应的测试功能。
在本申请的一个实施例中,步骤S320中触发区块链网络中的区块链节点执行测试代码,并获取区块链节点执行测试代码后生成的运行结果的过程,包括如下步骤:获取用于触发测试代码对应的可执行文件运行的触发信息;基于触发信息,触发区块链网络中的区块链节点执行测试代码对应的可执行文件,以基于区块链网络中修改后的区块链节点执行可执行文件对应的功能,生成运行结果。
在本申请的一个实施例中,通过获取触发信息的方式,来触发区块链节点执行测试代码。具体的,本实施例中可采用环境变量和代码驱动的方式触发可执行文件的执行。具体的,本实施例中可以采用修改环境变量的方式自动触发女巫攻击场景的激活。示例性的,激活指令可以为:
GO_FAILPOINTS="github.com/package/sybil_exception=return(true)"nohup./yourproject
其中,package为注入异常代码所在文件的文件夹名,sybil_exception表示注入代码的故障名,yourproject表示对应的可执行文件的名称。
进一步的,在执行可执行文件的过程中,可以将执行状态日志记录到节点指定的目录下,方便后续查询。
在本申请的一个实施例中,步骤基于触发信息,触发区块链网络中的区块链节点执行测试代码对应的可执行文件的过程,包括如下步骤:获取源代码的测试用例;基于触发信息,触发区块链网络中的节点基于测试用例执行可执行文件。
在本申请的一个实施例中,可以基于源代码的测试用例来执行可执行文件,以基于测试用例来实现区块链网络的测试过程。具体的,本实施例中的测试用例中可以包括具体的测试过程、测试步骤或者可执行文件的具体执行方式、流程等。
图6为本申请实施例提供的一种基于测试用例测试区块链网络的示意图。
如图6所示,本申请的一个实施例中,在用于修改区块链网络中的节点信息的代码为女巫攻击代码时,在步骤S610中,在区块链网络的源代码中动态注入女巫攻击代码;在步骤S620中,对注入之后的代码进行自动编译,得到可执行文件;在步骤S630中,提交下发可执行文件的区块链节点的信息;在步骤S640中,触发攻击场景,以使得在步骤S650中,基于自动化用例670,使得各个区块链链节点基于可执行文件执行对应的功能,并在发生异常时,记录异常运行日志;最后在步骤S660中,基于各区块链节点的运行情况,生成测试报告,以分析本次测试对应的攻击结果。
在步骤S330中,基于运行结果确定各区块链节点之间的共识状态。
在本申请的一个实施例中,在运行测试代码得到运行结果之后,各个区块链节点针对同一提案或者结果会有不同的状态,例如同意或者不同意;或者,某些区块链节点可能由于攻击代码的存在会发生异常等情况。因此,本实施例中,基于区块链网络中测试代码的运行结果,确定各区块链节点的状态,以及各个区块链节点之间的共识状态。
在本申请的一个实施例中,如图7所示,步骤S330中基于运行结果确定各区块链节点之间的共识状态的过程,包括步骤S3301~步骤S3303,详细说明如下:
在步骤S3301中,基于运行结果确定运行结果对应的全部节点,以及全部节点中属于区块链网络的目标区块链节点。
在本申请的一个实施例中,在运行测试代码的过程中,会基于测试代码中修改区块链网络中的节点信息的代码,修改区块链节点中的信息。其中包括:增加新的虚拟节点、篡改原有的区块链节点。因此,本实施例中在运行结束时候,基于运行结果的情况,确定运行结果中对应全部节点,并检测全部节点中,原本就属于区块链网络的真实节点,及目标区块链节点。
在步骤S3302中,基于目标区块链节点在全部节点中的占比,确定共识比例。
在本申请的一个实施例中,在确定了目标区块链节点之后,确定目标区块链节点的个数,并基于目标区块链节点的个数与全部节点的个数之间的比值,确定基于目标区块链节点在全部节点中的占比,作为共识比例。
在步骤S3303中,基于共识比例和设定阈值之间的关系,确定共识状态。
在本申请的一个实施例中,设定阈值为基于共识机制设定的。示例性的,总共4个节点构成区块链网络,如果模拟单节点中间人女巫攻击,导致A节点作恶。但是共识机制允许在4个节点构成的区块链网络中有一个容错节点,所以整个区块链服务依然正常运行,自动化用例执行正常。但是如果模拟节点A和B同时执行女巫攻击,这样就不满足共识机制,最终导致整个区块链网络不可用,自动化用例执行失败,区块链进入阻塞状态。
具体的,本实施例中基于共识机制将设定阈值作为2/3。当模拟不满足共识机制的容错节点时,比如一共4个节点,两个正常节点,生成了两个女巫攻击节点,则共识比例不满足正常节点数“大于2/3节点数”条件,达成不了共识,即当前的共识状态为共识比例小于设定阈值,则返回错误信息。
在步骤S340中,基于共识状态生成区块链网络的测试结果。
在本申请的一个实施例中,步骤S340中基于共识状态生成区块链网络的测试结果的过程,包括如下步骤:若共识状态为共识比例大于设定阈值,则生成区块链网络通过测试的测试结果;若共识状态为共识比例等于设定阈值,则生成区块链网络为平衡状态的测试结果;若共识状态为共识比例大于设定阈值,则生成区块链网络未通过测试的测试结果,并展示具体的异常节点的信息或者发生故障的可能原因。
本实施例中通过自动检测区块链网络的运行状态,并通过量化计算女巫攻击对正常网络拓扑的影响程度。这种方式对源代码无侵入,自动编译和部署,可覆盖“大于2/3”、“等于2/3”、“小于2/3”等BFT共识场景,自动化程度高、扩展性强,无需开发人员介入,提高了区块链网络测试的效率。
图8为本申请实施例提供的区块链网络进行女巫攻击的测试方案的框图。
如图8所示,在区块链产品提测阶段810,将开发好的区块链产品提测到测试平台,之后测试平台分发至对应的测试设备,在审核通过之后,进入测试流程。在女巫攻击测试过程820中,在区块链产品的代码中动态注入女巫攻击代码,对代码进行编译和下发,以触发女巫攻击的共识机制场景运行,同时触发自动化用例的执行。在执行之后的发布阶段830中,基于运行结果分析攻击结果和执行日志,平台总结上一步的分析结果,生成相应的测试报告,方便测试人员定位问题。在测试通过之后,发布区块链产品上线。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的区块链网络的测试方法。可以理解的是,所述装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。对于本申请装置实施例中未披露的细节,请参照本申请上述的区块链网络的测试方法的实施例。
图9示出了根据本申请的一个实施例的区块链网络的测试装置的框图。
参照图9所示,根据本申请的一个实施例的区块链网络的测试装置900,包括:插入单元910,用于在待测试的区块链网络的源代码中插入用于修改所述区块链网络中的节点信息的代码,得到测试代码;运行单元920,用于触发所述区块链网络中的区块链节点执行所述测试代码,并获取所述区块链节点执行所述测试代码后生成的运行结果;共识单元930,用于基于所述运行结果确定各所述区块链节点之间的共识状态;测试单元940,用于基于所述共识状态生成所述区块链网络的测试结果。
在本申请的一些实施例中,基于前述方案,所述插入单元910包括:接口检测单元,用于检测所述区块链网络的源代码中的用于获取区块链节点地址的接口,将检测到的接口位置作为所述源代码的插桩点;代码插入单元,用于在所述源代码的插桩点处注入用于修改所述区块链网络中的节点信息的代码,得到所述测试代码。
在本申请的一些实施例中,基于前述方案,所述区块链网络的测试装置900还包括:选择单元,用于在所述区块链网络的区块链节点中,选择执行所述测试代码的目标节点;下发单元,用于将所述测试代码对应的可执行文件下发至所述目标节点,以触发所述目标节点执行所述测试代码。
在本申请的一些实施例中,基于前述方案,所述选择单元配置为:基于区块链网络的共识策略确定需要选择的目标节点的数量;根据所述目标节点的数量,从所述区块链网络的节点中选取相应数量的区块链节点作为所述目标节点。
在本申请的一些实施例中,基于前述方案,所述下发单元包括:代码编译单元,用于对所述测试代码进行编译,生成所述测试代码对应的可执行文件;文件下发单元,用于将所述测试代码对应的可执行文件下发至所述目标节点中,以替换所述目标节点中存储的所述区块链网络的源代码所对应的可执行文件。
在本申请的一些实施例中,基于前述方案,所述代码编译单元配置为:激活所述用于修改所述区块链网络中的节点信息的代码,生成中间文件;基于所述中间文件对所述测试代码进行编译,生成二进制的可执行文件。
在本申请的一些实施例中,基于前述方案,所述文件下发单元配置为:若执行所述测试代码对应的可执行文件的目标节点数量为一个,则获取所述目标节点的机器信息;基于所述机器信息,将所述测试代码对应的可执行文件下发至所述目标节点。
在本申请的一些实施例中,基于前述方案,所述文件下发单元配置为:若执行所述测试代码对应的可执行文件的目标节点数量为至少两个,则获取所述至少两个目标节点的服务器信息;基于所述服务器信息,将所述测试代码对应的可执行文件下发至所述至少两个目标节点。
在本申请的一些实施例中,基于前述方案,所述运行单元920包括:信息获取单元,用于获取用于触发所述测试代码对应的可执行文件运行的触发信息;触发运行单元,用于基于所述触发信息,触发所述区块链网络中的区块链节点执行所述测试代码对应的可执行文件,以基于所述区块链网络中修改后的区块链节点执行所述可执行文件对应的功能,生成所述运行结果。
在本申请的一些实施例中,基于前述方案,所述触发运行单元配置为:获取所述源代码的测试用例;基于所述触发信息,触发所述区块链网络中的节点基于所述测试用例执行所述可执行文件。
在本申请的一些实施例中,基于前述方案,所述共识单元930包括:节点确定单元,用于基于所述运行结果确定所述运行结果对应的全部节点,以及所述全部节点中属于所述区块链网络的目标区块链节点;比例确定单元,用于基于所述目标区块链节点在所述全部节点中的占比,确定共识比例;状态确定单元,用于基于所述共识比例和设定阈值之间的关系,确定所述共识状态。
在本申请的一些实施例中,基于前述方案,所述测试单元910包括:结果生成单元,用于若所述共识状态为所述共识比例大于设定阈值,则生成所述区块链网络通过测试的测试结果。
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图10示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理单元(Central Processing Unit,CPU)1001,其可以根据存储在只读存储器(Read-Only Memory,ROM)1002中的程序或者从储存部分1008加载到随机访问存储器(RandomAccess Memory,RAM)1003中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1003中,还存储有系统操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(Input/Output,I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1007;包括硬盘等的储存部分1008;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入储存部分1008。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (12)
1.一种区块链网络的测试方法,其特征在于,包括:
检测所述区块链网络的源代码中的用于获取区块链节点地址的接口,将检测到的接口位置作为所述源代码的插桩点;
在所述源代码的插桩点处注入用于修改所述区块链网络中的节点信息的代码,得到测试代码,其中,所述用于修改所述区块链网络中的节点信息的代码用于生成虚拟的区块链代码以在所述区块链网络中加入虚假节点、误导正常区块链节点的路由选择以及发布虚假资源;
在所述区块链网络的区块链节点中,选择执行所述测试代码的目标节点;
对所述测试代码进行编译,生成所述测试代码对应的可执行文件;
将所述测试代码对应的可执行文件下发至所述目标节点中,以替换所述目标节点中存储的所述区块链网络的源代码所对应的可执行文件;
通过修改环境变量触发所述区块链网络中的区块链节点执行所述测试代码,并获取所述区块链节点执行所述测试代码后生成的运行结果;
基于所述运行结果确定各所述区块链节点之间的共识状态;
基于所述共识状态生成所述区块链网络的测试结果。
2.根据权利要求1所述的方法,其特征在于,在所述区块链网络的区块链节点中,选择执行所述测试代码的目标节点,包括:
基于区块链网络的共识策略确定需要选择的目标节点的数量;
根据所述目标节点的数量,从所述区块链网络的节点中选取相应数量的区块链节点作为所述目标节点。
3.根据权利要求1所述的方法,其特征在于,对所述测试代码进行编译,生成所述测试代码对应的可执行文件,包括:
激活所述用于修改所述区块链网络中的节点信息的代码,生成中间文件;
基于所述中间文件对所述测试代码进行编译,生成二进制的可执行文件。
4.根据权利要求1所述的方法,其特征在于,将所述测试代码对应的可执行文件下发至所述目标节点中,包括:
若执行所述测试代码对应的可执行文件的目标节点数量为一个,则获取所述目标节点的机器信息;
基于所述机器信息,将所述测试代码对应的可执行文件下发至所述目标节点。
5.根据权利要求1所述的方法,其特征在于,将所述测试代码对应的可执行文件下发至所述目标节点中,包括:
若执行所述测试代码对应的可执行文件的目标节点数量为至少两个,则获取所述至少两个目标节点的服务器信息;
基于所述服务器信息,将所述测试代码对应的可执行文件下发至所述至少两个目标节点。
6.根据权利要求1所述的方法,其特征在于,触发所述区块链网络中的区块链节点执行所述测试代码,并获取所述区块链节点执行所述测试代码后生成的运行结果,包括:
获取用于触发所述测试代码对应的可执行文件运行的触发信息;
基于所述触发信息,触发所述区块链网络中的区块链节点执行所述测试代码对应的可执行文件,以基于所述区块链网络中修改后的区块链节点执行所述可执行文件对应的功能,生成所述运行结果。
7.根据权利要求6所述的方法,其特征在于,基于所述触发信息,触发所述区块链网络中的区块链节点执行所述测试代码对应的可执行文件,包括:
获取所述源代码的测试用例;
基于所述触发信息,触发所述区块链网络中的节点基于所述测试用例执行所述可执行文件。
8.根据权利要求1所述的方法,其特征在于,基于所述运行结果确定各所述区块链节点之间的共识状态,包括:
基于所述运行结果确定所述运行结果对应的全部节点,以及所述全部节点中属于所述区块链网络的目标区块链节点;
基于所述目标区块链节点在所述全部节点中的占比,确定共识比例;
基于所述共识比例和设定阈值之间的关系,确定所述共识状态。
9.根据权利要求8所述的方法,其特征在于,基于所述共识状态生成所述区块链网络的测试结果,包括:
若所述共识状态为所述共识比例大于设定阈值,则生成所述区块链网络通过测试的测试结果。
10.一种区块链网络的测试装置,其特征在于,包括:
接口检测单元,用于检测所述区块链网络的源代码中的用于获取区块链节点地址的接口,将检测到的接口位置作为所述源代码的插桩点;
代码插入单元,用于在所述源代码的插桩点处注入用于修改所述区块链网络中的节点信息的代码,得到测试代码,其中,所述用于修改所述区块链网络中的节点信息的代码用于生成虚拟的区块链代码以在所述区块链网络中加入虚假节点、误导正常区块链节点的路由选择以及发布虚假资源;
选择单元,用于在所述区块链网络的区块链节点中,选择执行所述测试代码的目标节点;
代码编译单元,用于对所述测试代码进行编译,生成所述测试代码对应的可执行文件;
文件下发单元,用于将所述测试代码对应的可执行文件下发至所述目标节点中,以替换所述目标节点中存储的所述区块链网络的源代码所对应的可执行文件;
运行单元,用于触发所述区块链网络中的区块链节点执行所述测试代码,并获取所述区块链节点执行所述测试代码后生成的运行结果;
共识单元,用于基于所述运行结果确定各所述区块链节点之间的共识状态;
测试单元,用于基于所述共识状态生成所述区块链网络的测试结果。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的区块链网络的测试方法。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至9中任一项所述的区块链网络的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010797517.3A CN111949531B (zh) | 2020-08-10 | 2020-08-10 | 区块链网络的测试方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010797517.3A CN111949531B (zh) | 2020-08-10 | 2020-08-10 | 区块链网络的测试方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949531A CN111949531A (zh) | 2020-11-17 |
CN111949531B true CN111949531B (zh) | 2022-02-25 |
Family
ID=73333163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010797517.3A Active CN111949531B (zh) | 2020-08-10 | 2020-08-10 | 区块链网络的测试方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949531B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559343B (zh) * | 2020-12-11 | 2022-11-15 | 腾讯科技(深圳)有限公司 | 测试路径生成方法及相关设备 |
CN112818055B (zh) * | 2020-12-29 | 2023-05-19 | 杭州趣链科技有限公司 | 区块链的性能优化方法、装置及设备 |
CN114422409A (zh) * | 2021-12-17 | 2022-04-29 | 深圳壹账通智能科技有限公司 | 区块链网络的测试方法、装置、设备及存储介质 |
CN117435507A (zh) * | 2023-12-20 | 2024-01-23 | 天津华来科技股份有限公司 | 自适应通用退避测试方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474822A (zh) * | 2019-08-08 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种区块链节点检测方法、装置、设备及介质 |
CN110868337A (zh) * | 2019-11-15 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 容错共识机制测试方法、装置、存储介质和计算机设备 |
CN111324591A (zh) * | 2020-01-20 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 区块链分叉的检测方法及相关装置 |
CN111327490A (zh) * | 2020-01-20 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 区块链的拜占庭容错检测方法及相关装置 |
CN111459824A (zh) * | 2020-04-01 | 2020-07-28 | 腾讯科技(深圳)有限公司 | 并发服务的测试用例处理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11729186B2 (en) * | 2018-10-04 | 2023-08-15 | Research Foundation Of The City University Of New York | Blockchain architecture for computer security applications |
CN110162470B (zh) * | 2019-04-28 | 2023-08-18 | 创新先进技术有限公司 | 一种区块链的测试方法和装置 |
-
2020
- 2020-08-10 CN CN202010797517.3A patent/CN111949531B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474822A (zh) * | 2019-08-08 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种区块链节点检测方法、装置、设备及介质 |
CN110868337A (zh) * | 2019-11-15 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 容错共识机制测试方法、装置、存储介质和计算机设备 |
CN111324591A (zh) * | 2020-01-20 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 区块链分叉的检测方法及相关装置 |
CN111327490A (zh) * | 2020-01-20 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 区块链的拜占庭容错检测方法及相关装置 |
CN111459824A (zh) * | 2020-04-01 | 2020-07-28 | 腾讯科技(深圳)有限公司 | 并发服务的测试用例处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于区块链智能合约的物联网恶意节点检测和定位;黄豪杰等;《物联网学报》;20200608;第4卷(第02期);第58-67页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111949531A (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111949531B (zh) | 区块链网络的测试方法、装置、介质及电子设备 | |
CN112073269B (zh) | 区块链网络测试方法、装置、服务器及存储介质 | |
CN108932189B (zh) | 保存服务器日志的方法和装置 | |
CN112506747B (zh) | 一种业务进程监控方法、装置、电子设备及存储介质 | |
CN116155771A (zh) | 网络异常测试方法、装置、设备、存储介质和程序 | |
CN110400217B (zh) | 智能合约的规则变更处理方法及装置 | |
CN111639309B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN109995523B (zh) | 激活码管理方法及装置、激活码生成方法及装置 | |
CN112613877B (zh) | 应用于区块链网络的智能合约触发方法、装置及相关设备 | |
CN111782551B (zh) | 针对区块链项目的测试方法、装置及计算机设备 | |
CN112527912A (zh) | 基于区块链网络的数据处理方法、装置及计算机设备 | |
CN111090581A (zh) | 智能合约测试方法、装置、计算机设备和存储介质 | |
CN112714158A (zh) | 事务处理方法、中继网络、跨链网关、系统、介质和设备 | |
Merayo et al. | A tool supported methodology to passively test asynchronous systems with multiple users | |
CN112671605A (zh) | 一种测试方法、装置及电子设备 | |
Garcia Bringas et al. | BlockChain platforms in financial services: current perspective | |
CN111679978A (zh) | 一种程序测试方法、程序测试装置、电子设备及存储介质 | |
CN111917729B (zh) | 动态注入测试方法及装置、相关设备 | |
Gerrits et al. | A Blockchain cloud architecture deployment for an industrial IoT use case | |
CN113129002A (zh) | 一种数据处理方法以及设备 | |
TW201629768A (zh) | 基礎架構規則產生技術 | |
Xing et al. | Talaria: A framework for simulation of permissioned blockchains for logistics and beyond | |
Quamara et al. | An In-depth Security and Performance Investigation in Hyperledger Fabric-configured Distributed Computing Systems | |
Jo et al. | Toward trustworthy blockchain-as-a-service with auditing | |
CN117251354A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |