跨链交易方法、装置、电子设备及存储介质与流程

文档序号:32401637发布日期:2022-12-02 19:12阅读:127来源:国知局
跨链交易方法、装置、电子设备及存储介质与流程

1.本技术涉及区块链技术领域,具体涉及一种跨链交易方法、装置、电子设备及存储介质。


背景技术:

2.随着区块链技术的快速发展,目前有很多应用系统采用区块链来存储数据,通常,不同的应用系统会配置不同的区块链,不同应用系统的区块链(简称应用链)之间由于业务需求通常需要进行跨链交易,现有技术通常是通过跨链交易系统来实现不同应用链之间的跨链交易。
3.然而,随着区块链的发展,跨链交易的交易请求数量较多,目前跨链交易系统中的跨链交易方法处理交易请求时的资源消耗较大,成本较高。


技术实现要素:

4.本技术提供一种跨链交易方法、装置、电子设备及存储介质,旨在解决目前的跨链交易方法在处理交易请求时成本较高的问题。
5.第一方面,本技术提供一种跨链交易方法,包括:
6.接收应用链发送的交易请求包,其中,所述交易请求包由多个携带相同目的链信息的交易请求构成,所述交易请求包携带有对应目的链的封装信息;
7.对所述交易请求包携带的封装信息进行解析,得到所述交易请求包对应的目的链;
8.将所述交易请求包发送至所述对应的目的链;
9.接收所述目的链反馈的所述交易请求包对应的交易回执。
10.在本技术的一种可能的实现方式中,所述将所述交易请求包发送至所述对应的目的链之前,所述方法还包括:
11.获取所述交易请求包对应的默克尔树,其中,所述默克尔树由所述交易请求包中交易请求的交易信息构建得到;
12.根据所述默克尔树的默克尔树树根和所述默克尔树的默克尔树证明,对所述交易请求包进行校验;
13.若校验通过,则执行所述将所述交易请求包发送至所述对应的目的链的步骤;
14.若校验不通过,则从所述交易请求包中的交易请求中,获取校验通过的第一交易请求,并将所述第一交易请求发送至所述交易请求包对应的目的链。
15.在本技术的一种可能的实现方式中,所述根据所述默克尔树的默克尔树树根和所述默克尔树的默克尔树证明,对所述交易请求包进行校验,包括:
16.根据所述默克尔树的默克尔树树根和所述默克尔树的默克尔树证明,计算得到所述交易请求包中交易请求的目标标识;
17.获取所述交易请求包中交易请求的原始标识;
18.将所述原始标识与所述目标标识进行对比,若所述原始标识与所述目标标识相同,则校验通过。
19.在本技术的一种可能的实现方式中,所述若校验不通过,则从所述交易请求包中的交易请求中,获取校验通过的第一交易请求,并将所述第一交易请求发送至所述交易请求包对应的目的链,包括:
20.若校验不通过,则从所述交易请求包中的交易请求中,确定首个校验不通过的第二交易请求;
21.获取顺序在所述第二交易请求之前的第一交易请求;
22.将所述第一交易请求发送至所述交易请求包对应的目的链。
23.在本技术的一种可能的实现方式中,所述将所述交易请求包发送至所述对应的目的链之后,所述方法还包括:
24.获取所述交易请求包对应的事务状态队列,其中,所述事务状态队列中包含了所述交易请求包中交易请求的事务状态;
25.根据所述交易请求包中交易请求的处理结果,更新所述事务状态队列;
26.接收状态查询请求,根据所述状态查询请求中的第一标签,确定所述事务状态队列中的目标队列;
27.根据所述状态查询请求中的第二标签,从所述目标队列中查询得到所述状态查询请求对应的事务状态。
28.在本技术的一种可能的实现方式中,所述根据所述交易请求携带的目的链信息对所述交易请求进行打包,得到交易请求包,包括:
29.根据所述交易请求所携带的目的链信息,将所述交易请求存储至对应的预设数据库中;
30.若所述预设数据库中的交易请求数量达到预设数量阈值,则将所述预设数据库中的交易请求打包,得到交易请求包,并删除所述预设数据库中的交易请求。
31.第二方面,本技术提供一种跨链交易装置,包括:
32.第一接收单元,用于接收应用链发送的交易请求包,其中,所述交易请求包由多个携带相同目的链信息的交易请求构成,所述交易请求包携带有对应目的链的封装信息;
33.解析单元,用于对所述交易请求包携带的封装信息进行解析,得到所述交易请求包对应的目的链;
34.发送单元,用于将所述交易请求包发送至所述对应的目的链;
35.第二接收单元,用于接收所述目的链反馈的所述交易请求包对应的交易回执。
36.在本技术的一种可能的实现方式中,发送单元还用于:
37.获取所述交易请求包对应的默克尔树,其中,所述默克尔树由所述交易请求包中交易请求的交易信息构建得到;
38.根据所述默克尔树的默克尔树树根和所述默克尔树的默克尔树证明,对所述交易请求包进行校验;
39.若校验通过,则执行所述将所述交易请求包发送至所述对应的目的链的步骤;
40.若校验不通过,则从所述交易请求包中的交易请求中,获取校验通过的第一交易请求,并将所述第一交易请求发送至所述交易请求包对应的目的链。
41.在本技术的一种可能的实现方式中,发送单元还用于:
42.根据所述默克尔树的默克尔树树根和所述默克尔树的默克尔树证明,计算得到所述交易请求包中交易请求的目标标识;
43.获取所述交易请求包中交易请求的原始标识;
44.将所述原始标识与所述目标标识进行对比,若所述原始标识与所述目标标识相同,则校验通过。
45.在本技术的一种可能的实现方式中,发送单元还用于:
46.若校验不通过,则从所述交易请求包中的交易请求中,确定首个校验不通过的第二交易请求;
47.获取顺序在所述第二交易请求之前的第一交易请求;
48.将所述第一交易请求发送至所述交易请求包对应的目的链。
49.在本技术的一种可能的实现方式中,发送单元还用于:
50.获取所述交易请求包对应的事务状态队列,其中,所述事务状态队列中包含了所述交易请求包中交易请求的事务状态;
51.根据所述交易请求包中交易请求的处理结果,更新所述事务状态队列;
52.接收状态查询请求,根据所述状态查询请求中的第一标签,确定所述事务状态队列中的目标队列;
53.根据所述状态查询请求中的第二标签,从所述目标队列中查询得到所述状态查询请求对应的事务状态。
54.在本技术的一种可能的实现方式中,第一接收单元还用于:
55.根据所述交易请求所携带的目的链信息,将所述交易请求存储至对应的预设数据库中;
56.若所述预设数据库中的交易请求数量达到预设数量阈值,则将所述预设数据库中的交易请求打包,得到交易请求包,并删除所述预设数据库中的交易请求。
57.第三方面,本技术还提供一种跨链交易系统,包括通信连接的应用链、中继链和目的链;所述跨链交易系统执行:
58.应用链,用于接收交易请求,若所述交易请求为跨链交易请求,则将所述跨链交易请求打包后发送至所述中继链;
59.中继链,用于接收所述应用链发送的交易请求包,其中,所述交易请求包由多个携带相同目的链信息的交易请求构成,所述交易请求包携带有对应目的链的封装信息;
60.以及,对所述交易请求包携带的封装信息进行解析,得到所述交易请求包对应的目的链;
61.以及,将所述交易请求包发送至所述对应的目的链;
62.目的链,用于将所述交易请求包对应的交易回执反馈至所述中继链。
63.第四方面,本技术还提供一种电子设备,电子设备包括处理器、存储器以及存储于存储器中并可在处理器上运行的计算机程序,处理器调用存储器中的计算机程序时执行本技术提供的任一种跨链交易方法中的步骤。
64.第五方面,本技术还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现本技术提供的任一种跨链交易方法中的步骤。
65.综上所述,本技术实施例提供的跨链交易方法包括:接收应用链发送的交易请求包,其中,所述交易请求包由多个携带相同目的链信息的交易请求构成,所述交易请求包携带有对应目的链的封装信息;对所述交易请求包携带的封装信息进行解析,得到所述交易请求包对应的目的链;将所述交易请求包发送至所述对应的目的链;接收所述目的链反馈的所述交易请求包对应的交易回执。
66.可见,本技术实施例提供的跨链交易方法以交易请求包的形式进行跨链交易,可以有效降低区块链之间传输交易请求时支付的手续费,同时减少区块链系统的资源消耗和网络带宽占用。此外,本技术实施例提供的跨链交易方法根据交易请求对应的目的链进行分类和打包,同时将对应的目的链信息封装至交易请求包中,因此在中继链网关确定交易请求对应的目的链时,仅需要对交易请求包携带的封装信息进行一次解析即可,进一步降低了区块链系统的资源消耗和成本,在跨链交易频繁,交易请求数量较多的情况下,具有较高的实用价值。
附图说明
67.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
68.图1是本技术实施例提供的跨链交易方法的应用场景示意图;
69.图2是本技术实施例中提供的跨链交易方法的一种流程示意图;
70.图3是本技术实施例中提供的跨链交易系统的一种示意图;
71.图4是本技术实施例中提供的对交易请求包进行校验的一种流程示意图;
72.图5是本技术实施例中提供的查询事务状态的一种流程示意图;
73.图6是本技术实施例中提供的获取交易请求包的一种流程示意图;
74.图7是本技术实施例中提供的跨链交易装置的一个实施例结构示意图;
75.图8是本技术实施例中提供的电子设备的一个实施例结构示意图。
具体实施方式
76.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
77.在本技术实施例的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本技术实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
78.为了使本领域任何技术人员能够实现和使用本技术,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本技术。在其它实例中,不会对公知的过程进行
详细阐述,以避免不必要的细节使本技术实施例的描述变得晦涩。因此,本技术并非旨在限于所示的实施例,而是与符合本技术实施例所公开的原理和特征的最广范围相一致。
79.本技术实施例提供一种跨链交易方法、装置、电子设备和存储介质。其中,该跨链交易装置可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备。
80.本技术实施例跨链交易方法的执行主体可以为本技术实施例提供的跨链交易装置,或者集成了该跨链交易装置的服务器设备、物理主机或者用户设备(user equipment,ue)等不同类型的电子设备,其中,跨链交易装置可以采用硬件或者软件的方式实现,ue具体可以为智能手机、平板电脑、笔记本电脑、掌上电脑、台式电脑或者个人数字助理(personal digital ass istant,pda)等终端设备。
81.该电子设备可以采用单独运行的工作方式,或者也可以采用设备集群的工作方式。
82.参见图1,图1是本技术实施例所提供的跨链交易系统的场景示意图。其中,该跨链交易系统可以包括电子设备101,电子设备101中集成有跨链交易装置。
83.另外,如图1所示,该跨链交易系统还可以包括存储器102,用于存储数据,如存储文本数据。
84.需要说明的是,图1所示的跨链交易系统的场景示意图仅仅是一个示例,本技术实施例描述的跨链交易系统以及场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着跨链交易系统的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
85.下面,开始介绍本技术实施例提供的跨链交易方法,本技术实施例中以电子设备作为执行主体,为了简化与便于描述,后续方法实施例中将省略该执行主体,该跨链交易方法包括:接收应用链发送的交易请求包,其中,所述交易请求包由多个携带相同目的链信息的交易请求构成,所述交易请求包携带有对应目的链的封装信息;对所述交易请求包携带的封装信息进行解析,得到所述交易请求包对应的目的链;将所述交易请求包发送至所述对应的目的链;接收所述目的链反馈的所述交易请求包对应的交易回执。
86.参照图2,图2是本技术实施例提供的跨链交易方法的一种流程示意图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。该跨链交易方法具体可以包括以下步骤201-步骤204,其中:
87.201、接收应用链发送的交易请求包,其中,所述交易请求包由多个携带相同目的链信息的交易请求构成,所述交易请求包携带有对应目的链的封装信息。
88.本技术实施例提供的跨链交易方法可以应用于跨链交易系统中,参考图3,图3为跨链交易系统300的一种结构示意图。跨链交易系统300包括至少一个应用链301,中继链302,以及至少一个目的链303。
89.其中,交易请求包是指包含多个交易请求信息的批量交易包。在本技术实施例中,当应用链接收到交易请求时,应用链查询交易请求的交易对象,判断交易请求是否为跨链交易请求,若交易请求为跨链交易请求,则根据交易对象对交易请求进行分类和打包,得到分别对应不同的交易对象,即分别对应不同目的链的交易请求包,交易请求包中包含的交易请求均对应相同的目的链。例如,应用链网关可以定期轮询监听各应用链接收到的跨链
交易请求,并将该段时间内监听到的跨链交易请求根据目的链的不同进行打包,得到分别对应不同目的链的交易请求包,并将交易请求包发送至中继链。
90.在应用链网关进行打包时,为了方便后续过程,可以同时将交易请求包对应的目的链信息封装至交易请求包中。例如交易请求包中的各交易请求均对应目的链“hyperchain”时,应用链网关可以将“hyperchain”的信息封装至交易请求包中。
91.可见,本技术实施例中的跨链交易方法将交易请求进行打包,生成交易请求包,并将交易请求包发送至中继链,因此仅需要支付一次发送至中继链的跨链手续费即可,并且可以避免多个交易请求的串行传输导致的网络带宽堵塞,现阶段中继链跨链的模式是当应用链抛出一笔跨链交易以后,网关会立即将该笔交易转发给中继链进行验证处理,如果短时间内应用链抛出大量的跨链交易的时候,如果通过一笔一笔转发的方式进行会导致整个跨链效率非常低下,同时每有一笔跨链就转发的情形下会导致该应用链网关在中继链上支付大量的手续费,导致资源和成本的浪费。此外,通过应用链网关进行打包时,无需经过中继链的共识机制进行处理,因此效率更高。
92.202、对所述交易请求包携带的封装信息进行解析,得到所述交易请求包对应的目的链。
93.在执行步骤202时,中继链网关可以对交易请求包携带的封装信息进行解析,以确定交易请求包中各交易请求的目的链。可见,通过将目的链相同的交易请求打包,并且将对应的目的链信息封装至交易请求包,可以在确定交易请求的目的链时,仅需要进行一次解析就能够确定多个交易请求的目的链,一方面减少了中继链网关的计算成本,另一方面降低了中继链网关的网络带宽占用,为交易请求包的传输提供更多的空闲网络带宽。
94.203、将所述交易请求包发送至所述对应的目的链。
95.中继链网关在确定交易请求包对应的目的链后,可以对交易请求包中的每一个交易请求进行事务标记,同时将交易请求包发送至对应的目的链。可见,本技术实施例中的跨链交易方法不仅在中继链与应用链之间通过交易请求包的方式进行交易请求传输,还在中继链与目的链之间通过交易请求包的方式进行交易请求传输,进一步减少了传输资源消耗和网络带宽占用。
96.204、接收所述目的链反馈的所述交易请求包对应的交易回执。
97.目的链在接收到交易请求包后,可以解析交易请求包,得到交易请求包中的交易请求,并根据交易请求将对应交易一一上链。
98.在一些实施例中,目的链可以将多个交易回执打包后,以批量包的形式发送至目的链,以减少传输资源消耗和网络带宽占用。例如,目的链可以在对交易请求包中的交易请求进行处理后,得到交易请求对应的交易回执,并将这些交易回执进行打包后发送至中继链。
99.在执行步骤204之后,中继链将得到的交易回执发送至应用链,应用链同步交易回执中的信息至包含的各区块,同时执行相应的cal lback和rol lback操作。
100.综上所述,本技术实施例提供的跨链交易方法包括:接收应用链发送的交易请求包,其中,所述交易请求包由多个携带相同目的链信息的交易请求构成,所述交易请求包携带有对应目的链的封装信息;对所述交易请求包携带的封装信息进行解析,得到所述交易请求包对应的目的链;将所述交易请求包发送至所述对应的目的链;接收所述目的链反馈
的所述交易请求包对应的交易回执。
101.可见,本技术实施例提供的跨链交易方法以交易请求包的形式进行跨链交易,可以有效降低区块链之间传输交易请求时支付的手续费,同时减少区块链系统的资源消耗和网络带宽占用。此外,本技术实施例提供的跨链交易方法根据交易请求对应的目的链进行分类和打包,同时将对应的目的链信息封装至交易请求包中,因此在中继链网关确定交易请求对应的目的链时,仅需要对交易请求包携带的封装信息进行一次解析即可,进一步降低了区块链系统的资源消耗和成本,在跨链交易频繁,交易请求数量较多的情况下,具有较高的实用价值。
102.在一些实施例中,为了避免将作假交易发送至目的链,中继链网关可以在将交易请求包发送至对应的目的链之前,对交易请求包中的交易请求进行校验。参考图4,此时,步骤“将所述交易请求包发送至所述对应的目的链”之前,所述方法还包括:
103.401、获取所述交易请求包对应的默克尔树,其中,所述默克尔树由所述交易请求包中交易请求的交易信息构建得到。
104.默克尔树(merkle tree)可以由应用链网关根据交易请求的标识生成,其中,标识可以是指交易请求对应的哈希值。在应用链网关根据交易请求包中交易请求的交易信息,构建得到默克尔树后,可以将默克尔树的信息与交易请求包一同发送至中继链,在执行步骤401时,中继链网关即可直接获取交易请求包对应的默克尔树。
105.402、根据所述默克尔树的默克尔树树根和所述默克尔树的默克尔树证明,对所述交易请求包进行校验。
106.在一些实施例中,可以通过以下方法对交易请求包进行校验,即步骤“根据所述默克尔树的默克尔树树根和所述默克尔树的默克尔树证明,对所述交易请求包进行校验”,包括:
107.(1)根据所述默克尔树的默克尔树树根和所述默克尔树的默克尔树证明,计算得到所述交易请求包中交易请求的目标标识。
108.其中,目标标识是根据应用链网关构建得到的默克尔树所计算的哈希值,可以理解为若未出现作假交易时的哈希值。
109.(2)获取所述交易请求包中交易请求的原始标识。
110.原始标识是指传输后中继链中实际的哈希值,可以理解的,原始标识可能与目标标识不同,也可能与目标标识相同。若交易请求为作假交易,则原始标识应当与目标标识不同,若交易请求不是作假交易,则原始标识应当与目标标识相同。
111.(3)将所述原始标识与所述目标标识进行对比,若所述原始标识与所述目标标识相同,则校验通过。
112.可见,通过步骤401-步骤402,在本技术实施例的跨链交易方法中,中继链在校验时无需获取每一笔交易请求的哈希值,仅需要获取默克尔树即可,因此交易的校验更加高效,并且传输时的资源消耗更小,网络带宽占用更低。
113.403a、若校验通过,则执行所述将所述交易请求包发送至所述对应的目的链的步骤。
114.如果校验通过,则说明交易请求包中不存在作假交易,因此可以将交易请求包发送至对应的目的链。
115.403b、若校验不通过,则从所述交易请求包中的交易请求中,获取校验通过的第一交易请求,并将所述第一交易请求发送至所述交易请求包对应的目的链。
116.如果校验不通过,则说明交易请求包中存在作假交易,此时可以将作假交易去除,仅将真实的交易请求发送至对应的目的链。
117.第一交易请求是指校验通过的交易请求,即真实的交易请求。
118.在一些实施例中,步骤“若校验不通过,则从所述交易请求包中的交易请求中,获取校验通过的第一交易请求,并将所述第一交易请求发送至所述交易请求包对应的目的链”可以通过以下方式实现:
119.(a)若校验不通过,则从所述交易请求包中的交易请求中,确定首个校验不通过的第二交易请求。
120.获取首个校验不通过的第二交易请求的原因是在区块链网络中,所有的区块呈链状连接,因此若在先的交易请求为作假请求,则由于后续的交易请求基于该作假请求,因此将后续的交易请求发送至目的链后,执行后续的交易请求会出错。因此,本技术实施例中的跨链交易方法通过步骤(a),可以减少交易请求的校验次数,当得到校验不通过的第二交易请求时,无需对后续的交易请求进行校验,而是将其反馈至应用链,通过应用链的网关重新发送交易,直至校验通过为止,以减少计算量,降低中继链的成本。
121.(b)获取顺序在所述第二交易请求之前的第一交易请求。
122.如步骤(a)中的说明,由于第二交易请求是首个校验不通过的交易请求,因此顺序在第二交易请求之前的第一交易请求必然为真实的交易请求。
123.(c)将所述第一交易请求发送至所述交易请求包对应的目的链。
124.在一些实施例中,中继链网关可以将第一交易请求再次进行打包,然后将生成的批量包发送至目的链,以减少数据发送时的资源消耗和网络带宽占用。
125.综上所述,通过步骤401-步骤403的方法,可以有效对交易请求包的真实性进行验证,避免将作假交易发送至目的链。
126.在一些实施例中,为了提高事务状态的查询效率,并且减少事务状态占用的存储空间,减少leveldb的聚合频率,可以在中继链中将交易请求的事务状态以队列的形式进行存储,因此在后续更新和查询事务状态时,可以以更新队列和查询队列的形式进行。参考图5,此时,步骤“将所述交易请求包发送至所述对应的目的链”之后,所述方法还包括:
127.501、获取所述交易请求包对应的事务状态队列,其中,所述事务状态队列中包含了所述交易请求包中交易请求的事务状态。
128.事务状态可以用于反映交易请求的处理状态,例如事务状态可以包括“挂起”、“已完成”等等。在本技术实施例中,交易请求的事务状态以队列的形式存储在中继链中,因此可以减少事务状态占用的存储空间,减少leveldb的聚合频率。
129.需要说明的是,在中继链中,每个交易请求包对应一个事务状态列表,在对应的事务状态列表中存储有交易请求包中交易请求的事务状态。
130.502、根据所述交易请求包中交易请求的处理结果,更新所述事务状态队列。
131.示例性地,目的链可以将交易请求的处理结果以交易回执的方式返回至中继链,中继链网关根据交易回执确定交易请求的处理结果,并根据处理结果更新事务状态队列中交易请求的事务状态。
132.503、接收状态查询请求,根据所述状态查询请求中的第一标签,确定所述事务状态队列中的目标队列。
133.状态查询请求是用于查询事务状态的计算机请求。在本技术实施例中,由于交易请求的事务状态以队列的形式存储在中继链中,因此状态查询请求需要包含两种标签,一种用于查找队列,一种用于查找队列中的交易请求。例如,状态查询请求中的标签可以是以下形式:hyperchain1-a,其中,hyperchain1是用于查找队列的标签,a是用于查找队列中交易请求的标签。可以理解的,步骤503中的第一标签是指用于查找队列的标签。
134.504、根据所述状态查询请求中的第二标签,从所述目标队列中查询得到所述状态查询请求对应的事务状态。
135.由步骤503的说明可知,第二标签是用于查找队列中交易请求的标签,根据第二标签,即可从目标队列中确定对应的目标交易请求,并返回目标交易请求的当前事务状态作为查询结果。
136.可见,通过步骤501-步骤504的方法,在查找事务状态时无需遍历每一个交易请求,而是可以在确定目标队列后,仅遍历目标队列中的交易请求,显著提高了事务状态的查询效率,并且降低了查询时的网络带宽占用,即使同步进行查询和交易请求的传输,也不会对中继链的性能造成影响。
137.在一些实施例中,应用链网关可以在监听交易请求时,将对应不同目的链的交易请求暂存至不同的数据库中,直至暂存的交易请求数量达到一定数量时,再进行打包。由此,可以提高交易请求的传输效率,在交易请求数量较少时进行延后打包,以降低区块链之间传输交易请求时支付的手续费,同时减少区块链系统的资源消耗和网络带宽占用。参考图6,此时,步骤“根据所述交易请求携带的目的链信息对所述交易请求进行打包,得到交易请求包”,包括:
138.601、根据所述交易请求所携带的目的链信息,将所述交易请求存储至对应的预设数据库中。
139.在本技术实施例中,可以在跨链交易系统中预设多个数据库,每个数据库对应一个目的链。当应用链确定了交易请求对应的目的链时,将其暂存至对应的数据库中。
140.602、若所述预设数据库中的交易请求数量达到预设数量阈值,则将所述预设数据库中的交易请求打包,得到交易请求包,并删除所述预设数据库中的交易请求。
141.其中,预设数量阈值用于评估交易请求数量的大小,若交易请求数量达到预设数量阈值,则说明在预设数据库中暂存的交易请求的数量已经足够多,此时可以将这些交易请求进行打包,以得到交易请求包,并将暂存的交易请求删除,以便后续生成下一个交易请求包。
142.为了更好实施本技术实施例中的跨链交易方法,在跨链交易方法基础之上,本技术实施例中还提供一种跨链交易装置,如图7所示,为本技术实施例中跨链交易装置的一个实施例结构示意图,该跨链交易装置700包括:
143.第一接收单元701,用于接收应用链发送的交易请求包,其中,所述交易请求包由多个携带相同目的链信息的交易请求构成,所述交易请求包携带有对应目的链的封装信息;
144.解析单元702,用于对所述交易请求包携带的封装信息进行解析,得到所述交易请
求包对应的目的链;
145.发送单元703,用于将所述交易请求包发送至所述对应的目的链;
146.第二接收单元704,用于接收所述目的链反馈的所述交易请求包对应的交易回执。
147.在本技术的一种可能的实现方式中,发送单元703还用于:
148.获取所述交易请求包对应的默克尔树,其中,所述默克尔树由所述交易请求包中交易请求的交易信息构建得到;
149.根据所述默克尔树的默克尔树树根和所述默克尔树的默克尔树证明,对所述交易请求包进行校验;
150.若校验通过,则执行所述将所述交易请求包发送至所述对应的目的链的步骤;
151.若校验不通过,则从所述交易请求包中的交易请求中,获取校验通过的第一交易请求,并将所述第一交易请求发送至所述交易请求包对应的目的链。
152.在本技术的一种可能的实现方式中,发送单元703还用于:
153.根据所述默克尔树的默克尔树树根和所述默克尔树的默克尔树证明,计算得到所述交易请求包中交易请求的目标标识;
154.获取所述交易请求包中交易请求的原始标识;
155.将所述原始标识与所述目标标识进行对比,若所述原始标识与所述目标标识相同,则校验通过。
156.在本技术的一种可能的实现方式中,发送单元703还用于:
157.若校验不通过,则从所述交易请求包中的交易请求中,确定首个校验不通过的第二交易请求;
158.获取顺序在所述第二交易请求之前的第一交易请求;
159.将所述第一交易请求发送至所述交易请求包对应的目的链。
160.在本技术的一种可能的实现方式中,发送单元703还用于:
161.获取所述交易请求包对应的事务状态队列,其中,所述事务状态队列中包含了所述交易请求包中交易请求的事务状态;
162.根据所述交易请求包中交易请求的处理结果,更新所述事务状态队列;
163.接收状态查询请求,根据所述状态查询请求中的第一标签,确定所述事务状态队列中的目标队列;
164.根据所述状态查询请求中的第二标签,从所述目标队列中查询得到所述状态查询请求对应的事务状态。
165.在本技术的一种可能的实现方式中,第一接收单元701还用于:
166.根据所述交易请求所携带的目的链信息,将所述交易请求存储至对应的预设数据库中;
167.若所述预设数据库中的交易请求数量达到预设数量阈值,则将所述预设数据库中的交易请求打包,得到交易请求包,并删除所述预设数据库中的交易请求。
168.具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
169.由于该跨链交易装置可以执行任意实施例中跨链交易方法中的步骤,因此,可以
实现本技术任意实施例中跨链交易方法所能实现的有益效果,详见前面的说明,在此不再赘述。
170.此外,为了更好实施本技术实施例中跨链交易方法,在跨链交易方法
171.基础之上,本技术实施例还提供一种电子设备,参阅图8,图8示出了本技术实施例电子设备的一种结构示意图,具体的,本技术实施例提供的电子设备包括处理器801,处理器801用于执行存储器802中存储的计算机程序时实现任意实施例中跨链交易方法的各步骤;或者,处理器801用于执行存储器802中存储的计算机程序时实现如图7对应实施例中各单元的功能。
172.示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器802中,并由处理器801执行,以完成本技术实施例。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。
173.电子设备可包括,但不仅限于处理器801、存储器802。本领域技术人员可以理解,示意仅仅是电子设备的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
174.处理器801可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分。
175.存储器802可用于存储计算机程序和/或模块,处理器801通过运行或执行存储在存储器802内的计算机程序和/或模块,以及调用存储在存储器802内的数据,实现计算机装置的各种功能。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
176.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的跨链交易装置、电子设备及其相应单元的具体工作过程,可以参考任意实施例中跨链交易方法的说明,具体在此不再赘述。
177.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一存储介质中,并由处理器进行加载和执行。
178.为此,本技术实施例提供一种存储介质,存储介质上存储有计算机程序,该计算机程序被处理器执行时执行本技术任意实施例中跨链交易方法中的步骤,具体操作可参考任意实施例中跨链交易方法的说明,在此不再赘述。
179.其中,该存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储
器(ram,random access memory)、磁盘或光盘等。
180.由于该存储介质中所存储的指令,可以执行本技术任意实施例中跨链交易方法中的步骤,因此,可以实现本技术任意实施例中跨链交易方法所能实现的有益效果,详见前面的说明,在此不再赘述。
181.以上对本技术实施例所提供的一种跨链交易方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1