区块链中的交易处理方法、装置及电子设备与流程

文档序号:26139266发布日期:2021-08-03 14:22阅读:307来源:国知局
区块链中的交易处理方法、装置及电子设备与流程

本申请是申请号为“202110146211.6”、申请日为“2021年02月03日”、发明名称为“区块链中的交易处理方法、装置及电子设备”的专利申请的分案申请。

本文件涉及区块链技术领域,尤其涉及一种区块链中的交易处理方法、装置及电子设备。



背景技术:

一些区块链系统中,交易处理的流程可以如图1所示,包括如下四个阶段:收集交易→共识→交易执行→写块。经过上述过程,可以生成一个区块。在生成一个区块(如图1中区块n)后,进入下一个区块(如图1中区块n+1)的交易处理流程。

如前所述,区块链中一个区块的交易处理流程包括四个阶段。在生成第n号区块后,进入第n+1号区块的交易处理流程。这样的交易处理方式,在任一时间点,共识节点仅可以处理一个区块对应的一个阶段。这种方式不能很好地利用节点的处理资源,例如不能很好地利用多核的并行计算特性,区块链系统的性能也难以得到提升。

图1所示为区块链系统中的共识节点处理交易的一般过程。在一些区块链系统中,并不是所有的共识节点都执行上述四阶段中的交易收集操作。例如在一些采用有主共识算法(例如practicalbyzantinefaulttolerance,pbft,实用拜占庭容错算法)的区块链系统中,共识主节点可以执行上述四阶段的操作,共识非主节点可以执行共识→交易执行→写块这三个阶段的操作;也可以是各个共识节点均执行上述四个阶段的全部操作。在另外一些采用无主共识算法(例如honeybadgerbyzantinefaulttolerant,hbbft,蜜獾拜占庭容错算法)的区块链系统中,共识节点不区分主节点或是非主节点,各个共识节点均可以执行上述四个阶段的全部操作。

申请公布号为cn111522648a的中国专利,公开了一种交易处理方法,区块链节点并行地执行第n轮交易的写块操作和第n+1轮交易的共识执行操作。代表性的实施例可以如图2所示(也是申请公布号为cn111522648a的专利的附图2)。如图2中,第一线程和第二线程可以并行执行,第一线程进行n轮的共识及交易执行过程中,第二线程可以并行地进行第n-1轮交易的写块操作;第一线程进行n+1轮的共识及交易执行过程中,第二线程可以并行的进行第n轮交易的写块操作;第一线程进行n+2轮的共识及交易执行过程中,第二线程可以并行的进行第n+1轮交易的写块操作。上述例子主要是针对区块链交易处理过程中,共识阶段和交易执行阶段占用时间均比较短,写块阶段占用时间相对较长的情况。因此,保持同一个轮次中共识操作和交易执行操作的耦合关系,而与该轮次的写块操作解耦,从而可以采用两个不同线程,分别执行(共识+交易执行)和写块。这样,在执行上一区块的写块操作的过程中,可以并行执行下一区块的(共识+交易执行)操作,特别适用于采用多核cpu的计算机来处理,从而能够提高交易处理效率,使区块链系统能够适用于业务高并发的应用场景。

事实上,某一轮次收集的交易中,可能包括普通转账交易,也可能包括涉及智能合约的交易。对于普通转账交易来说,处理时间一般相对较短,而对于涉及智能合约的交易来说,可能合约逻辑较为复杂,或者涉及合约的交易较多,从而存在处理时间相对较长的情况。这样,对于包含大量涉及智能合约的交易来说,或者对于包含复杂逻辑的智能合约来说,交易执行环节的处理时间可能会比共识环节的时间长,与写块操作的处理时间更为接近,甚至比写块操作的处理时间更长。这样,该例子中仅仅将(共识+交易执行)和写块解耦,仍然有进一步的优化空间。



技术实现要素:

本说明书实施例提供了一种区块链中的交易处理方法、装置及电子设备。

一种区块链中的交易处理方法,包括:

区块链节点执行第n个区块对应的交易执行操作,其中所述第n个区块对应的交易已在区块链系统中达成共识;

所述区块链节点执行所述第n个区块对应的交易执行操作的过程中,并行地执行对第n+1个区块对应交易的共识操作,其中,n为正整数。

一种交易处理装置,应用于区块链节点,包括:

交易执行模块,执行第n个区块对应的交易执行操作,其中所述第n个区块对应的交易已在区块链系统中达成共识;

共识模块,在交易执行模块执行所述第n个区块对应的交易执行操作的过程中,并行地执行对第n+1个区块对应交易的共识操作。

一种电子设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:

执行第n个区块对应的交易执行操作,其中所述第n个区块对应的交易已在区块链系统中达成共识;

执行所述第n个区块对应的交易执行操作的过程中,并行地执行对第n+1个区块对应交易的共识操作,其中,n为正整数。

采用本说明书实施例提供的交易处理方法,在对区块链中的交易进行处理时,区块链节点可以并行地处理不同区块对应交易的不同阶段,利用了多核cpu的计算能力,大大提升了区块链系统的运行效率,提升了性能。

附图说明

此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:

图1为现有技术提供的一种区块链系统中处理交易的过程示意图;

图2为现有技术提供的交易处理方法的过程示意图;

图3为本说明书一个实施例提供的一种区块链中的交易处理方法的实施流程示意图;

图4为本说明书一个实施例提供的区块链中的交易处理方法的一种实施例的示意图;

图5为本说明书一个实施例提供的一种电子设备的结构示意图;

图6为本说明书一个实施例提供的交易处理装置的结构示意图。

具体实施方式

为使本文件的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本文件一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文件保护的范围。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

本说明书一个或多个实施例提供一种区块链中的交易处理方法,实现流程示意图如图3所示,包括:

步骤310,区块链节点执行第n个区块对应的交易执行操作。

其中,所述第n个区块对应的交易可以是在区块链系统中已达成共识的交易。进而,步骤310中,区块链节点可以执行已达成共识的第n个区块对应的交易。

上述交易执行操作,可以由区块链节点中的交易执行线程来处理。上述共识操作,可以由区块链节点中的共识线程来处理。

如背景技术所述,区块链中的交易处理过程通常包括收集交易、交易共识、交易执行和写块,这四个不同的操作。前面提到,可以是各个共识节点均执行上述四个阶段的全部操作,也可以是部分共识节点执行上述后三个阶段的操作而不执行收集交易的操作。这样,对于执行收集交易的共识节点来说,这个操作也可由该共识节点中的一个单独的线程执行,例如称为交易收集线程。具体地,如图4所示,该共识节点在执行第n个区块对应的交易执行操作开始之前,可以通过交易收集线程查询交易内存池中收集的交易是否已满足预设的交易收集条件。若满足该预设的交易收集条件,则该共识节点通过交易收集线程将交易内存池收集到的交易进行打包。这样,该共识节点可以得到待共识的提议。进一步地,该共识节点可以通过共识线程进行共识阶段的操作。

具体地,对于共识节点为采用有主共识算法的区块链系统中的共识主节点时,或者共识节点为采用无主共识算法的区块链系统中的共识节点时,共识线程可以从收集交易线程中获取第n个区块对应的交易。进而,可以基于该交易发起共识提议,从而进行共识阶段的操作,例如可以由区块链节点中的共识线程来进行共识操作。

此外,对于共识节点为采用有主共识算法的区块链系统中的共识非主节点时,区块链节点响应其它共识节点发来的对第n个区块对应的交易的共识提议,并基于该共识提议进行共识操作。例如可以由区块链节点中的共识线程来进行共识操作。该情况下,由于该共识节点是响应发来的共识提议,而发来的共识提议中可以包括待共识的交易,因此该共识节点可以不执行收集交易的操作。

由于所述共识线程需要从收集交易线程中获取第n个区块对应的交易,因此对于同一个区块对应交易的处理流程来说,仍然是可以保持收集交易→共识这样的顺序。

所述区块链节点对第n个区块对应的交易完成共识操作后,可以进行步骤310中的对第n个区块对应的交易执行操作。例如可以由区块链节点中的交易执行线程来进行交易执行操作。

类似地,共识线程执行完第n个区块对应交易的共识操作后,将共识结果传递至区块链节点的交易执行线程,因此,对于同一个区块对应交易的处理流程来说,仍然是可以保持共识→交易执行这样的顺序。

步骤320,区块链节点执行第n个区块对应的交易执行操作的过程中,并行地执行对第n+1个区块对应交易的共识操作。

类似地,该共识节点在对第n+1个区块对应交易执行共识操作开始之前,可以通过交易收集线程查询交易内存池中收集的交易是否已满足预设的交易收集条件。若满足该预设的交易收集条件,则该共识节点通过交易收集线程将交易内存池收集到的交易进行打包,从而形成第n+1个区块对应的交易。这样,该节点可以得到待共识的提议。进一步地,该共识节点可以通过共识线程进行共识阶段的操作,即步骤320中的执行对第n+1个区块对应交易的共识操作。

具体地,对于共识节点为采用有主共识算法的区块链系统中的共识主节点时,或者共识节点为采用无主共识算法的区块链系统中的共识节点时,共识线程可以从收集交易线程中获取第n+1个区块对应的交易。进而,可以基于该交易发起共识提议,从而进入共识阶段的操作,例如可以由区块链节点中的共识线程来进行共识操作。

此外,对于共识节点为采用有主共识算法的区块链系统中的共识非主节点时,区块链节点响应其它共识节点发来的对第n+1个区块对应的交易的共识提议,并基于该共识提议进行共识操作,例如可以由区块链节点中的共识线程来进行共识操作。该情况下,由于该共识节点是响应发来的共识提议,而发来的共识提议中可以包括待共识的交易,因此该共识节点可以不执行收集交易的操作。

由于共识线程需要从收集交易线程中获取第n+1个区块对应的交易,因此对于同一个区块对应交易的处理流程来说,仍然是可以保持收集交易→共识这样的顺序。

如果区块链节点执行收集第n个区块对应的交易的过程,且执行收集第n+1个区块对应的交易的过程,则区块链节点收集第n+1个区块对应的交易之后收集第n+1个区块对应的交易。这种情况特别适用于区块链节点仅分配了一个收集交易线程的情况。而且,区块链节点在对第n个提议进行共识的过程中,并行地执行收集第n+1个区块对应交易的操作。

所述区块链节点对第n+1个区块对应交易的共识操作,可以是在对第n个区块对应的交易达成共识之后执行。这种情况特别适用于区块链节点仅分配了一个共识线程的情况。

需要说明的是,第n个区块的共识提议和对第n+1个区块的共识提议可以由同一个共识节点发起,也可以由不同共识节点发起。例如,所述区块链节点对第n个区块的共识操作,可以是该区块链节点作为共识主节点发起的,而对第n+1个区块的共识操作,可以是另一区块链节点作为共识主节点发起的,反之亦然。

区块链节点对第n+1个区块对应的交易完成共识操作后,可以进行对第n+1个区块对应的交易执行操作。例如可以由区块链节点中的交易执行线程来进行交易执行操作。

类似地,共识线程执行完第n+1个区块对应交易的共识操作后,将共识结果传递至区块链节点的交易执行线程,因此,对于同一个区块对应交易的处理流程来说,仍然是可以保持共识→交易执行这样的顺序。

如图4中所示,区块链节点完成对第n个区块对应的交易执行操作后,区块链节点还可以将交易执行的结果写入区块链账本的第n个区块中,即写块操作。类似地,区块链节点执行所述第n个区块对应的写块操作的过程中,并行地执行对第n+1个区块对应的交易执行操作。

区块链节点对第n+1个区块对应的交易执行操作,可以是在对第n个区块对应的交易执行操作之后执行。这种情况特别适用于区块链节点仅分配了一个交易执行线程的情况。

如图4所示,区块链节点完成对第n+1个区块对应的交易执行操作后,区块链节点还可以将交易执行的结果写入区块链账本的第n+1个区块中。类似地,区块链节点对第n+1个区块对应的写块操作,可以是在对第n个区块对应的写块操作之后执行。这种情况特别适用于区块链节点仅分配了一个写块线程的情况。

区块链节点执行第n+1个区块对应的收集交易操作完成时,可能第n个区块的共识操作尚未完成,因此还不能开始对第n+1个区块的共识操作。此时,区块链节点可以将收集的第n+1个区块对应的交易存储到内存中,并在第n个区块的对应的共识操作完成之后,再从内存中提取该第n+1个区块对应的交易,并开始对第n+1个区块对应交易的共识操作。

类似地,区块链节点执行第n+1个区块对应的共识操作完成时,可能第n个区块的交易执行操作尚未完成,因此还不能开始对第n+1个区块的交易执行操作。此时,区块链节点可以将第n+1个区块对应的共识结果存储到内存中,并在第n个区块的对应的交易执行操作完成之后,再从内存中提取该第n+1个区块对应的共识结果,并开始执行第n+1个区块对应的交易执行操作。

类似地,所述区块链节点执行第n+1个区块对应的交易执行操作完成时,可能第n个区块的写块操作尚未完成,因此还不能开始对第n+1个区块的写块操作。此时,所述区块链节点可以将第n+1个区块对应的交易执行结果存储到内存中,并在第n个区块的对应的写块操作完成之后,再从内存中提取该第n+1个区块对应的交易执行结果,并开始执行第n+1个区块对应的写块操作。

采用本说明书实施例提供的交易处理方法,在对区块链链中的交易进行处理时,区块链节点可以并行地处理不同区块对应交易的不同阶段,利用了多核cpu的计算能力,大大提升了区块链系统的运行效率,提升了性能。

图5是本说明书的一个实施例提供的电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成交易处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

执行第n个区块对应的交易执行操作,其中所述第n个区块对应的交易已在区块链系统中达成共识;

执行所述第n个区块对应的交易执行操作的过程中,并行地执行对第n+1个区块对应交易的共识操作,其中,n为正整数。

基于图5所示的电子设备可以知道,本说明书实施例的方案在对区块链中的交易进行处理时,区块链节点可以并行地处理不同区块对应交易的不同阶段,利用了多核cpu的计算能力,大大提升了区块链系统的运行效率,提升了性能。

上述如本说明书图3~图4所示实施例揭示的区块链中的交易处理方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图3~图4的区块链中的交易处理方法,本说明书在此不再赘述。

当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图3~图4所示实施例的方法,并具体用于执行以下操作:

执行第n个区块对应的交易执行操作,其中所述第n个区块对应的交易已在区块链系统中达成共识;

执行所述第n个区块对应的交易执行操作的过程中,并行地执行对第n+1个区块对应交易的共识操作,其中,n为正整数。

图6是本说明书实施例提供的交易处理装置600的结构示意图。在具体的应用中,交易处理装置600可以是区块链节点,或者说,该交易处理装置可以部署在区块链节点上。请参考图6,在一种实施方式中,交易处理装置600包括:

交易执行模块603,执行第n个区块对应的交易执行操作,其中所述第n个区块对应的交易已在区块链系统中达成共识;

共识模块602,在交易执行模块执行所述第n个区块对应的交易执行操作的过程中,并行地执行对第n+1个区块对应交易的共识操作。

可选地,所述交易执行模块603执行第n个区块的交易执行操作之前,所述共识模块602还对所述第n个区块对应的交易在区块链系统中进行共识。

可选地,交易处理装置600还包括交易收集模块601,当共识模块602对所述第n个区块对应的交易在区块链系统中进行共识之前,所述交易收集模块601收集所述第n个区块对应的交易。

可选地,所述交易处理装置600还包括写块模块604,所述交易执行模块603完成对所述第n个区块对应的交易执行操作后,所述写块模块604将所述交易执行的结果写入区块链账本的第n个区块中。

可选地,所述共识模块602对第n个区块对应的交易达成共识之后执行对第n+1个区块对应交易的共识操作。

可选地,所述共识模块602在对所述第n个区块对应的交易进行共识的过程中,所述交易收集模块601并行地执行收集第n+1个区块对应交易的操作。

可选地,所述交易收集模块601收集第n个区块对应交易的之后执行收集第n+1个区块对应交易的操作。

可选地,所述写块模块604执行所述第n个区块对应的写块操作的过程中,所述交易执行模块603并行地执行对第n+1个区块对应的交易执行操作。

可选地,所述交易执行模块603在对第n个区块对应的交易执行操作之后执行对第n+1个区块对应的交易执行操作。

可选地,所述交易执行模块603完成对所述第n+1个区块对应的交易执行操作后,所述写块模块604将所述交易执行的结果写入区块链账本的第n+1个区块中。

可选地,所述写块模块604在对第n个区块对应的写块操作之后执行对第n+1个区块对应的写块操作。

可选地,如果所述交易收集模块601在执行收集第n+1个区块对应交易的操作结束之后,所述共识模块602对所述第n个区块对应的共识的过程尚未结束,所述交易收集模块还将收集的第n+1个区块对应的交易存储到内存中。

可选地,如果所述共识模块602在执行第n+1个区块对应的共识操作结束之后,所述交易执行模块603对所述第n个区块对应的交易执行过程尚未结束,所述共识模块还将对第n+1个区块的共识结果存储到内存中。

可选地,如果所述交易执行模块603在执行第n+1个区块对应的交易执行操作结束之后,所述写块模块604对所述第n个区块对应的写块过程尚未结束,所述交易执行模块还将对第n+1个区块对应的交易执行结果存储到内存中。

基于图6所示的交易处理装置600可以知道,本说明书实施例的方案在对区块链中的交易进行处理时,部署交易处理装置600的区块链节点可以利用多核cpu的计算能力,并行地处理不同区块对应交易的不同阶段,大大提升了区块链系统的运行效率,提升了性能。

总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

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

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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