本申请涉及区块链技术领域,具体而言,涉及一种区块链交易执行方法、装置、电子设备及存储介质。
背景技术:
在现有区块链技术中,为了保证所有交易执行结果的一致性,交易必须按照既定顺序同步执行,因此现有的区块链系统单位时间可以受理或执行的交易数量大大受到限制和制约。这也成为区块链技术在不同应用领域不能被广泛推广应用的瓶颈。
技术实现要素:
有鉴于此,本申请提供一种区块链交易执行方案。旨在消除区块链交易并发处理能力瓶颈。
为实现上述目的,本申请采用的技术方案如下:
第一方面,本申请提供一种区块链交易执行方法,包括:
判断交易与队列的相关性;
若交易与队列相关,则加入该队列;
若交易与所有队列无关,则新建队列,将交易置于新队列中;
同一队列中的交易同步先进先出执行,不同队列中的交易并行执行;
交易执行完成,将其从所在队列中删除。
可选地,所述判读交易与队列的相关性的具体方法为:判断交易中相关账户与队列中的账户有无交集且交易中相关动作与队列中的动作有无交集,若交易中相关账户与队列中的账户无交集且交易中相关动作与队列中的动作无交集,则该交易与该队列无关;否则相关。
可选地,所述若交易与队列相关,则加入该队列之后还包括:队列中相关型账户与相关性动作与交易取并集,且对应账户及动作相关计数加1。
可选地,所述若交易与所有队列无关,则新建队列,将交易置于新队列中之后还包括:队列中相关型账户与相关性动作与交易取并集,且对应账户及动作相关计数加1。
可选地,所述交易执行完成,将其从所在队列中删除后还包括:队列的对应账户及动作相关计数减1。
第二方面,本申请提供一种区块链交易执行装置,包括:
判断模块,用于判断交易与队列的相关性;
加入模块,用于若交易与队列相关,则加入该队列;
新建模块,用于若交易与所有队列无关,则新建队列,将交易置于新队列中;
执行模块,用于同一队列中的交易同步先进先出执行,不同队列中的交易并行执行;
删除模块,用于交易执行完成,将其从所在队列中删除。
第三方面,本申请提供一种电子设备,包括:
处理器、存储器及通信单元;
所述存储器存储有所述处理器可执行的机器可读指令,当所述终端运行时,所述处理器与所述存储器之间通过所述通信单元通信;
其中,所述处理器执行所述机器可读指令,以执行上述各方面所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述各方面所述的方法。
本申请的有益效果是:
1、本申请能在保证执行结果一致性的前提下,所有交易的执行时间由原来所有交易执行时间的累加减少至最长相关性队列交易执行时间。
2、能极大提高同时可并行处理交易的数量,且理论上没有上限。
3、能够有效消除区块链交易并发处理能力瓶颈,极大提高节点单位时间处理交易的数量;
4、使区块链技术在不同应用领域不再受到业务处理能力的制约。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请提供的一种区块链交易执行方法的流程示意图。
图2为本申请提供的一种区块链交易执行装置的结构示意图。
图3为本申请提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
如图1所示,本申请提供一种区块链交易执行方法,包括如下步骤:
s10:判断交易与队列的相关性;
s20:若交易与队列相关,则加入该队列;
s30:若交易与所有队列无关,则新建队列,将交易置于新队列中;
s40:同一队列中的交易同步先进先出执行,不同队列中的交易并行执行;
s50:交易执行完成,将其从所在队列中删除。
作为可选的实施方式,所述判读交易与队列的相关性的具体方法为:判断交易中相关账户与队列中的账户有无交集且交易中相关动作与队列中的动作有无交集,若交易中相关账户与队列中的账户无交集且交易中相关动作与队列中的动作无交集,则该交易与该队列无关;否则相关。
交易之间的相关性指:交易按照不同顺序执行会产生不同结果的交易称之为相关交易;交易按照任何顺序执行结果相同的交易称之为无关交易。
在区块链技术中,交易的内容定义有两种:1,谁(accounta)做什么(actiontype)。2,谁(accounta)对谁(accountb)做什么(actiontype)。
一笔交易与另一笔交易的相关性包括:1,账号相关性,即交易执行的主体及对象参与的交易,执行顺序不同结果不同。2,活动相关性,即交易执行的内容,会引起不同执行顺序结果不同。
交易中相关性信息定义:
队列中相关性信息定义:
作为可选的实施方式,所述若交易与队列相关,则加入该队列之后还包括:队列中相关型账户与相关性动作与交易取并集,且对应账户及动作相关计数加1。
作为可选的实施方式,所述若交易与所有队列无关,则新建队列,将交易置于新队列中之后还包括:队列中相关型账户与相关性动作与交易取并集,且对应账户及动作相关计数加1。
作为可选的实施方式,所述交易执行完成,将其从所在队列中删除后还包括:队列的对应账户及动作相关计数减1,如计数为0则去除该项。
如图2所示,本申请提供一种区块链交易执行装置,包括:
判断模块210,用于判断交易与队列的相关性;
加入模块220,用于若交易与队列相关,则加入该队列;
新建模块230,用于若交易与所有队列无关,则新建队列,将交易置于新队列中;
执行模块240,用于同一队列中的交易同步先进先出执行,不同队列中的交易并行执行;
删除模块250,用于交易执行完成,将其从所在队列中删除。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个微处理器(digitalsingnalprocessor,简称dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上装置(system-on-a-chip,简称soc)的形式实现。
图3为本申请提供的一种电子设备的结构示意图,该电子设备的功能与上述装置实现的功能相同,该电子设备包括:
处理器310、存储器320及通信单元330;
所述存储器320存储有所述处理器310可执行的机器可读指令,当所述终端运行时,所述处理器310与所述存储器320之间通过所述通信单元330通信;
其中,所述处理器310执行所述机器可读指令,以执行上述各方面所述的方法。
这些单元组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本申请的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得电子设备能够执行上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本申请实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本申请还提供一种计算机存储介质,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体rom或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。
本申请对所有需要执行的交易根据交易之间的相关性进行分类,有相关性的交易按照原有顺序进行排队,无关性的交易新建排队,最终形成若干条无关性队列,队列内相关交易需要按顺序同步执行,队列间无关交易可异步并行执行。这样,在保证执行结果一致性的前提下,所有交易的执行时间由原来所有交易执行时间的累加减少至最长相关性队列交易执行时间。同时可并行处理交易的数量,理论上没有上限。该策略能够有效消除区块链交易并发处理能力瓶颈,极大提高节点单位时间处理交易的数量,使区块链技术在不同应用领域不再受到业务处理能力的制约。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。