区块预打包方法、区块节点、装置及存储介质与流程

专利2022-06-29  62


本发明涉及区块链技术领域,尤其涉及一种区块预打包方法、区块节点、装置及存储介质。



背景技术:

目前包括比特币、以太坊在内的区块链处理机制都是矿工节点在交易打包的时候调用虚拟机等交易验证执行机制进行执行。当区块产生之后,需要在全网进行区块广播,那么其他节点收到区块后,对区块进行验证之后,再将交易广播出去,交易信息本身就存在二次传输的问题,另外区块交易要经过验证后才将区块进行广播,会延长交易传播覆盖全网的总时长,导致交易处理速度变慢,随着节点传播深度进一步放大。在现有的区块链处理机制下,进行区块同步的时候需要请求整个新区块的信息,并且在本地还需要通过执行区块中的每笔交易,进行交易验证,这样大大也降低了交易验证的效率。



技术实现要素:

本发明的主要目的在于提供一种区块预打包方法、区块节点、装置及存储介质,旨在解决现有区块链中交易验证效率低的技术问题。

为实现上述目的,本发明提供一种区块预打包方法,所述区块预打包方法包括以下步骤:

在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序;

在排序后的交易中选出预设数量的交易作为预打包交易;

执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组;

将分组后的预打包交易打包成预区块。

进一步地,在一实施方式中,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:

在接收到新区块的区块头以及新区块对应的交易哈希列表时,在所述交易池中获取所述交易哈希列表对应的交易;

基于所述区块头、所述交易哈希列表以及所述交易哈希列表对应的交易,生成所述新区块;

将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果。

进一步地,在一实施方式中,所述将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果的步骤包括:

依次将所述新区块中的交易分组分别与所述预区块中的交易分组进行比较,获取不匹配交易分组,其中,所述不匹配交易分组为所述新区块中交易分组,且在所述预区块中不存在所述不匹配交易分组;

执行不匹配交易分组中交易,得到所述不匹配交易分组对应的交易结果;

基于所述不匹配交易分组对应的交易结果确定所述新区块的验证结果。

进一步地,在一实施方式中,所述数据集包括第一数据,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:

在检测到挖矿成功时,基于所述预区块生成本地新区块的区块头以及所述本地新区块对应的交易哈希列表;

发送所述本地新区块的区块头以及所述本地新区块对应的交易哈希列表至所述区块节点的相邻节点。

进一步地,在一实施方式中,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:

在检测到规范链增加新区块时,清除预区块;

在所述交易池中删除规范链的新区块中包括的交易。

进一步地,在一实施方式中,所述数据集包括第二数据,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:

在检测到规范链切换时,清除预区块;

将分叉链的交易放回所述交易池;

在所述交易池中删除已打包的交易,其中,所述已打包的交易是规范链与所述分叉链对应的区块中包括的交易。

进一步地,在一实施方式中,所述区块预打包方法包括以下步骤:

在接收到新交易时,对所述新交易进行合法性检测;

在所述新交易合法时,将所述新交易放到所述交易池;

在所述新交易不合法时,将所述新交易删除。

进一步地,在一实施方式中,所述区块预打包装置包括:

排序模块,用于在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序;

选取模块,用于在排序后的交易中选出预设数量的交易作为预打包交易;

分组模块,用于执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组;

打包模块,用于将分组后的预打包交易打包成预区块。

为实现上述目的,本发明还提供一种区块节点,所述区块节点包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块预打包程序,所述区块预打包程序被所述处理器执行时实现如上所述的区块预打包方法的步骤。

此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有区块预打包程序,所述区块预打包程序被处理器执行时实现上述任一项所述区块预打包方法的步骤。

本发明在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序,而后在排序后的交易中选出预设数量的交易作为预打包交易,接下来执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组,最后将分组后的预打包交易打包成预区块。通过将预打包交易中相互关联的交易分为一组,交易以分组形式打包进入预区块,从而可以使用交易分组匹配方法进行新区块中的交易验证,提升了交易验证效率,同时极大提升提前计算的有效性。

附图说明

图1是本发明实施例方案涉及的硬件运行环境中区块节点的结构示意图;

图2为本发明区块预打包方法第一实施例的流程示意图;

图3为本发明区块预打包方法第二实施例的流程示意图;

图4为本发明区块预打包装置实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境中区块节点的结构示意图。

如图1所示,该区块节点可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的区块节点结构并不构成对区块节点的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及区块预打包程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接用户端,与用户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的区块预打包程序。

在本实施例中,终端包括:存储器1005、处理器1001及存储在所述存储器1005上并可在所述处理器1001上运行的区块预打包程序,其中,处理器1001调用存储器1005中存储的区块预打包程序时,执行本申请各个实施例提供的区块预打包方法的步骤。

本发明还提供一种区块预打包方法,参照图2,图2为本发明区块预打包方法第一实施例的流程示意图。

本发明实施例提供了区块预打包方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明区块预打包方法第一实施例,在本实施例中,区块预打包方法包括:

步骤s10,在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序;

在本实施例汇中,现在以太坊的交易是矿工节点在交易打包的时候调用evm虚拟机进行执行,当区块产生之后,需要在全网进行区块广播,那么其他节点在进行区块同步的时候需要请求整个新区块的信息,并且在本地还需要通过执行区块中的每笔交易进行验证,这样大大降低了区块生成效率以及交易验证效率。

为了解决以上问题,本发明提出了一种区块预打包方法,在区块节点挖矿的时候,同步进行“预区块打包”,将预打包交易中相互关联的交易分为一组,交易以分组形式打包进入预区块,并且保存每一笔交易执行后的状态,当区块节点挖矿成功时,直接将预区块打包进新区块,并生成新区块对应的交易哈希列表,其中,新区块由区块头和区块主体(一系列的交易)组成。此时,只需要传输新区块的区块头以及交易哈希列表,区块链中的其他节点在接收到区块头以及交易哈希列表后,可以在本地交易池内寻找交易哈希值对应的交易,如果交易池中未找到交易,则向其他节点获取该交易,从而组装成完整新区块。这样避免了在区块链中传输完整新区块,避免了交易的重复传输,同时减轻了系统传输负担。

进一步地,当区块节点接收到新区块的区块头以及交易哈希列表,并组装成完整新区块后,依次将新区块中的交易分组分别与预区块中的交易分组进行比较,从而实现对新区块中交易的交易验证。使用交易分组匹配方法对新区块中交易进行交易验证,提升了交易验证效率,同时提升了提前计算的有效性。

具体地,在接收到新交易时,对新交易进行合法性检测,在新交易合法时,将新交易放到所述交易池,在新交易不合法时,将新交易删除。也就是说,无论本地区块节点的用户发起的交易,还是其他区块节点传到本地区块节点的交易,都需要对交易进行合法性检查,例如检查其中的签名是否合法。交易通过合法性检查后,加入交易池中,不合法的交易则被丢弃。

当区块节点检测到区块预打包指令时,启动区块预打包流程,首先根据交易权重对区块节点的交易池中交易进行优先级排序。交易权重大小取决于三个因素:交易创建时间、交易utxo大小以及交易费用,交易创建时间越早、交易utxo大小越大、交易费用越高,则权重越大。获取交易池中各个交易的权重值,然后按照权重值由大到小的顺序对交易池中交易进行排序。

步骤s20,在排序后的交易中选出预设数量的交易作为预打包交易;

在本实施例汇中,在排序后交易池中,选取预设数量的交易作为预打包交易,其中,预设数量根据区块链的实际情况确定,例如,预设数量等于90。需要说明的时,预设数量不能太大,要保证挖矿成功或接收到新区块时,已打包生成预区块,在未接收到清除预区块指令时,预区块可持续更新。

步骤s30,执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组;

在本实施例中,确定预打包交易后,需要执行各个预打包交易,得到其交易结果,然后根据交易结果对预打包交易中的交易进行关联性分组。从交易结果中可以看到参与交易的用户信息,将有相同用户信息的交易分配到同一组中。例如,交易1是用户a转账80元给用户b,交易2是用户b转账40元给用户c,交易3是用户c转账10元给用户d,如果预打包交易包括交易1、交易2和交易3,因为他们之间有相同的用户,存在关联关系,则这三个交易分配到同一组;如果预打包交易包括交易1和交易3,因为交易1和交易3无相同用户,不存在关联关系,则这两个交易将被分到不同分组。

步骤s40,将分组后的预打包交易打包成预区块。

在本实施例中,预打包交易中的交易进行关联性分组后,根据现有区块链技术的区块打包规则,将预打包交易以分组形式打成预区块,此时预区块与一个标准区块相比,仅缺少共识证明,当本地区块节点挖矿成功时,提供共识证明。预区块打包完成后,触发区块预打包指令,执行基于交易权重对区块节点的交易池中交易进行优先级排序的步骤。

进一步地,在一实施例中,步骤s40之后,该区块预打包方法还包括:

步骤s50,在检测到挖矿成功时,基于所述预区块生成本地新区块的区块头以及所述本地新区块对应的交易哈希列表;

步骤s60,发送所述本地新区块的区块头以及所述本地新区块对应的交易哈希列表至所述区块节点的相邻节点。

在本实施例中,当本地节点挖矿成功后,生成共识证明,将共识证明打包进预区块生成新区块,同时,将创币交易作为一个独立分组打包进新区块,新区块由区块头和区块主体组成,区块主体中包括一系列交易,生成的交易哈希列表记录了区块主体中交易的哈希值以及交易之间的层次位置关系。发送区块头以及交易哈希列表至当前区块节点的相领节点,相邻节点即可根据区块头以及交易哈希列表组成出新区块。

本实施例提出的区块预打包方法,在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序,而后在排序后的交易中选出预设数量的交易作为预打包交易,接下来执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组,最后将分组后的预打包交易打包成预区块。通过将预打包交易中相互关联的交易分为一组,交易以分组形式打包进入预区块,从而可以使用交易分组匹配方法进行新区块中的交易验证,提升了交易验证效率,同时极大提升提前计算的有效性。另外,交易分组并行执行,提高了交易处理速率。

基于第一实施例,参照图3,提出本发明区块预打包方法的第二实施例,在本实施例中,步骤s40之后,包括:

步骤s70,在接收到新区块的区块头以及新区块对应的交易哈希列表时,在所述交易池中获取所述交易哈希列表对应的交易;

在本实施例中,其他节点挖矿成功后,仅传递新区块的区块头以及新区块对应的交易哈希列表,不传输新区块中的交易,新区块所需的交易,可以在接收节点的交易池中获取到。

具体地,当前节点接收到新区块的区块头以及新区块对应的交易哈希列表后,由于交易哈希列表记录了区块主体中交易的哈希值以及交易之间的层次位置关系,故根据交易哈希列表获取表中记录的所有交易,也就是新区块中包括的交易。需求说明的是,如果交易池中未找到交易,则向其他节点获取该交易。

步骤s80,基于所述区块头、所述交易哈希列表以及所述交易哈希列表对应的交易,生成所述新区块;

在本实施例中,在获取到交易哈希列表对应的交易后,根据交易哈希列表中记录的交易之间的层次位置关系,组装出新区块的区块主体,并与新区块的区块头,一起生产新区块。

步骤s90,将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果。

在本实施例中,依次将新区块中的交易分组分别与预区块中的交易分组进行比较,如果两个区块中的分组完全匹配,则新区块验证合格,根据新区块中各个交易的交易结果,更新对应的账户状态。

具体地,步骤s90包括:

步骤s91,依次将所述新区块中的交易分组分别与所述预区块中的交易分组进行比较,获取不匹配交易分组,其中,所述不匹配交易分组为所述新区块中交易分组,且在所述预区块中不存在所述不匹配交易分组;

在本实施例中,当存在新区块中的交易分组与预区块中的交易分组不匹配的情况,具体处理流程如下:首先依次将新区块中的交易分组分别与预区块中的交易分组进行匹配,如果有分组相同,则将其提前执行结果加入到新区快对应的交易结果分组内。如果新区块中交易分组没有出现在预区块中,则该分组即为不匹配交易分组。

步骤s92,执行不匹配交易分组中交易,得到所述不匹配交易分组对应的交易结果;

步骤s93,基于所述不匹配交易分组对应的交易结果确定所述新区块的验证结果。

在本实施例中,由于不匹配交易分组不在预区块中,故需要重新执行不匹配交易分组中交易,得到不匹配交易分组对应的交易结果。根据不匹配交易分组对应的交易结果确定所述新区块的验证结果。将不匹配交易分组对应的交易结果与匹配交易分组的交易结果进行独立性检查,判断各分组之间是否无关联,若存在关联,则表明新区块的分组不合理,区块不合法。若通过独立性检查,则将不匹配交易分组合并到新区快对应的交易结果分组内。

本实施例提出的区块预打包方法,在接收到新区块的区块头以及新区块对应的交易哈希列表时,在所述交易池中获取所述交易哈希列表对应的交易,而后基于所述区块头、所述交易哈希列表以及所述交易哈希列表对应的交易,生成所述新区块,接下来将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果。在区块节点之间仅传输区块头和交易哈希列表,避免了在区块链中传输完整新区块,导致交易的重复传输,同时减轻了系统传输负担。提前执行交易,在未收到区块前,将交易先行打包执行,大大缩短交易生效时间。使用交易分组匹配方法进行新区块中的交易验证,提升了交易验证效率,同时极大提升提前计算的有效性。

基于第一实施例,提出本发明区块预打包方法的第三实施例,在本实施例中,步骤s40之后,包括:

步骤s100,在检测到规范链增加新区块时,清除预区块;

步骤s110,在所述交易池中删除规范链的新区块中包括的交易。

在本实施例中,当区块节点检测到规范链增加新区块时,需要对预区块以及交易池进行重置处理。首先,当前区块节点停止挖矿,清除预区块,然后获取规范链的新区块内部的交易分组,将交易池中已打包进新区块的交易剔除。接下来触发区块预打包指令,执行基于交易权重对所述区块节点的交易池中交易进行优先级排序的步骤,同时重新开始挖矿。

进一步地,在一实施例中,步骤s40之后,该区块预打包方法还包括:

步骤s120,在检测到规范链切换时,清除预区块;

步骤s130,将分叉链的交易放回所述交易池;

步骤s140,在所述交易池中删除已打包的交易,其中,所述已打包的交易是规范链与所述分叉链对应的区块中包括的交易。

在本实施例中,当区块节点检测到规范链切换时,需要对预区块以及交易池进行重置处理。首先,当前区块节点停止挖矿,清除预区块,然后将分叉链到共同祖先区块的交易放回到交易池中,根据共同祖先到当前规范链最新区块内交易,剔除交易池中的交易。接下来触发区块预打包指令,执行基于交易权重对该区块节点的交易池中交易进行优先级排序的步骤,同时重新开始挖矿。

本实施例提出的区块预打包方法,当新区块产生或者规范链更新时,及时对预区块以及交易池进行重置处理,避免产生冗余计算,提高交易分组命中效率。

本发明进一步提供一种区块预打包装置,参照图4,图4为本发明区块预打包装置实施例的功能模块示意图。

排序模块10,用于在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序;

选取模块20,用于在排序后的交易中选出预设数量的交易作为预打包交易;

分组模块30,用于执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组;

打包模块40,用于将分组后的预打包交易打包成预区块。

进一步地,所述区块预打包装置还包括:

获取模块,用于在接收到新区块的区块头以及新区块对应的交易哈希列表时,在所述交易池中获取所述交易哈希列表对应的交易;

组装模块,用于基于所述区块头、所述交易哈希列表以及所述交易哈希列表对应的交易,生成所述新区块;

匹配模块,用于将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果。

进一步地,所述匹配模块还用于:

依次将所述新区块中的交易分组分别与所述预区块中的交易分组进行比较,获取不匹配交易分组,其中,所述不匹配交易分组为所述新区块中交易分组,且在所述预区块中不存在所述不匹配交易分组;

执行不匹配交易分组中交易,得到所述不匹配交易分组对应的交易结果;

基于所述不匹配交易分组对应的交易结果确定所述新区块的验证结果。

进一步地,所述区块预打包装置还包括:

生成模块,用于在检测到挖矿成功时,基于所述预区块生成本地新区块的区块头以及所述本地新区块对应的交易哈希列表;

发送模块,用于发送所述本地新区块的区块头以及所述本地新区块对应的交易哈希列表至所述区块节点的相邻节点。

进一步地,所述区块预打包装置还包括:

第一清除模块,用于在检测到规范链增加新区块时,清除预区块;

第一删除模块,用于在所述交易池中删除规范链的新区块中包括的交易。

进一步地,所述区块预打包装置还包括:

第二清除模块,用于在检测到规范链切换时,清除预区块;

放回模块,用于将分叉链的交易放回所述交易池;

第二删除模块,用于在所述交易池中删除已打包的交易,其中,所述已打包的交易是规范链与所述分叉链对应的区块中包括的交易。

进一步地,所述区块预打包装置还包括:

检测模块,用于在接收到新交易时,对所述新交易进行合法性检测;

放置模块,用于在所述新交易合法时,将所述新交易放到所述交易池;

第三删除模块,用于在所述新交易不合法时,将所述新交易删除。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有区块预打包程序,所述区块预打包程序被处理器执行时实现上述各个实施例中区块预打包方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台系统设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。


技术特征:

1.一种区块预打包方法,应用于区块节点,其特征在于,所述区块预打包方法包括以下步骤:

在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序;

在排序后的交易中选出预设数量的交易作为预打包交易;

执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组;

将分组后的预打包交易打包成预区块。

2.如权利要求1所述区块预打包方法,其特征在于,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:

在接收到新区块的区块头以及新区块对应的交易哈希列表时,在所述交易池中获取所述交易哈希列表对应的交易;

基于所述区块头、所述交易哈希列表以及所述交易哈希列表对应的交易,生成所述新区块;

将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果。

3.如权利要求2所述区块预打包方法,其特征在于,所述将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果的步骤包括:

依次将所述新区块中的交易分组分别与所述预区块中的交易分组进行比较,获取不匹配交易分组,其中,所述不匹配交易分组为所述新区块中交易分组,且在所述预区块中不存在所述不匹配交易分组;

执行不匹配交易分组中交易,得到所述不匹配交易分组对应的交易结果;

基于所述不匹配交易分组对应的交易结果确定所述新区块的验证结果。

4.如权利要求1所述区块预打包方法,其特征在于,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:

在检测到挖矿成功时,基于所述预区块生成本地新区块的区块头以及所述本地新区块对应的交易哈希列表;

发送所述本地新区块的区块头以及所述本地新区块对应的交易哈希列表至所述区块节点的相邻节点。

5.如权利要求1所述区块预打包方法,其特征在于,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:

在检测到规范链增加新区块时,清除预区块;

在所述交易池中删除规范链的新区块中包括的交易。

6.如权利要求1所述区块预打包方法,其特征在于,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:

在检测到规范链切换时,清除预区块;

将分叉链的交易放回所述交易池;

在所述交易池中删除已打包的交易,其中,所述已打包的交易是规范链与所述分叉链对应的区块中包括的交易。

7.如权利要求1至6中任一项所述区块预打包方法,其特征在于,所述区块预打包方法包括以下步骤:

在接收到新交易时,对所述新交易进行合法性检测;

在所述新交易合法时,将所述新交易放到所述交易池;

在所述新交易不合法时,将所述新交易删除。

8.一种区块预打包装置,其特征在于,所述区块预打包装置包括:

排序模块,用于在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序;

选取模块,用于在排序后的交易中选出预设数量的交易作为预打包交易;

分组模块,用于执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组;

打包模块,用于将分组后的预打包交易打包成预区块。

9.一种区块节点,其特征在于,所述区块节点包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块预打包程序,所述区块预打包程序被所述处理器执行时实现如权利要求1至7中任一项所述的区块预打包方法的步骤。

10.一种存储介质,其特征在于,所述存储介质上存储有所述区块预打包程序,所述区块预打包程序被处理器执行时实现如权利要求1至7中任一项所述区块预打包方法的步骤。

技术总结
本发明公开了一种区块预打包方法,包括以下步骤:在检测到区块预打包指令时,基于交易权重对交易池中的交易进行优先级排序,其中,所述区块节点包括所述交易池,而后在排序后的交易中选出预设数量的交易进行交易验证,得到预打包交易,接下来执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组,最后将分组后的预打包交易打包成预区块。本发明还公开了一种装置、区块节点及存储介质。通过将预打包交易中相互关联的交易分为一组,交易以分组形式打包进入预区块,从而可以使用交易分组匹配方法对新区块中交易进行交易验证,提升了交易验证效率,同时提升了提前计算的有效性。

技术研发人员:王滔滔;刘志伟;张胜利;王晖
受保护的技术使用者:深圳大学
技术研发日:2020.01.16
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-50030.html

最新回复(0)