CN113132253B - 带宽限流方法和电子设备 - Google Patents
带宽限流方法和电子设备 Download PDFInfo
- Publication number
- CN113132253B CN113132253B CN202110333259.8A CN202110333259A CN113132253B CN 113132253 B CN113132253 B CN 113132253B CN 202110333259 A CN202110333259 A CN 202110333259A CN 113132253 B CN113132253 B CN 113132253B
- Authority
- CN
- China
- Prior art keywords
- transaction
- queue
- transaction data
- forwarding
- bandwidth
- 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
-
- 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/20—Traffic policing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/215—Flow control; Congestion control using token-bucket
-
- 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
Abstract
本申请提供一种带宽限流方法和电子设备,涉及区块链技术领域,其中,该方法包括接收交易数据,判断已接收的交易数据的总大小是否超过限制,若交易转发队列中交易数据的总大小不超过队列限制字节数,则将接收的交易数据存储在交易转发队列中;若交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据,在接收交易数据的同时还可以根据转发交易频率,取出交易转发队列中所有的交易数据进行转发。本申请提供的技术方案通过设置交易转发队列的方式,增加接收交易数据的限制,从源头限制了待转发数据的大小,即实现了对共识节点的限流,又避免了共识超时的问题,进而提高了整个区块链系统的网络稳定性。
Description
技术领域
本申请涉及区块链技术,尤其涉及一种带宽限流方法和电子设备,属于区块链带宽限流技术领域。
背景技术
随着比特币热度的上升,区块链技术逐渐被大家所熟知。基于去中心化的特点,很多行业都开始应用相关的区块链产品。为了保证账本的一致性和正确性,区块链技术采用了一套共识机制,即每个共识节点都需要将从客户端接收到的交易数据广播给其他的共识节点,接着,由主节点对交易排序并打包成块后进行验证,将验证结果广播给从节点,然后,从节点收到主节点消息后同样进行验证并回复验证结果,最终,所有节点将达成共识的交易数据写入账本。显然,在共识过程中,节点间需要进行多次网络交互,以实现账本的一致性和正确性。
一般来说,同一个网络里的多个应用将共享网络资源,为了避免区块链节点占用了所有带宽导致其他应用无法正常运行,可根据需要限制区块链节点出口带宽。常见带宽限流方法有:1、由网络中心进行调控配置,2、通过操作系统流量控制工具进行流控配置。
但是,在采用上述方案进行限流的情况下,虽然限制住了计算机出口带宽,但是当接收到的交易数据突然大量增加时,节点需要在规定时间内将大量的交易数据转发至对端节点,此时,带宽资源可能大部分被用于转发大量交易数据,导致共识过程中的共识消息无法及时发出,从而极易触发节点进入超时异常状态,进而导致整个区块链系统不可用。
发明内容
有鉴于此,本申请提供了一种带宽限流方法和电子设备,可以在对共识节点限流的同时避免共识超时的问题,提高整个区块链系统的可用性。
为了实现上述目的,第一方面,本申请实施例提供一种带宽限流方法,包括:
接收交易数据;
若预设的交易转发队列中交易数据的总大小不超过预先确定的队列限制字节数,则将接收的交易数据存储在交易转发队列中;
若交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据;
根据预先确定的交易转发频率,取出交易转发队列中所有的交易数据进行转发。
可选的,在接收交易数据之前,方法还包括:
根据预设的限流参数配置文件,确定交易转发频率、总带宽和限流比例,限流比例为转发交易数据所占用的带宽占总带宽的最大比例;
根据交易转发频率、总带宽和限流比例,确定队列限制字节数。
可选的,采用如下公式确定队列限制字节数:
其中,A表示队列限制字节数、K表示总带宽,其单位为比特、R表示限流比例、f表示交易转发频率、N表示预设的对端节点数量。
可选的,在队列限制字节数小于预设的最大网络消息大小,且共识带宽满足预设的共识消息发送条件的情况下,接收交易数据,共识带宽是根据限流比例确定的,共识带宽用于指示发送共识消息可占用的带宽。
可选的,在队列限制字节数大于或等于最大网络消息大小,或者共识带宽不满足共识消息发送条件的情况下,输出限流参数配置失败信息。
可选的,在接收交易数据之后,方法还包括:
若预设的交易池中待打包的交易个数未超过预设的交易池允许的最大个数,且交易转发队列中交易数据的总大小不超过队列限制字节数,则将接收的交易数据存储在交易转发队列中;
若交易池中待打包的交易数据的个数超过交易池允许的最大个数,或交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据;
在取出交易转发队列中所有的交易数据进行转发之后,方法还包括:
将转发的交易数据存储到交易池中;
根据预先确定的区块转发频率和区块限制字节数,从交易池中取出预设数量的交易数据进行排序,并打包成块进行共识。
可选的,在接收交易数据之前,方法还包括:
根据预设的限流参数配置文件,确定最大网络消息大小;
根据最大网络消息大小,确定区块限制字节数。
可选的,取出交易转发队列中所有的交易数据进行转发,包括:
取出交易转发队列中所有的交易数据封装成交易集数据包:
采用令牌桶算法向所有对端节点发送交易集数据包。
可选的,每个对端节点均设置一个令牌桶,采用令牌桶算法向所有对端节点发送交易集数据包,包括:
根据交易集数据包的大小,获取相应数量的令牌;
在获取到足够的令牌后,向对应的对端节点发送交易集数据包,其中,令牌的恢复速率为预设的总带宽数值除以令牌桶的个数。
第二方面,本申请实施例提供一种带宽限流装置,包括:
接收模块,用于接收交易数据,若预设的交易转发队列中交易数据的总大小不超过预先确定的队列限制字节数,则将接收的交易数据存储在交易转发队列中;若交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据;
发送模块,用于根据预先确定的交易转发频率,取出交易转发队列中所有的交易数据进行转发。
可选的,该装置还包括:
确定模块,用于根据预设的限流参数配置文件,确定交易转发频率、总带宽和限流比例,限流比例为转发交易数据所占用的带宽占总带宽的最大比例,并根据交易转发频率、总带宽和限流比例,确定队列限制字节数。
可选的,采用如下公式确定队列限制字节数:
其中,A表示队列限制字节数、K表示总带宽,其单位为比特、R表示限流比例、f表示交易转发频率、N表示预设的对端节点数量。
可选的,在队列限制字节数小于预设的最大网络消息大小,且共识带宽满足预设的共识消息发送条件的情况下,接收交易数据,共识带宽是根据限流比例确定的,共识带宽用于指示发送共识消息可占用的带宽。
可选的,在队列限制字节数大于或等于最大网络消息大小,或者共识带宽不满足共识消息发送条件的情况下,输出限流参数配置失败信息。
可选的,接收模块,还用于若预设的交易池中待打包的交易个数未超过预设的交易池允许的最大个数,且交易转发队列中交易数据的总大小不超过队列限制字节数,则将接收的交易数据存储在交易转发队列中;若交易池中待打包的交易数据的个数超过交易池允许的最大个数,或交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据;
该装置还包括:
共识模块,用于将转发的交易数据存储到交易池中,并根据预先确定的区块转发频率和区块限制字节数,从交易池中取出预设数量的交易数据进行排序,并打包成块进行共识。
可选的,确定模块,还用于根据预设的限流参数配置文件,确定最大网络消息大小,并根据最大网络消息大小,确定区块限制字节数。
可选的,发送模块具体用于:
取出交易转发队列中所有的交易数据封装成交易集数据包:
采用令牌桶算法向所有对端节点发送交易集数据包。
可选的,每个对端节点均设置一个令牌桶,发送模块具体用于:
根据交易集数据包的大小,获取相应数量的令牌;
在获取到足够的令牌后,向对应的对端节点发送交易集数据包,其中,令牌的恢复速率为预设的总带宽数值除以令牌桶的个数。
第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器用于存储计算机程序;处理器用于在调用计算机程序时执行上述第一方面或第一方面的任一实施方式所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面或第一方面的任一实施方式所述的方法。
本申请实施例提供的一种带宽限流方法和电子设备,可以在接收交易数据之后,判断已接收的交易数据的总大小是否超过限制,若预设的交易转发队列中交易数据的总大小不超过预先确定的队列限制字节数,则将接收的交易数据存储在交易转发队列中;若交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据;在接收交易数据的同时还可以根据预先确定的交易转发频率,取出交易转发队列中所有的交易数据进行转发。本申请提供的技术方案通过设置交易转发队列的方式,增加接收交易数据的限制,从源头限制了每次转发交易的总大小,即实现了对共识节点的限流,又避免了共识超时的问题,进而提高了整个区块链系统的可用性。
附图说明
图1为本申请实施例提供的带宽限流方法的流程示意图;
图2为本申请实施例提供的区块链系统示意图;
图3为本申请实施例提供的限流配置的流程示意图;
图4为本申请实施例提供的带宽限流装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
具体实施方式
针对现有技术中,在对共识节点(以下简称“节点”)进行限流时,容易产生共识超时的问题,本申请实施例提供一种带宽限流方法,可以在对节点限流的同时避免共识超时的问题,提高整个区块链系统的可用性。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
本申请实施例提供的带宽限流方法可以应用于服务器、计算机、笔记本或工作站等电子设备,本申请实施例对电子设备的具体类型不作任何限制。
图1为本申请实施例提供的带宽限流方法的流程示意图,如图1所示,该方法包括如下步骤:
S110、接收交易数据。
参照图2,图2为本申请实施例提供的区块链系统示意图,一个区块链系统可以由多个节点组成,每个节点又可以对应多个客户端。在实际应用时,节点和客户端可以是任一种电子设备,本申请对此不作限定。用户可以在其中一个客户端发布交易数据,客户端在生成交易数据后可以将该交易数据发送至对应的节点。在正常情况下,节点在接收到交易数据后会将交易数据打包为交易集数据包,并将交易集数据包发送至其他节点(其他节点又称为“对端节点”)。节点在转发交易数据的同时,还会进行共识计算,并将共识计算的结果发送至对端节点,以实现共识机制。
由于区块链系统的共识机制,节点会占用较大的带宽资源,特别是交易数据突然大量增加时,节点需要在规定时间内将大量的交易数据转发至对端节点,此时,一方面,带宽资源可能会被节点全部占用,影响其他应用的正常运行。另一方面,带宽资源可能大部分被用于转发大量交易数据,导致共识过程中的共识消息无法及时发出,从而极易触发节点进入超时异常状态。
为了对节点进行限流,节点中可以设置一个限流参数配置文件,用于对节点的限流配置进行设置。用户可以根据实际需要对限流参数配置文件中的参数进行自定义设置。其中,限流参数配置文件中主要的参数可以包括总带宽、交易转发频率、最大网络消息大小和限流比例。总带宽是该节点所能够使用的总出口带宽大小,用户可以根据节点的实际网络资源情况进行设置。交易转发频率是该节点一秒内执行多少次交易转发任务,交易转发频率通常由区块链系统统一设定,实际应用时不建议用户修改。最大网络消息大小表示在区块链系统中,该节点所能够发出的网络消息的最大大小,通常这个值由区块链系统者设置,不建议用户修改。限流比例是转发交易数据所占用的带宽占总带宽的最大比例,用户可以通过设置限流比例,调整对节点的限流程度。
需要说明的是,限流参数配置文件中还可以包括“是否开启限流功能”的选项,用户可以根据实际需求决定是否开启限流功能。
具体的,参照图3,图3为本申请实施例提供的限流配置的流程示意图,在节点启动后,可以先读取限流参数配置文件进行初始化,并根据“是否开启限流功能”的选项确定是否开启限流功能。若不开启限流功能,则直接跳转至完成初始化;若开启限流功能,则确定交易转发频率、总带宽、最大网络消息大小和限流比例等参数,然后对上述参数进行合法性检查。若合法性检查成功则跳转至完成初始化;若合法性检查失败则跳转至启动失败。
其中,在确定参数的过程中,节点可以根据预设的限流参数配置文件,确定交易转发频率、总带宽、最大网络消息大小和限流比例,然后,根据交易转发频率、总带宽和限流比例,确定队列限制字节数。其中,队列限制字节数是执行一次转发任务中所能发送的交易数据大小的最大值。
节点可以采用如下公式确定队列限制字节数的具体值:
其中,A表示队列限制字节数、K表示总带宽,其单位为比特、R表示限流比例、f表示交易转发频率、N表示预设的对端节点数量。
实际上,限流比例是将总带宽分为两部分,一部分是用于转发交易数据的交易带宽,另一部分是用于发送共识消息的共识带宽,在公式1中,KR部分就表示交易带宽。例如,总带宽为100Mbps,限流比例为0.95,则交易带宽为95Mbps,共识带宽为5Mbps。
在一种可能的实施方式中,合法性检查可以包括两部分,一部分是对限制字节数进行检查,另一部分是对共识带宽进行检查。
对限制字节数而言,节点可以将最大网络消息大小与限制字节数进行对比,若最大网络消息大小大于限制字节数,则限制字节数通过检查;若最大网络消息大小小于或等于限制字节数,则限制字节数未通过检查。
对共识带宽而言,节点还可以判断共识带宽是否满足预设的共识消息发送条件。共识消息发送条件是指,共识带宽的大小是否能满足一笔节点中允许的最大交易数据在当前共识带宽下可以在共识超时时间内完成发送。
综上,若最大网络消息大小大于限制字节数,且共识带宽满足共识消息发送条件,则表示参数通过合法性检查,节点初始化成功。在完成初始化后,节点可以正常接收交易数据。若最大网络消息大小小于或等于限制字节数,或者共识带宽不满足共识消息发送条件,则表示参数未通过合法性检查,节点启动失败。在启动失败时,节点可以输出限流参数配置失败信息,限流参数配置失败信息可以包括合法性检查未通过的原因,以及推荐的参数大小。用户可以根据推荐的参数重新设置限流参数配置文件中的参数。
例如,在第一种情形下,当前区块链系统有4个节点,交易转发频率为1秒10次,总带宽为350mbps,限流比例为0.95,最大网络消息为50MB。经过计算限制字节数为1.38MB。因此,限制字节数满足合法性检查。
在第二种情形下,当前区块链系统有4个节点,交易转发频率为1秒10次,总带宽为15000mbps,限流比例为0.95,最大网络消息为50MB。经过计算限制字节数为59.37MB,结果大于允许发送的最大网络消息大小。因此,配置参数无法通过合法性检查。
在第三种情形下,当前区块链系统有4个节点,交易转发频率为1秒10次,总带宽为6mbps,限流比例为0.95,共识超时时间为6秒,允许的最大交易大小为100KB。一个区块至少打包一笔交易,因此,可以认为在一个区块只打包一个最大交易的情况下,共识消息大小近似为100KB。经共识消息发送条件判断,在6秒内可以将100KB的数据发送出去所需要的最低带宽为8mbps。因此,共识带宽不满足共识消息发送条件。
需要说明的是,在没有开启限流功能的情况下,在限流配置的过程中,节点还可以开启区块大小限制功能,用以在特殊情况下限制区块大小,提高带宽资源稳定性。在开启区块大小限制功能时,节点生成的区块大小将被限制在阈值之内,节点可以根据最大网络消息大小设置阈值。例如,节点可以将最大网络消息大小减去1MB的结果,作为阈值的具体大小。
S120、判断已接收的交易数据的总大小是否超过限制,若是,则执行步骤S140,否则,执行步骤S130。
为了对节点进行限流,可以在节点中设置有一个交易转发队列,交易转发队列用于存储待转发给其他节点的待打包交易数据。在接收到交易数据后,节点可以将交易数据暂时存放在交易转发队列中,并根据限流配置中的队列限制字节数对交易转发队列的最大大小进行限制。然后,根据限流配置中的交易转发频率和队列限制字节数,取出交易转发队列中的所有交易封装成交易集数据包,广播给其他节点。
具体的,节点可以在接收到客户端发送的交易数据后,先判断当前交易转发队列中交易数据的总大小是否超过了预先确定的队列限制字节数,以确定是否继续向交易转发队列中存储交易数据。
S130、将接收的交易数据存储在交易转发队列中。
若预设的交易转发队列中交易数据的总大小不超过队列限制字节数,则将接收的交易数据存储在交易转发队列中。
S140、暂停向交易转发队列中存储交易数据。
若交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据。
需要说明的是,节点在暂停向交易转发队列中存储交易数据之后,新接收的交易数据可以缓存在节点中专门的存储模块中。在交易转发队列中的交易数据清空后,节点可以将缓存在存储模块中的交易数据再放入交易转发队列中。具体的缓存步骤本申请对此不作限定。
S150、根据预先确定的交易转发频率,取出交易转发队列中所有的交易数据进行转发。
节点可以根据限流配置中的交易转发频率,设定一个定时器,每当定时器到零时,取出交易转发队列中所有的交易数据进行转发,然后,再次重置定时器。
由于交易集数据包中的交易数据都是从交易转发队列获取,因此,限制了交易转发队列中交易数据的总大小也就限制了需要转发的交易集数据包的最大大小。当节点接收到大量新交易时,在节点发送的数据中,交易集数据包占据了绝大部分,因此,通过限制待转发的交易集数据包的大小,可以避免节点占用过多的带宽资源。同时,因为在交易集数据包进入发送动作之前就已经限制了待转发交易集数据包的大小以及发送频率,所以避免了节点带宽全部被交易转发所占用而导致的共识超时的问题,进而提高了整个区块链系统的可用性。
进一步的,为了对节点做进一步的限流,还可以在节点中设置有一个交易池,交易池用于存储从本地节点接收到的或者其他节点转发过来的待打包交易数据。在接收到来自客户端的交易数据后,节点可以将交易数据暂时存放在交易转发队列中,并根据队列限制字节数和预设的交易池允许的最大个数,对交易转发队列的最大大小进行限制。然后,在将交易集数据包广播给其他节点的同时,将从交易转发队列中取出的所有交易存储到交易池中。
具体的,节点可以在接收到客户端发送的交易数据后,同步判断当前交易转发队列中交易数据的总大小是否超过了预先确定的队列限制字节数,以及当前交易池中待打包的交易个数是否超过了预设的交易池允许的最大个数。若预设的交易池中待打包的交易个数未超过预设的交易池允许的最大个数,且交易转发队列中交易数据的总大小不超过队列限制字节数,则将接收的交易数据存储在交易转发队列中;若交易池中待打包的交易数据的个数超过交易池允许的最大个数,或交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据。
节点还可以根据预先确定的区块转发频率和区块限制字节数,从交易池中取出预设数量的交易数据进行排序,并打包成块进行共识。其中,区块转发频率可以根据限流配置确定。区块限制字节数可以根据最大网络消息大小确定,例如,节点可以将最大网络消息大小减去1MB的结果,作为区块限制字节数的具体大小。
进一步的,节点可以根据区块转发频率,设定一个定时器。若定时器先到零,则节点可以从交易池中取出交易数据;若交易池中的交易数据的总大小先超过区块限制字节数,则节点可以从交易池中取出交易数据。
具体的,节点可以取出交易转发队列中所有的交易数据封装成交易集数据包,然后采用令牌桶算法向所有对端节点发送交易集数据包。同样的,节点也可以采用令牌桶算法向所有对端节点发送区块。
在一种可能的实施方式中,节点可以为每个对端节点均设置一个令牌桶,其中,每个令牌桶的令牌恢复速率为预设的总带宽数值除以令牌桶的个数。例如,当前区块链中有四个节点,因此,对于每个节点而言就有三个对端节点。当前节点的总带宽数值为90Mbps,则令牌恢复速率为30Mbps(相当于一个令牌代表一个字节,每需要发送一个字节的数据,节点就需要获取一个令牌)。在需要向目标对端节点发送交易集数据包时,节点可以根据交易集数据包的大小,获取相应数量的令牌。在获取到足够的令牌后,就可以向对应的对端节点发送交易集数据包。否则,节点需要等待令牌桶中产生足够的令牌,才能发送交易集数据包。需要说明的是,节点需要发送其他数据时也可以采用令牌桶算法。通过采用令牌桶算法可以增加一层限流保护,进一步提高区块链系统的可用性。
本申请实施例提供的一种带宽限流方法,可以在接收交易数据之后,判断已接收的交易数据的总大小是否超过限制,若预设的交易转发队列中交易数据的总大小不超过预先确定的队列限制字节数,则将接收的交易数据存储在交易转发队列中;若交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据;在接收交易数据的同时还可以根据预先确定的交易转发频率,取出交易转发队列中所有的交易数据进行转发。本申请提供的技术方案通过设置交易池和交易转发队列的方式,增加接收交易请求和交易转发的限制,从源头限制了每次转发交易的总大小和区块总大小,同时采用了基于令牌桶算法的通信机制,最终实现了对共识节点的限流,又避免了共识超时的问题,进而提高了整个区块链系统的可用性。
基于同一发明构思,作为对上述方法的实现,本申请实施例提供了一种带宽限流装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
图4为本申请实施例提供的带宽限流装置的结构示意图,如图4所示,本实施例提供的装置包括:
接收模块110,用于接收交易数据,若预设的交易转发队列中交易数据的总大小不超过预先确定的队列限制字节数,则将接收的交易数据存储在交易转发队列中;若交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据;
发送模块120,用于根据预先确定的交易转发频率,取出交易转发队列中所有的交易数据进行转发。
可选的,该装置还包括:
确定模块100,用于
根据预设的限流参数配置文件,确定交易转发频率、总带宽和限流比例,限流比例为转发交易数据所占用的带宽占总带宽的最大比例,并根据交易转发频率、总带宽和限流比例,确定队列限制字节数。
可选的,采用如下公式确定队列限制字节数:
其中,A表示队列限制字节数、K表示总带宽,其单位为比特、R表示限流比例、f表示交易转发频率、N表示预设的对端节点数量。
可选的,在队列限制字节数小于预设的最大网络消息大小,且共识带宽满足预设的共识消息发送条件的情况下,接收交易数据,共识带宽是根据限流比例确定的,共识带宽用于指示发送共识消息可占用的带宽。
可选的,在队列限制字节数大于或等于最大网络消息大小,或者共识带宽不满足共识消息发送条件的情况下,输出限流参数配置失败信息。
可选的,接收模块110,还用于若预设的交易池中待打包的交易个数未超过预设的交易池允许的最大个数,且交易转发队列中交易数据的总大小不超过队列限制字节数,则将接收的交易数据存储在交易转发队列中;若交易池中待打包的交易数据的个数超过交易池允许的最大个数,或交易转发队列中交易数据的总大小超过队列限制字节数,则暂停向交易转发队列中存储交易数据;
该装置还包括:
共识模块130,用于将转发的交易数据存储到交易池中,并根据预先确定的区块转发频率和区块限制字节数,从交易池中取出预设数量的交易数据进行排序,并打包成块进行共识。
可选的,确定模块100,还用于根据预设的限流参数配置文件,确定最大网络消息大小,并根据最大网络消息大小,确定区块限制字节数。
可选的,发送模块120具体用于:
取出交易转发队列中所有的交易数据封装成交易集数据包:
采用令牌桶算法向所有对端节点发送交易集数据包。
可选的,每个对端节点均设置一个令牌桶,发送模块120具体用于:
根据交易集数据包的大小,获取相应数量的令牌;
在获取到足够的令牌后,向对应的对端节点发送交易集数据包,其中,令牌的恢复速率为预设的总带宽数值除以令牌桶的个数。
本实施例提供的带宽限流装置可以执行上述方法实施例,其实现原理与技术效果类似,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
基于同一发明构思,本申请实施例还提供了一种电子设备。图5为本申请实施例提供的电子设备的结构示意图,如图5所示,本实施例提供的电子设备包括:存储器21和处理器20,存储器21用于存储计算机程序;处理器20用于在调用计算机程序22时执行上述方法实施例所述的方法。
本实施例提供的电子设备可以执行上述方法实施例,其实现原理与技术效果类似,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例所述的方法。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (9)
1.一种带宽限流方法,其特征在于,包括:
根据预设的限流参数配置文件,确定交易转发频率、总带宽和限流比例,所述限流比例为转发交易数据所占用的交易带宽占所述总带宽的最大比例;所述总带宽由交易带宽以及用于发送共识消息的共识带宽组成;
根据所述交易转发频率、所述总带宽和所述限流比例,确定队列限制字节数;
接收交易数据;
若预设的交易转发队列中交易数据的总大小不超过预先确定的队列限制字节数,则将接收的所述交易数据存储在所述交易转发队列中;其中,队列限制字节数是执行一次转发任务中所能发送的交易数据大小的最大值;
若所述交易转发队列中交易数据的总大小超过所述队列限制字节数,则暂停向所述交易转发队列中存储交易数据;
根据预先确定的交易转发频率,取出所述交易转发队列中所有的交易数据进行转发。
3.根据权利要求1所述的方法,其特征在于,在所述队列限制字节数小于预设的最大网络消息大小,且共识带宽满足预设的共识消息发送条件的情况下,接收交易数据,所述共识带宽是根据所述限流比例确定的,所述共识带宽用于指示发送共识消息可占用的带宽。
4.根据权利要求3所述的方法,其特征在于,在所述队列限制字节数大于或等于所述最大网络消息大小,或者所述共识带宽不满足所述共识消息发送条件的情况下,输出限流参数配置失败信息。
5.根据权利要求1所述的方法,其特征在于,在所述接收交易数据之后,所述方法还包括:
若预设的交易池中待打包的交易个数未超过预设的交易池允许的最大个数,且所述交易转发队列中交易数据的总大小不超过所述队列限制字节数,则将接收的所述交易数据存储在所述交易转发队列中;
若所述交易池中待打包的交易数据的个数超过所述交易池允许的最大个数,或所述交易转发队列中交易数据的总大小超过所述队列限制字节数,则暂停向所述交易转发队列中存储交易数据;
在所述取出所述交易转发队列中所有的交易数据进行转发之后,所述方法还包括:
将转发的交易数据存储到所述交易池中;
根据预先确定的区块转发频率和区块限制字节数,从所述交易池中取出预设数量的交易数据进行排序,并打包成块进行共识。
6.根据权利要求5所述的方法,其特征在于,在所述接收交易数据之前,所述方法还包括:
根据预设的限流参数配置文件,确定最大网络消息大小;
根据所述最大网络消息大小,确定所述区块限制字节数。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述取出所述交易转发队列中所有的交易数据进行转发,包括:
取出所述交易转发队列中所有的交易数据封装成交易集数据包:
采用令牌桶算法向所有对端节点发送所述交易集数据包。
8.根据权利要求7所述的方法,其特征在于,每个对端节点均设置一个令牌桶,所述采用令牌桶算法向所有对端节点发送所述交易集数据包,包括:
根据所述交易集数据包的大小,获取相应数量的令牌;
在获取到预设数量的令牌后,向对应的对端节点发送所述交易集数据包,其中,所述令牌的恢复速率为预设的总带宽数值除以令牌桶的个数。
9.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在调用所述计算机程序时执行如权利要求1-8任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110333259.8A CN113132253B (zh) | 2021-03-29 | 2021-03-29 | 带宽限流方法和电子设备 |
PCT/CN2021/139323 WO2022206044A1 (zh) | 2021-03-29 | 2021-12-17 | 带宽限流方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110333259.8A CN113132253B (zh) | 2021-03-29 | 2021-03-29 | 带宽限流方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113132253A CN113132253A (zh) | 2021-07-16 |
CN113132253B true CN113132253B (zh) | 2022-09-16 |
Family
ID=76774226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110333259.8A Active CN113132253B (zh) | 2021-03-29 | 2021-03-29 | 带宽限流方法和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113132253B (zh) |
WO (1) | WO2022206044A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132253B (zh) * | 2021-03-29 | 2022-09-16 | 杭州趣链科技有限公司 | 带宽限流方法和电子设备 |
CN113821569B (zh) * | 2021-09-30 | 2024-02-06 | 广州智链未来科技有限公司 | 一种区块链的共识方法及区块链 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109379397A (zh) * | 2018-08-31 | 2019-02-22 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN110012100A (zh) * | 2019-04-09 | 2019-07-12 | 杭州秘猿科技有限公司 | 一种带宽优化的区块链共识方法、装置及电子设备 |
WO2019193363A1 (en) * | 2018-04-05 | 2019-10-10 | Electroneum Ltd | Hybrid blockchain transaction system |
CN110601995A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 在区块链网络中控制流量的方法、装置、存储介质和设备 |
CN112333110A (zh) * | 2020-10-30 | 2021-02-05 | 深圳壹账通智能科技有限公司 | 基于漏斗限流模型的请求验证处理方法及相关设备 |
US10944812B1 (en) * | 2018-05-30 | 2021-03-09 | Amazon Technologies, Inc. | Dynamic throttling for data consensus groups |
CN112565104A (zh) * | 2020-12-01 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 区块链系统的流量控制方法、装置、介质及电子设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8380575B2 (en) * | 2009-12-15 | 2013-02-19 | Trading Technologies International, Inc. | System and methods for risk-based prioritized transaction message flow |
CN107241279A (zh) * | 2017-06-22 | 2017-10-10 | 北京天德科技有限公司 | 一种基于多级缓冲队列的区块链交易限流方法 |
US10728166B2 (en) * | 2017-06-27 | 2020-07-28 | Microsoft Technology Licensing, Llc | Throttling queue for a request scheduling and processing system |
US10691648B2 (en) * | 2018-07-03 | 2020-06-23 | International Business Machines Corporation | Controlling volatility via blockchain |
US20200013025A1 (en) * | 2018-07-06 | 2020-01-09 | International Business Machines Corporation | Conditional deferred transactions for blockchain |
CN110838065A (zh) * | 2019-10-24 | 2020-02-25 | 腾讯云计算(北京)有限责任公司 | 一种交易数据处理方法及装置 |
CN111324449A (zh) * | 2019-12-13 | 2020-06-23 | 杭州复杂美科技有限公司 | 内存池的交易存储和广播方法、设备和存储介质 |
CN111400043A (zh) * | 2020-03-13 | 2020-07-10 | 杭州复杂美科技有限公司 | 交易池管理方法、设备和存储介质 |
CN113132253B (zh) * | 2021-03-29 | 2022-09-16 | 杭州趣链科技有限公司 | 带宽限流方法和电子设备 |
-
2021
- 2021-03-29 CN CN202110333259.8A patent/CN113132253B/zh active Active
- 2021-12-17 WO PCT/CN2021/139323 patent/WO2022206044A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019193363A1 (en) * | 2018-04-05 | 2019-10-10 | Electroneum Ltd | Hybrid blockchain transaction system |
US10944812B1 (en) * | 2018-05-30 | 2021-03-09 | Amazon Technologies, Inc. | Dynamic throttling for data consensus groups |
CN109379397A (zh) * | 2018-08-31 | 2019-02-22 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN110012100A (zh) * | 2019-04-09 | 2019-07-12 | 杭州秘猿科技有限公司 | 一种带宽优化的区块链共识方法、装置及电子设备 |
CN110601995A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 在区块链网络中控制流量的方法、装置、存储介质和设备 |
CN112333110A (zh) * | 2020-10-30 | 2021-02-05 | 深圳壹账通智能科技有限公司 | 基于漏斗限流模型的请求验证处理方法及相关设备 |
CN112565104A (zh) * | 2020-12-01 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 区块链系统的流量控制方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2022206044A1 (zh) | 2022-10-06 |
CN113132253A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113132253B (zh) | 带宽限流方法和电子设备 | |
JP6430462B2 (ja) | バーチャルマシン通信トラフィックを成形すること | |
CN100574323C (zh) | 网络处理器的动态网络安全装置及方法 | |
CN105379208B (zh) | 用于互联网协议的多连接系统和方法 | |
CN111641563B (zh) | 基于分布式场景的流量自适应方法与系统 | |
CN110599136A (zh) | 区块链交易池流量管控方法以及装置 | |
CN112948120A (zh) | 负载均衡方法、系统、装置和存储介质 | |
CN112468407A (zh) | 数据分包传输方法、装置、计算机设备和存储介质 | |
CN110598416A (zh) | 交易调度方法及装置 | |
CN107343037B (zh) | 一种分布式存储系统的数据传输方法及装置 | |
CN117176735A (zh) | 基于云边端的区块链共识机制自适应选择方法及系统 | |
CN105100072A (zh) | 一种网络节点监测方法及装置 | |
CN107592361B (zh) | 一种基于双ib网络的数据传输方法、装置、设备 | |
CN114189477B (zh) | 一种报文拥塞控制方法及装置 | |
CN111182551B (zh) | 网络安全防护方法和系统 | |
CN114785805A (zh) | 一种数据传输方法、装置、电子设备以及存储介质 | |
CN105959300B (zh) | 一种DDoS攻击防护的方法及装置 | |
CN109905320B (zh) | 一种聚合端口的报文分配方法和装置 | |
CN112422305B (zh) | 通信设备的升级方法及装置 | |
CN113162990B (zh) | 消息发送方法、装置、设备和存储介质 | |
CN113709053B (zh) | 一种基于流定义的分流方法及装置 | |
CN112995988B (zh) | 一种基于无线网络设备多网口的网口分配方法及装置 | |
CN116841931A (zh) | 一种基于服务总线系统的接口熔断的方法及装置 | |
CN108111431A (zh) | 业务数据发送方法及装置 | |
CN117978734A (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 |