CN116800620B - 一种区块链仿真系统及方法 - Google Patents
一种区块链仿真系统及方法 Download PDFInfo
- Publication number
- CN116800620B CN116800620B CN202311085733.5A CN202311085733A CN116800620B CN 116800620 B CN116800620 B CN 116800620B CN 202311085733 A CN202311085733 A CN 202311085733A CN 116800620 B CN116800620 B CN 116800620B
- Authority
- CN
- China
- Prior art keywords
- block chain
- module
- simulation
- blockchain
- traffic
- 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
- 238000004088 simulation Methods 0.000 title claims abstract description 127
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000011217 control strategy Methods 0.000 claims abstract description 25
- 230000010354 integration Effects 0.000 claims abstract description 14
- 230000000007 visual effect Effects 0.000 claims abstract description 14
- 230000005540 biological transmission Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 20
- 238000012800 visualization Methods 0.000 claims description 13
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种区块链仿真系统及方法,该系统包括:核心流程控制模块、流量控制模块、应用集成模块、可插拔组件模块、用户权限管理模块和可视化管理模块。其中,流量控制模块基于区块链节点的流量的类型确定对应的控制策略,响应于区块链节点仿真完成后,基于与所述控制策略相匹配的网络参数模拟区块链网络运行环境。采用对各类区块链节点的流量进行不同的控制,对不同的分类控制策略对系统整体性能的影响进行仿真,提升了区块链系统运行稳定性和运行效率。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种区块链仿真系统及方法。
背景技术
区块链系统与传统中心化系统相比一致存在性能瓶颈问题,在高负载情况下容易引起区块链服务不可用,甚至整个区块链系统出现雪崩效应。在传统系统中经常采用流量控制技术,使网络资源得到合理利用,避免网络拥塞和数据包丢失,提高网络的性能和可靠性。对区块链系统进行流量控制可以提供更稳定可靠、柔性可用的服务。
然而,区块系统会产生多种类型的流量,包括共识流量、同步流量、AMOP(AdvancedMessages Onchain Protocol,链上信使协议)流量及其他流量等,不同类型的流量对于网络性能的影响程度不同,如共识流量是决定系统服务质量的关键,应及时得到转发处理。目前网络传输层对于来自应用层的流量采用统一的处理方式,一旦业务负载加重,网络产生拥塞,会导致系统服务质量的下降。
发明内容
针对于上述问题,本申请提供一种区块链仿真系统及方法,提升了区块链系统运行稳定性和运行效率。
为了实现上述目的,本申请提供了如下技术方案:
一种区块链仿真系统,包括:核心流程控制模块、流量控制模块、应用集成模块、可插拔组件模块、用户权限管理模块和可视化管理模块;
所述核心流程控制模块,用于对区块链仿真系统的流程进行控制,所述区块链仿真系统的流程至少包括区块链构建、算法选择、节点配置以及数据处理;
所述流量控制模块,用于基于区块链节点的流量的类型确定对应的控制策略,响应于区块链节点仿真完成后,基于与所述控制策略相匹配的网络参数模拟区块链网络运行环境;
所述应用集成模块,用于对区块链仿真系统的底层应用进行封装集成;
所述可插拔组件模块,用于配置所述区块链仿真系统的组件;
所述用户权限管理模块,用于对区块链仿真系统的用户进行管理和权限控制;
所述可视化管理模块,用于实现对区块链仿真系统的可视化管理。
可选地,所述核心流程控制模块包括区块链节点仿真子模块,所述区块链节点仿真子模块用于:
根据区块链各类型节点资源需求信息,构建仿真区块链节点环境;
基于所述仿真区块链节点环境,生成区块链节点镜像文件,以使得在服务器特定目录挂载所述区块链节点镜像文件,并启动所述区块链节点镜像文件,实现区块链节点的仿真。
可选地,所述流量控制模块包括:
流量分类子模块,用于对区块链节点的流量进行分类标记,并对每一类型的流量匹配对应的控制策略;
延时仿真子模块,用于设定延时参数,基于所述延时参数仿真真实网络环境中的链路延迟状态;
抖动仿真子模块,用于设置抖动参数,基于所述抖动参数仿真真实网络环境中链路的抖动状态,所述抖动参数包括抖动模型及抖动幅度;
丢包仿真子模块,用于设置丢包参数,基于所述丢包参数仿真真实网络环境中链路的丢包状态;
带宽仿真子模块,用于设置带宽参数,基于所述带宽参数仿真真实网络环境中区块链节点的网络带宽。
可选地,所述流量控制模块具体用于:
响应于从输入接口获得流量接收包,通过传输队列对所述流量接收包进行数据包过滤,得到满足与所述控制策略相匹配的网络参数对应的数据包;
将所述数据包通过模拟的网络运行环境进行传输。
可选地,区块链节点的流量分类至少包括下列中的一种:共识流量、同步流量和链上信使协议AMOP流量,其中,所述流量分类子模块还用于:确定区块链节点的流量中的关键流量,以使得对所述关键流量匹配目标传输优先级标签。
可选地,所述流量分类子模块还用于:
基于每一类流量对应的令牌桶算法,确定每一类流量的令牌生成速率;
基于所述令牌生成速率控制生成令牌,并为每一类流量分配与之对应的令牌,以使得基于所述令牌控制各类流量对系统资源的占用。
可选地,所述核心流程控制模块通过调用所述应用集成模块来完成区块链的底层应用的实现。
可选地,所述可插拔组件模块包括至少一个可插拔接口,每一所述可插拔接口用于接入算法模块。
可选地,所述可视化管理模块具体用于:对所述区块链仿真系统的网络结构进行可视化处理;对所述区块链仿真系统的区块链数据进行可视化处理,以及对所述区块链仿真系统的智能合约管理进行可视化处理。
一种区块链仿真方法,应用于如上述中任一项所述的区块链仿真系统,所述方法包括:
根据区块链各类型节点资源需求信息,构建仿真区块链节点环境;
基于所述仿真区块链节点环境,生成区块链节点镜像文件,以使得在服务器特定目录挂载所述区块链节点镜像文件,并启动所述区块链节点镜像文件,实现区块链节点的仿真;
基于区块链节点的流量的类型确定对应的控制策略,响应于区块链节点仿真完成后,基于与所述控制策略相匹配的网络参数模拟区块链网络运行环境。
相较于现有技术,本申请提供了一种区块链仿真系统及方法,该系统包括:核心流程控制模块、流量控制模块、应用集成模块、可插拔组件模块、用户权限管理模块和可视化管理模块。其中,流量控制模块基于区块链节点的流量的类型确定对应的控制策略,响应于区块链节点仿真完成后,基于与所述控制策略相匹配的网络参数模拟区块链网络运行环境。采用对各类区块链节点的流量进行不同的控制,对不同的分类控制策略对系统整体性能的影响进行仿真,提升了区块链系统运行稳定性和运行效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种区块链仿真系统的结构示意图;
图2为本申请实施例提供的一种支持流量控制的区块链仿真系统架构的示意图;
图3为本申请实施例提供的一种分类流量控制的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
为了便于本申请提供的区块链仿真系统进行描述,现将本申请应用到的相关术语进行说明。
区块链:是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,通过信任机制、去中心化的方式集体维护一个可靠的数据库。
区块链仿真:区块链仿真通过创建虚拟节点和交易来模拟真实的区块链网络。这些虚拟节点可以代表真实节点的行为和特征,并通过网络进行交互,以模拟区块链网络的交易流程。仿真还可以包括对各种区块链协议和算法的测试和评估,以及对不同规模和负载下的性能进行测试。通过区块链仿真,可以帮助开发人员、研究人员和其他人员更好地理解区块链技术的工作原理,发现潜在的问题并进行优化。这也可以帮助更好地设计和构建更可靠、安全和高效的区块链系统。
流量控制:网络流量控制是指在计算机网络中限制数据传输速率、防止网络拥塞和保证网络质量的技术。它的目的是使网络资源得到合理利用,避免网络拥塞和数据包丢失,提高网络的性能和可靠性。网络流量控制对于网络的性能和可靠性非常重要。通过控制网络流量,可以最大化利用网络资源,避免网络拥塞和数据包丢失,提高网络的质量和可靠性,从而更好地满足用户和应用程序的需求。
网络仿真:网络仿真是一种利用数学建模和统计分析的方法模拟网络行为,通过建立网络设备和网络链路的统计模型,模拟网络流量的传输,从而获取网络设计及优化所需要的网络性能数据的一种技术。
本申请实施例提供了一种区块链仿真系统,包括核心流程控制模块101、流量控制模块102、应用集成模块103、可插拔组件模块104、用户权限管理模块105和可视化管理模块106。为了便于说明,在本申请实施例中以能源区块链为例进行说明,也可以结合实际的应用场景,对应不同类型的区块链。
核心流程控制模块101,用于对区块链仿真系统的流程进行控制,区块链仿真系统的流程至少包括区块链构建、算法选择、节点配置以及数据处理。该核心流程控制模块实现了能源区块链仿真系统的流程控制功能,其中,区块链构建除了包括创建信息的区块链,还包括修改已有区块链,区块链删除等处理。算法选择包括不同类型算法的选择和应用,如共识算法选择。节点配置可以包括节点数量配置、节点创建、节点配额,数据处理可以包括通道创建、链码上传、链码调用等功能。
流量控制模块102,用于基于区块链节点的流量的类型确定对应的控制策略,响应于区块链节点仿真完成后,基于与所述控制策略相匹配的网络参数模拟区块链网络运行环境。具体的,流量控制模块实现了两部分功能,一是对来自区块链不同模块(如共识模块、同步模块等)的流量进行分类标记,二是实现了能源区块链仿真系统的复杂网络仿真的功能,此模块通过对多链复杂网络仿真技术进行封装与集成,实现了区块链复杂网络的仿真,包括延时、丢包、带宽等状态的仿真。
应用集成模块103,用于对区块链仿真系统的底层应用进行封装集成。该应用集成模块主要是指SDK(Software Development Kit,软件开发工具包)集成模块,该模块实现了能源区块链仿真系统的底层SDK封装集成的功能,此模块对区块链底层调用SDK进行封装与集成,核心流程控制模块通过调用SDK集成模块来完成区块链的底层能力实现。
可插拔组件模块104,用于配置所述区块链仿真系统的组件,可插拔组件模块包括至少一个可插拔接口,每一所述可插拔接口用于接入算法模块。具体的,可插拔组件模块实现了能源区块链仿真系统的组件灵活配置功能,此模块通过实现可插拔式接口来接入多种共识算法、加密算法、通信协议等,并为未来新增的算法与协议提供可插拔式接入方法。
用户权限管理模块105,用于对区块链仿真系统的用户进行管理和权限控制。用户管理模块实现了能源区块链仿真系统的用户管理与权限控制功能,此模块实现了平台内用户的创建、配置与删除能力,并可以为用户配置对应权限,保证用户只能对权限内的链进行操作。
可视化管理模块106,用于实现对区块链仿真系统的可视化管理,包括:对所述区块链仿真系统的网络结构进行可视化处理;对所述区块链仿真系统的区块链数据进行可视化处理,以及对所述区块链仿真系统的智能合约管理进行可视化处理。可视化管理模块实现了对仿真区块链的可视化管理,此模块通过SDK接口封装和图形可视化技术,实现了对仿真区块链的网络结构可视化,区块链数据可视化和智能合约管理可视化。
下面对本申请实施例中的区块链仿真过程中的从区块链节点仿真和区块链网络仿真等方面进行详细说明。
首先可以调用核心流程控制模块实现对区块链节点的仿真,即核心流程控制模块包括区块链节点仿真子模块,所述区块链节点仿真子模块用于:根据区块链各类型节点资源需求信息,构建仿真区块链节点环境;基于所述仿真区块链节点环境,生成区块链节点镜像文件,以使得在服务器特定目录挂载所述区块链节点镜像文件,并启动所述区块链节点镜像文件,实现区块链节点的仿真。其中,节点资源需求信息可以包括容器实例的配置信息,如容器实例的CPU核数、内存大小、运行环境等。
具体的,区块链节点仿真是指通过容器虚拟化技术,根据区块链各类型节点资源需求限制容器实例的CPU核数、内存大小、运行环境等,构建仿真区块链节点环境,主要采用了以下技术:
Namespaces机制:Namespaces允许区块链进程及其子进程从共享的宿主机内核资源(网络栈、进程列表、挂载点等)中获得一个仅自己可见的隔离区域,让同一个Namespace下的所有进程感知彼此变化,对外界进程一无所知,为区块链进程提供一个隔离、独立的运行环境。
CGroups技术:通过CGroups技术限制同一Namespace下所有进程运行环境的资源使用情况,并可为资源设置权重,计算使用量,操控任务(进程或线程)启停等,为区块链进程提供一个资源受限的运行环境。
区块链节点镜像技术:通过使用镜像分层、写时复制、内容寻址、联合挂载等镜像技术,构建完整的区块链容器文件系统及运行环境。结合镜像仓库,实现区块链镜像文件快速下载、共享,以及区块链节点的快速部署,为区块链进程运行提供依赖环境。
因此,区块链节点仿真的工作流程可以包括:首先,根据语义定义区块链节点的资源需求、使用镜像等,并提交创建请求;之后从镜像仓库下载镜像文件,在服务器指定目录挂载容器镜像文件系统;最后,根据各类区块链节点的资源需求配置容器启动配置文件,并启动容器资源,提供区块链节点的仿真环境。
在本申请实施例中完成区块链节点仿真后,为了能够实现对区块链系统的精准仿真,还可以对区块链网络进行仿真,即通过流量控制模块来实现对区块链节点的流量进行分类标记后应用不同的控制策略,在在区块链节点仿真完成之后,通过改变延时、抖动、丢包、带宽来模拟真实区块链节点运行环境。延时仿真是对容器的出口延时进行设置,通过设定延时大小及延时持续时间,可以仿真真实网络环境中链路的延迟状态。
在本申请实施例的一种实施方式中,流量控制模块包括:流量分类子模块,用于对区块链节点的流量进行分类标记,并对每一类型的流量匹配对应的控制策略;延时仿真子模块,用于设定延时参数,基于所述延时参数仿真真实网络环境中的链路延迟状态;抖动仿真子模块,用于设置抖动参数,基于所述抖动参数仿真真实网络环境中链路的抖动状态,所述抖动参数包括抖动模型及抖动幅度;丢包仿真子模块,用于设置丢包参数,基于所述丢包参数仿真真实网络环境中链路的丢包状态;带宽仿真子模块,用于设置带宽参数,基于所述带宽参数仿真真实网络环境中区块链节点的网络带宽。
具体的,通过延时仿真子模块实现延时仿真的相关设置,延时参数包括延时大小及延时持续时间。即延时仿真是对容器的出口延时进行设置,通过设定延时大小及延时持续时间,可以仿真真实网络环境中链路的延迟状态。通过抖动仿真子模块实现抖动仿真的相关设置,抖动仿真是容器的出口延时进行设置,在设定延时大小及延时持续时间之外,可以设置抖动模型及抖动幅度,并支持均匀分布、正态分布、帕累托分布等多种抖动分布模型,可以仿真真实网络环境中链路的多种抖动状态。通过丢包仿真子模块对丢包仿真进行相关设置,丢包参数可以包括丢包括,即丢包仿真是对容器网络丢包率进行设置,可以设置本容器与其他容器之间的丢包率,并支持四态马尔科夫概率模型、独立(伯努利)概率模型、Gilbert-Elliot丢包模型等多种丢包模型,可以仿真真实网络环境中多种丢包场景。通过带宽子模块仿真带宽相关信息,带宽参数可以包括带宽大小及持续时间,带宽仿真是对本容器与其他容器之间的带宽进行设置,通过设定带宽大小及持续时间,可以仿真真实网络环境中区块链节点间的网络带宽。
进一步地,流量控制模块具体用于:响应于从输入接口获得流量接收包,通过传输队列对所述流量接收包进行数据包过滤,得到满足与所述控制策略相匹配的网络参数对应的数据包;将所述数据包通过模拟的网络运行环境进行传输。
其中,区块链节点的流量分类至少包括下列中的一种:共识流量、同步流量和链上信使协议AMOP流量,其中,所述流量分类子模块还用于:确定区块链节点的流量中的关键流量,以使得对所述关键流量匹配目标传输优先级标签。
在一种实施方式中,流量分类子模块还用于:基于每一类流量对应的令牌桶算法,确定每一类流量的令牌生成速率;基于所述令牌生成速率控制生成令牌,并为每一类流量分配与之对应的令牌,以使得基于所述令牌控制各类流量对系统资源的占用。
在网络仿真中,主要运用了TC(Traffic Control)技术,它是指Linux操作系统中的流量控制器用于在Linux内核对流量进行控制,主要是通过在输出端口处建立一个队列来实现流量控制。接收包从输入接口进来后,经过流量限制丢弃不符合规定的数据包,由输入多路分配器进行判断选择:
(1)如果接收包的目的主机是本主机,那么将该包送给上层处理,否则需要进行转发,将接收包交到转发块(Forwarding Block)处理。
(2)转发块同时也接收本主机上层(TCP、UDP等)产生的包,通过查看路由表,决定所处理包的下一跳。
(3)对包进行排列以便将它们送到输出接口。
(4)一般只能限制网卡发送的数据包,不能限制网卡接收的数据包,所以可以通过改变发送次序来控制传输速率。Linux流量控制主要是在输出接口排列时进行处理和实现的。在其上可以配置相应的数据包处理策略,对发送的数据包进行处理。
在对区块链网络进行仿真的过程中,实现对流量进行分类控制,即对不同类型的流量设置不同的传输优先级标签,更能满足流量传输和资源占用的实际需求。
对区块链系统进行分类流量控制的如图2所示。区块链节点包括共识模块、同步模块、AMOP模块等,各模块输出的流量需要统一进行标记分类,并基于P2P模型构建区块链节点网络。对流量进行分类标记后,可实现区块链流量的分类控制与真实网络环境的模拟,包括输入测量、分类转发、输出队列、传输环境模拟等模块。
一、区块链节点层:
区块链节点仿真提供对于区块链系统关键模块的构建能力,并对来自各模块的流量进行分类标记后通过P2P网络进行分发。
对流量进行分类标记,是进行底层传输控制的基础。以系统模块的角度划分,区块链节点的入口流量大体分为如下几种:
共识流量:区块链共识模块产生的流量。区块链共识是决定系统服务质量的关键,因此共识流量为系统关键流量;
同步流量:为了保持节点中数据的一致性,区块链节点间需要同步已经共识的区块数据,所产生的流量为同步流量;
AMOP流量:各类AMOP消息;
其他流量:系统产生的其他流量,包括查询、上传下载等。
以对系统服务质量的关键程度来说,区块链流量优先级一般为:共识流量> 同步流量>AMOP及其他流量。因此,为了保证系统的高可用,需要保证关键流量(如共识流量)得到优先处理,避免非关键流量抢占系统资源。
二、传输控制层:
传输控制层将来自P2P网络的流量进行分发,实现区块链分类流量控制。接收包从输入接口进来后,经过输入策略模块进行流量限制,以丢弃不符合规定的数据包;进而进入分类转发模块进行判断选择。如果接收包的目的地是本主机,那么将该包送给上层处理,否则需要进行转发。分类转发模块同时也接收本主机上层(来自IP层的TCP、UDP等)产生的包。经过分类转发的数据包根据一定的策略进入输出队列。输出的数据包通过传输环境模拟模块,对发送的时延、丢包率、抖动等进行控制和模拟,实现真实网络传输环境下的区块链性能仿真。
一般只能限制网卡发送的数据包,不能限制网卡接收的数据包,所以我们通过改变发送次序来控制传输速率。Linux流量控制主要是在输出接口排列时进行处理和实现的。
在本申请实施例中提供了一种基于令牌桶与分级队列的流量控制方法,参见图3,其示出了分类转发和输出队列模块的具体处理流程。
可以在流量控制模块中设置分类转发器,分类转发器将接收到的流量(包括来自外部的转发流量,及本地生成的流量)进行识别和分类,赋予优先级,其中,优先级可以用k表示,kÎ{1,2,…,n}。每一类数据对应一个令牌桶算法,令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。则对应的令牌生成速率分别为r1,r2,…,rk。每个数据包只有获得了令牌才可以进入发送队列,否则丢弃。与流量类别对应,流量控制器有n个发送队列,共用同一个发送端口。队列k的优先级为pk,若i<j,则有pi>pj。发送规则为首先发送优先级高的队列的数据包,只有高优先级队列为空时,才发送优先级低的队列中的数据包。
在本申请实施例中采用分级队列对各类流量区分优先级发送,可以保证系统关键流量得到优先处理。然而,若始终优先关键流量,在网络高负载的情况下会导致非关键流量始终得不到发送,因此在本申请实施例中添加了多令牌桶算法,对各级流量单独分配令牌,可以控制各类流量对系统资源的占用上限。通过合理的令牌分配算法和分级队列相结合,可实现灵活度更高的区块链流量控制。经过输出队列后进入传输环境模拟模块,该模块对实际传输网络进行模拟,支持在性能良好的局域网中模拟出不同传输能力的网络。具体实现中,可基于Linux 内核下的网络流量控制工具TC与Netem实现对区块链节点间常用网络参数的设置,包括时延、带宽、抖动、丢包等。
在本申请实施例提供的区块链仿真系统,构建了动态的物理资源管理和调度方法,使区块链仿真过程中无需关注硬件层和资源层的配置细节,只需要针对应用层的不同业务需求提交配置参数,系统将基于资源分配策略自动分配物理资源。采用了高度模块化的设计方式,能够支持对多种架构区块链的仿真支持,并通过可插拔共识算法库的形式,允许用户针对不同场景的选择不同的共识算法,同时方便对仿真系统的后续功能进行优化升级。通过不同的流控策略,实现区块链系统在高负载情况下的性能优化,能够模拟真实环境下区块链节点的网络状况,使仿真结果最大程度的贴近生产环境下的运行结果。
在本申请实施例中还提供了一种区块链仿真方法,该方法应用于上述的区块链仿真系统,包括:
根据区块链各类型节点资源需求信息,构建仿真区块链节点环境;
基于所述仿真区块链节点环境,生成区块链节点镜像文件,以使得在服务器特定目录挂载所述区块链节点镜像文件,并启动所述区块链节点镜像文件,实现区块链节点的仿真;
基于区块链节点的流量的类型确定对应的控制策略,响应于区块链节点仿真完成后,基于与所述控制策略相匹配的网络参数模拟区块链网络运行环境。
具体的,该仿真方法中包括的区块链节点仿真以及区块链网络仿真的处理过程请参见区块链仿真系统中的相关部分的描述,此处不再详述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
Claims (10)
1.一种区块链仿真系统,其特征在于,包括:核心流程控制模块、流量控制模块、应用集成模块、可插拔组件模块、用户权限管理模块和可视化管理模块;
所述核心流程控制模块,用于对区块链仿真系统的流程进行控制,所述区块链仿真系统的流程至少包括区块链构建、算法选择、节点配置以及数据处理;
所述流量控制模块,用于基于区块链节点的流量的类型确定对应的控制策略,响应于区块链节点仿真完成后,基于与所述控制策略相匹配的网络参数模拟区块链网络运行环境;其中,不同的流量类型对应的控制策略不同;
所述应用集成模块,用于对区块链仿真系统的底层应用进行封装集成;
所述可插拔组件模块,用于配置所述区块链仿真系统的组件;
所述用户权限管理模块,用于对区块链仿真系统的用户进行管理和权限控制;
所述可视化管理模块,用于实现对区块链仿真系统的可视化管理。
2.根据权利要求1所述的系统,其特征在于,所述核心流程控制模块包括区块链节点仿真子模块,所述区块链节点仿真子模块用于:
根据区块链各类型节点资源需求信息,构建仿真区块链节点环境;
基于所述仿真区块链节点环境,生成区块链节点镜像文件,以使得在服务器特定目录挂载所述区块链节点镜像文件,并启动所述区块链节点镜像文件,实现区块链节点的仿真。
3.根据权利要求1所述的系统,其特征在于,所述流量控制模块包括:
流量分类子模块,用于对区块链节点的流量进行分类标记,并对每一类型的流量匹配对应的控制策略;
延时仿真子模块,用于设定延时参数,基于所述延时参数仿真真实网络环境中的链路延迟状态;
抖动仿真子模块,用于设置抖动参数,基于所述抖动参数仿真真实网络环境中链路的抖动状态,所述抖动参数包括抖动模型及抖动幅度;
丢包仿真子模块,用于设置丢包参数,基于所述丢包参数仿真真实网络环境中链路的丢包状态;
带宽仿真子模块,用于设置带宽参数,基于所述带宽参数仿真真实网络环境中区块链节点的网络带宽。
4.根据权利要求3所述的系统,其特征在于,所述流量控制模块具体用于:
响应于从输入接口获得流量接收包,通过传输队列对所述流量接收包进行数据包过滤,得到满足与所述控制策略相匹配的网络参数对应的数据包;
将所述数据包通过模拟的网络运行环境进行传输。
5.根据权利要求3所述的系统,其特征在于,区块链节点的流量分类至少包括下列中的一种:共识流量、同步流量和链上信使协议AMOP流量,其中,所述流量分类子模块还用于:确定区块链节点的流量中的关键流量,以使得对所述关键流量匹配目标传输优先级标签。
6.根据权利要求5所述的系统,其特征在于,所述流量分类子模块还用于:
基于每一类流量对应的令牌桶算法,确定每一类流量的令牌生成速率;
基于所述令牌生成速率控制生成令牌,并为每一类流量分配与之对应的令牌,以使得基于所述令牌控制各类流量对系统资源的占用。
7.根据权利要求1所述的系统,其特征在于,所述核心流程控制模块通过调用所述应用集成模块来完成区块链的底层应用的实现。
8.根据权利要求1所述的系统,其特征在于,所述可插拔组件模块包括至少一个可插拔接口,每一所述可插拔接口用于接入算法模块。
9.根据权利要求1所述的系统,其特征在于,所述可视化管理模块具体用于:对所述区块链仿真系统的网络结构进行可视化处理;对所述区块链仿真系统的区块链数据进行可视化处理,以及对所述区块链仿真系统的智能合约管理进行可视化处理。
10.一种区块链仿真方法,其特征在于,应用于如权利要求1-9中任一项所述的区块链仿真系统,所述方法包括:
根据区块链各类型节点资源需求信息,构建仿真区块链节点环境;
基于所述仿真区块链节点环境,生成区块链节点镜像文件,以使得在服务器特定目录挂载所述区块链节点镜像文件,并启动所述区块链节点镜像文件,实现区块链节点的仿真;
基于区块链节点的流量的类型确定对应的控制策略,响应于区块链节点仿真完成后,基于与所述控制策略相匹配的网络参数模拟区块链网络运行环境。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311085733.5A CN116800620B (zh) | 2023-08-28 | 2023-08-28 | 一种区块链仿真系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311085733.5A CN116800620B (zh) | 2023-08-28 | 2023-08-28 | 一种区块链仿真系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116800620A CN116800620A (zh) | 2023-09-22 |
CN116800620B true CN116800620B (zh) | 2023-11-10 |
Family
ID=88038820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311085733.5A Active CN116800620B (zh) | 2023-08-28 | 2023-08-28 | 一种区块链仿真系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116800620B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789904A (zh) * | 2010-02-04 | 2010-07-28 | 杭州华三通信技术有限公司 | 流量控制的方法及设备 |
CN111639409A (zh) * | 2020-05-29 | 2020-09-08 | 深圳观点互动网络科技有限公司 | 一种区块链仿真模拟系统 |
CN115473669A (zh) * | 2022-07-26 | 2022-12-13 | 国网北京市电力公司 | 一种用于区块链的可视化展示方法 |
CN115567401A (zh) * | 2022-08-22 | 2023-01-03 | 哈尔滨工业大学(深圳) | 基于管道技术的以太坊网络拓扑仿真方法、装置、介质及终端 |
CN115834400A (zh) * | 2022-05-05 | 2023-03-21 | 上海交通大学 | 离散状态事件驱动的能源区块链系统仿真测试方法 |
CN116089004A (zh) * | 2022-12-19 | 2023-05-09 | 国网数字科技控股有限公司 | 一种异构区块链间智能合约代码的迁移方法及装置 |
CN116319387A (zh) * | 2023-01-31 | 2023-06-23 | 国网冀北电力有限公司智能配电网中心 | 一种基于区块链的仿真测试平台 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9397901B2 (en) * | 2012-12-18 | 2016-07-19 | Ixia | Methods, systems, and computer readable media for classifying application traffic received at a network traffic emulation device that emulates multiple application servers |
US11488099B2 (en) * | 2019-10-18 | 2022-11-01 | International Business Machines Corporation | Supply-chain simulation |
KR20230083479A (ko) * | 2021-12-03 | 2023-06-12 | 한국과학기술원 | 블록체인 시뮬레이션 플랫폼 내의 복수의 가상 노드 사이에 공유된 데이터 액세스 방법 및 이를 이용하는 블록체인 시뮬레이션 플랫폼 |
-
2023
- 2023-08-28 CN CN202311085733.5A patent/CN116800620B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789904A (zh) * | 2010-02-04 | 2010-07-28 | 杭州华三通信技术有限公司 | 流量控制的方法及设备 |
CN111639409A (zh) * | 2020-05-29 | 2020-09-08 | 深圳观点互动网络科技有限公司 | 一种区块链仿真模拟系统 |
CN115834400A (zh) * | 2022-05-05 | 2023-03-21 | 上海交通大学 | 离散状态事件驱动的能源区块链系统仿真测试方法 |
CN115473669A (zh) * | 2022-07-26 | 2022-12-13 | 国网北京市电力公司 | 一种用于区块链的可视化展示方法 |
CN115567401A (zh) * | 2022-08-22 | 2023-01-03 | 哈尔滨工业大学(深圳) | 基于管道技术的以太坊网络拓扑仿真方法、装置、介质及终端 |
CN116089004A (zh) * | 2022-12-19 | 2023-05-09 | 国网数字科技控股有限公司 | 一种异构区块链间智能合约代码的迁移方法及装置 |
CN116319387A (zh) * | 2023-01-31 | 2023-06-23 | 国网冀北电力有限公司智能配电网中心 | 一种基于区块链的仿真测试平台 |
Non-Patent Citations (2)
Title |
---|
基于区块链的多能协同运行(二):仿真平台与算例;沈泽宇 等;中国电机工程学报;全文 * |
基于区块链的访问控制技术研究进展;高振升 等;网络与信息安全学报;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116800620A (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112153700B (zh) | 一种网络切片资源管理方法及设备 | |
CN115422284B (zh) | 存储设备、分布式存储系统以及数据处理方法 | |
Wojciechowski et al. | Netmarks: Network metrics-aware kubernetes scheduler powered by service mesh | |
Javadpour | Improving resources management in network virtualization by utilizing a software-based network | |
Arzo et al. | Multi-agent based autonomic network management architecture | |
US8149846B2 (en) | Data processing system and method | |
CN111970212A (zh) | 一种基于tsn网络和opc ua架构的确定性通信系统 | |
CN110022269B (zh) | 通信数据处理方法、装置和设备 | |
CN106533806B (zh) | 多租户SDN网络中基于应用感知提供跨层QoS的方法 | |
CN104428752A (zh) | 将虚拟机流卸载至物理队列 | |
Mechalikh et al. | PureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments | |
CN107533538A (zh) | 在使用加速部件的系统中处理租户要求 | |
CN107533481A (zh) | 在具有硬件加速平面和软件平面的系统中提供服务 | |
CN109327319A (zh) | 部署网络切片的方法、设备及系统 | |
CN109697120A (zh) | 用于应用迁移的方法、电子设备 | |
CN112073237B (zh) | 一种云边架构中大规模目标网络构建方法 | |
CN113938930B (zh) | 适应5g网络多业务场景的虚拟网络功能转发图的构建方法 | |
Javadpour et al. | Mapping and embedding infrastructure resource management in software defined networks | |
Mehta et al. | Distributed cost-optimized placement for latency-critical applications in heterogeneous environments | |
Lera et al. | Analyzing the applicability of a multi-criteria decision method in fog computing placement problem | |
CN116800620B (zh) | 一种区块链仿真系统及方法 | |
Siapoush et al. | Software-defined networking enabled big data tasks scheduling: A tabu search approach | |
Fahad et al. | A multi‐queue priority‐based task scheduling algorithm in fog computing environment | |
CN112579293A (zh) | 一种分布计算系统的综合验证方法 | |
Dehury et al. | HeRAFC: Heuristic resource allocation and optimization in MultiFog-Cloud environment |
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 |