CN111242784B - 区块预打包方法、区块节点、装置及存储介质 - Google Patents

区块预打包方法、区块节点、装置及存储介质 Download PDF

Info

Publication number
CN111242784B
CN111242784B CN202010059234.9A CN202010059234A CN111242784B CN 111242784 B CN111242784 B CN 111242784B CN 202010059234 A CN202010059234 A CN 202010059234A CN 111242784 B CN111242784 B CN 111242784B
Authority
CN
China
Prior art keywords
transaction
block
transactions
new
packing
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
Application number
CN202010059234.9A
Other languages
English (en)
Other versions
CN111242784A (zh
Inventor
王滔滔
刘志伟
张胜利
王晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen University
Original Assignee
Shenzhen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen University filed Critical Shenzhen University
Priority to CN202010059234.9A priority Critical patent/CN111242784B/zh
Publication of CN111242784A publication Critical patent/CN111242784A/zh
Application granted granted Critical
Publication of CN111242784B publication Critical patent/CN111242784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Development Economics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

区块预打包方法、区块节点、装置及存储介质
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块预打包方法、区块节点、装置及存储介质。
背景技术
目前区块链处理机制都是区块节点在交易打包的时候调用虚拟机等交易验证执行机制进行执行。当区块产生之后,需要在全网进行区块广播,那么其他节点收到区块后,对区块进行验证之后,再将交易广播出去,交易信息本身就存在二次传输的问题,另外区块交易要经过验证后才将区块进行广播,会延长交易传播覆盖全网的总时长,导致交易处理速度变慢,随着节点传播深度进一步放大。在现有的区块链处理机制下,进行区块同步的时候需要请求整个新区块的信息,并且在本地还需要通过执行区块中的每笔交易,进行交易验证,这样大大也降低了交易验证的效率。
发明内容
本发明的主要目的在于提供一种区块预打包方法、区块节点、装置及存储介质,旨在解决现有区块链中交易验证效率低的技术问题。
为实现上述目的,本发明提供一种区块预打包方法,所述区块预打包方法包括以下步骤:
在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序;
在排序后的交易中选出预设数量的交易作为预打包交易;
执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组;
将分组后的预打包交易打包成预区块。
进一步地,在一实施方式中,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:
在接收到新区块的区块头以及新区块对应的交易哈希列表时,在所述交易池中获取所述交易哈希列表对应的交易;
基于所述区块头、所述交易哈希列表以及所述交易哈希列表对应的交易,生成所述新区块;
将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果。
进一步地,在一实施方式中,所述将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果的步骤包括:
依次将所述新区块中的交易分组分别与所述预区块中的交易分组进行比较,获取不匹配交易分组,其中,所述不匹配交易分组为所述新区块中交易分组,且在所述预区块中不存在所述不匹配交易分组;
执行不匹配交易分组中交易,得到所述不匹配交易分组对应的交易结果;
基于所述不匹配交易分组对应的交易结果确定所述新区块的验证结果。
进一步地,在一实施方式中,所述数据集包括第一数据,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:
在检测到区块封装成功时,基于所述预区块生成本地新区块的区块头以及所述本地新区块对应的交易哈希列表;
发送所述本地新区块的区块头以及所述本地新区块对应的交易哈希列表至所述区块节点的相邻节点。
进一步地,在一实施方式中,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:
在检测到规范链增加新区块时,清除预区块;
在所述交易池中删除规范链的新区块中包括的交易。
进一步地,在一实施方式中,所述数据集包括第二数据,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:
在检测到规范链切换时,清除预区块;
将分叉链的交易放回所述交易池;
在所述交易池中删除已打包的交易,其中,所述已打包的交易是规范链与所述分叉链对应的区块中包括的交易。
进一步地,在一实施方式中,所述区块预打包方法包括以下步骤:
在接收到新交易时,对所述新交易进行合法性检测;
在所述新交易合法时,将所述新交易放到所述交易池;
在所述新交易不合法时,将所述新交易删除。
进一步地,在一实施方式中,所述区块预打包装置包括:
排序模块,用于在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序;
选取模块,用于在排序后的交易中选出预设数量的交易作为预打包交易;
分组模块,用于执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组;
打包模块,用于将分组后的预打包交易打包成预区块。
为实现上述目的,本发明还提供一种区块链节点,所述区块链节点包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块预打包程序,所述区块预打包程序被所述处理器执行时实现如上所述的区块预打包方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有区块预打包程序,所述区块预打包程序被处理器执行时实现上述任一项所述区块预打包方法的步骤。
本发明在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序,而后在排序后的交易中选出预设数量的交易作为预打包交易,接下来执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组,最后将分组后的预打包交易打包成预区块。通过将预打包交易中相互关联的交易分为一组,交易以分组形式打包进入预区块,从而可以使用交易分组匹配方法进行新区块中的交易验证,提升了交易验证效率,同时极大提升提前计算的有效性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境中区块节点的结构示意图;
图2为本发明区块预打包方法第一实施例的流程示意图;
图3为本发明区块预打包方法第二实施例的流程示意图;
图4为本发明区块预打包装置实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境中区块节点的结构示意图。
如图1所示,该区块节点可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器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、磁碟、光盘)中,包括若干指令用以使得一台系统设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种区块预打包方法,应用于区块节点,其特征在于,所述区块预打包方法包括以下步骤:
在检测到区块预打包指令时,基于交易权重对所述区块节点的交易池中交易进行优先级排序;
在排序后的交易中选出预设数量的交易作为预打包交易;
执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组;
将分组后的预打包交易打包成预区块;
在接收到新区块的区块头以及新区块对应的交易哈希列表时,在所述交易池中获取所述交易哈希列表对应的交易;
基于所述区块头、所述交易哈希列表以及所述交易哈希列表对应的交易,生成所述新区块;
将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果;
其中,所述将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果的步骤包括:
依次将所述新区块中的交易分组分别与所述预区块中的交易分组进行比较,获取不匹配交易分组,其中,所述不匹配交易分组为所述新区块中交易分组,且在所述预区块中不存在所述不匹配交易分组;
执行不匹配交易分组中交易,得到所述不匹配交易分组对应的交易结果;
基于所述不匹配交易分组对应的交易结果确定所述新区块的验证结果;
其中,所述基于所述不匹配交易分组对应的交易结果确定所述新区块的验证结果的步骤,具体包括:
将所述不匹配交易分组对应的交易结果与匹配交易分组的交易结果进行独立性检查,获得检查结果;
根据所述检查结果,判断所述不匹配交易分组与所述匹配交易分组之间是否存在关联;
若存在关联,则表示所述新区块的分组不合理。
2.如权利要求1所述区块预打包方法,其特征在于,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:
在检测到区块封装成功时,基于所述预区块生成本地新区块的区块头以及所述本地新区块对应的交易哈希列表;
发送所述本地新区块的区块头以及所述本地新区块对应的交易哈希列表至所述区块节点的相邻节点。
3.如权利要求1所述区块预打包方法,其特征在于,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:
在检测到规范链增加新区块时,清除预区块;
在所述交易池中删除规范链的新区块中包括的交易。
4.如权利要求1所述区块预打包方法,其特征在于,所述将分组后的预打包交易打包成预区块的步骤之后,还包括:
在检测到规范链切换时,清除预区块;
将分叉链的交易放回所述交易池;
在所述交易池中删除已打包的交易,其中,所述已打包的交易是规范链与所述分叉链对应的区块中包括的交易。
5.如权利要求1至4中任一项所述区块预打包方法,其特征在于,所述区块预打包方法包括以下步骤:
在接收到新交易时,对所述新交易进行合法性检测;
在所述新交易合法时,将所述新交易放到所述交易池;
在所述新交易不合法时,将所述新交易删除。
6.一种区块预打包装置,其特征在于,所述区块预打包装置包括:
排序模块,用于在检测到区块预打包指令时,基于交易权重对区块节点的交易池中交易进行优先级排序;
选取模块,用于在排序后的交易中选出预设数量的交易作为预打包交易;
分组模块,用于执行所述预打包交易,得到所述预打包交易对应的交易结果,并基于所述交易结果对所述预打包交易中的交易进行关联性分组;
打包模块,用于将分组后的预打包交易打包成预区块;
获取模块,用于在接收到新区块的区块头以及新区块对应的交易哈希列表时,在所述交易池中获取所述交易哈希列表对应的交易;
组装模块,用于基于所述区块头、所述交易哈希列表以及所述交易哈希列表对应的交易,生成所述新区块;
匹配模块,用于将所述新区块中的交易分组与所述预区块中的交易分组进行匹配,基于匹配结果确定所述新区块的验证结果;
所述匹配模块,还用于依次将所述新区块中的交易分组分别与所述预区块中的交易分组进行比较,获取不匹配交易分组,其中,所述不匹配交易分组为所述新区块中交易分组,且在所述预区块中不存在所述不匹配交易分组;执行不匹配交易分组中交易,得到所述不匹配交易分组对应的交易结果;基于所述不匹配交易分组对应的交易结果确定所述新区块的验证结果;
其中,所述基于所述不匹配交易分组对应的交易结果确定所述新区块的验证结果的步骤,具体包括:
将所述不匹配交易分组对应的交易结果与匹配交易分组的交易结果进行独立性检查,获得检查结果;根据所述检查结果,判断所述不匹配交易分组与所述匹配交易分组之间是否存在关联;若存在关联,则表示所述新区块的分组不合理。
7.一种区块链节点,其特征在于,所述区块链节点包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块预打包程序,所述区块预打包程序被所述处理器执行时实现如权利要求1至5中任一项所述的区块预打包方法的步骤。
8.一种存储介质,其特征在于,所述存储介质上存储有区块预打包程序,所述区块预打包程序被处理器执行时实现如权利要求1至5中任一项所述区块预打包方法的步骤。
CN202010059234.9A 2020-01-16 2020-01-16 区块预打包方法、区块节点、装置及存储介质 Active CN111242784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010059234.9A CN111242784B (zh) 2020-01-16 2020-01-16 区块预打包方法、区块节点、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010059234.9A CN111242784B (zh) 2020-01-16 2020-01-16 区块预打包方法、区块节点、装置及存储介质

Publications (2)

Publication Number Publication Date
CN111242784A CN111242784A (zh) 2020-06-05
CN111242784B true CN111242784B (zh) 2023-12-29

Family

ID=70871343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010059234.9A Active CN111242784B (zh) 2020-01-16 2020-01-16 区块预打包方法、区块节点、装置及存储介质

Country Status (1)

Country Link
CN (1) CN111242784B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111861754B (zh) * 2020-07-30 2023-11-28 杭州复杂美科技有限公司 交易打包方法、设备和存储介质
CN111932257B (zh) * 2020-08-18 2023-10-24 中国工商银行股份有限公司 一种区块链并行化处理方法及装置
CN112070610B (zh) * 2020-09-01 2023-08-29 中国联合网络通信集团有限公司 验证区块合法性的方法及节点、系统、电子设备、介质
CN112669156A (zh) * 2020-12-31 2021-04-16 北京知帆科技有限公司 一种区块链待确认交易确定方法、装置及电子设备
CN112348681B (zh) * 2021-01-11 2021-05-11 北京知帆科技有限公司 一种区块链交易手续费确定方法、装置及电子设备
CN114416765B (zh) * 2022-03-28 2022-06-14 北京微芯感知科技有限公司 一种区块链交易无级预测执行方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及系统
CN107833060A (zh) * 2017-11-13 2018-03-23 中国银行股份有限公司 一种区块链中智能合约交易的验证方法以及系统
CN109064173A (zh) * 2018-08-01 2018-12-21 江苏恒宝智能系统技术有限公司 一种节点信息管理系统和方法
CN109658249A (zh) * 2018-12-27 2019-04-19 链极智能科技(上海)有限公司 一种区块链性能优化方法
CN109685502A (zh) * 2018-12-06 2019-04-26 成都佰纳瑞信息技术有限公司 一种适用于区块链网络的加速共识方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560502B2 (en) * 2010-07-02 2013-10-15 Exact Solutions, Inc. Method and a system for replaying database workload with transactional consistency
CN111917864B (zh) * 2017-02-22 2023-08-22 创新先进技术有限公司 一种业务校验的方法及装置
CN107196900B (zh) * 2017-03-24 2020-04-24 创新先进技术有限公司 一种共识校验的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及系统
CN107833060A (zh) * 2017-11-13 2018-03-23 中国银行股份有限公司 一种区块链中智能合约交易的验证方法以及系统
CN109064173A (zh) * 2018-08-01 2018-12-21 江苏恒宝智能系统技术有限公司 一种节点信息管理系统和方法
CN109685502A (zh) * 2018-12-06 2019-04-26 成都佰纳瑞信息技术有限公司 一种适用于区块链网络的加速共识方法
CN109658249A (zh) * 2018-12-27 2019-04-19 链极智能科技(上海)有限公司 一种区块链性能优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Graphene: efficient interactive set reconciliation applied to blockchain propagation;A Pinar Ozisik etal;<In Proceedings of the ACM Special Interest Group on Data Communication>;第03–317页 *

Also Published As

Publication number Publication date
CN111242784A (zh) 2020-06-05

Similar Documents

Publication Publication Date Title
CN111242784B (zh) 区块预打包方法、区块节点、装置及存储介质
CN110046896B (zh) 一种区块处理方法和节点以及系统
CN110730225A (zh) 基于区块链的物联网的数据处理方法、物联网及存储介质
CN110557420B (zh) 一种独立子链的运行方法及系统
CN110784521B (zh) 区块链的共识方法、电子设备和存储介质
CN113568981B (zh) 一种交易数据处理方法、装置、设备以及介质
CN111767347A (zh) 共识算法的切换方法、装置、节点设备及存储介质
WO2021098139A1 (zh) 跨链交易的状态数据的存储方法、装置及存储介质
WO2023040453A1 (zh) 一种交易信息处理方法及装置
CN113409047B (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN113535226B (zh) 应用下载方法、终端、服务器、计算机设备以及存储介质
CN111224782A (zh) 基于数字签名的数据校验方法、智能设备及存储介质
CN107577700A (zh) 数据库容灾的处理方法及装置
CN105744494A (zh) 一种短信发送方法和装置
CN110728515A (zh) 基于区块链的业务处理方法及装置
CN112732676B (zh) 基于区块链的数据迁移方法、装置、设备及存储介质
CN112637206B (zh) 一种业务数据主动获取方法和系统
CN111756548A (zh) 节点共识机制优化方法、系统、设备及存储介质
CN113609215A (zh) 数据处理方法、装置、设备与计算机可读存储介质
CN111432028A (zh) 一种基于区块链的业务处理方法及装置
CN113297569B (zh) 基于哈希图的攻击处理方法、设备及存储介质
CN115794927B (zh) 业务功能扩展方法和系统
CN110766552B (zh) 基于区块链的业务处理方法及装置
CN114172674B (zh) 一种异常数据检测方法、装置、设备及计算机介质
CN113852679B (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