基于区块链的交易处理方法、装置、存储介质和电子设备与流程
未命名
10-21
阅读:57
评论:0
1.本发明涉及区块链技术领域,尤其涉及一种基于区块链的交易处理方法、装置、存储介质和电子设备。
背景技术:
2.区块链是一种去中心化的分布式账本技术,通过点对点的区块链网络,使用密码学手段实现信息的寻址、验证、存储和交易等功能,凭借其去中心化、透明性、可溯源和防篡改等特性,广泛用于包括加密资产交易的智能合约交易。
3.区块链网络的吞吐量和性能是影响智能合约交易处理效率的重要因素,目前,提升区块链网络吞吐量和性能的技术方案主要包括:优化共识机制、分片机制以及扩容机制。但其中,对于优化共识机制,从工作量证明(pow,proof of work)转换为权益证明(pos,proof of stake),需要解决较多的技术难题,进展较慢;对于分片机制,存在跨分片安全、共识等问题;对于扩容机制,由于扩容机制提高的是单一区块链节点的性能,随着业务的增长,扩容机制存在瓶颈。
技术实现要素:
4.有鉴于此,本发明提供一种基于区块链的交易处理方法、装置、存储介质和电子设备。
5.具体地,本发明是通过如下技术方案实现的:
6.根据本发明的第一方面,提供一种基于区块链的交易处理方法,基于区块链的交易处理方法包括:
7.针对待处理智能合约交易集中的每一智能合约交易,依据预先设置的资源识别策略,获取该智能合约交易需占用的资源集;
8.依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的智能合约交易,生成待处理智能合约交易子集;
9.依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,每一可用线程对应处理一待处理智能合约交易子集。
10.本技术方案中的基于区块链的交易处理方法,通过利用资源识别策略对智能合约交易进行资源集获取,再利用关联识别策略,对各智能合约交易需占用的资源集进行关联识别,将关联的智能合约交易置于待处理智能合约交易子集中,得到多个待处理智能合约交易子集,为每一待处理智能合约交易子集配置一可用线程进行交易处理。这样,通过资源的关联识别,将关联的智能合约交易置于待处理智能合约交易子集,不同的待处理智能合约交易子集不相关联,从而可以利用多线程并行执行各待处理智能合约交易子集,可以有效提升智能合约交易的处理效率,进而提高区块链网络的吞吐率。
11.根据本发明的第二方面,提供一种基于区块链的交易处理装置,基于区块链的交
易处理装置包括:
12.资源占用获取模块,用于针对待处理智能合约交易集中的每一智能合约交易,依据预先设置的资源识别策略,获取该智能合约交易需占用的资源集;
13.资源占用隔离模块,用于依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的智能合约交易,生成待处理智能合约交易子集;
14.交易并行执行模块,用于依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,每一可用线程对应处理一待处理智能合约交易子集。
15.本技术方案中的基于区块链的交易处理装置,利用资源占用获取模块获取智能合约交易需占用的资源集,资源占用隔离模块基于各智能合约交易的资源集进行关联识别,将具有关联的智能合约交易归于同一待处理智能合约交易子集,交易并行执行模块利用多可用线程,对各待处理智能合约交易子集进行交易处理。这样,通过将多个不存在关联关系的智能合约交易进行并行执行,有效提升了智能合约交易的处理效率,进而能大幅提高区块链网络的吞吐率。
16.根据本发明的第三方面,提供一种存储介质,其上存储有计算机程序,程序被处理器执行时实现第一方面的任意可能的实现方式中的基于区块链的交易处理方法的步骤。
17.根据本发明的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现第一方面的任意可能的实现方式中的基于区块链的交易处理方法的步骤。
附图说明
18.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例提供的一种基于区块链的交易处理方法的流程示意图;
21.图2为本发明实施例提供的一种基于区块链的交易处理方法中步骤s102的一流程示意图;
22.图3为本发明实施例提供的一种基于区块链的交易处理方法中构建的交易依赖图示意图;
23.图4a为本发明实施例提供的一种基于区块链的交易处理方法中构建的一资源依赖图示意图;
24.图4b为本发明实施例提供的一种基于区块链的交易处理方法中构建的另一资源依赖图示意图;
25.图5为本发明实施例提供的一种基于区块链的交易处理方法中步骤s102的另一流程示意图;
26.图6为本发明实施例提供的一种基于区块链的交易处理方法中步骤s103的流程示意图;
27.图7为本发明实施例提供的一种基于区块链的交易处理装置示意图;
28.图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
29.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.现有的优化共识机制,需要从pow过渡到pos等其他共识机制,以提高吞吐量,但从pow转换为pos,需要解决较多的技术难题,例如,抗专用集成电路(asic,application-specific integrated circuit)问题,且需要满足去中心化要求。分片机制通过将区块链网络分为多个子网络或分片,从而提高区块链网络的并行处理能力以提高吞吐量,但存在跨分片安全、共识等问题,因而,还未产生实际应用。扩容机制中,包括状态通道、侧链等的第二层扩容机制,进行智能合约交易中的大部分处理,再通过主链进行剩余部分的处理和结算,以减轻主链压力,从而增加吞吐量,但由于主链仍需承担较重的跨链交互与结算任务,使得智能合约交易处理效率提升较少;而对于扩容机制中的通过不断升级提高网络性能和吞吐量的扩容,例如以太坊的扩容方案,随着未来业务的增长,扩容机制本身也可能成为瓶颈,需要不断演进,导致交易处理效率提升较慢。
31.本实施例中,针对各智能合约交易,通过分析区块链网络中用于处理智能合约交易的新区块中,各智能合约交易之间的关联关系,将无关联关系的智能合约交易进行分组,由于各分组中的智能合约交易之间不存在关联关系,相互独立,因而,可以利用不同新区块的多核,例如,多cpu核下的线程,并行执行不存在关联关系的智能合约交易,这样,在对当前区块链网络未进行改动的情形下,实现并行处理智能合约交易,有效提升智能合约交易的处理效率。
32.参见图1,本发明实施例提供了一种基于区块链的交易处理处理方法,该方法可以包括如下步骤:
33.s101、针对待处理智能合约交易集中的每一智能合约交易,依据预先设置的资源识别策略,获取该智能合约交易需占用的资源集;
34.本实施例中,作为一可选实施例,资源识别策略可以是根据智能合约源代码中,对资源(数据对象)的定义,进行提取得到。作为另一可选实施例,源识别策略可以是根据智能合约的其他辅助信息中,对资源(数据对象)的描述或提取规则,进行分析得到。作为一示例,以一智能合约交易为用户a向用户b转账为例,则该智能合约交易需占用的资源集包括用户a的账户和用户b的账户。再以一智能合约交易为用户a向用户c及用户d转账为例,则该智能合约交易需占用的资源集包括用户a的账户、用户c的账户和用户d的账户。
35.s102、依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的智能合约交易,生成待处理智能合约交易子集;
36.本实施例中,先对具有关联的智能合约交易进行说明,如果两个或多个并行执行的智能合约交易,在交易处理流程中,需要访问同一个共享数据对象(共享资源),并且至少
其中一个智能合约交易需要执行写操作,则在并行处理流程中,对该共享数据对象可能存在冲突的读写,产生共享数据对象竞争,使得该两个智能合约交易冲突,从而出现丢失更新、脏读等问题,并导致最终的执行结果错误。例如,智能合约交易tx1和tx2被并行执行,其中,智能合约交易tx1表示将用户x的账户增加10元,智能合约交易tx2表示将用户x的账户增加20元。在time 1时刻,智能合约交易tx1和tx2读取到的用户x的值均为100。在time 2时刻,智能合约交易tx2执行写入操作,需要将用户x的值被更新为110。在time 3(time 3大于或等于time 2)时刻,智能合约交易tx1执行写入操作,此时,智能合约交易tx2执行了写入操作,但用户x的账户值还未被更新为110,因而,在智能合约交易tx1执行完毕后,用户x的账户值被更新为110,显然,该并行执行智能合约交易tx1和tx2生成的交易结果是错误的。
37.本实施例中,对于发生冲突的智能合约交易,表明该两个智能合约交易之间存在关联关系,需要进行串行处理,即需要一个智能合约交易执行完毕,才执行另一个智能合约交易。
38.本实施例中,作为一可选实施例,关联识别包括:判断两个智能合约交易需占用的资源集是否存在交集,若交集为空,该两个智能合约交易不相关联,若交集不为空,该两个智能合约交易相关联。
39.本实施例中,智能合约交易需占用的资源集为读写资源集。对于一个智能合约交易tx,假设ω(tx)表示在该智能合约交易的交易处理流程中,需要执行一组写资源操作,ρ(tx)表示在该智能合约交易的交易处理流程中,需要执行一组读资源操作,timestamp(tx)表示创建该智能合约交易的时间戳。
40.本实施例中,在timestamp(txi)《timestamp(txj)的情形下,如果两个智能合约交易txi和txj存在关联关系,表示为:txi
→
txj,需要满足如下的至少一个条件:
[0041][0042][0043][0044]
本实施例中,条件(1)表示两个智能合约交易中,时间戳较小的智能合约交易的读资源操作对应的数据对象集与时间戳较大的智能合约交易的写资源操作对应的数据对象集的交集不为空,则该两个智能合约交易存在冲突。因此,判断同一批次待处理的两个智能合约交易能否被并行执行,可以通过判断该两个智能合约交易的读写资源(数据对象)集是否存在交集,若交集为空(不存在关联关系),表明该两个智能合约交易可以被并行执行;若交集不为空(存在关联关系),表明该两个智能合约交易不能并行执行,只能以串行方式执行。
[0045]
图2为本发明实施例提供的一种基于区块链的交易处理方法中步骤s102的一流程示意图。如图2所示,本实施例中,关联识别策略包括:交易依赖图方法识别策略,所述依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的智能合约交易,生成待处理智能合约交易子集,包括:
[0046]
s201,从所述待处理智能合约交易集中,提取一目标智能交易合约,获取所述待处理智能合约交易集中与所述目标智能交易合约具有并集的候选智能交易合约;
[0047]
s202,根据所述目标智能合约交易分别与各候选智能交易合约的时间戳信息,确定所述目标智能合约交易分别与各候选智能交易合约的依赖关系;
[0048]
s203,分别以所述目标智能交易合约及候选智能交易合约为顶点,以所述目标智能交易合约与候选智能交易合约的依赖关系为有向边,构建所述目标智能交易合约的交易依赖图;
[0049]
s204,从所述待处理智能合约交易集中,删除所述目标智能交易合约及所述候选智能交易合约;
[0050]
s205,从各候选智能交易合约中,提取一候选智能交易合约,替换所述目标智能交易合约,从所述待处理智能合约交易集中,执行所述获取所述待处理智能合约交易集中与所述目标智能交易合约具有并集的候选智能交易合约的步骤,直至各候选智能交易合约被遍历完毕;
[0051]
s206,执行所述从所述待处理智能合约交易集中,提取一目标智能交易合约的步骤,直至所述待处理智能合约交易集为空,得到所述待处理智能交易合约集的交易依赖图。
[0052]
本实施例中,作为一可选实施例,利用有向无环图(dag,direct acyclic graph)表征交易依赖图,通过有向无环图,可以记录一个区块内所有智能合约交易的依赖关系,其中,有向无环图中,顶点表示智能合约交易,有向边表示2个智能合约交易间的依赖关系,以顶点为弧头,终止于该顶点的有向边的数目为该顶点(智能合约交易)的入度(in-degree),以顶点为弧尾,起始于该顶点的有向边的数目为该顶点的出度(out-degree),通过有向边表示的依赖关系,可以表征智能合约交易的执行顺序。
[0053]
本实施例中,作为另一可选实施例,在区块链网络部署智能合约后,区块链节点(新区块)在执行智能合约交易前,根据智能合约交易中互斥参数的值,构建交易依赖图。
[0054]
图3为本发明实施例提供的一种基于区块链的交易处理方法中构建的一交易依赖图示意图。如图3所示,以待处理智能合约交易集包括:txi(i=1、2、3、4、5、6),图中,顶点表示智能合约交易,有向边表示智能合约交易间的依赖关系,其中,利用关联识别策略进行关联识别,得到:智能合约交易tx5分别与智能合约交易tx1和智能合约交易tx3存在依赖关系,智能合约交易tx4分别与智能合约交易tx2和智能合约交易tx3存在依赖关系,智能合约交易tx6分别与智能合约交易tx5和智能合约交易tx4存在依赖关系。
[0055]
本实施例中,基于交易依赖图,区块链节点可以确定并行执行的无依赖关系的智能合约交易。
[0056]
本实施例中,还可以根据各智能合约交易处理需要访问的共享资源集,获取共享资源的占用关系,将智能合约交易,按照获取的共享资源的占用关系进行分组,从而将各智能合约交易划分到不同的组中。作为一可选实施例,将访问相同共享资源的智能合约交易划分到同一个资源互斥分组中,使得各资源互斥分组之间不存在冲突,而对于每个资源互斥分组内的智能合约交易,都是存在冲突的智能合约交易。对于资源互斥分组之间的智能合约交易,由于智能合约交易之间不存在任何共享资源,均是不存在冲突的智能合约交易。
[0057]
本实施例中,作为一可选实施例,可以通过无向的资源依赖图方法,对各智能合约交易进行资源互斥分组。
[0058]
图4a为本发明实施例提供的一种基于区块链的交易处理方法中构建的一资源依赖图示意图;
[0059]
图4b为本发明实施例提供的一种基于区块链的交易处理方法中构建的另一资源依赖图示意图。如图4a和图4b所示,仍以待处理智能合约交易集包括:txi(i=1、2、3、4、5、6)为例,图中,每个顶点表示一个共享资源,假设对于智能合约交易tx1,需要访问占用的资源集包括:{x1、x2、x6};对于智能合约交易tx2,需要访问占用的资源集包括:{x1、x3、x7};对于智能合约交易tx3,需要访问占用的资源集包括:{x3、x8};对于智能合约交易tx4,需要访问占用的资源集包括:{x5、x9};对于智能合约交易tx5,需要访问占用的资源集包括:{x4、x10};对于智能合约交易tx6,需要访问占用的资源集包括:{x4、x11}。若一个智能合约交易,需要访问占用2个不同的共享资源,则分别在该两个共享资源的顶点,生成一条无向边,例如,作为一可选实施例,对于智能合约交易tx1,需要访问占用的资源集包括:x1、x2、x6,则分别以资源x1、x2、x6的顶点为中心,生成圆作为无向边。若两个智能合约交易需要访问占用同一资源,该资源为共享资源,则利用无向边,连接该两个智能合约交易分别对应的共享资源的顶点,例如,对于智能合约交易tx1以及智能合约交易tx2,需要占用共享资源x1,则在智能合约交易tx1对应的共享资源x1的圆,以及,智能合约交易tx2对应的共享资源x1的圆之间,生成两条平行的圆的切线,表明该两个智能合约交易需要占用同一共享资源。
[0060]
本实施例中,基于各智能合约交易需要占用的同一共享资源,将互相冲突的智能合约交易组成一个连通分量,每一个连通分量代表了一个独立的分组,从而实现对各智能合约交易进行资源互斥分组,得到具有冲突的各资源互斥分组。作为一可选实施例,可以使用并查集,求得所有互斥的资源互斥分组。因而,作为另一可选实施例,图5为本发明实施例提供的一种基于区块链的交易处理方法中步骤s102的另一流程示意图。如图5所示,关联识别策略包括:资源依赖图方法识别策略,所述依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的智能合约交易,生成待处理智能合约交易子集,包括:
[0061]
s501,提取所述待处理智能合约交易集中的一智能合约交易,得到目标智能合约交易,将所述目标智能合约交易置于新分组中,获取所述目标智能合约交易需要占用的第一资源集;
[0062]
s502,从所述待处理智能合约交易集中,删除所述目标智能合约交易;
[0063]
s503,针对所述第一资源集中的每一资源,从所述待处理智能合约交易集中,获取需要占用该资源的第一智能合约交易,置于所述新分组中;
[0064]
本实施例中,作为一可选实施例,在所述删除所述目标智能合约交易之后,该方法还包括:
[0065]
判断所述待处理智能合约交易集是否为空,若是,结束流程,若否,执行所述针对所述第一资源集中的每一资源,从所述待处理智能合约交易集中,获取需要占用该资源的第一智能合约交易的步骤。
[0066]
s504,从所述待处理智能合约交易集中,删除所述第一智能合约交易;
[0067]
本实施例中,作为一可选实施例,在从待处理智能合约交易集中删除一智能合约交易后,均执行判断所述待处理智能合约交易集是否为空的步骤。
[0068]
s505,针对每一第一智能合约交易的资源集,除与所述目标智能合约的资源相同的资源之外的每一资源,从所述待处理智能合约交易集中,获取需要占用该资源的第二智能合约交易,置于所述新分组中;
[0069]
s506,从所述待处理智能合约交易集中,删除所述第二智能合约交易,直至所述新分组中的智能合约交易被遍历完毕,依据所述新分组得到资源互斥分组,清空所述新分组;
[0070]
s507,从所述待处理智能合约交易集中,删除所述资源互斥分组,执行所述提取所述待处理智能合约交易集中的一智能合约交易的步骤,直至所述待处理智能合约交易集为空。
[0071]
本实施例中,每一资源互斥分组为一待处理智能合约交易子集。以图3中的待处理智能合约交易集包括:txi(i=1、2、3、4、5、6、7)为例,从该待处理智能合约交易集中随机或按序提取一智能合约交易,例如,提取智能合约交易tx1作为目标智能合约交易,将智能合约交易tx1置于新分组,例如,第一分组中,从待处理智能合约交易集中,删除智能合约交易tx1,得到待处理智能合约交易集为:txi(i=2、3、4、5、6)。
[0072]
智能合约交易tx1需要占用的第一资源集包括;(x1、x2、x6),针对第一资源集的资源x1,从待处理智能合约交易集txi(i=2、3、4、5、6)中,获取需要占用资源x1的智能合约交易,本实施例中,只有智能合约交易tx2,针对第一资源集的共享资源x2以及x6,待处理智能合约交易集txi(i=2、3、4、5、6)中,没有分别占用资源x2和x6的智能合约交易,因而,将智能合约交易tx2置于新分组,从待处理智能合约交易集txi(i=2、3、4、5、6)中,删除智能合约交易tx2,得到待处理智能合约交易集为:txi(i=3、4、5、6)。
[0073]
对于新分组中新增的智能合约交易tx2,对应的资源集包括;(x1、x3、x7),删除与智能合约交易tx1共享的资源x1,从待处理智能合约交易集txi(i=3、4、5、6)中,分别针对资源x3和x7,获取需要占用资源x3或x7的智能合约交易,本实施例中,只有智能合约交易tx3需要占用资源x3,没有智能合约交易需要占用资源x7,将智能合约交易tx3置于新分组中,从待处理智能合约交易集txi(i=3、4、5、6)中,删除智能合约交易tx3,得到待处理智能合约交易集为:txi(i=4、5、6)。
[0074]
对于新分组中新增的智能合约交易tx3,对应的资源集包括;(x3、x8),删除与智能合约交易tx2共享的资源x3,从待处理智能合约交易集txi(i=4、5、6)中,针对资源x8,获取需要占用资源x8的智能合约交易,本实施例中,没有智能合约交易需要占用资源x8,这样,新分组遍历结束,得到的资源互斥第一分组包括:(tx1、tx2、tx3),清空新分组,然后,进行下一轮的新分组的确定。
[0075]
从待处理智能合约交易集txi(i=4、5、6)中,选取一智能合约交易,例如,智能合约交易tx4,将智能合约交易tx4置于新分组,例如,第二分组中,从待处理智能合约交易集txi(i=4、5、6)中,删除智能合约交易tx4,得到待处理智能合约交易集为:txi(i=5、6)。
[0076]
对于智能合约交易tx4,对应的资源集包括;(x5、x9),从待处理智能合约交易集txi(i=5、6)中,分别针对资源x5和x9,获取需要占用资源x5或x9的智能合约交易,本实施例中,没有智能合约交易需要占用资源x5或x9,这样,新分组遍历结束,得到的资源互斥第二分组包括:(tx4),清空新分组,然后,进行下一轮的新分组的确定。
[0077]
从待处理智能合约交易集txi(5、6)中,选取一智能合约交易,例如,智能合约交易tx5,将智能合约交易tx5置于新分组,例如,第三分组中,从待处理智能合约交易集txi(i=5、6)中,删除智能合约交易tx5,得到待处理智能合约交易集为:txi(i=6)。
[0078]
对于智能合约交易tx5,对应的资源集包括;(x4、x10),从待处理智能合约交易集txi(i=6)中,分别针对资源x4和x10,获取需要占用资源x4或x10的智能合约交易,本实施
例中,智能合约交易tx6需要占用资源x4,将智能合约交易tx6置于新分组,从待处理智能合约交易集txi(i=6)中,删除智能合约交易tx6,得到的待处理智能合约交易集为空。这样,新分组遍历结束,得到的资源互斥第三分组包括:(tx5、tx6),资源互斥分组完成。
[0079]
本实施例中,作为另一可选实施例,在所述得到资源互斥分组之后,对资源互斥分组内的各智能合约交易,采用与交易依赖图方法识别策略相似的方法,构建该资源互斥分组对应的交易依赖图。例如,根据资源互斥分组内各智能交易合约的时间戳信息,确定各智能合约交易的等价执行顺序。这样,对发生冲突的资源互斥分组中的智能合约交易,进行执行顺序的等价化,使得每一智能合约交易拥有相同的串行化执行顺序,这样,可以确保并行执行智能合约交易时,能够将发生冲突的智能合约交易,按预设的相同顺序串行执行。
[0080]
s103、依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,每一可用线程对应处理一待处理智能合约交易子集。
[0081]
本实施例中,区块链节点在并行执行智能合约交易时,首先根据该区块链节点的cpu核心数以及并行执行的智能合约交易数,初始化得到相应大小的线程池。
[0082]
图6为本发明实施例提供的一种基于区块链的交易处理方法中步骤s103的流程示意图。如图6所示,本实施例中,作为一可选实施例,关联识别策略包括:交易依赖图方法识别策略,所述依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,包括:
[0083]
s601,从所述待处理智能交易合约集的交易依赖图中,提取入度为0的智能合约交易,调用线程池中的可用线程,执行该智能合约交易,每一入度为0的智能合约交易对应一可用线程;
[0084]
本实施例中,若线程池中的可用线程数大于或等于入度为0的智能合约交易数,则为每一入度为0的智能合约交易调用一可用线程,若线程池中的可用线程数小于入度为0的智能合约交易数,则为每一可用线程配置一入度为0的智能合约交易。图2中,智能合约交易tx1、tx2和tx3的入度为0,表明该三个智能合约交易没有任何依赖的前驱智能合约交易,作为一可选实施例,调用线程池中的第一可用线程执行智能合约交易tx1,调用线程池中的第二可用线程执行智能合约交易tx2,以及,调用线程池中的第三可用线程执行智能合约交易tx3。
[0085]
s602,确定所述入度为0的智能合约交易处理完毕,将所述入度为0的智能合约交易的出度减为0;
[0086]
s603,确定所述待处理智能交易合约集的交易依赖图中,所有智能合约交易未被执行完毕,执行所述从所述待处理智能交易合约集的交易依赖图中,提取入度为0的智能合约交易的步骤。
[0087]
本实施例中,若所述待处理智能交易合约集的交易依赖图中,所有智能合约交易被执行完毕,结束流程。以入度(指向以智能合约交易(顶点)为终点的有向边的条数)为0的智能合约交易为tx3为例,智能合约交易tx3的出度为2,分别指向智能合约交易tx5和智能合约交易tx4,在调用线程池中的第二可用线程执行智能合约交易tx3后,将智能合约交易tx1的出度减为0后,得到的出度为0(有向边的条数为0),即在待处理智能交易合约集的交易依赖图中,分别删除智能合约交易tx3指向智能合约交易tx5的有向边,以及,智能合约交易为tx3指向智能合约交易tx4的有向边。
[0088]
本实施例中,假设删除以智能合约交易为tx3为起点的有向边后,第一可用线程仍然未执行完智能合约交易tx1,第三可用线程已执行完智能合约交易tx2,则对于智能合约交易tx5,对应的入度从2变为1,对于智能合约交易tx4,对应的入度从2变为0。可以继续调用第三可用线程,执行智能合约交易tx4,直至更新的待处理智能交易合约集的交易依赖图中,所有智能合约交易都被执行完毕。
[0089]
本实施例中,在智能合约交易执行完毕后,如果被执行的智能合约交易所在顶点的出度不为0,则消除以该顶点为起点的有向边,以该有向边为终点的顶点(智能合约交易)的入度同时减一,直到区块中全部的智能合约交易都被执行完毕。
[0090]
本实施例中,作为另一可选实施例,关联识别策略包括:资源依赖图方法识别策略,所述依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,包括:
[0091]
d11,根据所述可用线程的线程数以及所述资源互斥分组的组数,确定可用线程配置;
[0092]
本实施例中,若线程池中的可用线程数大于或等于资源互斥分组的组数,则为每一资源互斥分组的组数配置一可用线程,若线程池中的可用线程数小于资源互斥分组的组数,则为每一可用线程配置一资源互斥分组,剩余的资源互斥分组在有可用线程时,再进行处理。
[0093]
d12,依据配置有可用线程的资源互斥分组,按照该资源互斥分组内各智能合约交易的等价执行顺序,依次调用该可用线程进行交易处理,直至该资源互斥分组被处理完毕。
[0094]
本实施例中,对于配置了可用线程的资源互斥分组,由该可用线程对资源互斥分组中的各智能合约交易,按照智能合约交易的等价执行顺序依次执行,在该资源互斥分组完毕后,判断是否还有未处理的资源互斥分组,若无,结束流程,若有,随机选取或按预设策略选取一资源互斥分组进行处理。
[0095]
本实施例中,通过交易依赖图方法或者资源互斥分组方法,对待处理智能合约交易集进行依赖关系获取或资源互斥分组,调用各可用线程,分别执行不具有依赖关系的智能合约交易或不同的资源互斥分组,这样,在各可用线程的并行执行过程中,不会发生任何冲突,通过充分利用区块链网络节点提供的多核处理能力,以及,识别出待处理智能合约交易集中具有依赖关系或资源互斥的冲突智能合约交易,基于多核并行执行不具有依赖关系或资源互斥的智能合约交易,从而通过改进区块链的执行层的方式,能显著提高智能合约交易的处理效率,从而提升区块链系统的吞吐率。
[0096]
基于同一发明构思,如图7所示,本发明实施例还提供了一种基于区块链的交易处理装置700,装置包括:
[0097]
资源占用获取模块701,用于针对待处理智能合约交易集中的每一智能合约交易,依据预先设置的资源识别策略,获取该智能合约交易需占用的资源集;
[0098]
本实施例中,资源识别策略可以是根据智能合约源代码中,对资源(数据对象)的定义,进行提取得到。作为另一可选实施例,源识别策略可以是根据智能合约的其他辅助信息中,对资源(数据对象)的描述或提取规则,进行分析得到。
[0099]
资源占用隔离模块702,用于依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的
智能合约交易,生成待处理智能合约交易子集;
[0100]
本实施例中,作为一可选实施例,资源占用隔离模块采用静态分析方法,根据智能合约源代码(或其他辅助信息)中对共享数据对象的定义,分别提取每个智能合约交易需占用的资源集;并通过预先设置的交易依赖图方法或者资源互斥分组方法,获取智能合约交易间的关联关系。
[0101]
本实施例中,作为一可选实施例,关联识别策略包括:资源依赖图方法识别策略以及交易依赖图方法识别策略。
[0102]
本实施例中,作为一可选实施例,资源占用隔离模块702包括:
[0103]
第一资源集获取单元(图中未示出),用于提取所述待处理智能合约交易集中的一智能合约交易,得到目标智能合约交易,将所述目标智能合约交易置于新分组中,获取所述目标智能合约交易需要占用的第一资源集;
[0104]
交易集第一更新单元,用于从所述待处理智能合约交易集中,删除所述目标智能合约交易;
[0105]
新分组第一更新单元,用于针对所述第一资源集中的每一资源,从所述待处理智能合约交易集中,获取需要占用该资源的第一智能合约交易,置于所述新分组中;
[0106]
交易集第二更新单元,用于从所述待处理智能合约交易集中,删除所述第一智能合约交易;
[0107]
新分组第二更新单元,用于针对每一第一智能合约交易的资源集,除与所述目标智能合约的资源相同的资源之外的每一资源,从所述待处理智能合约交易集中,获取需要占用该资源的第二智能合约交易,置于所述新分组中;
[0108]
资源互斥分组获取单元,用于从所述待处理智能合约交易集中,删除所述第二智能合约交易,直至所述新分组中的智能合约交易被遍历完毕,依据所述新分组得到资源互斥分组,清空所述新分组;
[0109]
交易集第三更新单元,用于从所述待处理智能合约交易集中,删除所述资源互斥分组,执行所述提取所述待处理智能合约交易集中的一智能合约交易的步骤,直至所述待处理智能合约交易集为空。
[0110]
本实施例中,作为一可选实施例,交易集第一更新单元还用于判断所述待处理智能合约交易集是否为空,若是,结束流程,若否,执行所述针对所述第一资源集中的每一资源,从所述待处理智能合约交易集中,获取需要占用该资源的第一智能合约交易的步骤。
[0111]
本实施例中,作为一可选实施例,资源占用隔离模块702还包括:
[0112]
执行顺序确定单元,用于根据资源互斥分组内各智能交易合约的时间戳信息,确定各智能合约交易的等价执行顺序。
[0113]
本实施例中,作为另一可选实施例,资源占用隔离模块702包括:
[0114]
并集获取单元,用于从所述待处理智能合约交易集中,提取一目标智能交易合约,获取所述待处理智能合约交易集中与所述目标智能交易合约具有并集的候选智能交易合约;
[0115]
依赖确定单元,用于根据所述目标智能合约交易分别与各候选智能交易合约的时间戳信息,确定所述目标智能合约交易分别与各候选智能交易合约的依赖关系;
[0116]
依赖图构建单元,用于分别以所述目标智能交易合约及候选智能交易合约为顶
点,以所述目标智能交易合约与候选智能交易合约的依赖关系为有向边,构建所述目标智能交易合约的交易依赖图;
[0117]
交易集更新单元,用于从所述待处理智能合约交易集中,删除所述目标智能交易合约及所述候选智能交易合约;
[0118]
隔离单元,用于从各候选智能交易合约中,提取一候选智能交易合约,替换所述目标智能交易合约,从所述待处理智能合约交易集中,执行所述获取所述待处理智能合约交易集中与所述目标智能交易合约具有并集的候选智能交易合约的步骤,直至各候选智能交易合约被遍历完毕,返回执行所述从所述待处理智能合约交易集中,提取一目标智能交易合约的步骤,直至所述待处理智能合约交易集为空,得到所述待处理智能交易合约集的交易依赖图。
[0119]
交易并行执行模块703,用于依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,每一可用线程对应处理一待处理智能合约交易子集。
[0120]
本实施例中,作为一可选实施例,交易并行执行模块根据用于进行交易处理的服务器的cpu核数,初始化线程池中的可用线程,调用可用线程执行交易依赖图中不存在依赖关系的智能合约交易或资源互斥分组,不同的可用线程,执行交易依赖图中不存在依赖关系的智能合约交易或不同的资源互斥分组。
[0121]
本实施例中,作为一可选实施例,交易并行执行模块703包括:
[0122]
线程配置单元(图中未示出),用于根据所述可用线程的线程数以及所述资源互斥分组的组数,确定可用线程配置;
[0123]
交易执行单元,用于依据配置有可用线程的资源互斥分组,按照该资源互斥分组内各智能合约交易的等价执行顺序,依次调用该可用线程进行交易处理,直至该资源互斥分组被处理完毕。
[0124]
本实施例中,作为另一可选实施例,交易并行执行模块703包括:
[0125]
入度识别单元,用于从所述待处理智能交易合约集的交易依赖图中,提取入度为0的智能合约交易,调用线程池中的可用线程,执行该智能合约交易,每一入度为0的智能合约交易对应一可用线程;
[0126]
出度处理单元,用于确定所述入度为0的智能合约交易处理完毕,将所述入度为0的智能合约交易的出度减为0;
[0127]
并行执行单元,用于判断所述待处理智能交易合约集的交易依赖图中,所有智能合约交易是否被执行完毕,若是,结束流程,若否,执行所述从所述待处理智能交易合约集的交易依赖图中,提取入度为0的智能合约交易的步骤。
[0128]
本实施例中,通过交易依赖图方法或者资源互斥分组方法,对待处理智能合约交易进行依赖关系获取或分组,调用各可用线程,分别执行不具有依赖关系的智能合约交易或不同的资源互斥分组,这样,在各可用线程的并行执行过程中,不会发生任何冲突。
[0129]
本实施例中,通过充分利用区块链网络节点提供的多核处理能力,以及,识别出待处理智能合约交易集中具有依赖关系的冲突智能合约交易,生成等价的执行顺序,基于多核并行执行不具有依赖关系的智能合约交易,从而通过改进区块链的执行层的方式,能显著提高区块链系统的吞吐率。具体包括:
[0130]
1提高吞吐率。吞吐率是区块链网络最重要的性能指标之一,通过将多个不存在依赖关系的智能合约交易进行并行执行,能大幅提高区块链网络的吞吐率。
[0131]
2提高计算机资源利用率。串行执行智能合约交易时,多核cpu中其他的核可能是完全空闲的,这不仅限制了区块链网络的吞吐率,更是对计算资源的极大浪费,通过利用多核cpu进行并行计算,有效提升了计算机资源利用率。
[0132]
3增加伸缩性。单个区块链节点即使增加cpu核数,由于串行执行的特点,也不能使区块链网络的吞吐率得到提升。通过并行执行智能合约交易,可以通过提高区块链节点的配置,例如,增加cpu核数来提升智能合约交易执行的效率,从而支持区块链网络的所有者不断地扩大业务规模。
[0133]
基于同一发明构思,本发明实施例还提供了一种存储介质,其上存储有计算机程序,程序被处理器执行时实现上述任意可能的实现方式中的基于区块链的交易处理方法的步骤。
[0134]
可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0135]
基于同一发明构思,参见图8,本发明实施例还提供了一种电子设备,包括存储器101(例如非易失性存储器)、处理器102及存储在存储器101上并可在处理器102上运行的计算机程序,处理器102执行程序时实现上述任意可能的实现方式中的基于区块链的交易处理方法的步骤,可相当于如前的基于区块链的交易处理装置,当然,该处理器还可以用来处理其他数据或运算。该电子设备可以是pc、服务器、终端等设备。
[0136]
如图8所示,该电子设备一般还可以包括:内存103、网络接口104、以及内部总线105。除了这些部件外,还可以包括其他硬件,对此不再赘述。
[0137]
需要指出的是,上述基于区块链的交易处理装置可以通过软件实现,其作为一个逻辑意义上的装置,是通过其所在的电子设备的处理器102将非易失性存储器中存储的计算机程序指令读取到内存103中运行形成的。
[0138]
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
[0139]
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。处理及逻辑流程还可以由专用逻辑电路—例如fpga(现场可编程门阵列)或asic(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
[0140]
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指
令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏操纵台、全球定位系统(gps)接收机、或例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举几例。
[0141]
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及cd-rom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
[0142]
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
[0143]
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
[0144]
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
[0145]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0146]
以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种基于区块链的交易处理方法,其特征在于,包括:针对待处理智能合约交易集中的每一智能合约交易,依据预先设置的资源识别策略,获取该智能合约交易需占用的资源集;依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的智能合约交易,生成待处理智能合约交易子集;依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,每一可用线程对应处理一待处理智能合约交易子集。2.根据权利要求1所述的基于区块链的交易处理方法,其特征在于,所述关联识别策略包括:资源依赖图方法识别策略,所述依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的智能合约交易,生成待处理智能合约交易子集,包括:提取所述待处理智能合约交易集中的一智能合约交易,得到目标智能合约交易,将所述目标智能合约交易置于新分组中,获取所述目标智能合约交易需要占用的第一资源集;从所述待处理智能合约交易集中,删除所述目标智能合约交易;针对所述第一资源集中的每一资源,从所述待处理智能合约交易集中,获取需要占用该资源的第一智能合约交易,置于所述新分组中;从所述待处理智能合约交易集中,删除所述第一智能合约交易;针对每一第一智能合约交易的资源集,除与所述目标智能合约的资源相同的资源之外的每一资源,从所述待处理智能合约交易集中,获取需要占用该资源的第二智能合约交易,置于所述新分组中;从所述待处理智能合约交易集中,删除所述第二智能合约交易,直至所述新分组中的智能合约交易被遍历完毕,依据所述新分组得到资源互斥分组,清空所述新分组;从所述待处理智能合约交易集中,删除所述资源互斥分组,执行所述提取所述待处理智能合约交易集中的一智能合约交易的步骤,直至所述待处理智能合约交易集为空。3.根据权利要求2所述的基于区块链的交易处理方法,其特征在于,在所述删除所述目标智能合约交易之后,所述方法还包括:判断所述待处理智能合约交易集是否为空,若是,结束流程,若否,执行所述针对所述第一资源集中的每一资源,从所述待处理智能合约交易集中,获取需要占用该资源的第一智能合约交易的步骤。4.根据权利要求2或3所述的基于区块链的交易处理方法,其特征在于,还包括:根据资源互斥分组内各智能交易合约的时间戳信息,确定各智能合约交易的等价执行顺序。5.根据权利要求4所述的基于区块链的交易处理方法,其特征在于,所述依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,包括:根据所述可用线程的线程数以及所述资源互斥分组的组数,确定可用线程配置;依据配置有可用线程的资源互斥分组,按照该资源互斥分组内各智能合约交易的等价执行顺序,依次调用该可用线程进行交易处理,直至该资源互斥分组被处理完毕。6.根据权利要求1所述的基于区块链的交易处理方法,其特征在于,所述关联识别策略
包括:交易依赖图方法识别策略,所述依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的智能合约交易,生成待处理智能合约交易子集,包括:从所述待处理智能合约交易集中,提取一目标智能交易合约,获取所述待处理智能合约交易集中与所述目标智能交易合约具有并集的候选智能交易合约;根据所述目标智能合约交易分别与各候选智能交易合约的时间戳信息,确定所述目标智能合约交易分别与各候选智能交易合约的依赖关系;分别以所述目标智能交易合约及候选智能交易合约为顶点,以所述目标智能交易合约与候选智能交易合约的依赖关系为有向边,构建所述目标智能交易合约的交易依赖图;从所述待处理智能合约交易集中,删除所述目标智能交易合约及所述候选智能交易合约;从各候选智能交易合约中,提取一候选智能交易合约,替换所述目标智能交易合约,从所述待处理智能合约交易集中,执行所述获取所述待处理智能合约交易集中与所述目标智能交易合约具有并集的候选智能交易合约的步骤,直至各候选智能交易合约被遍历完毕,返回执行所述从所述待处理智能合约交易集中,提取一目标智能交易合约的步骤,直至所述待处理智能合约交易集为空,得到所述待处理智能交易合约集的交易依赖图。7.根据权利要求6所述的基于区块链的交易处理方法,其特征在于,所述依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,包括:从所述待处理智能交易合约集的交易依赖图中,提取入度为0的智能合约交易,调用线程池中的可用线程,执行该智能合约交易,每一入度为0的智能合约交易对应一可用线程;确定所述入度为0的智能合约交易处理完毕,将所述入度为0的智能合约交易的出度减为0;判断所述待处理智能交易合约集的交易依赖图中,所有智能合约交易是否被执行完毕,若是,结束流程,若否,执行所述从所述待处理智能交易合约集的交易依赖图中,提取入度为0的智能合约交易的步骤。8.一种基于区块链的交易处理装置,其特征在于,所述基于区块链的交易处理装置包括:资源占用获取模块,用于针对待处理智能合约交易集中的每一智能合约交易,依据预先设置的资源识别策略,获取该智能合约交易需占用的资源集;资源占用隔离模块,用于依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的智能合约交易,生成待处理智能合约交易子集;交易并行执行模块,用于依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,每一可用线程对应处理一待处理智能合约交易子集。9.一种存储介质,其特征在于,存储介质上存储程序或指令,程序或指令被处理器运行时实现如权利要求1至7中任一项所述的基于区块链的交易处理方法的步骤。10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7中任一项所述的基于区块链的交易处理方法的步骤。
技术总结
本发明涉及一种基于区块链的交易处理方法、装置、存储介质和电子设备,基于区块链的交易处理方法包括:针对待处理智能合约交易集中的每一智能合约交易,依据预先设置的资源识别策略,获取该智能合约交易需占用的资源集;依据预先设置的关联识别策略,对所述待处理智能合约交易集中各智能合约交易需占用的资源集进行关联识别,依据具有关联的资源集对应的智能合约交易,生成待处理智能合约交易子集;依据线程池中的可用线程,对各待处理智能合约交易子集中的智能合约交易进行交易处理,每一可用线程对应处理一待处理智能合约交易子集。可以提升智能合约交易的处理效率。以提升智能合约交易的处理效率。以提升智能合约交易的处理效率。
技术研发人员:蒋海 吴扬洪
受保护的技术使用者:布比(北京)网络技术有限公司
技术研发日:2023.08.04
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/