CN108170590B - 一种区块链系统的测试系统和方法 - Google Patents
一种区块链系统的测试系统和方法 Download PDFInfo
- Publication number
- CN108170590B CN108170590B CN201711320172.7A CN201711320172A CN108170590B CN 108170590 B CN108170590 B CN 108170590B CN 201711320172 A CN201711320172 A CN 201711320172A CN 108170590 B CN108170590 B CN 108170590B
- Authority
- CN
- China
- Prior art keywords
- container
- block chain
- network
- logic
- task
- 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
- G06F11/3672—Test management
-
- 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
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种区块链系统的测试系统和方法,引入容器技术,每个区块链容器可以运行功能完整的区块链应用程序,每台物理计算机可以被配置并运行若干个区块链容器,容器间网络拓扑可根据测试方案设置,为测试结果真实性提供有效保障,有效降低成本并简化配置过程。
Description
技术领域
本发明涉及计算机软件测试领域。
背景技术
区块链是一种分布式系统,区块链应用程序部署在不同计算机上,应用程序间遵循相同的应用层协议。计算机间组成分布式网络,通过网络通信保持数据一致性,共同承担系统响应任务。
对区块链系统及程序,现有两种测试的技术方案:
(1)实体机测试的技术方案
使用多台通过网络连接的物理计算机来模拟分布式网络环境,每台计算机运行一份区块链应用程序的拷贝,从而该模拟网络中的每个区块链节点一一对应着真实存在的物理计算机。这种实体机测试的技术方案,测试成本高,而且部署难度大,这是因为物理计算机的数量,需要与分布式网络的规模一致,并且每台物理计算机都需要进行初始化配置。
(2)模拟器程序测试的技术方案
将区块链协议的程序行为抽象成事件模型,编写程序模拟计算机节点的事件-响应逻辑。事件模拟器进行多次迭代,模拟分布式网络中异步发生的事件。这种模拟器程序测试的技术方案,最大的缺陷就是缺乏真实性,这是因为模拟器的技术方案是对从分布式程序抽象出的数学模型进行测试,因此只能测试该数学模型在什么样的参数下能得到符合预期的输出,其无法测试分布式应用程序功能上的完备性,也无法全面考虑分布式应用程序所有可变参数和复杂网络环境的影响。
综上所述,第1种实体机测试的技术方案,虽然测试结果真实,但成本高昂且部署繁琐;第2种模拟器程序测试的技术方案,虽然测试成本低,但无法完全复原区块链应用程序的软件行为。
发明内容
考虑到上述情况,本申请提供一种区块链系统的测试系统和方法。
根据第一方面,一种实施例中提供一种区块链系统的测试系统,该测试系统运行于一台或多台物理计算机上,所述测试系统包括:
任务总控模块,用于提供区块链协议参数、节点间虚拟网络拓扑参数、区块链系统测试的策略以及资源分配的方案;
任务分控模块,运行于一台物理计算机中,用于根据任务总控模块提供的参数、策略以及方案,控制该台物理计算机中各网络设备容器、各区块链容器的运行,其中每一台物理计算机被配置一个所述任务分控模块;
一个或多个网络设备容器,用于实现虚拟网络设备的运行;
一个或多个区块链容器,用于实现区块链节点的运行。
根据第二方面,一种实施例中提供一种区块链系统的测试方法,包括:
当使用多台物理计算机时,设置集群内局域网络路由,当使用一台物理计算机时,则省略设置集群内局域网络路由的步骤;
建立镜像仓库,镜像仓库存储构建的区块链应用程序镜像以及网络设备镜像;
配置任务总控逻辑,至少包括区块链协议参数、节点间虚拟网络拓扑参数、区块链系统测试的策略以及资源分配的方案;
将任务总控逻辑下发至各物理计算机;
根据下发的任务总控逻辑、区块链应用程序镜像以及网络设备镜像,初始化并控制各物理计算机的网络设备容器和区块链容器;
区块链容器输出日志到物理计算机的数据卷,以供读取和反馈;
根据下发的任务总控逻辑切换区块链容器和网络设备容器的运行逻辑;
观测区块链系统运行状态。
根据第三方面,一种实施例提供一种计算机可读存储介质,包括程序,所述程序能够被处理器执行以实现上述的测试方法。
依据上述实施例的区块链系统的测试系统、方法和计算机可读存储介质,通过引入区块链容器,每个区块链容器可以运行功能完整的区块链应用程序,每台物理计算机可以被配置并运行若干个完整的区块链容器,容器间网络拓扑可根据测试方案设置,为测试结果真实性提供有效保障,有效降低成本并简化配置过程。例如,对于单核CPU的物理计算机上可以进行五十个节点的区块链系统测试,在四核CPU的物理计算机上可以进行数百节点规模的测试,在集群上则可以进行数千节点规模的测试,这相比实体机测试的技术方案可以大幅节约所需的物理计算机的数量,同时由于测试时每个区块链容器内均运行功能完整的区块链应用程序,容器间网络拓扑可根据测试方案设置,这保证了测试结果的可靠和真实性;最后本发明部署起来也非常容易。
附图说明
图1为一种实施例的区块链系统的测试系统的结构示意图;
图2为另一种实施例的区块链系统的测试系统的结构示意图;
图3为一种实施例的区块链系统的测试系统中任务分控模块的结构示意图;
图4为又一种实施例的区块链系统的测试系统的结构示意图;
图5为一种实施例的区块链系统的测试系统中网络设备容器的结构示意图;
图6为一种实施例的区块链系统的测试系统中区块链容器的结构示意图;
图7(a)为一实例的区块链系统的测试系统被配置和运行在一台物理计算机上的示意图,图7(b)为一实例的区块链系统的测试系统被配置和运行在多台物理计算机上的示意图;
图8为一种实施例的区块链系统的测试方法的流程图;
图9为另一种实施例的区块链系统的测试方法的流程图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
发明人考虑引入容器(Container)技术,以实现在单一物理计算机上模拟数许多(例如数百个)的区块链应用节点,在小规模集群(例如十台物理计算机)上实现模拟大量(例如数千个)区块链节点。
本发明一实施例公开了一种区块链系统的测试系统(以下简称测试系统),可以根据所需的规则,将该测试系统运行于一台或多台物理计算机上。请参照图1,一实施例中的测试系统,包括任务总控模块10、任务分控模块20、若干个(一个或多个)网络设备容器30和若干个(一个或多个)区块链容器40。在一实施例中,请参照图2,该测试系统还可以包括镜像仓库50,镜像仓库50用于存储网络设备镜像51以及区块链镜像53;其中网络设备镜像51用于启动网络设备容器30,区块链镜像53用于启动区块链容器40;例如,开发者将镜像制作完毕后上传至镜像仓库50,物理计算机从镜像仓库50下载相应的镜像。
任务总控模块10用于控制测试任务整体进展。例如,在一实施例中,任务总控模块10用于提供区块链协议参数、节点间虚拟网络拓扑参数、区块链系统测试的策略以及资源分配的方案等。任务总控模块10可以被配置并运行于物理计算机上,若有多台物理计算机,任务总控模块10可以只需要一个,可以独立存在或被配置和运行于其中任意一台物理计算机上。在一实施例中,区块链系统测试的策略至少包括参与节点的运行逻辑和任务结束条件中的一者。在一实施例中,资源分配的方案至少包括节点间的计算资源的分配、网络带宽资源的分配、磁盘IO资源的分配中的一者。
任务分控模块20运行于一台物理计算机中,对于多台物理计算机来讲,每一台物理计算机可以被配置一个任务分控模块20。任务分控模块20用于根据任务总控模块10提供的参数、策略以及方案,控制该台物理计算机中各网络设备容器30、各区块链容器40的运行。请参照图3,在一实施例中,任务分控模块20包括总控任务解析子模块21、日志统计子模块22、网络设备容器控制子模块23和区块链容器控制子模块24。
总控任务解析子模块21用于获取任务总控模块10提供的参数、策略和方案,并根据任务总控模块10提供的参数,向网络设备容器30和区块链容器40下达指令,使网络设备容器30和区块链容器40形成预期的网络拓扑。
日志统计子模块22用于观测区块链系统的运行状态,并反馈至任务总控模块10。
网络设备容器控制子模块23用于根据获取的策略和方案控制网络设备容器30的运行逻辑以及调整网络设备容器30之间的资源分配。
区块链容器控制子模块24用于根据获取的策略和方案控制区块链容器40的运行逻辑以及调整区块链容器40之间的资源分配。
在一实施例中,请参照图4,测试系统还可以包括容器执行引擎60,容器执行引擎60运行于一台物理计算机中,对于多台物理计算机来讲,每一台物理计算机可以被配置一个容器执行引擎60。容器执行引擎60用于根据任务分控模块20的指示,对其运行的物理计算机中对网络设备容器30和区块链容器40进行初始化,以及限制网络设备容器30和区块链容器40的资源。例如,容器执行引擎60根据总控任务解析子模块21获取的资源分配的方案,限制网络设备容器30和区块链容器40的资源。
网络设备容器30可以有若干个,每一个都用于实现一个虚拟网络设备的运行。在一实施例中,请参照图5,网络设备容器30可以包括网络设备核心程序31、网络配置子模块32、第一运行逻辑控制子模块33和第一远程调用子模块34。
网络设备核心程序31用于实现虚拟网络设备的基本功能,例如,网络设备的基本功能包括但不限于消息路由、消息转发、消息缓存,以及对网络带宽、网络延迟和网络丢包的模拟等功能。
网络配置子模块32用于定义网络设备容器30的配置信息,该配置信息至少包括网络拓扑、网络带宽、网络延迟、网络丢包和协议栈中的一者。
第一运行逻辑控制子模块33用于切换网络设备容器30的网络运行逻辑,上述网络运行逻辑至少包括网络设备正常运行的逻辑、网络设备临时宕机的逻辑和网络设备存在恶意行为的逻辑中的一者。通过切换网络设备容器30的网络运行逻辑,可以模拟真实网络下的复杂状况。
第一远程调用子模块34用于根据任务分控模块20下达的指令,控制网络配置子模块32的配置信息和第一运行逻辑控制子模块33的切换。例如,第一远程调用子模块34根据网络设备容器控制子模块23的指令,控制网络配置子模块32的配置信息和第一运行逻辑控制子模块33的切换。
区块链容器40可以有若干个,每一个用于实现一个区块链节点的运行。在一实施例中,请参照图6,区块链容器40可以包括区块链系统核心程序41、第二运行逻辑控制子模块42、第二远程调用子模块43和日志输出子模块44。
区块链系统核心程序41用于实现区块链系统的基本功能,例如,区块链系统的基本功能包括但不限于事务提交、事务查询、事务记录、节点间消息传递、参与区块生成竞赛等功能。
第二运行逻辑控制子模块42用于切换区块链容器40的节点运行逻辑,上述节点运行逻辑至少包括区块链节点正常运行的逻辑、区块链节点临时宕机的逻辑和区块链节点存在恶意行为的逻辑中的一者。通过切换区块链容器40的节点运行逻辑,以及分布式网络中不同节点运行逻辑的分布——例如正常节点、宕机节点、恶意节点的数量,可以测试分布式系统在复杂场景下的可靠性、可用性以及性能指标。
第二远程调用子模块43用于根据任务分控模块20下达的指令,控制第二运行逻辑控制子模块42的切换。例如,第二远程调用子模块43根据区块链容器控制子模块24的指令,控制第二运行逻辑控制子模块42的切换。
日志输出子模块44用于将区块链系统核心程序的状态日志输出。在一实施例中,日志输出子模块44将状态日志输出到其运行的物理计算机上的数据卷,以供该台物理计算机上的任务分控模块20调用和分析。例如,日志输出子模块将状态日志输出到物理计算机上的数据卷,日志统计子模块22调用并分析数据卷上存储的状态日志。
综上所述,请参照图7(a)和(b),对于总共一台物理计算机来讲,该台物理计算机可以被配置并运行一个任务总控模块10、一个镜像仓库50、一个任务分控模块20、一个容器执行引擎60、若干个网络设备容器30、若干个区块链容器40。对于多台物理计算机来讲,总共可以只需要一个任务总控模块10、一个镜像仓库50、若干个任务分控模块20、若干个容器执行引擎60、若干个网络设备容器30、若干个区块链容器40,其中每台物理计算机上被配置并运行一个任务分控模块20、一个容器执行引擎60、一定数量的网络设备容器30以及一定数量的区块链容器40,而任务总控模块10和镜像仓库50可以被配置并运行在这其中任意一台的物理计算机上,或者,任务总控模块10和镜像仓库50被配置在其他一台或两台物理计算机上;其中这多台物理计算机可以通过局域网相互通信。
请参照图8,本发明还公开了一种区块链系统的测试方法(以下简称测试方法),其包括步骤S01~S15。
步骤S01:当使用多台物理计算机时,设置集群内局域网络路由,当使用一台物理计算机时,则省略设置集群内局域网络路由的步骤。
步骤S03:建立镜像仓库,镜像仓库存储构建的区块链应用程序镜像以及网络设备镜像。
步骤S05:配置任务总控逻辑,至少包括区块链协议参数、节点间虚拟网络拓扑参数、区块链系统测试的策略以及资源分配的方案。
步骤S07:将任务总控逻辑下发至各物理计算机。
步骤S09:根据下发的任务总控逻辑、区块链应用程序镜像以及网络设备镜像,初始化并控制各物理计算机的网络设备容器和区块链容器。
步骤S11:区块链容器输出日志到物理计算机的数据卷。在一实施例中,步骤S11数据卷中的日志被用于读取和反馈,例如被任务分控模块20读取并反馈至任务总控模块10步骤S13:根据下发的任务总控逻辑切换区块链容器和网络设备容器的运行逻辑。
步骤S15:观测区块链系统运行状态。
在一实施例中,请参照图9,测试方法还包括步骤S12:在切换区块链容器和网络设备容器的运行逻辑之前,先等待区块链容器形成稳定的分布式网络,当区块链容器形成稳定的分布式网络后,再根据下发的任务总控逻辑切换区块链容器和网络设备容器的运行逻辑。
测试方法可以进一步对照上述的测试系统,进行相关的步骤,在此不再赘述。
为了说明本发明的效果,本发明以版本号为0.3.24的比特币源代码为对象,简述一个测试实例。
本测试实例仅使用一台物理计算机,因此省略设置集群内局域网络路由的过程。
建立镜像仓库,镜像仓库存储构建的比特币应用程序镜像以及网桥设备镜像,其中比特币应用程序的运行时参数将在程序启动时配置。
配置任务总控逻辑,包括比特币协议参数、节点间虚拟网络拓扑、区块链系统测试的策略以及资源分配的方案。例如,本测试实例配置了比特币协议参数中的区块生成间隔,将区块生成的平均时间指定为1分钟;节点间虚拟网络拓扑设置为网桥模式,所有比特币容器连接到同一个网桥设备容器上;本测试实例的区块链系统测试策略包含三方面,一是判断分布式网络已经稳定的策略,当所有节点间建立了连接,且对于300个区块的观察窗口,连续两次区块生成的平均时间间隔在预设阀值内时,认为分布式网络已经稳定,二是判断测试终止的条件,在分布式网络稳定的前提下,连续生成300个区块后,测试终止,三是比特币容器和网桥容器的运行逻辑,此处仅指定正常运行逻辑,比特币容器仅参与区块生成竞赛,网桥容器进行正常的消息转发;本测试实例的资源分配方案中,所有比特币容器均分CPU计算资源。
将任务总控逻辑下发,例如下发至任务分控模块20。
根据下发的任务总控逻辑、比特币应用程序镜像以及网桥设备镜像,初始化并控制物理计算机的比特币容器和网桥设备容器。
比特币容器输出日志到物理计算机的数据卷,以供读取和反馈,例如任务分控模块20读取数据卷,并反馈至任务总控模块10。
等待比特币容器间形成稳定的分布式网络。
本测试实例中,对比特币容器和网络设备容器仅制定了正常运行逻辑,因此省略运行逻辑切换的步骤。
观测比特币系统运行状态,统计性能指标。
本发明是基于容器技术而进行的系统测试技术的创新。容器技术是一种轻量级的虚拟化技术,可以在单一物理计算机上提供多个隔离的操作系统环境的操作系统级虚拟技术,每个隔离的系统运行环境称作一个“容器”;每个容器相当于一个独立的操作系统,容器内可以运行真实的分布式应用程序;容器间的计算、存储、网络资源相互隔离,与传统虚拟机的虚拟化技术不同,容器共享操作系统内核,因此容器技术的开销低,在单一物理计算机上可以虚拟运行多个容器。以上的测试系统和测试方法,通过引入容器技术,每一个区块链容器40可以运行功能完整的区块链应用程序,从而使得一台物理计就可以被配置并运行若干个完整的区块链应用程序,容器间网络拓扑可根据测试方案设置,为测试结果真实性提供有效保障,有效降低成本并简化配置过程。例如,对于单核CPU的物理计算机上可以进行五十个节点的区块链系统测试,在四核CPU的物理计算机上可以进行数百节点规模的测试,在集群上则可以进行数千节点规模的测试,这相比实体机测试的技术方案可以大幅节约所需的物理计算机的数量,同时由于测试时每个区块链容器内均运行功能完整的区块链应用程序,容器间网络拓扑可根据测试方案设置,这保证了测试结果的可靠和真实性;最后本发明部署起来也非常容易。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (7)
1.一种区块链系统的测试系统,其特征在于,该测试系统运行于一台或多台物理计算机上,所述测试系统包括:
任务总控模块,用于提供区块链协议参数、节点间虚拟网络拓扑参数、区块链系统测试的策略以及资源分配的方案;
若干个网络设备容器,用于实现虚拟网络设备的运行;所述网络设备容器包括:网络设备核心程序、网络配置子模块、第一运行逻辑控制子模块和第一远程调用子模块;所述网络设备核心程序用于实现虚拟网络设备的基本功能;所述网络配置子模块用于定义网络设备容器的配置信息,所述配置信息至少包括网络拓扑、网络带宽、网络延迟、网络丢包和协议栈中的一者;所述第一运行逻辑控制子模块用于切换网络设备容器的网络运行逻辑,所述网络运行逻辑至少包括网络设备正常运行的逻辑、网络设备临时宕机的逻辑和网络设备存在恶意行为的逻辑中的一者;所述第一远程调用子模块用于根据任务分控模块下达的指令,控制网络配置子模块的配置信息和第一运行逻辑控制子模块的切换;
若干个区块链容器,用于实现区块链节点的运行;所述区块链容器包括:区块链系统核心程序、第二运行逻辑控制子模块、第二远程调用子模块和日志输出子模块;所述区块链系统核心程序用于实现区块链系统的基本功能;所述第二运行逻辑控制子模块用于切换区块链容器的节点运行逻辑,所述节点运行逻辑至少包括区块链节点正常运行的逻辑、区块链节点临时宕机的逻辑和区块链节点存在恶意行为的逻辑中的一者;所述第二远程调用子模块用于根据任务分控模块下达的指令,控制第二运行逻辑控制子模块的切换;所述日志输出子模块用于将区块链系统核心程序的状态日志输出;所述日志输出子模块将状态日志输出到物理计算机上的数据卷,以供所述任务分控模块调用和分析;
任务分控模块,运行于一台物理计算机中,用于根据任务总控模块提供的参数、策略以及方案,控制该台物理计算机中各网络设备容器、各区块链容器的运行,其中每一台物理计算机被配置一个所述任务分控模块;所述任务分控模块包括:总控任务解析子模块、日志统计子模块、网络设备容器控制子模块和区块链容器控制子模块;所述总控任务解析子模块用于获取任务总控模块提供的参数、策略和方案,并根据任务总控模块提供的参数,向网络设备容器和区块链容器下达指令,使网络设备容器和区块链容器形成预期的网络拓扑;所述日志统计子模块用于观测区块链系统的运行状态,并反馈至所述任务总控模块;所述网络设备容器控制子模块用于根据获取的策略和方案控制网络设备容器的运行逻辑以及调整网络设备容器之间的资源分配;所述区块链容器控制子模块用于根据获取的策略和方案控制区块链容器的运行逻辑以及调整区块链容器之间的资源分配。
2.如权利要求1所述的测试系统,其特征在于,所述区块链系统测试的策略至少包括参与节点的运行逻辑和任务结束条件中的一者;所述资源分配的方案至少包括节点间的计算资源的分配、网络带宽资源的分配、磁盘IO资源的分配中的一者。
3.如权利要求1所述的测试系统,其特征在于,还包括容器执行引擎,用于根据任务分控模块的指示,在物理计算机中对网络设备容器和区块链容器进行初始化,以及限制网络设备容器和区块链容器的资源。
4.如权利要求1所述的测试系统,其特征在于,还包括镜像仓库,用于存储区块链镜像以及网络设备镜像;其中所述区块链镜像用于启动所述区块链容器,所述网络设备镜像用于启动所述网络设备容器。
5.一种区块链系统的测试方法,其特征在于,包括:
当使用多台物理计算机时,设置集群内局域网络路由,当使用一台物理计算机时,则省略设置集群内局域网络路由的步骤;
建立镜像仓库,镜像仓库存储构建的区块链应用程序镜像以及网络设备镜像;
配置任务总控逻辑,至少包括区块链协议参数、节点间虚拟网络拓扑参数、区块链系统测试的策略以及资源分配的方案;
将任务总控逻辑下发至各物理计算机;
根据下发的任务总控逻辑、区块链应用程序镜像以及网络设备镜像,初始化并控制各物理计算机的网络设备容器和区块链容器;所述网络设备容器包括:网络设备核心程序、网络配置子模块、第一运行逻辑控制子模块和第一远程调用子模块;所述网络设备核心程序用于实现虚拟网络设备的基本功能;所述网络配置子模块用于定义网络设备容器的配置信息,所述配置信息至少包括网络拓扑、网络带宽、网络延迟、网络丢包和协议栈中的一者;所述第一运行逻辑控制子模块用于切换网络设备容器的网络运行逻辑,所述网络运行逻辑至少包括网络设备正常运行的逻辑、网络设备临时宕机的逻辑和网络设备存在恶意行为的逻辑中的一者;所述第一远程调用子模块用于根据任务分控模块下达的指令,控制网络配置子模块的配置信息和第一运行逻辑控制子模块的切换;所述区块链容器包括:区块链系统核心程序、第二运行逻辑控制子模块、第二远程调用子模块和日志输出子模块;所述区块链系统核心程序用于实现区块链系统的基本功能;所述第二运行逻辑控制子模块用于切换区块链容器的节点运行逻辑,所述节点运行逻辑至少包括区块链节点正常运行的逻辑、区块链节点临时宕机的逻辑和区块链节点存在恶意行为的逻辑中的一者;所述第二远程调用子模块,用于根据任务分控模块下达的指令,控制第二运行逻辑控制子模块的切换;所述日志输出子模块,用于将区块链系统核心程序的状态日志输出;所述日志输出子模块将状态日志输出到物理计算机上的数据卷,以供所述任务分控模块调用和分析;
区块链容器输出日志到物理计算机的数据卷,以供读取和反馈;
根据下发的任务总控逻辑切换区块链容器和网络设备容器的运行逻辑;
观测区块链系统运行状态。
6.如权利要求5所述的测试方法,其特征在于,在切换区块链容器和网络设备容器的运行逻辑之前,先等待区块链容器形成稳定的分布式网络,当区块链容器形成稳定的分布式网络后,再根据下发的任务总控逻辑切换区块链容器和网络设备容器的运行逻辑。
7.一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求5或6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711320172.7A CN108170590B (zh) | 2017-12-12 | 2017-12-12 | 一种区块链系统的测试系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711320172.7A CN108170590B (zh) | 2017-12-12 | 2017-12-12 | 一种区块链系统的测试系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170590A CN108170590A (zh) | 2018-06-15 |
CN108170590B true CN108170590B (zh) | 2021-08-24 |
Family
ID=62525122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711320172.7A Active CN108170590B (zh) | 2017-12-12 | 2017-12-12 | 一种区块链系统的测试系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170590B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633198A (zh) * | 2018-06-22 | 2019-12-31 | 中链科技有限公司 | 基于区块链的软件测试数据的存储方法及系统 |
CN108769258B (zh) * | 2018-06-29 | 2021-05-07 | 上海点融信息科技有限责任公司 | 用于将区块链网络托管于区块链应用平台的方法和装置 |
CN109088792A (zh) * | 2018-08-06 | 2018-12-25 | 佛山市甜慕链客科技有限公司 | 一种区块链数据传输测试方法及装置 |
CN109194506B (zh) * | 2018-08-16 | 2021-10-15 | 北京京东尚科信息技术有限公司 | 区块链网络部署方法、平台及计算机存储介质 |
CN109408304A (zh) * | 2018-09-27 | 2019-03-01 | 深圳壹账通智能科技有限公司 | 区块链引入测试方法、装置、设备及可读存储介质 |
CN109460593B (zh) * | 2018-10-26 | 2023-04-07 | 广东科学技术职业学院 | 一种区块链虚拟仿真系统 |
EP3549022B1 (en) * | 2018-11-30 | 2021-08-18 | Advanced New Technologies Co., Ltd. | Testing platform for blockchain networks |
CN109617759A (zh) * | 2018-12-04 | 2019-04-12 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 区块链系统稳定性测试方法、装置、设备及存储介质 |
CN109639521B (zh) * | 2018-12-05 | 2020-09-29 | 京东数字科技控股有限公司 | 区块链性能的测试方法、装置、设备及存储介质 |
CN109788032B (zh) * | 2018-12-17 | 2021-12-14 | 深圳壹账通智能科技有限公司 | 镜像文件的获取方法、装置、计算机设备和存储介质 |
CN111382047B (zh) * | 2018-12-28 | 2023-07-14 | 中国电信股份有限公司 | 区块链的评测方法、装置及系统,和计算机可存储介质 |
CN109739765B (zh) * | 2018-12-29 | 2021-12-31 | 杭州复杂美科技有限公司 | 一种测试系统 |
CN110162470B (zh) * | 2019-04-28 | 2023-08-18 | 创新先进技术有限公司 | 一种区块链的测试方法和装置 |
CN111405005B (zh) * | 2020-03-06 | 2021-06-15 | 清华大学 | 区块链的运行管控方法、系统及可控网络端设备 |
CN111427555B (zh) * | 2020-03-30 | 2023-08-29 | 中科全维科技(苏州)有限公司 | 一种轻量化智能合约框架及合约开发方法 |
CN113806203A (zh) * | 2020-06-12 | 2021-12-17 | 阿里巴巴集团控股有限公司 | 区块链测试方法及装置 |
CN111787116B (zh) * | 2020-07-07 | 2021-08-20 | 上海道客网络科技有限公司 | 一种基于区块链技术的容器镜像可信认证的系统与方法 |
CN112134762B (zh) * | 2020-09-24 | 2023-08-22 | 腾讯科技(深圳)有限公司 | 针对区块链网络结构的测试方法、装置、终端和存储介质 |
CN112433939B (zh) * | 2020-11-19 | 2024-08-13 | 腾讯科技(深圳)有限公司 | 智能合约的测试方法、装置 |
CN112416801B (zh) * | 2020-12-08 | 2022-04-05 | 吉林大学 | 一种基于区块链技术的内存计算引擎的测试系统 |
CN113411232A (zh) * | 2021-06-16 | 2021-09-17 | 深圳大学 | 一种区块链仿真测试系统及应用服务器 |
CN114422409A (zh) * | 2021-12-17 | 2022-04-29 | 深圳壹账通智能科技有限公司 | 区块链网络的测试方法、装置、设备及存储介质 |
CN114385488A (zh) * | 2021-12-17 | 2022-04-22 | 杭州趣链科技有限公司 | 区块链测试方法、装置、设备及存储介质 |
CN115794658B (zh) * | 2023-01-09 | 2023-05-30 | 国网区块链科技(北京)有限公司 | 一种区块链的模糊测试方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763570A (zh) * | 2016-04-26 | 2016-07-13 | 北京交通大学 | 一种基于虚拟化技术的分布式实时网络仿真系统 |
CN106790660A (zh) * | 2017-01-18 | 2017-05-31 | 咪咕视讯科技有限公司 | 一种实现分布式存储系统的部署方法及装置 |
-
2017
- 2017-12-12 CN CN201711320172.7A patent/CN108170590B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763570A (zh) * | 2016-04-26 | 2016-07-13 | 北京交通大学 | 一种基于虚拟化技术的分布式实时网络仿真系统 |
CN106790660A (zh) * | 2017-01-18 | 2017-05-31 | 咪咕视讯科技有限公司 | 一种实现分布式存储系统的部署方法及装置 |
Non-Patent Citations (1)
Title |
---|
"区块链应用创新的加速器 - 阿里云容器服务区块链解决方案";余珊;《阿里云开发者社区》;20171030;参见第2页第3段,第4页第1段 * |
Also Published As
Publication number | Publication date |
---|---|
CN108170590A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108170590B (zh) | 一种区块链系统的测试系统和方法 | |
CN112000348B (zh) | 服务灰度发布的控制方法、装置、计算机设备 | |
CN109828831B (zh) | 一种人工智能云平台 | |
US7742476B2 (en) | Synchronous peer to peer deployed application propagation for large clusters | |
US20140047272A1 (en) | System and method for configuring a cloud computing system with a synthetic test workload | |
US11151025B1 (en) | Generating software test plans based at least in part on monitored traffic of a production application | |
CN116028292B (zh) | 用于远程直接内存访问仿真验证的仿真验证系统及方法 | |
US11894983B2 (en) | Simulation and testing of infrastructure as a service scale using a container orchestration engine | |
US12086057B2 (en) | Distributed immutable data object testing | |
CN109815119A (zh) | 一种app链接渠道的测试方法及装置 | |
Chen et al. | Using virtualization for blockchain testing | |
Berger et al. | Does my bft protocol implementation scale? | |
Kemp | Programming frameworks for distributed smartphone computing | |
CN115904852B (zh) | 一种用于数据处理器的自动化测试方法、设备及介质 | |
Arad | Programming Model and Protocols for Reconfigurable Distributed Systems | |
CN116016255A (zh) | 一种基于动态代理和智能合约的通用区块链性能评测方法 | |
US20080235369A1 (en) | Distributing replication assignments among nodes | |
Nystrøm | Network Performance in Hyperledger Fabric-Investigating the network resource consumption of transactions in a Distributed Ledger Technology system | |
Berger et al. | Simulating BFT Protocol Implementations at Scale | |
US20240275710A1 (en) | Network validation using a multi-tiered application traffic simulator | |
Emmanuel et al. | Simulation of the Portals 4 protocol, and case study on the BXI interconnect | |
US20240362158A1 (en) | Distributed immutable data object testing | |
RU2818034C1 (ru) | Способ и система запуска приложений в симулируемой среде | |
Lavacca | Scheduling Jobs on Federation of Kubernetes Clusters | |
Foytik et al. | Blockchain evaluation platform |
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 |