CN115730009A - 一种区块链交易分配方法及装置 - Google Patents
一种区块链交易分配方法及装置 Download PDFInfo
- Publication number
- CN115730009A CN115730009A CN202211450950.5A CN202211450950A CN115730009A CN 115730009 A CN115730009 A CN 115730009A CN 202211450950 A CN202211450950 A CN 202211450950A CN 115730009 A CN115730009 A CN 115730009A
- Authority
- CN
- China
- Prior art keywords
- block
- target
- transaction
- node
- hash
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种区块链交易分配方法及装置,应用在区块链技术领域,包括:确定待分配交易的目标区块指向的引导区块,引导区块是本地节点在生成目标区块时监测到的具有最大逻辑时钟的合法区块;基于引导区块,确定用于分配目标交易的共识成员组,以及基于目标交易的交易哈希和引导区块的区块哈希,生成目标标记哈希;基于目标标记哈希和共识成员组中的节点总数,为目标交易分配目标节点编号;若目标节点编号为本地节点的节点编号,则将目标交易添加至目标区块中。通过将交易分配到目标节点上进行处理,可以有效解决高并发区块链系统中交易重复的问题,显著提升区块链网络的实际交易处理能力。
Description
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种区块链交易分配方法及装置。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式;区块链共识协议是底层区块链平台的关键技术,直接决定区块链系统的安全性和系统性能。
基于平行多链架构的共识协议,可以显著提高区块链网络中区块吞吐量,即单位时间内有效的上链区块数量。由于并发区块中包含较多的重复交易,故在区块吞吐量提高时,区块链网络中有效交易的处理能力(即交易吞吐量)并没有有效提升。
发明内容
本申请实施例提供了一种区块链交易分配方及装置,用于对区块链网络中的交易进行分配。
第一方面,本申请实施例提供了一种区块链交易分配方法,应用于区块链系统中的任意一个节点,包括:
确定待分配交易的目标区块指向的引导区块,所述引导区块是本地节点在生成所述目标区块时监测到的具有最大逻辑时钟的合法区块;
基于所述引导区块,确定用于分配目标交易的共识成员组,以及基于所述目标交易的交易哈希和所述引导区块的区块哈希,生成目标标记哈希;
基于所述目标标记哈希和所述共识成员组中的节点总数,为所述目标交易分配的目标节点编号;
若所述目标节点编号为所述本地节点的节点编号,则将所述目标交易添加至所述目标区块中。
通过将交易分配到目标节点上进行处理,可以有效解决高并发区块链系统中交易重复的问题,显著提升区块链网络的实际交易处理能力,以此提高区块链网络中实际交易的吞吐能力;另外通过对交易进行随机分配至各区块链的节点上,可以根据区块最新状态进行动态调整,有效避免交易被特定节点过滤或者垄断,提升了整个区块链网络的安全性和公平性。
可选地,所述确定待分配交易的目标区块指向的引导区块之后,还包括:将所述引导区块的区块哈希添加至所述目标区块的相应字段。
可选地,所述基于所述引导区块,确定用于分配目标交易的共识成员组,包括:
监测各个子区块链中主链的最新区块;
若任意两个最新区块的逻辑时钟的差值小于等于预设差值;或者,若任意两个最新区块的区块高度的差值小于等于预设差值时,则基于所述引导区块,确定用于分配目标交易的共识成员组。
可选地,若存在两个最新区块的逻辑时钟的差值大于预设差值;或者,若存在两个最新区块的区块高度的差值大于预设差值时,则随机分配交易至所述目标区块中,或者不添加交易至所述目标区块。
可选地,所述基于所述引导区块,确定用于分配目标交易的共识成员组,包括:
从各个子区块链的主链中,确定满足预设条件的多个历史区块,其中,所述预设条件指:与所述引导区块的逻辑时钟或高度的距离大于等于预设差值;
基于所述多个历史区块,确定所述共识成员组。
可选地,所述基于所述多个历史区块,确定所述共识成员组之后,还包括:
按照所述共识成员组中多个节点的地址信息,对所述多个节点进行排序,并基于排序结果为每个节点分配一个节点编号。
可选地,所述基于所述目标标记哈希和所述共识成员组中的节点总数,为所述目标交易分配的目标节点编号,包括:
采用所述目标标记哈希,对所述共识成员组中的节点总数求余,获得求余结果;
将所述求余结果作为所述目标节点编号。
可选地,若所述目标节点编号不是所述本地节点的节点编号,则跳过所述目标交易。
可选地,接收其他节点广播的待校验区块;
对所述待校验区块中包含的历史交易,与生成所述待校验区块的节点之间的交易分配关系进行校验;
若校验通过,则确定所述待校验区块为合法区块。
可选地,所述对所述待校验区块中包含的历史交易,与生成所述待校验区块的候选节点之间的交易分配关系进行校验,包括:
基于所述历史交易的交易哈希,和所述待校验区块对应的引导区块的区块哈希,确定待校验标记哈希;以及基于所述待校验区块对应的引导区块,确定用于分配所述历史交易的历史共识成员组;
基于所述待校验标记哈希和所述历史共识成员组中的节点总数,确定所述历史交易对应的历史节点编号;
若所述历史节点编号为生成所述待校验区块的节点编号,则确定校验通过。
第二方面,本申请实施例提供了一种区块链交易分配装置,区块链系统中的任意一个节点,包括:
引导模块,用于确定待分配交易的目标区块指向的引导区块,所述引导区块是本地节点在生成所述目标区块时监测到的具有最大逻辑时钟的合法区块;
处理模块,用于基于所述引导区块,确定用于分配目标交易的共识成员组,以及基于所述目标交易的交易哈希和所述引导区块的区块哈希,生成目标标记哈希;
编号模块,用于基于所述目标标记哈希和所述共识成员组中的节点总数,为所述目标交易分配的目标节点编号;
匹配模块,用于若所述目标节点编号为所述本地节点的节点编号,则将所述目标交易添加至所述目标区块中。
通过将交易分配到目标节点上进行处理,可以有效解决高并发区块链系统中交易重复的问题,显著提升区块链网络的实际交易处理能力,以此提高区块链网络中实际交易的吞吐能力;另外通过对交易进行随机分配至各区块链的节点上,可以根据区块最新状态进行动态调整,有效避免交易被特定节点过滤或者垄断,提升了整个区块链网络的安全性和公平性。
可选地,所述引导模块具体用于:
将所述引导区块的区块哈希添加至所述目标区块的相应字段。
可选地,所述处理模块具体用于:
监测各个子区块链中主链的最新区块;
若任意两个最新区块的逻辑时钟的差值小于等于预设差值时;或者,若任意两个最新区块的区块高度的差值小于等于预设差值时,基于所述引导区块,确定用于分配目标交易的共识成员组。
可选地,所述处理模块具体用于:
若存在两个最新区块的逻辑时钟的差值大于预设差值;或者,若存在两个最新区块的区块高度的差值大于预设差值时,则随机分配交易至所述目标区块中,或者不添加交易至所述目标区块。
可选地,所述处理模块具体用于:
从各个子区块链的主链中,确定满足预设条件的多个历史区块,其中,所述预设条件指:与所述引导区块的逻辑时钟或高度的距离大于等于预设差值;
基于所述多个历史区块,确定所述共识成员组。
可选地,所述处理模块具体用于:
按照所述共识成员组中多个节点的地址信息,对所述多个节点进行排序,并基于排序结果为每个节点分配一个节点编号。
可选地,所述编号模块具体用于:
采用所述目标标记哈希,对所述共识成员组中的节点总数求余,获得求余结果;
将所述求余结果作为所述目标节点编号。
可选地,所述编号模块具体用于:
若所述目标节点编号不是所述本地节点的节点编号,则跳过所述目标交易。
可选地,所述处理模块具体用于:
接收其他节点广播的待校验区块;
对所述待校验区块中包含的历史交易,与生成所述待校验区块的候选节点之间的交易分配关系进行校验;
若校验通过,则确定所述待校验区块为合法区块。
可选地,所述处理模块具体用于:
基于所述历史交易的交易哈希,和所述待校验区块对应的引导区块的区块哈希,确定待校验标记哈希;以及基于所述待校验区块对应的引导区块,确定用于分配所述历史交易的历史共识成员组;
基于所述待校验标记哈希和所述历史共识成员组中的节点总数,确定所述历史交易对应的历史节点编号;
若所述历史节点编号为所述候选节点的节点编号,则确定校验通过。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述第一方面任意所述的区块链的交易分配方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述第一方面任意所述的区块链的交易分配方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例适用的一种系统架构示意图;
图2为本申请实施例提供的一种区块链交易分配方法的流程示意图;
图3为本申请实施例提供的一种平行多链架构的示意图;
图4为本申请实施例提供的一种平行多链架构的示意图;
图5为本申请实施例提供的一种平行多链架构的示意图;
图6为本申请实施例提供的一种区块链交易分配装置的结构示意图;
图7为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本发明实施例中涉及的名词进行解释。
区块链:一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
DAG:Directed acyclic graph,有向无环图。有向无环图指的是一个无回路的有向图。如果有一个非有向无环图,且A点出发向B经C可回到A,形成一个环。将从C到A的边方向改为从A到C,则变成有向无环图。有向无环图的生成树个数等于入度非零的节点的入度积。
创世区块:第一个被最早构建的区块称为创世区块,拥有一个唯一的ID标识号。除创世区块外,每个后续建立的区块均包含两个ID号,一个是该区块自身的ID号,另一个是前序区块的ID号。通过ID号间的前后指向关系,所有区块按序相连就构成了区块链。
区块的逻辑时钟,为沿着逻辑时钟线方向至创世区块所经区块的数目,所经区块包含创世区块,不包含当前区块。
区块的逻辑时钟线,为沿着区块中的引导区块路径以至创世区块的线性方向。
区块高度,为沿所属子区块链到创世区块过程中经过的区块数目(包括当前区块和创世区块)。
图1为本发明实施例提供的一种区块链系统的架构示意图,如图1所示,区块链系统中可以包括N个节点,分别为节点100~1、节点100~2、…、节点100~N,N为正整数,区块链系统中任意两个节点可以通信连接,从而共同维护区块链系统,其中,任意两个节点可以通过有线方式连接,或者也可以通过无线方式连接,具体不作限定。
本发明实施例中,区块链系统中的节点可以具有多种功能。比如,路由功能、交易功能、共识功能等。具体地说,区块链系统中的节点可以把其他节点传送过来的交易数据等信息传送给更多的节点以实现节点之间的通信;或者,区块链系统中的节点可以用于记录历史上的所有交易;或者,区块链系统中的节点可以通过验证和记录交易从而生成区块链中的新区块。
需要说明的是,区块链系统中的一个节点可以是一台物理机(服务器),也可以是服务器中运行的一个进程或者一系列进程,对此,本申请具体不作限定。
如图1所示,该系统架构中还可以包括客户端设备200,客户端设备200可以通过接入区块链网络与区块链系统中的任一节点连接。具体实施例中,客户端设备200可以将交易数据发送给区块链系统中的任一节点,区块链系统中的某一节点在接收到交易数据后,可以将交易数据同步给区块链系统中的其它节点。某一节点在接收到交易数据后,还可以将交易数据存储在节点内部的交易池中;相应地,其它节点在接收到该节点同步的交易数据后,也可以将交易数据存储在其它节点内部的交易池中。如此,若某一节点确定处理多条交易数据,则可以从内部的交易池中获取多条交易数据,进而进行后续的交易处理及区块共识。
基于图1所示的系统架构图,本申请实施例提供了一种区块链交易分配方法的流程,如图2所示,该方法的流程可以由图1所示的区块链系统中的任意一个节点执行,包括以下步骤:
步骤S201,确定待分配交易的目标区块指向的引导区块,引导区块是本地节点在生成目标区块时监测到的具有最大逻辑时钟的合法区块。
具体地,为待分配交易的目标区块确定一个引导区块,该引导区块作为该目标区块的指向区块。其中,引导区块是本地节点在生成目标区块时,检测到具有最大逻辑时钟的合法区块。区块的逻辑时钟为沿区块对应的逻辑时钟路径至创世区块所经过的区块数量;而逻辑时钟路径为以目标区块为起点,沿指向最长时钟区块的方向延伸至创世区块的路径。将目标区块与引导区块进行连接后,目标区块与原有的区块结构形成有向无环图。
可选地,若本地节点还未生成任何区块,则使用创世区块作为待分配交易的目标区块指向的引导区块。
在一些实施例中,确定待分配交易的目标区块指向的引导区块之后,还包括:将引导区块的区块哈希添加至目标区块的相应字段。
具体地,在区块链中的每一个区块中,包含本区块的区块哈希和上一个区块的区块哈希,通过区块哈希可以寻找该区块哈希对应的区块。在确定好待分配交易的目标区块指向的引导区块后,将引导区块的区块哈希添加到目标区块相应的字段上,以确保目标区块和引导区块之间的连接关系。
步骤S202,基于引导区块,确定用于分配目标交易的共识成员组,以及基于目标交易的交易哈希和引导区块的区块哈希,生成目标标记哈希。
具体地,确定待分配交易的目标区块指向的引导区块后,进一步确定可以处理该目标交易的可分配节点,在全局中可分配节点至少为一个,且包含本地节点,多个可分配节点和本地节点共同组成共识成员组;根据目标交易的交易哈希和引导区块中的区块哈希进行组合,并进行哈希变换,生成目标标记哈希。
步骤S203,基于目标标记哈希和共识成员组中的节点总数,为目标交易分配的目标节点编号。
具体地,统计共识成员组中包括的节点的数量,再基于目标标记哈希,为目标交易分配的目标节点进行编号,目标节点为共识成员组中的一个节点。
步骤S204,若目标节点编号为本地节点的节点编号,则将目标交易添加至目标区块中。
具体地,若为目标节点分配的编号为本地节点的节点编号,则将目标交易添加至目标区块中,则该目标交易分配完成。
在一些实施例中,若目标节点编号不是本地节点的节点编号,则跳过目标交易。
具体地,若为目标节点分配的编号不是本地节点的节点编号,则跳过该目标交易,进行下一交易的判断。
通过将交易分配到目标节点上进行处理,可以有效解决高并发区块系统中交易重复的问题,显著提升区块链网络的实际交易处理能力,以此提高区块链网络中实际交易的吞吐能力;另外通过对交易进行随机分配至各区块链的节点上,可以根据区块最新状态进行动态调整,有效避免交易被特定节点过滤或者垄断,提升了整个区块链网络的安全性和公平性。
在一些实施例中,基于引导区块,确定用于分配目标交易的共识成员组,还包括:监测各个子区块链中主链的最新区块;若任意两个最新区块的逻辑时钟的差值小于等于预设差值;或者,若任意两个最新区块的区块高度的差值小于等于预设差值,则基于所述引导区块,确定用于分配目标交易的共识成员组。
具体地,预设差值为设定的区块间隔,记为H,该区块间隔为预设安全参数,且至少为1。对监测各个子区块链中主链的最新区块,并确定每条子链的主链上最新区块的逻辑时钟,计算每两条子链的主链上最新区块的逻辑时钟的差值,确定任意两条子链上最新区块的逻辑时钟的差值都小于预设区块的数量。或者,确定任意两条子链上最新区块的区块高度都小于预设区块的数量。其中,区块高度为:沿所属子区块链到创世区块过程中经过的区块数目(包括当前区块和创世区块)。
举例来说,参见图3,为本申请实施例提供的一种平行多链架构,平行多链架构包括子区块链C0、子区块链C1和子区块链C2。其中,子区块链C0包括创世区块G0、区块C01、区块C02、区块C03、区块C04、区块C05、区块C06、区块C07、区块C08。子区块链C1包括创世区块G1、区块C11、区块C12、区块C13、区块C14、区块C15。子区块链C2包括创世区块G2、区块C21、区块C22、区块C23。在子区块链C0中,最新区块为区块C08,区块C08的逻辑时钟为6,区块C08的高度为7;在子区块链C1中,最新区块为区块C15,区块C15的逻辑时钟为5,区块C15的高度为6;在子区块链C2中,最新区块为区块C24,区块C24的逻辑时钟为4,区块C15的高度为5。
设定预设差值为3,在图3中,可知区块C08和区块C15的逻辑时钟差值为1,高度差值也为1;区块C08和区块C24的逻辑时钟差值为2,高度差值也为2;区块C15和区块C24的逻辑时钟差值为1,高度差值也为1;综上任意两个子区块链中的最新区块的逻辑时钟差值和高度均小于预设差值。
在一些实施例中,若存在两个最新区块的逻辑时钟的差值大于预设差值;或者,若存在两个最新区块的区块高度的差值大于预设差值时,则随机分配交易至目标区块中,或者不添加交易至目标区块。
具体地,若任意两条子链的主链上最新区块的逻辑时钟的差值都大于预设区块的数量,或者任意两条子链的主链上最新区块的区块高度都大于预设区块的数量,则目标交易不按照本申请的交易分配方法进行分配。将随机分配交易到目标区块中去,或者不添加交易至目标区块直接生成空区块,则目标交易分配结束。
在一些实施例中,基于引导区块,确定用于分配目标交易的共识成员组,包括:从各个子区块链的主链中,确定满足预设条件的多个历史区块,其中,预设条件指:与引导区块的逻辑时钟或高度的距离大于等于预设差值;基于多个历史区块,确定共识成员组。
具体地,在各个子区块链的主链中,根据预设差值,即设定的区块间隔H,若历史区块的逻辑时钟或者高度与引导区块的逻辑时钟或者高度之差大于等于预设差值,则该历史区块满足预设条件,其中包括创世区块;基于满足预设条件的多个历史区块,确定出共识成员组。
举例来说,参见图4,以目标区块所在的子链为例进行说明,设定目标区块的主链对应的逻辑时钟路径为:目标区块→区块C09→区块C06→区块C05→区块C04→区块C03→区块C02→区块C01→创世区块G0,设定预设差值为3,则与目标区块的引导区块(区块C09)间隔大于预设差值的历史区块有区块C03、C02、C01、创世区块G0,基于这些历史区块确定出共识成员组。
在一些实施例中,基于多个历史区块,确定共识成员组之后,还包括:按照共识成员组中多个节点的地址信息,对多个节点进行排序,并基于排序结果为每个节点分配一个节点编号。
具体地,根据共识成员组中的每个节点的地址信息,将地址信息转换为二进制数值,按照每个节点地址信息的二进制大小进行排序,并从0、1、2、3、4…N-1、N为每个节点进行标记,即为每个节点分配一个节点编号。其中,N为共识成员组中节点总数。
在一些实施例中,基于目标标记哈希和共识成员组中的节点总数,为目标交易分配的目标节点编号,包括:采用目标标记哈希,对共识成员组中的节点总数求余,获得求余结果;将求余结果作为目标节点编号。
具体地,共识成员组中的节点总数为N,用目标标记哈希对节点总数N取余,得到求余结果,将求余结果作为目标节点的编号。
在一些实施例中,接收其他节点广播的待校验区块;对待校验区块中包含的历史交易,与生成待校验区块的节点之间的交易分配关系进行校验;若校验通过,则确定待校验区块为合法区块。
具体地,生成新区块的节点需要向其他节点进行广播,以和其他节点达成校验,将该新区块定义为待校验区块。接收其他节点广播的待校验区块,待校验区块中包含历史交易,历史交易与生成待校验区块的节点之间存在交易分配关系。需要对交易分配关系进行校验,若校验通过,则确定该待校验区块为合法区块;若校验不通过,则确定该待校验区块为不合法区块,拒绝将待校验区块添加至节点中。
通过对区块和节点之间的交易分配关系进行校验,可以确保各子链区块的安全性与合法性,也为整个区块链系统的交易安全提供保障。
在一些实施例中,对待校验区块中包含的历史交易,与生成待校验区块的节点之间的交易分配关系进行校验,包括:基于历史交易的交易哈希,和待校验区块对应的引导区块的区块哈希,确定待校验标记哈希;以及基于待校验区块对应的引导区块,确定用于分配历史交易的历史共识成员组;基于待校验标记哈希和历史共识成员组中的节点总数,确定历史交易对应的历史节点编号;若历史节点编号为节点的节点编号,则确定校验通过。
具体地,将历史交易的交易哈希和待校验区块的引导区块中的区块哈希进行组合,并进行哈希,得到待校验标记哈希。基于待校验区块的引导区块的逻辑时钟或者高度,确定分配历史交易的历史共识成员组,对历史共识成员组中的历史分配节点进行排序,并统计历史共识成员组中的历史分配节点的总数。将待校验标记哈希对历史共识成员组中的节点总数取余,所得取余结果为历史交易对应的历史节点编号,将历史节点编号为节点编号,则确定校验通过,确定该待校验区块为合法区块;若历史节点编号不是节点编号,则校验不通过,拒绝将待校验区块添加至节点中。
为了更好地解释本申请实施例,下面结合具体实施场景,介绍本申请实施例提供的一种区块链交易分配方法,该方法的流程可以由图1所示的区块链系统中的任意一个节点执行,包括以下步骤,如图5所示:
设定待分配交易为TX1,该区块链系统由三条子链组成,该区块链同时进行三条子链的区块生成,生成区块将随机分配至三条子链中如图5所示,第一条子区块链包括区块C01、区块C02、区块C03、区块C04;第二条子区块链包括区块C11、区块C12、区块C03、区块C14、区块C15;第三条子区块链包括区块C21、区块C22、区块C23、区块C24;三条子链均指向同一创世区块G0。当前待分配交易的目标区块的逻辑时钟线方向为虚线所示方向:区块C04→区块C14→区块C24→区块C23→区块C22→区块C21→创世区块G0。其中,设定预设差值为3。沿目标区块的引导区块(区块04)的逻辑时钟路径方向推进3个时钟,即区块C23,确认与区块C23在同一高度的区块为区块C03、区块C13。将区块C23、区块C03、区块C13对应生成的节点和本地节点共同构成共识成员组,并按共识成员组中的每个节点地址对应的二进制数值大小进行排序,并统计共识成员组中节点的总数。取区块C04的哈希和当前交易TX1的哈希,生成目标标记哈希。用目标标记哈希对共识成员组中节点的总数进行取余,得到的结果为当前交易TX1分配的节点编号,若与本地节点编号一致,则将当前交易TX1添加至目标区块中。验证该交易和目标区块的对应节点之间的交易分配关系,若校验通过,则确定该目标区块为合法区块,添加至本地区块链中,否则拒绝将目标区块添加至本地区块链中。
通过将交易分配到目标节点上进行处理,可以有效解决高并发区块链系统中交易重复的问题,显著提升区块链网络的实际交易处理能力,以此提高区块链网络中实际交易的吞吐能力;另外通过对交易进行随机分配至各区块链的节点上,可以根据区块最新状态进行动态调整,有效避免交易被特定节点过滤或者垄断,提升了整个区块链网络的安全性和公平性。
基于相同的技术构思,本申请实施例提供了一种区块链交易分配装置的结构示意图,应用于区块链系统中的任意一个节点,如图6所示,该装置600包括:
引导模块601,用于确定待分配交易的目标区块指向的引导区块,所述引导区块是本地节点在生成所述目标区块时监测到的具有最大逻辑时钟的合法区块;
处理模块602,用于基于所述引导区块,确定用于分配目标交易的共识成员组,以及基于所述目标交易的交易哈希和所述引导区块的区块哈希,生成目标标记哈希;
编号模块603,用于基于所述目标标记哈希和所述共识成员组中的节点总数,为所述目标交易分配的目标节点编号;
匹配模块604,用于若所述目标节点编号为所述本地节点的节点编号,则将所述目标交易添加至所述目标区块中。
通过将交易分配到目标节点上进行处理,可以有效解决高并发区块链系统中交易重复的问题,显著提升区块链网络的实际交易处理能力,以此提高区块链网络中实际交易的吞吐能力;另外通过对交易进行随机分配至各区块链的节点上,可以根据区块最新状态进行动态调整,有效避免交易被特定节点过滤或者垄断,提升了整个区块链网络的安全性和公平性。
可选地,所述引导模块601具体用于:
将所述引导区块的区块哈希添加至所述目标区块的相应字段。
可选地,所述处理模块602具体用于:
监测各个子区块链中主链的最新区块;
若任意两个最新区块的逻辑时钟的差值小于等于预设差值时;或者,若任意两个最新区块的区块高度的差值小于等于预设差值时,基于所述引导区块,确定用于分配目标交易的共识成员组。
可选地,所述处理模块602具体用于:
若存在两个最新区块的逻辑时钟的差值大于预设差值;或者,若存在两个最新区块的区块高度的差值大于预设差值时,则随机分配交易至所述目标区块中,或者不添加交易至所述目标区块。
可选地,所述处理模块602具体用于:
从各个子区块链的主链中,确定满足预设条件的多个历史区块,其中,所述预设条件指:与所述引导区块的逻辑时钟或高度的距离大于等于预设差值;
基于所述多个历史区块,确定所述共识成员组。
可选地,所述处理模块602具体用于:
按照所述共识成员组中多个节点的地址信息,对所述多个节点进行排序,并基于排序结果为每个节点分配一个节点编号。
可选地,所述编号模块603具体用于:
采用所述目标标记哈希,对所述共识成员组中的节点总数求余,获得求余结果;
将所述求余结果作为所述目标节点编号。
可选地,所述编号模块603具体用于:
若所述目标节点编号不是所述本地节点的节点编号,则跳过所述目标交易。
可选地,所述处理模块602具体用于:
接收其他节点广播的待校验区块;
对所述待校验区块中包含的历史交易,与生成所述待校验区块的节点之间的交易分配关系进行校验;
若校验通过,则确定所述待校验区块为合法区块。
可选地,所述处理模块602具体用于:
基于所述历史交易的交易哈希,和所述待校验区块对应的引导区块的区块哈希,确定待校验标记哈希;以及基于所述待校验区块对应的引导区块,确定用于分配所述历史交易的历史共识成员组;
基于所述待校验标记哈希和所述历史共识成员组中的节点总数,确定所述历史交易对应的历史节点编号;
若所述历史节点编号为所节点的节点编号,则确定校验通过。
通过将交易分配到目标节点上进行处理,可以有效解决高并发区块系统中交易重复的问题,显著提升区块链网络的实际交易处理能力,以此提高区块链网络中实际交易的吞吐能力;另外通过对交易进行随机分配至各区块链的节点上,可以根据区块最新状态进行动态调整,有效避免交易被特定节点过滤或者垄断,提升了整个区块链网络的安全性和公平性。
基于相同的技术构思,本申请实施例提供了一种计算机设备,如图7所示,包括至少一个处理器701,以及与至少一个处理器连接的存储器702,本申请实施例中不限定处理器701与存储器702之间的具体连接介质,图7中处理器701和存储器702之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器702存储有可被至少一个处理器701执行的指令,至少一个处理器701通过执行存储器702存储的指令,可以执行上述区块链交易分配方法的步骤。
其中,处理器701是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器702内的指令以及调用存储在存储器702内的数据,从而实现区块链的交易分配。可选的,处理器701可包括一个或多个处理单元,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。在一些实施例中,处理器701和存储器702可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器701可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器702作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器702可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器702是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器702还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于同一发明构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当程序在计算机设备上运行时,使得计算机设备执行上述区块链交易分配方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (13)
1.一种区块链交易分配方法,应用于区块链系统中的任意一个节点,其特征在于,包括:
确定待分配交易的目标区块指向的引导区块,所述引导区块是本地节点在生成所述目标区块时监测到的具有最大逻辑时钟的合法区块;
基于所述引导区块,确定用于分配目标交易的共识成员组,以及基于所述目标交易的交易哈希和所述引导区块的区块哈希,生成目标标记哈希;
基于所述目标标记哈希和所述共识成员组中的节点总数,为所述目标交易分配的目标节点编号;
若所述目标节点编号为所述本地节点的节点编号,则将所述目标交易添加至所述目标区块中。
2.如权利要求1所述的方法,其特征在于,所述确定待分配交易的目标区块指向的引导区块之后,还包括:
将所述引导区块的区块哈希添加至所述目标区块的相应字段。
3.如权利要求1所述的方法,其特征在于,所述基于所述引导区块,确定用于分配目标交易的共识成员组,包括:
监测各个子区块链中主链的最新区块;
若任意两个最新区块的逻辑时钟的差值小于等于预设差值;或者,若任意两个最新区块的区块高度的差值小于等于预设差值,则基于所述引导区块,确定用于分配目标交易的共识成员组。
4.如权利要求3所述的方法,其特征在于,还包括:
若存在两个最新区块的逻辑时钟的差值大于预设差值;或者,若存在两个最新区块的区块高度的差值大于预设差值时,则随机分配交易至所述目标区块中,或者不添加交易至所述目标区块。
5.如权利要求1所述的方法,其特征在于,所述基于所述引导区块,确定用于分配目标交易的共识成员组,包括:
从各个子区块链的主链中,确定满足预设条件的多个历史区块,其中,所述预设条件指:与所述引导区块的逻辑时钟或高度的距离大于等于预设差值;
基于所述多个历史区块,确定所述共识成员组。
6.如权利要求5所述的方法,其特征在于,所述基于所述多个历史区块,确定所述共识成员组之后,还包括:
按照所述共识成员组中多个节点的地址信息,对所述多个节点进行排序,并基于排序结果为每个节点分配一个节点编号。
7.如权利要求1所述的方法,其特征在于,所述基于所述目标标记哈希和所述共识成员组中的节点总数,为所述目标交易分配的目标节点编号,包括:
采用所述目标标记哈希,对所述共识成员组中的节点总数求余,获得求余结果;
将所述求余结果作为所述目标节点编号。
8.如权利要求1所述的方法,其特征在于,还包括:
若所述目标节点编号不是所述本地节点的节点编号,则跳过所述目标交易。
9.如权利要求1至8任一所述的方法,其特征在于,还包括:
接收其他节点广播的待校验区块;
对所述待校验区块中包含的历史交易,与生成所述待校验区块的节点之间的交易分配关系进行校验;
若校验通过,则确定所述待校验区块为合法区块。
10.如权利要求9所述的方法,其特征在于,所述对所述待校验区块中包含的历史交易,与生成所述待校验区块的节点之间的交易分配关系进行校验,包括:
基于所述历史交易的交易哈希,和所述待校验区块对应的引导区块的区块哈希,确定待校验标记哈希;以及基于所述待校验区块对应的引导区块,确定用于分配所述历史交易的历史共识成员组;
基于所述待校验标记哈希和所述历史共识成员组中的节点总数,确定所述历史交易对应的历史节点编号;
若所述历史节点编号为生成所述待校验区块的节点的节点编号,则确定校验通过。
11.一种区块链交易分配装置,应用于区块链系统中的任意一个节点,其特征在于,包括:
引导模块,用于确定待分配交易的目标区块指向的引导区块,所述引导区块是本地节点在生成所述目标区块时监测到的具有最大逻辑时钟的合法区块;
处理模块,用于基于所述引导区块,确定用于分配目标交易的共识成员组,以及基于所述目标交易的交易哈希和所述引导区块的区块哈希,生成目标标记哈希;
编号模块,用于基于所述目标标记哈希和所述共识成员组中的节点总数,为所述目标交易分配的目标节点编号;
匹配模块,用于若所述目标节点编号为所述本地节点的节点编号,则将所述目标交易添加至所述目标区块中。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~10任一权利要求所述方法的步骤。
13.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求1~10任一所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211450950.5A CN115730009A (zh) | 2022-11-18 | 2022-11-18 | 一种区块链交易分配方法及装置 |
PCT/CN2023/125668 WO2024104047A1 (zh) | 2022-11-18 | 2023-10-20 | 一种区块链交易分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211450950.5A CN115730009A (zh) | 2022-11-18 | 2022-11-18 | 一种区块链交易分配方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115730009A true CN115730009A (zh) | 2023-03-03 |
Family
ID=85296700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211450950.5A Pending CN115730009A (zh) | 2022-11-18 | 2022-11-18 | 一种区块链交易分配方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115730009A (zh) |
WO (1) | WO2024104047A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116777631A (zh) * | 2023-08-17 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 基于区块链的交易上链方法及装置、设备、介质 |
WO2024104047A1 (zh) * | 2022-11-18 | 2024-05-23 | 中国银联股份有限公司 | 一种区块链交易分配方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327759A (zh) * | 2021-07-06 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 区块链数据的处理方法及装置 |
CN114281888A (zh) * | 2021-10-30 | 2022-04-05 | 中国银联股份有限公司 | 一种区块链共识方法、装置、设备及存储介质 |
CN113850600B (zh) * | 2021-12-01 | 2022-04-26 | 深圳前海微众银行股份有限公司 | 基于区块链的交易共识方法、装置、设备及存储介质 |
CN114338673A (zh) * | 2021-12-30 | 2022-04-12 | 马上消费金融股份有限公司 | 一种交易数据处理方法、装置、设备、系统及存储介质 |
CN115730009A (zh) * | 2022-11-18 | 2023-03-03 | 中国银联股份有限公司 | 一种区块链交易分配方法及装置 |
-
2022
- 2022-11-18 CN CN202211450950.5A patent/CN115730009A/zh active Pending
-
2023
- 2023-10-20 WO PCT/CN2023/125668 patent/WO2024104047A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024104047A1 (zh) * | 2022-11-18 | 2024-05-23 | 中国银联股份有限公司 | 一种区块链交易分配方法及装置 |
CN116777631A (zh) * | 2023-08-17 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 基于区块链的交易上链方法及装置、设备、介质 |
CN116777631B (zh) * | 2023-08-17 | 2023-11-24 | 腾讯科技(深圳)有限公司 | 基于区块链的交易上链方法及装置、设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024104047A1 (zh) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115730009A (zh) | 一种区块链交易分配方法及装置 | |
CN110838063B (zh) | 基于区块链的交易处理方法、电子设备和存储介质 | |
CN110868441A (zh) | 区块链公链的维护方法、装置、节点及区块链公链 | |
CN114281888A (zh) | 一种区块链共识方法、装置、设备及存储介质 | |
CN113254272B (zh) | 区块链网络的数据处理方法、装置、计算机设备和介质 | |
CN112508573B (zh) | 一种交易数据处理方法、装置以及计算机设备 | |
CN106650496B (zh) | 一种数据处理方法及装置 | |
CN115859343A (zh) | 一种交易数据处理方法、装置以及可读存储介质 | |
CN110784521B (zh) | 区块链的共识方法、电子设备和存储介质 | |
CN110659905B (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN113935835A (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
CN112037061A (zh) | 区块链中交易的处理方法、装置、电子设备及存储介质 | |
US20090217008A1 (en) | Program conversion device, and secret keeping program | |
CN116703601B (zh) | 基于区块链网络的数据处理方法、装置、设备及存储介质 | |
CN113706150B (zh) | 一种区块确认方法及装置 | |
CN112258184B (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
US20170170958A1 (en) | Communication control device, communication control method, and computer program product | |
CN112634034A (zh) | 预约方法、装置、电子设备及计算机可读存储介质 | |
CN114285860B (zh) | 一种调整区块生成难度的方法、装置、设备及存储介质 | |
CN113269644A (zh) | 基于区块链的交易处理方法及装置 | |
CN114095410B (zh) | 一种测试实验的分流方法、分流装置和存储介质 | |
CN112417478A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN112351085A (zh) | 一种网络资源安全共享方法 | |
CN113505155B (zh) | 基于区块链网络的交易信息检索方法和检索装置 | |
US20230214268A1 (en) | Method and system for secure scheduling of workflows and virtual machine utilization in cloud |
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 |