一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于并行计算模型的区块链交易执行方法及装置与流程

2022-05-11 15:11:42 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,尤其涉及一种基于并行计算模型的区块链交易执行方法及装置。


背景技术:

2.区块链技术现有的并行交易执行过程中采用的是基于并发队列的并行化执行方法。该方法对每一个交易都需要做入队和出队的处理。并且并发队列的入队和出队操作都是原子的,不可并行。故而,基于队列的并行化交易执行方法在并行执行n个交易时,至少需要2n次原子操作。这造成大量的并行数据结构维护开销。
3.因此,有必要提供一种新型的基于并行计算模型的区块链交易执行方法及装置,以克服上述缺陷。


技术实现要素:

4.本发明的目的在于提供一种新型的基于并行计算模型的区块链交易执行方法及装置,其通过bsp并行计算方法提高交易执行效率。
5.为了达到上述目的, 本发明提供一种基于并行计算模型的区块链交易执行方法,包括:构建一个交易之间的有向无环图;利用bsp并行化方法将该有向无环图分解成超级步,提高交易执行的速度。
6.本发明还提供一种基于并行计算模型的区块链交易执行方法的装置,该装置包括:拓扑模块,用于对交易构建有向无环图;交易共识模块,用于对交易达成共识,包括请求、预准备阶段、准备阶段、提交阶段、回应;bsp并行计算模块,用于对请求、预准备阶段、准备阶段、提交阶段、回应采用bsp并行计算模型进行并行计算。
7.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述基于并行计算模型的区块链交易执行方法的步骤。
8.本发明还提供一种计算机终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述基于并行计算模型的区块链交易执行方法的步骤。
9.与相关技术相比较,本发明通过构建一个交易之间的有向无环图,然后用bsp并行化方法执行该有向无环图,将有向无环图的交易分解成超级步以解决现有基于并发队列的并行交易执行方法产生大量同步操作的问题,提高了区块链交易执行的速度。
附图说明
10.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:图1为本发明基于并行计算模型的区块链交易执行方法的交易共识流程图;图2为本发明基于并行计算模型的区块链交易执行方法的bsp一个超级步计算模式示意图;图3为本发明基于并行计算模型的区块链交易执行方法的交易超级步算法示意图;图4为本发明基于并行计算模型的区块链交易执行方法的流程图。
具体实施方式
11.下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
12.如图4,本发明提供一种基于并行计算模型的区块链交易执行方法,包括:构建一个交易之间的有向无环图;利用bsp并行化方法将该有向无环图分解成超级步,提高交易执行的速度。
13.区块链在确认交易提出区块的过程需要各节点达成共识,本方案的具体实施过程包括:交易共识过程、bsp并行计算过程。
14.交易共识过程(具体流程见图1,c为客户端,0,1,2为正常节点,3为拜占庭节点):客户端向主节点发送请求;主节点向其他副本广播请求,这一步骤包括三个阶段:预准备阶段、准备阶段、提交阶段;所有副本执行请求后,将结果返回给客户端;客户端需要等待2f 1个不同副本返回相同的结果(f为拜占庭节点数),作为最终结果。
15.预准备阶段:首先,主节点向所有副本节点发送预准备消息。这里面包含有消息序号,视图编号和消息的摘要。为了压缩消息大小提升传播效率和将请求排序与请求传输解耦,预准备消息不包含请求。
16.接着副本节点验证消息的签名是否正确,视图编号是否一致和消息序号是否满足要求。
17.准备阶段:如果副本节点接受预准备消息,就进入了准备阶段。在准备阶段,每一个节点都向其他节点发送包含自己id的准备消息,同时也接收其他节点的准备消息。对于收到准备消息同样进行合法性检查。验证通过则把这个准备消息写入自己的消息日志中。一个节点集
齐至少2f 1个验证过的消息才进入准备状态。
18.提交阶段:在提交阶段,每个节点广播commit消息告诉其他节点自己已经进入准备状态。如果集齐至少2f 1的commit消息则说明提案通过。
19.在经过了三阶段协议之后,每个副本节点都向客户端发送回复,副本节点会把时间戳比已回复时间戳更小的请求丢弃,以保证请求只会被执行一次。
20.对交易共识过程的五个阶段(图1):请求(request)、预准备阶段(pre-prepare)、准备阶段(prepare)、提交阶段(commit)、回应(reply)采用bsp并行计算模型进行并行计算。
21.bsp模型:bsp模型包括三个参数:处理器数、选路器吞吐率(亦称带宽因子)、全局同步之间的时间间隔。
22.bsp模型中的计算行为(bsp一个超级步计算模式示意图见图2):在bsp模型中,计算过程是由一系列用全局同步分开的周期为l的超级步(supersteps)所组成的。在各superstep中,每个处理器均执行局部计算,并通过选路器接收和发送消息;然后做一全局检查,以确定该超级步是否已由所有的处理器完成:若是,则前进到下一超级步,否则下一个l周期被分配给未曾完成的超级步。
23.本技术方案的实施步骤为:步骤一,产生交易超级步的算法伪代码如下:输入:txn;;if (flags[tx[i].a]==-1);flags[tx[i].a]=i;step[i]=max(step[i],0);else;step[i]=max(step[i],1 step[flags[tx[i].a]]);flags[tx[i].a]=i;if (flags[tx[i].b]==-1);flags[tx[i].b]=i;step[i]=max(step[i],0);else;step[i]=max(step[i],1 step[flags[tx[i].b]]);flags[tx[i].b]=i;输出int flags[user],int step[tx]。
[0024]
步骤二,并行执行交易算法伪代码如下:输入:txn;o;将i 添加到parvec[step[i]];
;并行执行parvec[i]。
[0025]
文字表述如下:步骤一:产生交易超级步步0,对交易池里的每个交易,如果交易付款人上次进行的交易不存在,则把交易付款人上次进行的交易更新为该交易的序号;步1,将该交易超级步和零比较,把该交易超级步更新为两者中最大的那个,否则,比较该交易超级步和该交易的付款人上次进行的交易所属的超级步的号加上1,将较大的那个赋给该交易超级步;如果交易池里的交易还没遍历完,进行步0,否则,进行步2;步2,得到所有交易的付款人列表和交易超级步列表,结束。
[0026]
步骤二:并行执行交易步0,对交易池里的每个交易,将该交易添加到这个交易超级步执行列表中;步1,对每个超级步,并行执行该超级步执行列表。
[0027]
超级步的总数量与交易之间的关联度反相关。假设所有交易之间都没有关联,那么bsp方法可以完全并行,1个超级步就能执行完所有交易。假设所有的消息都互相关联,那么bsp方法需要n个超级步来执行n个交易。每个超级步需要一次栅栏同步。栅栏同步使用原子操作实现。一次栅栏同步,使用线程数量次原子操作。栅栏同步的代码如下:barrie(){static int count = 0;count ;atomic_variable[2];val = atomic_variable[count %2];atomic_add(1,&val);if(my_thread_id == 0){while(*val != thread_num);atomic_set(val,0);}else{while(*val != 0);}}实验结果:采用bsp并行计算方法:
区块链技术现有的并行交易执行过程中采用的是基于并发队列的并行化执行方法。基于队列的并行化交易执行方法在并行执行n个交易时,至少需要2n次原子操作,这造成大量的并行数据结构维护开销,本方案构建一个交易之间的有向无环图,然后用bsp并行化方法执行该有向无环图,将有向无环图的交易分解成超级步以解决现有基于并发队列的并行交易执行方法产生大量同步操作的问题,降低数据结构维护开销,提高了区块链交易执行的速度。
[0028]
本发明还提供一种基于并行计算模型的区块链交易执行方法的装置,该装置包括:拓扑模块,用于对交易构建有向无环图;交易共识模块,用于对交易达成共识,包括请求、预准备阶段、准备阶段、提交阶段、回应;bsp并行计算模块,用于对请求、预准备阶段、准备阶段、提交阶段、回应采用bsp并行计算模型进行并行计算。
[0029]
本发明另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于并行计算模型的区块链交易执行方法的步骤。
[0030]
作为本发明另一方面的延伸还提供一种计算机终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于并行计算模型的区块链交易执行方法的步骤。
[0031]
所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在终端设备中的执行过程。
[0032]
所述计算机终端可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。可包括但不仅限于,处理器、存储器。可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备、总线等。
[0033]
所述处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器 (digital signal processor,dsp)、专用集成电路 (application specific integrated circuit,asic)、现成可编程门阵列 (field-programmable gate array,fpga) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0034]
所述存储器可以是内部存储单元,例如硬盘或内存。所述存储器也可以是外部存储设备,例如插接式硬盘,智能存储卡(smart media card, smc),安全数字(secure digital, sd)卡,闪存卡(flash card)等。进一步地,所述存储器还可以既包括内部存储单元也包括外部存储设备。所述存储器用于存储所述计算机程序以及其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。
[0035]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0036]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0037]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0038]
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0039]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0040]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0041]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质
可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0042]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献