一种区块同步方法、设备和存储介质技术

技术编号:21838826 阅读:34 留言:0更新日期:2019-08-10 20:27
本发明专利技术提供一种区块链同步方法、设备和存储介质,该方法包括:若干区块链节点下载第一区块高度区间的各区块,并将下载的区块保存在本地数据库,以及,下载完所述第一区块高度区间的各区块后继续下载所述第一区块高度区间后的第二区块高度区间的各区块,直到最新的区块高度;按照区块高度从小到大的顺序依次读取并执行所述本地数据库中的各区块;其中,上述两个步骤独立并行执行。本发明专利技术诸多实施例提供的区块同步方法、设备和存储介质通过将区块下载任务和区块执行任务分为两个独立任务执行,在下载任务完成后继续请求下一区块区间以供区块大大提高了区块同步的效率。

A Block Synchronization Method, Equipment and Storage Media

【技术实现步骤摘要】
一种区块同步方法、设备和存储介质
本申请涉及区块链
,具体涉及一种区块同步方法、设备和存储介质。
技术介绍
现有的区块链技术中,区块同步的方法是向多个区块链节点请求一个区间的区块,并按照区块高度顺序执行,等请求的所有区块都被顺序执行后才能进行下一区间区块的请求,现有的技术中,由于多个区块节点的网速不同,会出现后面区块高度的区块已经下载成功,而前面高度的区块高度还未被下载的情况,这时即使后面的区块已经下载成功,也无法成功执行,只能先保存在内存中,等待前面的区块下载并执行完成后才能执行,由此,一方面,大量的内存被占用,导致节点运行速度变慢,另一方面,导致区块同步的时间大大延长,效率很低。
技术实现思路
鉴于现有技术中的上述缺陷或不足,期望提供一种快速高效的区块同步方法、设备和存储介质。第一方面,本专利技术提供一种区块同步方法,包括:向若干区块链节点下载第一区块高度区间的各区块,并将下载的区块保存在本地数据库,以及,下载完所述第一区块高度区间的各区块后继续下载所述第一区块高度区间后的第二区块高度区间的各区块,直到最新的区块高度;按照区块高度从小到大的顺序依次读取并执行所述本地数据库中的各区块;其中,上述两个步骤独立并行执行。进一步,还包括:执行第一区块成功后,在本地数据库中删除所述第一区块。进一步,所述向若干区块链节点下载第一区块高度区间的各区块包括:向若干区块链节点分别发送若干对应的各区块区间下载请求信息;其中,区块高度信息包括请求的多个区块的区块高度信息。第二方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的区块同步方法。第三方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的区块同步方法。专利技术的有益效果本专利技术诸多实施例提供的区块同步方法、设备和存储介质通过将区块下载任务和区块执行任务分为两个独立任务执行,在下载任务完成后继续请求下一区块区间以供区块大大提高了区块同步的效率。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本专利技术一实施例提供的一种区块同步方法的流程图。图2为图1所示方法的一优选实施方式的场景图。图3为图1所述方法的一种优选实施方式的流程图。图4为本专利技术一实施例提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1为本专利技术一实施例提供的一种区块同步方法的流程图。如图1所示,在本实施例中,本专利技术提供一种区块同步方法,包括:S11、向若干区块链节点下载第一区块高度区间的各区块,并将下载的区块保存在本地数据库,以及,下载完所述第一区块高度区间的各区块后继续下载所述第一区块高度区间后的第二区块高度区间的各区块,直到最新的区块高度;S12、按照区块高度从小到大的顺序依次读取并执行所述本地数据库中的各区块;具体地,以图2所示场景为例,步骤S11中,当前节点启动任务一,即向若干区块链节点分别请求第一区块高度区间的区块进行下载,如,向节点A请求区块高度为1-128的区块进行下载,向节点B请求区块高度为129-356的区块进行下载,向节点C请求区块高度为357-484的区块进行下载,并将下载完成的上述区块保存在本地数据库中,下载完上述各区块以后,再次向区块链节点请求后续的区块,如向节点A请求485-613的区块,以此类推,直到最新的区块高度下载完成。步骤S12中,在任务一开始执行时,任务二同时开始执行,即向本地数据库中按照区块高度从小到大的顺序获取区块并开始执行该区块。在更堵实施例中,任务一完成所有的区块下载后退出下载任务,任务二在执行完本地数据库中的所有区块后退出执行任务。图3为图1所述方法的一种优选实施方式的流程图。如图3所示,在一优选实施例中,上述方法还包括:执行第一区块成功后,在本地数据库中删除第一区块。具体地,在当前节点的任务二从本地数据库中获取到第一区块后,就删除存储在本地数据库的该第一区块。在更多实施例中,除了上述所述的向区块链节点每次申请一个区块高度区间的区块,还可以是向一个区块链节点一次申请多个区块高度区间的区块,具体的,如可以向区块链节点A请求1-128区块,和357-484区块,向节点B请求129-356和485-613区块,等等。这样既可以让每个节点的网络充分利用起来,提高下载效率,还能减少请求的次数,缩短请求时间。图4为本专利技术一实施例提供的一种设备的结构示意图。如图4所示,作为另一方面,本申请还提供了一种设备400,包括一个或多个中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM403中,还存储有设备400操作所需的各种程序和数据。CPU401、ROM402以及RAM403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。特别地,根据本公开的实施例,上述任一实施例描述的区块同步方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行区块同步方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的区块同步方法。附图中的流程图和框图,图示了按照本专利技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行本文档来自技高网...

【技术保护点】
1.一种区块同步方法,其特征在于,包括:向若干区块链节点下载第一区块高度区间的各区块,并将下载的区块保存在本地数据库,以及,下载完所述第一区块高度区间的各区块后继续下载所述第一区块高度区间后的第二区块高度区间的各区块,直到最新的区块高度;按照区块高度从小到大的顺序依次读取并执行所述本地数据库中的各区块;其中,上述两个步骤独立并行执行。

【技术特征摘要】
1.一种区块同步方法,其特征在于,包括:向若干区块链节点下载第一区块高度区间的各区块,并将下载的区块保存在本地数据库,以及,下载完所述第一区块高度区间的各区块后继续下载所述第一区块高度区间后的第二区块高度区间的各区块,直到最新的区块高度;按照区块高度从小到大的顺序依次读取并执行所述本地数据库中的各区块;其中,上述两个步骤独立并行执行。2.根据权利要求1所述的方法,其特征在于,还包括:执行第一区块成功后,在本地数据库中删除所述第一区块。3.根据权利要求1或2所述的方法,其特征在...

【专利技术属性】
技术研发人员:何玉斌王志文吴思进
申请(专利权)人:杭州复杂美科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1