一种区块链的交易处理方法、装置及电子设备转让专利

申请号 : CN202010629721.4

文献号 : CN111522648B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李康邓福喜

申请人 : 支付宝(杭州)信息技术有限公司

摘要 :

本说明书实施例提供一种区块链的交易处理方法、装置及电子设备。方法包括:区块链中的区块链节点在所述区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数;所述区块链节点执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行。

权利要求 :

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

区块链中的区块链节点在所述区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数;

所述区块链节点执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行,区块链节点执行共识执行操作的线程和执行写块操作的线程不同。

2.根据权利要求1所述的方法,

区块链中的区块链节点在所述区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,包括:所述区块链节点在所述区块链的第N轮的共识的交易执行完毕后,通过第一线程对所述第N轮的共识的交易进行写块操作;

所述区块链节点执行所述区块链的第N+1轮的共识执行操作,包括:所述区块链节点通过第二线程执行所述区块链的第N+1轮的共识执行操作,其中,所述第二线程不同于所述第一线程。

3.根据权利要求2所述的方法,

所述区块链节点针对所述第一线程和所述第二线程设置有用于访问区块链资源的线程锁,在所述第一线程和所述第二线程中,对应有在先共识轮次的线程先于对应有在后共识轮次的线程请求所述线程锁的使用权。

4.根据权利要求2所述的方法,还包括:

所述区块链节点通过第三线程监测所述第二线程是否存在写块操作任务;以及,所述区块链节点在执行完成第N+1轮的共识执行操作后,且基于所述第三线程监测到所述第二线程不存在写块操作任务时,将对所述第N轮的共识的交易的写块操作任务添加至所述第二线程中。

5.根据权利要求1-4中任一项所述的方法,还包括:

若所述区块链节点在对所述第N轮的共识的交易进行写块操作时发生宕机,则在重启恢复后向其他区块链节点获取写入有所述第N轮的共识的交易的区块的信息,以基于所述区块的信息,重新对所述第N轮的共识的交易进行写块操作,其中,所述区块是所述其他区块链节点完成对所述第N轮的共识的交易的写块操作而生成的。

6.根据权利要求5所述的方法,还包括:

若所述区块链节点在重启恢复后未能向所述其他区块链节点获取写入有第N轮的共识的交易的区块的信息,则基于共识执行日志模拟第N轮的共识,以重新确定第N轮的共识的交易;

所述区块链节点对重新确定出的第N轮的共识的交易进行写块操作。

7.根据权利要求1-4中任一项所述的方法,

所述第N+1轮的共识是所述区块链中的目标区块链节点在对所述第N轮共识的交易进行写块操作时所发起的,所述目标区块链节点作为所述区块链的共识主节点。

8.根据权利要求1-4中任一项所述的方法,还包括:

所述区块链节点在完成对所述第N轮的共识的交易的写块操作以及所述第N+1轮的共识执行操作后,对所述第N+1轮的共识的交易进行写块操作。

9.根据权利要求8所述的方法,

所述共识执行操作包括执行交易后的提交commit操作,所述第N+1轮的共识执行操作中的commit操作在所述第N轮的共识的交易的写块操作执行完毕后执行。

10.一种区块链的交易处理装置,包括:

交易写块模块,在区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数;

共识执行模块,执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行,区块链节点执行共识执行操作的线程和执行写块操作的线程不同。

11.一种电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:在区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数;

执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行,区块链节点执行共识执行操作的线程和执行写块操作的线程不同。

12.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:在区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数;

执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行,区块链节点执行共识执行操作的线程和执行写块操作的线程不同。

说明书 :

一种区块链的交易处理方法、装置及电子设备

技术领域

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

背景技术

[0002] 区块链由于具有开放性、不可篡改性、去中心化等优点,越来越受到各行各业的青睐。目前,区块链的交易处理流程主要包括:区块链节点对客户端发起的交易进行共识;若共识达成,则执行交易,并在执行完成对交易进行写块记录。其中,这里所述的共识、执行、写块三个阶段是以串行方式进行的,因此区块链的交易处理效率较低。
[0003] 在未来阶段,区块链业务会呈爆发性增长,为了满足业务高并发的场景需求,有必要提出一种能够提高区块链交易处理效率的技术方案。

发明内容

[0004] 本说明书实施例目的是提供一种区块链的交易处理方法、装置及电子设备,能够提高区块链交易处理效率。
[0005] 为了实现上述目的,本说明书实施例是这样实现的:
[0006] 第一方面,提供一种交易处理方法,包括:
[0007] 区块链中的区块链节点在所述区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数;
[0008] 所述区块链节点执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行。
[0009] 第二方面,提供一种区块链的交易处理装置,包括:
[0010] 交易写块模块,在区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数;
[0011] 共识执行模块,执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行。
[0012] 第三方面,提供一种电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:
[0013] 区块链中的区块链节点在所述区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数;
[0014] 所述区块链节点执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行。
[0015] 第四方面,提供一种算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
[0016] 在所述区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数;
[0017] 执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行。
[0018] 基于本说明书实施例的方案,区块链节点可以并行执行第N轮的共识的交易的写块操作和第N+1轮的共识执行操作,即区块链节点在对本轮次的交易进行写块的同时,还执行下一轮次的共识和下一轮次的共识所达成的交易,从而能够提高交易处理效率,使区块链能够适用于业务高并发的应用场景。

附图说明

[0019] 为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图;
[0020] 图1为本说明书实施例提供的区块链的交易处理方法的流程示意图;
[0021] 图2为交易处理方法中的第一线程和第二线程并行处理任务的第一种示意图;
[0022] 图3为交易处理方法中的第一线程和第二线程并行处理任务的第二种示意图;
[0023] 图4为本说明书实施例提供的区块链的交易处理装置的结构示意图;
[0024] 图5为本说明书实施例提供的电子设备的结构示意图。

具体实施方式

[0025] 为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0026] 如前所述,目前的区块链节点是以串行方式完成交易的共识、执行和写块这三个阶段的,这导致对交易处理效率较低。随着区块链越来越受到各行各业的青睐,业务量也会呈爆发性增长,因此现有的这种交易处理方式在未来可能会导致区块链难以适用在业务高并发的场景中。
[0027] 针对这一问题,本文件旨在提供一种能够提高区块链处理交易效率的技术方案。
[0028] 图1是本说明书实施例区块链的交易处理方法的流程图。图1所示的方法可以由下文相对应的装置执行,包括如下步骤:
[0029] S102,区块链中的区块链节点在区块链的第N轮的共识的交易执行完毕后,对第N轮的共识的交易进行写块操作,其中N为正整数。
[0030] 本说明书实施例中,上述第N轮的共识的交易具体指第N轮的共识所达成的任意数量的交易。对于第N轮的共识未达成的交易,区块链节点可以拒绝执行,因此没有必要对未达成的交易进行写块记录。
[0031] S104,区块链节点执行区块链的第N+1轮的共识执行操作,共识执行操作包括区块链的第N+1轮的共识及第N+1轮的共识达成后的交易执行,其中第N+1轮的共识执行操作与第N轮的写块操作并行执行。
[0032] 应理解,上述第N+1轮的共识是区块链中作为共识主节点的目标区块链节点在对第N轮的共识的交易进行写块操作时所发起的。
[0033] 此外,这里所述的并行执行是指:区块链节点进行第N+1轮的共识执行操作的时间不早于区块链节点对第N轮的共识的交易进行写块操作的时间,且两者在时间维度上存在重合。
[0034] 基于图1所示的交易处理方法可以知道,本说明书实施例的方案并行执行第N轮的共识的交易的写块操作和第N+1轮的共识执行操作,即区块链节点在对本轮次的交易进行写块的同时,还执行下一轮次的共识和下一轮次的共识所达成的交易,从而能够提高交易处理效率,使区块链能够适用于业务高并发的应用场景。
[0035] 下面对本说明书实施例的交易处理方法进行详细介绍。
[0036] 在本说明书实施例的交易处理方法中,区块链节点可以通过第一线程执行写块操作,并通过第二线程执行共识执行操作。
[0037] 应理解,第一线程不同于第二线程,且两者并行。此外,这里所述的第一线程可以是已有的线程,比如:沿用之前轮次的写块操作的线程;或者,第一线程可也可以是新建的线程。同理,第二线程也可以是已有的线程,或者也可以是新建的线程,本说明实施例对此不作具体限定。
[0038] 由于第一线程和第二线程是并行执行的,因此在实际应用中,第一线程和第二线程可能会同时使用区块链资源,比如:第一线程进行写块操作时和第二线程执行交易时都会对区块链中的数据(如状态树)进行读写,而同时使用区块链资源则可能会引发逻辑错误而导致系统发生崩溃。
[0039] 为了避免这一问题发生,本说明书实施例中,区块链节点可以针对第一线程和第二线程设置用于访问区块链资源的线程锁,以保证线程安全。在第一线程和第二线程中,对应有在先共识轮次的线程先于对应有在后共识轮次的线程请求线程锁的使用权。
[0040] 比如,同一时刻,第一线程执行第N+1轮的共识的交易,第二线程执行第N轮的共识的交易的写块操作,则第二线程应优先获得线程锁的使用权,以访问区块链资源;当第二线程完成对第N轮的共识的交易的写块操作后,第一线程再获得线程锁的使用权。
[0041] 在实际应用中,区块链节点可以设置线程锁的访问队列,并将第一线程和第二线程各自的任务按照对应的共识轮次的先后顺序添加至访问队列。
[0042] 其中,作为示例性介绍,访问队列可以如下表所示:
[0043]访问顺序 线程 任务
1 第二线程 执行第N轮的共识的交易的写块操作
2 第一线程 执行第N+1轮的共识的交易
3 第二线程 执行第N+1轮的共识的交易的写块操作
4 第一线程 执行第N+2轮的共识的交易
[0044] 此外,区块链节点同时对不同共识轮次的交易进行写块操作也有可能产生业务逻辑上错误,而导致系统崩溃。比如,第N轮的共识中有一个客户端A发起的支出交易,第N+1轮的共识中有该客户端A发起的另一支出交易,如果同时对第N轮和第N+1轮的共识的交易写块,则区块记录的两个不同的指出交易可能存在时序的上的错误。为了避免这一问题发生,区块链节点应在完成对第N轮的共识的交易的写块操作以及第N+1轮的共识执行操作后,再对第N+1轮的共识的交易进行写块操作。
[0045] 在具体实现时,本说明说书实施例的方法可以通过第三线程(第三线程可以是第一线程,也可以是处第一线程和第二线程外的新线程)监测第二线程是否存在写块操作任务。其中,在执行完成第N+1轮的共识执行操作后,若基于第三线程监测到第二线程不存在写块操作任务,再将对第N+1轮的共识的交易的写块操作任务添加至第二线程中。
[0046] 下面对第一线程和第二线程的执行时隙进行详细介绍。
[0047] 针对目前的区块链,共识阶段占用的时间比较短,一般在20m-30ms之间;写块阶段占用的时间较长,一般在100ms-200ms之间;交易执行阶段占用的时间根据交易类型的不同对应有不同的长度,可以小于写块阶段的用时,也可以大于写块阶段的用时。因此,在某些场景下,区块链节点在对本轮的共识的交易进行写块的时期内即可完成对下一轮的共识执行操作;在另一些场景下,区块链节点在对本轮的共识的交易进行写块的时期内未完成对下一轮的共识执行操作。
[0048] 为了方便理解,可以参考图2所示的第一线程和第二线程执行任务的示意图。图2中横方向表示时间,T1表示区块链节点对第N-1轮的交易的写块起始时间,T2表示区块链节点对第N-1轮的交易的写块终止时间,T3表示区块链节点执行第N+1轮的交易的终止时间。在本说明书实施例中,假设第N-1轮的写块的用时大于第N轮的共识执行操作的用时,则区块链节点应在T2至T3的时间段内执行并完成:第N+1轮的共识和第N+1轮的交易执行,并可以在早于T3的时间开始第N轮的交易的写块操作。假设第N轮的写块的用时小于第N+1轮的共识执行操作的用时,则区块链节点应在T3之前完成第N轮的写块操作,以及在不早于T3的时间开始第N+1轮的交易的写块操作。
[0049] 此外,区块链节点在执行写块操作前,还会对需要写块的交易发起一个提交commit操作,这个commit操作用于在交易落块前调整区块链的树结构。作为本说明书实施例的另一种可行方案,还可以将上述commit操作也添加为共识执行操作中。对应地,第N+1轮的共识执行操作中的commit操作应在第N轮的共识的交易的写块操作执行完毕后执行。
[0050] 为方便理解,可以参考图3所示的第一线程和第二线程执行任务的示意图。图3中的T4表示区块链节点对第N轮的交易的写块起始时间,T5表示区块链节点对第N轮的交易的写块终止时间,T6表示区块链节点对第N+1轮的交易的写块起始时间。在本说明书实施例中,区块链节点应在T4至T5的时间段内执行并完成:第N轮的共识以及第N轮(共识)的交易执行,并在不早于T5的时间开始第N+1轮的交易执行后的commit操作,以及在不早于T6的时间开始第N+1轮的交易的写块操作。
[0051] 进一步地,除了并行执行写块操作和共识执行操作外,保证写块的顺利执行也是提高区块链交易处理效率的重要手段。
[0052] 在本说明书实施例中,如果区块链节点在对第N轮的共识的交易进行写块操作时发生宕机(区块链节点会丢失第N轮共识所达成的交易),则在重启恢复可以向其他区块链节点获取写入有第N轮的共识的交易的区块的信息,以基于该区块的信息,重新对第N轮的共识的交易进行写块操,其中,上述区块是其他区块链节点完成对第N轮的共识的交易的写块操作而生成的。
[0053] 为方便理解,假设区块链有区块链节点A、B、C。在第N轮的共识的交易执行完成后,区块链节点A、B、C需要分别对第N轮的共识的交易进行写块操作,以在各自的子区块链中生成写入有第N轮的共识的交易的新区块。假设这个写块过程中,只有区块链节点A发生了宕机,未能完成第N轮的共识的交易的写块操作,则区块链节点A可以向区块链节点B、C中的任意一者请求最新的区块的信息。显然,这个最新的区块的信息写入有第N轮的共识的交易,因此区块链节点A可以基于从其他区块链节点的请求得到的最新区块的信息,重新对第N轮的共识的交易进行写块操作,以在区块链节点A的子区块链中生成与区块链节点B、C同步的最新区块。
[0054] 当然,如果区块链节点在重启恢复后未能向其他区块链节点获取写入有第N轮的共识的交易的区块的信息,则可以基于共识执行日志,模拟第N轮的共识,以重新确定第N轮的共识的交易;之后,再进一步对重新确定出的第N轮的共识的交易进行写块。
[0055] 为方便理解,还是假设区块链有区块链节点A、B、C。区块链节点A、B、C针对每轮共识都保存一个水位的共识执行日志,这个共识执行日志可以被记录在其子区块链中任意的区块内。比如,区块链节点A、B、C在第N轮的共识阶段,可以将第N轮的共识执行日志存储至第N-1轮、N-2轮(N大于2)共识所生成的区块中。假设区块链节点A、B、C在对第N轮的共识的交易写块的过程中,都发生宕机,导致在各自的子区块链中未生成写入有第N轮的共识的交易的区块。在这种情况下,区块链节点A、B、C分别从各自子区块链中已有的区块中调取共识执行日志,以模拟第N轮的共识,从而重新确定出因宕机所丢失的第N轮的共识的交易。之后区块链节点A、B、C分别对重新确定出的第N轮的共识的交易进行写块操作,以在本地的子区块链中生成新的区块。这里需要说明的是,区块链节点在模拟完成第N轮的共识后,不需再重复执行第N轮的共识的交易。
[0056] 下面对本说明书实施例的方法处理多个轮共识的交易的流程进行示例性介绍。其中,该流程主要包括以下步骤:
[0057] 区块链中的各区块链节点在区块链的第N轮的共识的交易执行完毕后,对第N轮的共识所达成的第一交易集进行写块操作,同时这些区块链节点中的共识主节点发起第N+1轮的共识提议,各区块链节点执行第N+1轮的共识。
[0058] 各区块链节点在完成第N+1轮的共识后,执行第N+1轮的共识所达成共识的第二交易集。
[0059] 各区块链节点在完成对第一交易集写块操作以及对第二交易集的执行后,对第二交易集进行写块,同时这些区块链节点中的共识主节点发起第N+2轮的共识提议,各区块链节点执行第N+2轮的共识。
[0060] 以上是对本说明书实施例的方法的介绍。应理解,其他轮次也应按照本文上述原理以此类推,本文不再举例一一赘述。
[0061] 与上述方法相对应地,如图4所示,本说明书实施例还提供一种交易处理装置400,包括:
[0062] 交易写块模块410,在所述区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数;
[0063] 共识执行模块420,执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行。
[0064] 基于图4所示的区块链的交易处理装置可以知道,本说明书实施例的方案并行执行第N轮的共识的交易的写块操作和第N+1轮的共识执行操作,即区块链节点在对本轮次的交易进行写块的同时,还执行下一轮次的共识和下一轮次的共识所达成的交易,从而能够提高交易处理效率,使区块链能够适用于业务高并发的应用场景。
[0065] 可选地,交易写块模块410在执行时,具体在所述区块链的第N轮的共识的交易执行完毕后,通过第一线程对所述第N轮的共识的交易进行写块操作。共识执行模块420在执行时,具体通过第二线程执行所述区块链的第N+1轮的共识执行操作,其中,所述第二线程不同于所述第一线程。
[0066] 可选地,所述交易处理装置针对所述第一线程和所述第二线程设置有用于访问区块链资源的线程锁,以保证所述第一线程和所述第二线程的线程安全。在所述第一线程和所述第二线程中,对应有在先共识轮次的线程先于对应有在后共识轮次的线程请求所述线程锁的使用权。
[0067] 可选地,在上述基础之上,所述交易写块模块410可以通过第三线程(第三线程可以是第一线程,也可以是处第一线程和第二线程外的新线程)监测所述第二线程是否存在写块操作任务。其中,在执行完成第N+1轮的共识执行操作后,若所述交易写块模块410基于所述第三线程监测到所述第二线程不存在写块操作任务,再将对所述第N轮的共识的交易的写块操作任务添加至所述第二线程中。
[0068] 此外,除了并行执行外,保证写块的顺利执行也是提高区块链交易处理效率的重要手段。
[0069] 因此,在本说明书实施例中,如果所述交易写块模块410在对所述第N轮的共识的交易进行写块操作时发生宕机,则可以在重启恢复后向其他区块链节点获取写入有所述第N轮的共识的交易的区块的信息,以基于所述区块的信息,重新对所述第N轮的共识的交易进行写块操,其中,所述区块是所述其他区块链节点完成对所述第N轮的共识的交易的写块操作而生成的。
[0070] 此外,若果所述交易写块模块410在重启恢复后未能向所述其他区块链节点获取写入有第N轮的共识的交易的区块的信息,则可以基于共识执行日志模拟第N轮的共识,以重新确定第N轮的共识的交易。之后,再进一步对重新确定出的第N轮的共识的交易进行写块。这里需要说明的是,区块链节点不需要再执行模拟完成的第N轮共识的交易。
[0071] 可选地,所述第N+1轮的共识是所述区块链中的目标区块链节点在对所述第N轮共识的交易进行写块操作时所发起的,所述目标区块链节点作为所述区块链的共识主节点。
[0072] 此外,区块链节点同时对不同共识轮次的交易进行写块操作也有可能产生业务逻辑上错误,而导致系统崩溃。为了避免这一问题发生,作为优选方案,本说明书实施例的交易写块模块410在完成对所述第N轮的共识的交易的写块操作以及所述第N+1轮的共识执行操作后,再对所述第N+1轮的共识的交易进行写块操作。
[0073] 具体地,所述共识执行操作包括执行交易后的提交commit操作,所述第N+1轮的共识执行操作中的commit操作在所述第N轮的共识的交易的写块操作执行完毕后执行。
[0074] 显然,本说明书实施例的交易处理装置可以作为上述图1所示的交易处理方法的执行主体,因此能够实现交易处理方法在图1至图3所实现的功能。由于原理相同,本文不再赘述。
[0075] 图5是本说明书的一个实施例电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
[0076] 处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0077] 存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0078] 处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成交易处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
[0079] 在所述区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数。
[0080] 执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行。
[0081] 基于图5所示的电子设备可以知道,本说明书实施例的方案并行执行第N轮的共识的交易的写块操作和第N+1轮的共识执行操作,即区块链节点在对本轮次的交易进行写块的同时,还执行下一轮次的共识和下一轮次的共识所达成的交易,从而能够提高交易处理效率,使区块链能够适用于业务高并发的应用场景。
[0082] 上述如本说明书图1所示实施例揭示的交易处理方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0083] 应理解,本说明书实施例的电子设备可以实现上述装置在图1至图3所示的实施例的功能,本文不再赘述。
[0084] 当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
[0085] 此外,本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:
[0086] 在所述区块链的第N轮的共识的交易执行完毕后,对所述第N轮的共识的交易进行写块操作,其中,N为正整数。
[0087] 执行所述区块链的第N+1轮的共识执行操作,所述共识执行操作包括所述区块链的第N+1轮的共识及所述第N+1轮的共识达成后的交易执行,其中,所述第N+1轮的共识执行操作与所述第N轮的写块操作并行执行。
[0088] 应理解,上述指令当被包括多个应用程序的便携式电子设备执行时,能够使上文所述的交易处理装置实现图1至图3所示实施例的功能,本文不再赘述。
[0089] 本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0090] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0091] 以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。此外,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。