共识交易发送方法、设备和存储介质与流程

文档序号:18623700发布日期:2019-09-06 22:45阅读:229来源:国知局
共识交易发送方法、设备和存储介质与流程

本申请涉及区块链技术领域,具体涉及一种共识交易发送方法、设备和存储介质。



背景技术:

平行链的共识节点需要将共识交易发送到主链进行打包并共识,共识交易也需要花费手续费;例如,平行链共识节点m向主链节点发送了区块高度为100的平行链区块的共识交易tx100,tx100被主链节点打包却还未被共识之前,节点m就继续向主链节点发送了区块高度为101的平行链区块的共识交易tx101,造成手续费浪费;又例如,平行链共识节点n是一个新加入平行链的共识节点,由于平行链的共识高度已达到100,节点n如果继续将tx1~tx100向主链发送,则造成手续费浪费;

又比如,在现有的区块链技术中,平行链共识节点只要生成一笔共识交易就向主链节点发送,为了提升共识交易的共识效率,将多笔交易打包成一个交易组再发送给主链,在此种场景下,若不同的主链节点产生分叉并进行回滚,平行链节点跟随主链进行回滚,会造成部分共识交易漏发,导致共识停止的后果。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种共识交易不漏发并节省手续费的共识交易发送方法、设备和存储介质。

第一方面,本发明提供一种共识交易发送方法,适用于平行链的共识节点,第一高度为成功被主链打包并执行的共识交易或共识交易组的平行链区块高度,第二高度为平行链的共识高度,该方法包括:

判断当前节点的第一高度是否大于第二高度:

是,则中止向主链节点发送共识交易或共识交易组,直到当前节点的第一高度等于第二高度。

第二方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的共识交易发送方法。

第三方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的共识交易发送方法。

本发明诸多实施例提供的共识交易发送方法、设备和存储介质通过判断当前节点的第一高度是否大于第二高度:是,则中止向主链节点发送共识交易或共识交易组,直到当前节点的第一高度等于第二高度的方法,保证第一高度与第二高度在同步的情况下才发送共识交易或共识交易组,降低手续费的支出。

本发明一些实施例提供的共识交易发送方法、设备和存储介质进一步通过响应于当前节点发生回滚,判断当前节点的第三高度是否大于第二高度:是,则将第三高度配置为第二高度加一的方法,使得回滚后,从分叉高度最近的共识高度开始发送共识交易,保证共识交易不漏发。

本发明一些实施例提供的共识交易发送方法、设备和存储介质进一步通过判断第三高度是否小于第二高度:是,则中止向主链节点发送共识交易或共识交易组,将第三高度配置为第二高度加一的方法,使得新加入平行链的共识节点不重复向主链节点发送已共识的共识交易,降低手续费的支出。

本发明一些实施例提供的共识交易发送方法、设备和存储介质进一步通过判断第三高度是否大于第二高度加一之和:是,则中止向主链节点发送共识交易或共识交易组,将第三高度配置为第二高度加一的方法,使得平行链共识节点在宕机重连主链时,不重复向主链节点发送已共识的共识交易,降低手续费的支出。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明一实施例提供的一种共识交易发送方法的流程图。

图2为图1所示方法的一种优选实施方式的流程图。

图3为图2所示方法的一种优选实施方式的流程图。

图4为图2所示方法的一种优选实施方式的流程图。

图5为本发明一实施例提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1为本发明一实施例提供的一种共识交易发送方法的流程图。如图1所示,在本实施例中,本发明提供一种共识交易发送方法,第一高度(h1)为成功被主链打包并执行的共识交易或共识交易组的平行链区块高度,第二高度(h2)为平行链的共识高度,上述方法包括:

s12:判断当前节点的第一高度是否大于第二高度:

是,则执行步骤s14:中止向主链节点发送共识交易或共识交易组,直到当前节点的第一高度等于第二高度。

假设有第一应用场景,第一应用场景如下:

平行链的共识节点需要将共识交易发送到主链进行打包并共识,共识交易也需要花费手续费,假设当前平行链共识节点为节点a,节点a对应的主链节点为节点a;节点a向主链节点发送了区块高度为30的平行链区块的共识交易tx30,tx30被主链节点打包却还未被共识之前,节点a就继续向节点a发送了区块高度为31的平行链区块的共识交易tx31,造成手续费浪费;

针对第一应用场景所产生的问题,可以通过步骤s12、步骤s14解决;

在步骤s12中,节点a判断h1是否大于h2:

由于h1为31,h2为30,则执行步骤s14:节点a中止向节点a发送共识交易或共识交易组,直到节点a的h1等于h2等于31。

上述实施例保证第一高度与第二高度在同步的情况下才发送共识交易或共识交易组,降低手续费的支出。

图2为图1所示方法的一种优选实施方式的流程图。如图2所示,在一优选实施例中,第三高度(h3)为待发送的共识交易的平行链区块高度或待发送的共识交易组的最小平行链区块高度,上述方法还包括:

s22:响应于当前节点发生回滚,判断当前节点的第三高度是否大于第二高度:

是,则执行步骤s24:将第三高度配置为第二高度加一。

假设有第二应用场景,第二应用场景如下:

主链节点分叉发生回滚,导致平行链节点跟着发生回滚。主链节点回滚时将原有数据全部抹去,假设block(主_60)对应的平行链区块为block(平_45),block(主_50)对应的平行链区块为block(平_42);回滚后,主链节点上记录的h2为40;

按照现有技术中的交易组发送方法,应从平行链区块高度为43的共识交易开始发送,即现有技术中,h3被配置为43;但是由于回滚后,主链节点上记录的h2为40,应从平行链区块高度为41的共识交易开始发送,即在本技术方案中,h3被配置为41;若按照现有技术中的交易组发送方法,主链中最终会漏掉平行链区块高度为41、平行链区块高度为42的共识交易。

针对第二应用场景所产生的问题,可以通过步骤s22、步骤s24解决;假设当前平行链共识节点为节点b;

在步骤s22中,节点b响应于当前节点发生回滚,判断节点b的h3是否大于h2:

由于节点b的h3为42,h2为40,h3大于h2,则执行步骤s24,节点b将h3配置为h2+1等于41。

上述实施例使得回滚后,从分叉高度最近的共识高度开始发送共识交易,保证共识交易不漏发。

图3为图2所示方法的一种优选实施方式的流程图。如图3所示,在一优选实施例中,上述方法还包括:

s32:判断第三高度是否小于第二高度:

是,则执行步骤s34:中止向主链节点发送共识交易或共识交易组,将第三高度配置为第二高度加一。

假设有第三应用场景,第三应用场景如下:

节点c为新加入平行链的共识节点,节点c对应的主链节点为节点c;节点c的h3此时为0;主链上记录有平行链的共识高度,平行链的共识高度为50,表示平行链中已有其它共识节点已向主链节点发送过若干共识交易或共识交易组,且这些共识交易或共识交易组已经达成共识,节点c若再向节点c发送已被共识的共识交易tx1~tx50,则浪费手续费。

针对第三应用场景所产生的问题,可以通过步骤s32、步骤s34解决;

在步骤s32中,节点c判断h3是否小于h2:

由于h3为0,小于h2为50,则执行步骤s34,节点c中止向节点c发送共识交易或共识交易组,将h3配置为h2+1等于51。

上述实施例使得新加入平行链的共识节点不重复向主链节点发送已共识的共识交易,降低手续费的支出。

图4为图2所示方法的一种优选实施方式的流程图。如图4所示,在一优选实施例中,上述方法还包括:

s42:判断第三高度是否大于第二高度加一之和:

是,则执行步骤s44:中止向主链节点发送共识交易或共识交易组,将第三高度配置为第二高度加一。

假设有第四应用场景,第四应用场景如下:

假设当前平行链共识节点为节点d,节点d对应的主链节点为节点d;节点d在宕机前,h2为60;当节点d宕机重连主链后,发现节点d上的h2已经更新为63,节点d的h3应配置为64,此时若节点d再向节点d发送已被共识的共识交易tx61~tx63,则浪费手续费。

针对第四应用场景所产生的问题,可以通过步骤s42、步骤s44解决;

在步骤s42中,节点d判断h3是否大于h2+1:

由于节点d的h3为64,h2+1为61,则执行步骤s44,节点d中止向节点d发送共识交易或共识交易组,将h3配置为h2+1等于64。

上述实施例使得平行链共识节点在宕机重连主链时,不重复向主链节点发送已共识的共识交易,降低手续费的支出。

在更多实施例中,针对第一应用场景所产生的问题、第二应用场景所产生的问题、第三应用场景所产生的问题、第四应用场景所产生的问题所提出的各方案可以进行任意组合。

在一优选实施例中,上述方法还包括:

向主链节点发送获取第一高度的第一请求信息以获取第一高度;

向主链节点发送获取第二高度的第二请求信息以获取第二高度。

在更多实施例中,还可以通过遍历主链区块所记录的数据以获得第一高度及第二高度,可实现相同的技术效果。

图5为本发明一实施例提供的一种设备的结构示意图。

如图5所示,作为另一方面,本申请还提供了一种设备500,包括一个或多个中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有设备500操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

特别地,根据本公开的实施例,上述任一实施例描述的共识交易发送方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行共识交易发送方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。

作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的共识交易发送方法。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1