限速方法、设备和存储介质转让专利

申请号 : CN202010176365.5

文献号 : CN111404781B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林敬王志文吴思进

申请人 : 杭州复杂美科技有限公司

摘要 :

本发明提供一种限速方法、设备和存储介质,该方法包括:在当前节点上传数据拥堵时,监测是否存在区块同步任务:是,则根据预配置的限速规则对区块同步任务所占用的流量进行限速;以及,在预配置的时长后监测当前节点上传数据是否拥堵:是,则根据限速规则对限速后的区块同步任务所占用的流量进行限速,并返回在预配置的时长后监测当前节点上传数据是否拥堵。本申请对区块链节点的网络流量进行有效管理。

权利要求 :

1.一种限速方法,其特征在于,适用于区块链节点,所述方法包括:在当前节点上传数据拥堵时,判断广播数据任务的第二列表是否为空:不为空时,则监测是否存在区块同步任务:存在所述区块同步任务时,则根据预配置的限速规则对所述区块同步任务所占用的流量进行限速;以及,

在预配置的时长后监测所述第二列表所剩余的容量是否大于预配置的第一数值:是,则根据所述限速规则对限速后的所述区块同步任务所占用的流量进行限速,并返回所述在预配置的时长后监测所述第二列表所剩余的容量是否大于预配置的第一数值;

其中,所述区块同步任务包括向其它区块链节点发送区块和/或区块头,所述广播数据任务包括向其它区块链节点广播区块和/或交易,所述第二列表用于存储待广播的第一类交易和/或待广播的第一类区块任务,所述第一类交易任务的交易由其它区块链节点广播,所述第一类区块任务的区块由其它区块链节点生成并广播。

2.根据权利要求1所述的方法,其特征在于,还包括:判断所述区块同步任务的第一列表中是否有足够的容量存储待发送的区块和/或区块头任务:

是,则将待发送的区块和/或区块头任务存入第一列表中;

否,则丢弃待发送的区块和/或区块头任务。

3.根据权利要求1所述的方法,其特征在于,还包括:判断所述第二列表中是否有足够的容量存储待广播的第一类交易和/或第一类区块任务:

是,则将所述第二列表中最靠前的若干交易和/或区块删除以存入待广播的第一类交易和/或第一类区块任务。

4.根据权利要求1所述的方法,其特征在于,还包括:监测是否存在节点信息请求任务:是,则立即执行所述节点信息请求任务。

5.根据权利要求4所述的方法,其特征在于,所述在当前节点上传数据拥堵时前,还包括:

设置所述节点信息请求任务、所述区块同步任务、所述广播数据任务所占用的流量总量的上限。

6.一种计算机设备,其特征在于,所述设备包括:一个或多个处理器;

存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1‑5中任一项所述的方法。

7.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1‑5中任一项所述的方法。

说明书 :

限速方法、设备和存储介质

技术领域

[0001] 本申请涉及区块链技术领域,具体涉及一种限速方法、设备和存储介质。

背景技术

[0002] 在现有的区块链技术中,网络流量没有进行有效的管理。

发明内容

[0003] 鉴于现有技术中的上述缺陷或不足,期望提供一种有效管理节点网络流量的限速方法、设备和存储介质。
[0004] 第一方面,本发明提供一种适用于区块链节点的限速方法,上述方法包括:
[0005] 在当前节点上传数据拥堵时,监测是否存在区块同步任务:
[0006] 是,则根据预配置的限速规则对区块同步任务所占用的流量进行限速;以及,
[0007] 在预配置的时长后监测当前节点上传数据是否拥堵:是,则根据限速规则对限速后的区块同步任务所占用的流量进行限速,并返回在预配置的时长后监测当前节点上传数
据是否拥堵;
[0008] 其中,区块同步任务包括向其它区块链节点发送区块和/或区块头。
[0009] 第二方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各
实施例提供的限速方法。
[0010] 第三方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的限速方法。
[0011] 本发明诸多实施例提供的限速方法、设备和存储介质通过在当前节点上传数据拥堵时,监测是否存在区块同步任务:是,则根据预配置的限速规则对区块同步任务所占用的
流量进行限速;以及,在预配置的时长后监测当前节点上传数据是否拥堵:是,则根据限速
规则对限速后的区块同步任务所占用的流量进行限速,并返回在预配置的时长后监测当前
节点上传数据是否拥堵的方法,对网络流量进行有效管理。

附图说明

[0012] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0013] 图1为本发明一实施例提供的一种限速方法的流程图。
[0014] 图2为图1所示方法的一种优选实施方式的流程图。
[0015] 图3为图1所示方法的一种优选实施方式的流程图。
[0016] 图4为图3所示方法的一种优选实施方式的流程图。
[0017] 图5为图4所示方法的一种优选实施方式的流程图。
[0018] 图6为图5所示方法的一种优选实施方式的流程图。
[0019] 图7为本发明一实施例提供的一种设备的结构示意图。

具体实施方式

[0020] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了
便于描述,附图中仅示出了与发明相关的部分。
[0021] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0022] 图1为本发明一实施例提供的一种限速方法的流程图。如图1所示,在本实施例中,本发明提供一种适用于区块链节点的限速方法,上述方法包括:
[0023] S12:在当前节点上传数据拥堵时,监测是否存在区块同步任务:
[0024] 是,则执行步骤S13:根据预配置的限速规则对区块同步任务所占用的流量进行限速;以及,
[0025] S14:在预配置的时长后监测当前节点上传数据是否拥堵:是,则根据限速规则对限速后的区块同步任务所占用的流量进行限速,并返回在预配置的时长后监测当前节点上
传数据是否拥堵;
[0026] 其中,区块同步任务包括向其它区块链节点发送区块和/或区块头。
[0027] 具体地,以预配置的限速规则为将区块同步任务所占用的流量限速至当前区块同步任务所占用流量的50%,预配置的时长为2分钟为例;
[0028] 区块链节点执行步骤S12,在当前节点上传数据拥堵时,监测是否存在区块同步任务:
[0029] 是,则执行步骤S13:将区块同步任务所占用的流量限速至当前区块同步任务所占用流量的50%,假设当前区块同步任务所占用的流量为1M,此时限速为512kb;以及,
[0030] 区块链节点执行步骤S141,在2分钟后监测当前节点上传数据是否拥堵:是,则执行步骤S142:将区块同步任务所占用的流量限速至原占用流量的50%,由于限速后的区块
同步任务所占用的流量为512kb,此时限速为256kb,并返回在预配置的时长后监测当前节
点上传数据是否拥堵;
[0031] 区块链节点在2分钟后监测当前节点上传数据不拥堵时,解除区块同步任务的流量限速恢复为1M;
[0032] 在当前节点上传数据拥堵,且不存在区块同步任务时,不对网络流量进行限速操作。
[0033] 在更多实施例中,预配置的限速规则不以上述举例为限,还可以根据实际需求配置,例如,配置为将区块同步任务所占用的流量限速至当前区块同步任务所占用流量的
40%,可实现相同的技术效果。
[0034] 在更多实施例中,预配置的时长不以上述举例为限,还可以根据实际需求进行配置,例如,配置为30秒,可实现相同的技术效果。
[0035] 在更多实施例中,还可以根据实际需求配置在当前节点上传数据拥堵,且不存在区块同步任务时的操作,例如,配置为对将要产生的区块同步任务所占用的流量进行限速,
可实现相同的技术效果。
[0036] 在更多实施例中,还可以根据实际需求配置区块链节点在2分钟后监测当前节点上传数据不拥堵时的操作,例如,配置为解除区块同步任务的流量限速恢复为上一次限速
的速度,即512kb,可实现相同的技术效果。
[0037] 在更多实施例中,还可以根据实际需求将最终限速的速度记录下来,作为下一次区块同步任务进行限速的参考初始值。
[0038] 上述实施例对区块链节点的网络流量进行有效管理。
[0039] 图2为图1所示方法的一种优选实施方式的流程图。如图2所示,在一优选实施例中,上述方法还包括:
[0040] S151:判断区块同步任务的第一列表中是否有足够的容量存储待发送的区块和/或区块头任务:
[0041] 是,则执行步骤S152:将待发送的区块和/或区块头任务存入第一列表中;
[0042] 否,则执行步骤S153:丢弃待发送的区块和/或区块头任务。
[0043] 由于区块同步任务的特性,即,对端区块链节点会向当前节点重复请求区块和/或区块头,或,在当前节点上传数据拥堵无法将请求的区块和/或区块头发送给对端节点时,
对端区块链节点会向其它区块链节点请求所需的区块和/或区块头;因此,第一列表中没有
足够的容量存储待发送的区块和/或区块头任务时,丢弃待发送的区块和/或区块头任务。
[0044] 上述实施例对区块链节点的区块同步任务的存储和丢弃进行有效管理。
[0045] 图3为图1所示方法的一种优选实施方式的流程图。如图3所示,在一优选实施例中,步骤S12包括:
[0046] S121:在当前节点上传数据拥堵时,判断广播数据任务的第二列表是否为空:
[0047] 否,则执行步骤S122:监测是否存在区块同步任务;其中,广播数据任务包括向其它区块链节点广播区块和/或交易,第二列表用于存储待广播的第一类交易和/或待广播的
第一类区块任务,第一类交易任务的交易由其它区块链节点广播,第一类区块任务的区块
由其它区块链节点生成并广播;
[0048] 步骤S141包括:
[0049] S1411:在时长后监测第二列表所剩余的容量是否大于预配置的第一数值;
[0050] 步骤S142包括:
[0051] S1421:根据限速规则对限速后的区块同步任务所占用的流量进行限速,并返回在时长后监测第二列表所剩余的容量是否大于预配置的第一数值。
[0052] 具体地,假设预配置的第一数值为第二列表的总容量*60%;
[0053] 在当前节点上传数据不拥堵时,当前节点在收到其它区块链节点广播的区块和/或交易时,立即广播该待广播的区块和/或交易;
[0054] 在当前节点上传数据拥堵,且第二列表有足够的容量时,当前节点在收到其它区块链节点广播的区块时,将该待广播的区块任务加入第二列表;当前节点在收到其它区块
链节点广播的交易时,将该待广播的区块任务加入第二列表;当前节点生成区块时,立即广
播所生成的区块,当前节点在收到客户端广播的交易时,立即广播该交易;
[0055] 区块链节点执行步骤S121,在当前节点上传数据拥堵时,判断广播数据任务的第二列表是否为空:
[0056] 否,则执行步骤S122:监测是否存在区块同步任务:
[0057] 是,则执行步骤S13:将区块同步任务所占用的流量限速至当前区块同步任务所占用流量的50%,假设当前区块同步任务所占用的流量为1M,此时限速为512kb;以及,
[0058] 区块链节点执行步骤S141,在2分钟后监测第二列表所剩余的容量是否大于第二列表的总容量*60%:是,则将区块同步任务所占用的流量限速至原占用流量的50%,由于
限速后的区块同步任务所占用的流量为512kb,此时限速为256kb,并返回在预配置的时长
后监测当前节点上传数据是否拥堵;
[0059] 区块链节点在2分钟后监测当前节点的第二列表所剩余的容量大于第二列表的总容量*60%时,解除区块同步任务的流量限速恢复为1M;
[0060] 在当前节点上传数据拥堵,且不存在区块同步任务时,不对网络流量进行限速操作。
[0061] 在更多实施例中,预配置的第一数值不以上述举例为限,还可以根据实际需求配置,例如,配置为第二列表的总容量*80%,可实现相同的技术效果。
[0062] 上述实施例对区块链节点的网络流量进行有效管理。
[0063] 图4为图3所示方法的一种优选实施方式的流程图。如图4所示,在一优选实施例中,上述方法还包括:
[0064] S161:判断第二列表中是否有足够的容量存储待广播的第一类交易和/或第一类区块任务:
[0065] 是,则执行步骤S162:将第二列表中最靠前的若干交易和/或区块删除以存入待广播的第一类交易和/或第一类区块任务。
[0066] 由于广播数据任务的特性,即,第二列表中的更靠前的第一类交易任务和/或待广播的第一类区块任务已由其它上传数据不拥堵的区块链节点广播;因此,第二列表中没有
足够的容量存储待发送的第一类交易和/或第一类区块任务时,第二列表中最靠前的若干
交易和/或区块删除以存入待广播的第一类交易和/或第一类区块任务。
[0067] 上述实施例对区块链节点的广播数据任务的存储和丢弃进行有效管理。
[0068] 图5为图4所示方法的一种优选实施方式的流程图。如图5所示,在一优选实施例中,上述方法还包括:
[0069] S171:监测是否存在节点信息请求任务:
[0070] 是,则执行步骤S172:立即执行节点信息请求任务。
[0071] 节点信息请求任务包括但不限于:测试与其它区块链节点是否互相建立连接;广播当前节点的节点信息;获取对端区块链节点的节点信息。
[0072] 上述实施例对区块链节点的节点信息请求任务进行有效管理。
[0073] 图6为图5所示方法的一种优选实施方式的流程图。如图6所示,在一优选实施例中,步骤S12前,还包括:
[0074] S11:设置节点信息请求任务、区块同步任务、广播数据任务所占用的流量总量的上限;例如,设置节点信息请求任务、区块同步任务、广播数据任务所占用的流量总量的上
限为Z。
[0075] 图7为本发明一实施例提供的一种设备的结构示意图。
[0076] 如图7所示,作为另一方面,本申请还提供了一种设备700,包括一个或多个中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加
载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM703中,还存
储有设备700操作所需的各种程序和数据。CPU701、ROM702以及RAM703通过总线704彼此相
连。输入/输出(I/O)接口705也连接至总线704。
[0077] 以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;
以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因
特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如
磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出
的计算机程序根据需要被安装入存储部分708。
[0078] 特别地,根据本公开的实施例,上述任一实施例描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读
介质上的计算机程序,计算机程序包含用于执行上述任一方法的程序代码。在这样的实施
例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711
被安装。
[0079] 作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配
入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该
程序被一个或者一个以上的处理器用来执行描述于本申请提供的方法。
[0080] 附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代
表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用
于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标
注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上
可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要
注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通
过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算
机指令的组合来实现。
[0081] 描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各单元可以是
设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单
元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
[0082] 以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术
方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任
意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能
的技术特征进行互相替换而形成的技术方案。