首页> 中国专利> 基于区块链的跨链交易管理方法、跨链平台及介质

基于区块链的跨链交易管理方法、跨链平台及介质

摘要

本申请适用于区块链技术领域,提供了一种基于区块链的跨链交易管理方法、跨链平台及介质,其中,跨链交易管理方法包括:接收第一跨链交易请求,第一跨链交易请求携带有第一跨链交易请求的第一交易标识和第一交易编号值;将第一交易编号值与目标交易编号值进行对比,目标交易编号值为第二交易编号值与第一数值之和,第二交易编号值为第一交易树中存储的携带有第一交易标识的各个跨链交易请求的交易编号值中的最大交易编号值;若第一交易编号值等于目标交易编号值,则将第一跨链交易请求存入第一交易树中;将第一交易树中存储的携带有第一交易标识的跨链交易请求打包发送至目的应用链,从而提高了整个区块链系统的吞吐量和跨链交易请求的处理效率。

著录项

  • 公开/公告号CN112598514A

    专利类型发明专利

  • 公开/公告日2021-04-02

    原文格式PDF

  • 申请/专利权人 杭州趣链科技有限公司;

    申请/专利号CN202011432335.2

  • 申请日2020-12-09

  • 分类号G06Q40/04(20120101);G06F16/27(20190101);

  • 代理机构44414 深圳中一联合知识产权代理有限公司;

  • 代理人张全文

  • 地址 310000 浙江省杭州市滨江区丹枫路399号2号楼A楼2001室

  • 入库时间 2023-06-19 10:27:30

说明书

技术领域

本申请属于区块链技术领域,尤其涉及一种基于区块链的跨链交易管理方法、跨链平台及计算机可读存储介质。

背景技术

随着区块链技术的快速发展,目前有很多应用系统采用区块链来存储数据,通常,不同的应用系统会配置不同的区块链,不同应用系统的区块链(简称应用链)之间由于业务需求通常需要进行跨链交易,现有技术通常是通过跨链平台来实现不同应用链之间的跨链交易。

不同应用链之间进行跨链交易时,如果同一个来源应用链针对同一个目的应用链发起了多个跨链交易请求,通常需要保证目的应用链能够按照跨链交易请求的发起顺序执行跨链交易请求。然而,由于现有的跨链平台在接收到来自来源应用链的多条跨链交易请求时,是从中随机选择跨链交易请求发送至目的应用链的,因此,为了保证目的应用链能够按照跨链交易请求的发起顺序执行跨链交易请求,来源应用链需要采用串行方式向跨链平台发送跨链交易请求,在收到跨链平台的回执信息后,来源应用链才能发送下一条跨链交易请求,这样会降低整个区块链系统的吞吐量和跨链交易请求的处理效率。

发明内容

有鉴于此,本申请实施例提供了一种基于区块链的跨链交易管理方法、跨链平台及计算机可读存储介质,以解决传统的跨链交易请求的管理方法存在的区块链系统的吞吐量和跨链交易请求的处理效率均较低的技术问题。

第一方面,本申请实施例提供一种基于区块链的跨链交易管理方法,应用于跨链平台,所述跨链交易管理方法包括:

接收第一跨链交易请求,所述第一跨链交易请求携带有所述第一跨链交易请求的第一交易标识和第一交易编号值,所述第一交易标识用于描述发送所述第一跨链交易请求的来源应用链和所述第一跨链交易请求所指向的目的应用链,所述第一交易编号值为所述来源应用链基于增量为第一数值的编号值递增策略确定的所述第一跨链交易请求在所述第一交易标识下的交易编号值;

将所述第一交易编号值与目标交易编号值进行对比,所述目标交易编号值为第二交易编号值与所述第一数值之和,所述第二交易编号值为第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中的最大交易编号值;

若所述第一交易编号值等于所述目标交易编号值,则将所述第一跨链交易请求存入所述第一交易树中;

将所述第一交易树中存储的携带有所述第一交易标识的跨链交易请求打包发送至所述目的应用链。

可选的,在将所述第一交易编号值与目标交易编号值进行对比之后,所述跨链交易管理方法还包括:

若所述第一交易编号值大于所述目标交易编号值,则将所述第一跨链交易请求存入第二交易树中;

若所述第一交易编号值小于所述目标交易编号值,则忽略所述第一跨链交易请求,和/或向所述来源应用链返回第一提示信息,所述第一提示信息用于提示所述第一跨链交易请求为重复的跨链交易请求。

可选的,在若所述第一交易编号值等于所述目标交易编号值,则将所述第一跨链交易请求存入所述第一交易树中之后,所述跨链交易管理方法还包括:

根据所述第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中的最大交易编号值更新所述第二交易编号值。

可选的,在根据所述第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中最大的交易编号值更新所述第二交易编号值之后,所述跨链交易管理方法还包括:

从所述第二交易树中查找携带有所述第一交易标识的跨链交易请求;

将查找出的所述跨链交易请求中交易编号值与所述第二交易编号值连续的目标跨链交易请求存入所述第一交易树中,并从所述第二交易树中删除所述目标跨链交易请求;

根据所述第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中最大的交易编号值更新所述第二交易编号值。

可选的,所述将所述第一交易树中存储的携带有所述第一交易标识的跨链交易请求打包发送至所述目的应用链,包括:

将所述第一交易树中存储的携带有所述第一交易标识的跨链交易请求按照交易编号值从小到大的顺序进行排序;

将排序后的所述跨链交易请求进行打包得到跨链交易请求包;

向所述目的应用链发送所述跨链交易请求包。

可选的,所述跨链交易管理方法还包括:

接收所述来源应用链发送的交易编号值查询请求,所述交易编号值查询请求用于查询所述第一交易标识下的最新交易编号值;

向所述来源应用链发送所述第二交易编号值。

可选的,所述第一交易标识由所述来源应用链的唯一身份标识和所述目的应用链的唯一身份标识按照预设拼接方式拼接而成。

第二方面,本申请实施例提供一种跨链平台,包括:

第一接收单元,用于接收第一跨链交易请求,所述第一跨链交易请求携带有所述第一跨链交易请求的第一交易标识和第一交易编号值,所述第一交易标识用于描述发送所述第一跨链交易请求的来源应用链和所述第一跨链交易请求所指向的目的应用链,所述第一交易编号值为所述来源应用链基于增量为第一数值的编号值递增策略确定的所述第一跨链交易请求在所述第一交易标识下的交易编号值;

编号值处理单元,用于将所述第一交易编号值与目标交易编号值进行对比,所述目标交易编号值为第二交易编号值与所述第一数值之和,所述第二交易编号值为第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中的最大交易编号值;

交易管理单元,用于若所述第一交易编号值等于所述目标交易编号值,则将所述第一跨链交易请求存入所述第一交易树中;

交易发送单元,用于将所述第一交易树中存储的携带有所述第一交易标识的跨链交易请求打包发送至所述目的应用链。

第三方面,本申请实施例提供一种跨链平台,所述跨链平台包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面的任意可选方式所述的跨链交易管理方法。

第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任意可选方式所述的跨链交易管理方法。

第五方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在跨链平台上运行时,使得跨链平台执行上述第一方面或第一方面的任意可选方式所述的跨链交易管理方法。

实施本申请实施例提供的一种基于区块链的跨链交易管理方法、跨链平台、计算机可读存储介质及计算机程序产品具有以下有益效果:

本申请实施例提供的基于区块链的跨链交易管理方法,通过为携带有第一交易标识的每个跨链交易请求维护一个基于增量为第一数值的编号值递增策略确定的第一交易编号值,跨链平台接收到第一跨链交易请求后,将第一跨链交易请求的第一交易编号值与目标交易编号值进行对比,而目标交易编号值为第一交易树中存储的携带有第一交易标识的各个跨链交易请求的交易编号值中的最大交易编号值与第一数值之和,因此在第一交易编号值等于目标交易编号值时,说明第一跨链交易请求的第一交易编号值与第一交易树中存储的第一交易标识下的最大交易编号值连续,此时跨链平台将第一跨链交易请求存入第一交易树中,从而可以保证第一交易树中存储的携带有第一交易标识的所有跨链交易请求是按照交易编号值由小到大的顺序排列且交易编号值是连续的,这样,跨链平台将第一交易树中携带有第一交易标识的跨链交易请求打包发送至目的应用链时,可以保证目的应用链能够按照跨链交易请求的生成顺序执行跨链交易请求,如此使得来源应用链可以采用并行方式发送跨链交易请求,从而提高了整个区块链系统的吞吐量和跨链交易请求的处理效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种基于区块链的跨链交易管理方法所涉及的区块链系统的示意性架构图;

图2为本申请实施例提供的一种基于区块链的跨链交易管理方法的示意性流程图;

图3为本申请另一实施例提供的一种基于区块链的跨链交易管理方法的示意性流程图;

图4为本申请实施例提供的一种跨链平台中第一交易树与第二交易树的更新流程示意图;

图5为本申请实施例提供的一种跨链平台的结构示意图;

图6为本申请另一实施例提供的一种跨链平台的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

还应当理解,在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

请参阅图1,图1为本申请实施例提供的一种基于区块链的跨链交易管理方法所涉及的区块链系统的示意性架构图。如图1所示,该区块链系统可以包括:跨链平台10、至少一个来源应用链20以及至少一个目的应用链30。

其中,来源应用链20为发送跨链交易请求的区块链,目的应用链30为跨链交易请求所指向的区块链。

在具体应用中,每个来源应用链均可以包括多个应用链节点设备,且每个应用链可以对应多个客户端,其中,客户端用于生成跨链交易请求,应用链节点设备用于向跨链平台10发送客户端生成的跨链交易请求,跨链平台10可以向该跨链交易请求所指向的目的应用链30发送该跨链交易请求。

作为示例而非限定,跨链平台可以为中继链或侧链等,此处不做限定。

请参阅图2,图2为本申请实施例提供的一种基于区块链的跨链交易管理方法的示意性流程图。本申请实施例中,跨链交易管理方法的执行主体为跨链平台。如图2所示,跨链交易管理方法可以包括S21~S24,详述如下:

S21:接收第一跨链交易请求,所述第一跨链交易请求携带有所述第一跨链交易请求的第一交易标识和第一交易编号值,所述第一交易标识用于描述发送所述第一跨链交易请求的来源应用链和所述第一跨链交易请求所指向的目的应用链,所述第一交易编号值为所述来源应用链基于增量为第一数值的编号值递增策略确定的所述第一跨链交易请求在所述第一交易标识下的交易编号值。

在具体应用中,一个来源应用链可以向跨链平台发送指向同一个目的应用链的多个不同的跨链交易请求,一个来源应用链也可以向跨链平台发送指向不同目的应用链的多个不同的跨链交易请求。本申请实施例中,第一跨链交易请求可以是任一来源应用链向跨链平台发送的任一跨链交易请求。

为了对不同的跨链交易请求进行区分,在本申请的一个实施例中,跨链交易请求携带的交易标识可以用于描述发送该跨链交易请求的来源应用链和该跨链交易请求所指向的目的应用链。具体的,跨链交易请求携带的交易标识可以由发送该跨链交易请求的来源应用链的唯一身份标识与该跨链交易请求所指向的目的应用链的唯一身份标识按照预设拼接方式拼接而成。其中,应用链的唯一身份标识可以为应用链的互联网协议(InternetProtocol,IP)地址或名称等。预设拼接方式可以根据实际需求设置,此处不做限制,例如,预设拼接方式可以为来源应用链的唯一身份标识在前,目的应用链的唯一身份标识在后。

示例性的,假如发送第一跨链交易请求的来源应用链的名称为fabric,第一跨链交易请求所指向的目的应用链的名称为hyperchain,则第一跨链交易请求携带的第一交易标识可以为字符串“fabric-hyperchain”。

本申请实施例中,每个来源应用链会为其发送的每个交易标识对应的所有跨链交易请求维护一组按照跨链交易请求被生成的先后顺序递增且增量为第一数值的交易编号值,即对于来源应用链对应的各个客户端生成的交易标识相同的各个跨链交易请求,来源应用链会按照该各个跨链交易请求被生成的先后顺序对该各个跨链交易请求进行编号,其中,后生成的跨链交易请求的交易编号值大于先生成的跨链交易请求的交易编号值,且每相邻两个交易编号值的差值为第一数值。其中,第一数值可以根据实际需求设置,此处不做限制。

示例性的,假如每个交易标识下的交易编号值的起始值为1,第一数值也为1,某个来源应用链对应的客户端依次生成了两个携带有第一交易标识的跨链交易请求,分别为Tx1和Tx2,且Tx1和Tx2分别为第一交易标识下的第一个跨链交易请求和第二个跨链交易请求,则Tx1的交易编号值为1,Tx2的交易编号值为2。

S22:将所述第一交易编号值与目标交易编号值进行对比,所述目标交易编号值为第二交易编号值与所述第一数值之和,所述第二交易编号值为第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中的最大交易编号值。

本申请实施例中,跨链平台在其内存池中维护有第一交易树和第二交易树。其中,第一交易树用于存储基于预设策略确定的当前可被处理的跨链交易请求,第二交易树用于存储基于上述预设策略确定的当前不可被处理的跨链交易请求。预设策略可以为将同一交易标识对应的跨链交易请求按照交易编号值由小到大的顺序存入第一交易树,且存入第一交易树中的携带有相同交易标识的各个跨链交易请求的交易编号值需连续不中断。

跨链交易请求被处理包括但不限于跨链交易请求被跨链平台发送至目的应用链或跨链交易请求被目的应用链执行等。

在具体应用中,第一交易树和第二交易树均可以为二叉排序树、平衡二叉树、红黑树或B树等。

S23:若所述第一交易编号值等于所述目标交易编号值,则将所述第一跨链交易请求存入所述第一交易树中。

本申请实施例中,当第一交易编号值等于目标交易编号值时,说明第一交易编号值与第一交易树中存储的第一交易标识下的最大交易编号值是连续的,即第一跨链交易请求为第一交易标识下的下一个可被处理的跨链交易请求,因此跨链平台将第一跨链交易请求存入第一交易树中,可以保证依次存入第一交易树中的携带有第一交易标识的各个跨链交易请求的交易编号值是连续的。

S24:将所述第一交易树中存储的携带有所述第一交易标识的跨链交易请求打包发送至所述目的应用链。

本实施例中,由于第一交易树中可以存储有携带有第一交易标识的多个跨链交易请求,且该多个跨链交易请求对应的交易编号值是连续的。因此,跨链平台可以将第一交易树中存储的携带有第一交易标识的多个跨链交易请求打包发送至第一跨链交易请求所指向的目的应用链。

在本申请的一个具体实施例中,S24具体可以包括以下步骤:

将所述第一交易树中存储的携带有所述第一交易标识的跨链交易请求按照交易编号值从小到大的顺序进行排序;

将排序后的所述跨链交易请求进行打包得到跨链交易请求包;

向所述目的应用链发送所述跨链交易请求包。

本实施例中,为了保证目的应用链能够按照交易编号值由小到大的顺序执行某个来源应用链发送的多个跨链交易请求,跨链平台可以将第一交易树中存储的携带有所述第一交易标识的多个跨链交易请求按照编号值从小到大的顺序进行排序,将排序后的多个跨链交易请求进行打包得到跨链交易请求包,将跨链交易请求包发送至第一跨链交易请求所指向的目的应用链。

目的应用链接收到跨链交易请求包后,可以对跨链交易请求包进行解析,进而得到排序好的多个跨链交易请求,因此,目的应用链可以直接按序执行排序好的多个跨链交易请求,这样可以保证交易编号值小的跨链交易请求先被目的应用链执行,交易编号值大的跨链交易请求后被目的应用链执行。

以上可以看出,本申请实施例通过为携带有第一交易标识的每个跨链交易请求维护一个基于增量为第一数值的编号值递增策略确定的第一交易编号值,跨链平台接收到第一跨链交易请求后,将第一跨链交易请求的第一交易编号值与目标交易编号值进行对比,而目标交易编号值为第一交易树中存储的携带有第一交易标识的各个跨链交易请求的交易编号值中的最大交易编号值与第一数值之和,因此在第一交易编号值等于目标交易编号值时,说明第一跨链交易请求的第一交易编号值与第一交易树中存储的第一交易标识下的最大交易编号值连续,此时跨链平台将第一跨链交易请求存入第一交易树中,从而可以保证第一交易树中存储的携带有第一交易标识的所有跨链交易请求是按照交易编号值由小到大的顺序排列且交易编号值是连续的,这样,跨链平台将第一交易树中携带有第一交易标识的跨链交易请求打包发送至目的应用链时,可以保证目的应用链能够按照跨链交易请求的生成顺序执行跨链交易请求,如此使得来源应用链可以采用并行方式发送跨链交易请求,从而提高了整个区块链系统的吞吐量和跨链交易请求的处理效率。

请参阅图3,图3为本申请另一实施例提供的一种基于区块链的跨链交易管理方法的示意性流程图。相对于图2对应的实施例,本实施例提供的跨链交易管理方法在S22之后还可以包括S25和S26,详述如下:

S25:若所述第一交易编号值大于所述目标交易编号值,则将所述第一跨链交易请求存入第二交易树中。

本申请实施例中,当第一交易编号值大于目标交易编号值时,说明第一跨链交易请求的第一交易编号值与第一交易树中存储的第一交易标识下的最大交易编号值不连续,即第一跨链交易请求不是第一交易标识下的下一个可被处理的跨链交易请求,因此,跨链平台可以将第一跨链交易请求暂存至第二交易树中,由于跨链平台不会直接向目的应用链发送第二交易树中存储的跨链交易请求,从而可以保证携带有第一交易标识的多个跨链交易请求能够被按序处理。

S26:若所述第一交易编号值小于所述目标交易编号值,则忽略所述第一跨链交易请求,和/或向所述来源应用链返回第一提示信息,所述第一提示信息用于提示所述第一跨链交易请求为重复的跨链交易请求。

本申请实施例中,当第一交易编号值小于目标交易编号值时,说明跨链平台已处理过携带有第一交易标识且交易编号值与第一交易编号值相同的跨链交易请求,而同一交易标识对应的交易编号值相同的跨链交易请求即为相同的跨链交易请求,因此,在本实施例的一种实现方式中,跨链平台可以忽略第一跨链交易请求,不再对第一跨链交易请求进行处理,即不再向第一跨链交易请求指向的目的应用链发送第一跨链交易请求。这样可以保证具有相同交易编号值的跨链交易请求不会被重复处理,从而可以达到对跨链交易请求进行去重的目的,相对于传统的采用布隆过滤器实现跨链交易请求去重的方式而言,本方案具有更高的效率、更高的准确率以及更低的处理器资源开销。

在本实施例的另一种实现方式中,当第一交易编号值小于目标交易编号值时,跨链平台还可以向发送第一跨链交易请求的来源应用链返回第一提示信息。其中,第一提示信息用于提示第一跨链交易请求为重复的跨链交易请求。

在具体应用中,跨链平台可以向发送第一跨链交易请求的来源应用链中的任一应用链节点设备返回第一提示信息,该应用链节点设备可以将第一提示信息发送至生成第一跨链交易请求的客户端。

在本实施例的又一种实现方式中,当第一交易编号值小于目标交易编号值时,跨链平台还可以既忽略第一跨链交易请求,又向发送第一跨链交易请求的来源应用链返回第一提示信息。

需要说明的是,本申请实施例中,S23~S24与S25和S26为并列的步骤,跨链平台不会同时执行S23~S24、S25及S26。即若跨链平台某次执行了S23~S24,则不再执行S25和S26;若跨链平台某次执行了S25,则不再执行S23~S24和S26;若跨链平台某次执行了S26,则不再执行S23~S24和S25。

由于本实施例是通过跨链平台执行同一交易标识对应的多个跨链交易请求的排序过程,因此应用链无需为跨链交易提供额外的跨链交易请求排序功能,可以大大降低应用链的适配难度。

请继续参阅图3,在本申请的又一个实施例中,在S24之后,跨链交易管理方法还可以包括S27,详述如下:

S27:根据所述第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中的最大交易编号值更新所述第二交易编号值。

跨链平台将第一跨链交易请求存入第一交易树中后,由于此时第一交易树中存储的携带有第一交易标识的跨链交易请求的交易编号值中最大的交易编号值为第一交易编号值,因此,此时跨链平台可以将第二交易编号值更新为第一交易编号值,那么此时目标交易编号值为第一交易编号值与第一数值之和。

请继续参阅图3,在本申请的又一个实施例中,在S27之后,跨链交易管理方法还可以包括S28~S30,详述如下:

S28:从第二交易树中查找携带有所述第一交易标识的跨链交易请求。

S29:将查找出的所述跨链交易请求中交易编号值与所述第二交易编号值连续的目标跨链交易请求存入所述第一交易树中,并从所述第二交易树中删除所述目标跨链交易请求。

S30:根据所述第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中最大的交易编号值更新所述第二交易编号值。

本实施例中,由于跨链平台每向第一交易树中存入一个携带有第一交易标识的跨链交易请求,便会对第一交易标识对应的第二编号值进行更新,因此,当第二交易树中还存储有携带有第一交易标识的其他跨链交易请求时,为了完成对第二交易树中存储的携带有第一交易标识的其他跨链交易请求的处理,跨链平台在对第一交易标识对应的第二编号值进行更新后,还可以从第二交易树中查找携带有第一交易标识的其他跨链交易请求,继而将查找出的跨链交易请求中交易编号值与当前的第二交易编号值连续的目标跨链交易请求存入第一交易树中,同时,为了避免跨链交易请求被重复处理,跨链平台还可以从第二交易树中删除目标跨链交易请求。

在一种可能的实现方式中,跨链平台还可以将从第二交易树中查找出的携带有第一交易标识的跨链交易请求存储在键(key,K)-值(value,V)数据结构中,这样可以提高目标跨链交易请求的获取效率。其中,第一交易标识可以作为K-V数据结构中的key,携带有第一交易标识的跨链交易请求可以作为K-V数据结构中的value。

跨链平台将目标跨链交易请求存入第一交易树中后,将第一交易标识对应的第二交易编号值更新为目标跨链交易请求的交易编号值。

在本申请的又一个实施例中,跨链交易管理方法还可以包括以下步骤:

接收所述来源应用链发送的交易编号值查询请求,所述交易编号值查询请求用于查询所述第一交易标识下的最新交易编号值;

向所述来源应用链发送所述第二交易编号值。

本实施例通过向来源应用链发送第二交易编号值,可以使来源应用链获知其漏发或待发的携带有第一交易标识的跨链交易请求,保证跨链平台接收到的携带有第一交易标识的各个跨链交易请求的交易编号值是连续的。

以下通过一个具体的示例对本申请实施例提供的基于区块链的跨链交易管理方法进行示例性说明:

假设来源应用链fabric向跨链平台发送了两个跨链交易请求Tx1和Tx2,Tx1和Tx2的目的应用链均为应用链hyperchain,且Tx1的交易编号值和Tx2的交易编号值分别为1和2。那么Tx1的交易标识和Tx2的交易标识均可以表示为account1,account1可以通过字符串“fabric-hyperchain”表示。

来源应用链hyperchain向跨链平台发送了两个跨链交易请求Tx3和Tx5,Tx3和Tx5的目的应用链均为应用链fabric,且Tx3的交易编号值和Tx5的交易编号值分别为1和3。那么Tx3的交易标识和Tx5的交易标识均可以表示为account2,account2可以通过字符串“hyperchain-fabric”表示。

如图4中的(a)所示,假如第一交易树(例如Ready交易树)中还未存储过account1对应的任何跨链交易请求以及account2对应的任何跨链交易请求,则此时account1的第二交易编号值(account1.pendingNonce)和account2的第二交易编号值(account2.pendingNonce)均为0。

假设跨链平台接收到Tx1,由于Tx1的交易编号值(Tx1.nonce)为1,当前account1.pendingNonce=0,因此当前Tx1.nonce=account1.pendingNonce+1,则如图4中的(b)所示,跨链平台可以将Tx1直接存入Ready交易树中,同时,跨链平台更新account1.pendingNonce=1。

之后,假如跨链平台又接收到了Tx2,由于Tx2的交易编号值(Tx2.nonce)为2,当前account1.pendingNonce=1,因此当前Tx2.nonce=account1.pendingNonce+1,则如图4中的(c)所示,跨链平台可以将Tx2直接存入Ready交易树中,同时,跨链平台更新account1.pendingNonce=2。

之后,假如跨链平台又接收到了Tx3,由于Tx3的交易编号值(Tx3.nonce)为1,当前account2.pendingNonce=0,因此当前Tx3.nonce=account2.pendingNonce+1,则如图4中的(d)所示,跨链平台可以将Tx3直接存入Ready交易树中,同时,跨链平台更新account2.pendingNonce=1。

之后,假如跨链平台又接收到了Tx5,由于Tx5的交易编号值(Tx5.nonce)为3,当前account2.pendingNonce=1,因此当前Tx5.nonce大于account2.pendingNonce+1,则如图4中的(e)所示,跨链平台可以将Tx5存入第二交易树(例如Non-Ready交易树)中。

之后,假如跨链平台又接收到了来源应用链hyperchain发送的跨链交易请求Tx4,且Tx4的目的应用链为应用链fabric,Tx4的交易编号值(Tx4.nonce)为2,那么Tx4的交易标识也为account2,由于当前account2.pendingNonce=1,因此当前Tx4.nonce=account2.pendingNonce+1,则如图4中的(f)所示,跨链平台可以将Tx4直接存入Ready交易树中,同时,跨链平台更新account2.pendingNonce=2。

之后,跨链平台可以从Non-Ready树中查找与account2对应的Tx5,由于Tx5.nonce=3,Tx5.nonce与当前的account2.pendingNonce是连续的,因此跨链平台可以将Tx5存入Ready交易树中,并从Non-Ready交易树中删除Tx5,同时,跨链平台更新account2.pendingNonce=3。

后续跨链平台可以将Tx1和Tx2按照交易编号值从小到大的顺序打包发送至应用链hyperchain,将Tx3、Tx4及Tx5按照交易编号值从小到大的顺序打包发送至应用链fabric。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

基于上述实施例所提供的基于区块链的跨链交易管理方法,本发明实施例进一步给出实现上述方法实施例的跨链平台的实施例。

请参阅图5,图5为本申请实施例提供的一种跨链平台的结构示意图。本申请实施例中,跨链平台包括的各单元用于执行图2至图3对应的实施例中的各步骤。具体请参阅图2至图3以及图2至图3对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。如图5所示,跨链平台50包括:第一接收单元51、编号值处理单元52、交易管理单元53及交易发送单元54。其中:

第一接收单元51用于接收第一跨链交易请求,所述第一跨链交易请求携带有所述第一跨链交易请求的第一交易标识和第一交易编号值,所述第一交易标识用于描述发送所述第一跨链交易请求的来源应用链和所述第一跨链交易请求所指向的目的应用链,所述第一交易编号值为所述来源应用链基于增量为第一数值的编号值递增策略确定的所述第一跨链交易请求在所述第一交易标识下的交易编号值。

编号值处理单元52用于将所述第一交易编号值与目标交易编号值进行对比,所述目标交易编号值为第二交易编号值与所述第一数值之和,所述第二交易编号值为第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中的最大交易编号值。

交易管理单元53用于若所述第一交易编号值等于所述目标交易编号值,则将所述第一跨链交易请求存入所述第一交易树中。

交易发送单元54用于将所述第一交易树中存储的携带有所述第一交易标识的跨链交易请求打包发送至所述目的应用链。

可选的,交易管理单元53还用于若所述第一交易编号值大于所述目标交易编号值,则将所述第一跨链交易请求存入第二交易树中;

或者用于若所述第一交易编号值小于所述目标交易编号值,则忽略所述第一跨链交易请求,和/或向所述来源应用链返回第一提示信息,所述第一提示信息用于提示所述第一跨链交易请求为重复的跨链交易请求。

可选的,跨链平台50还包括编号值更新单元。

编号值更新单元用于根据所述第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中的最大交易编号值更新所述第二交易编号值。

可选的,跨链平台50还包括:查找单元和转移单元。其中:

查找单元用于从第二交易树中查找携带有所述第一交易标识的跨链交易请求。

转移单元用于将查找出的所述跨链交易请求中交易编号值与所述第二交易编号值连续的目标跨链交易请求存入所述第一交易树中,并从所述第二交易树中删除所述目标跨链交易请求。

编号值更新单元还用于根据所述第一交易树中存储的携带有所述第一交易标识的各个跨链交易请求的交易编号值中最大的交易编号值更新所述第二交易编号值。

可选的,交易发送单元54具体包括:排序单元、打包单元及请求包发送单元。其中:

排序单元用于将所述第一交易树中存储的携带有所述第一交易标识的跨链交易请求按照交易编号值从小到大的顺序进行排序。

打包单元用于将排序后的所述跨链交易请求进行打包得到跨链交易请求包。

请求包发送单元用于向所述目的应用链发送所述跨链交易请求包。

可选的,跨链平台50还包括:第二接收单元和第二发送单元。其中:

第二接收单元用于接收所述来源应用链发送的交易编号值查询请求,所述交易编号值查询请求用于查询所述第一交易标识下的最新交易编号值。

第二发送单元用于向所述来源应用链发送所述第二交易编号值。

需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参照方法实施例部分,此处不再赘述。

图6为本申请另一实施例提供的一种跨链平台的结构示意图。如图6所示,该实施例提供的跨链平台6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如图像深度估计程序。处理器60执行所述计算机程序62时实现上述各个基于区块链的跨链交易管理方法实施例中的步骤,例如图2所示的S21~S24。或者,所述处理器60执行所述计算机程序62时实现上述各跨链平台实施例中各模块/单元的功能,例如图5所示单元51~54的功能。

示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由处理器60执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述跨链平台6中的执行过程。例如,所述计算机程序62可以被分割成第一接收单元、编号值处理单元、交易管理单元及交易发送单元,各单元具体功能请参阅图2对应地实施例中的相关描述,此处不赘述。

所述跨链平台可包括但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是跨链平台6的示例,并不构成对跨链平台6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述跨链平台还可以包括输入输出设备、网络接入设备、总线等。

所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器61可以是所述跨链平台6的内部存储单元,例如跨链平台6的硬盘或内存。所述存储器61也可以是所述跨链平台6的外部存储设备,例如所述跨链平台6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述跨链平台6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述跨链平台所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。

本申请实施例还提供了一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时可实现上述基于区块链的跨链交易管理方法。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在跨链平台上运行时,使得跨链平台执行时实现可实现上述基于区块链的跨链交易管理方法。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述跨链平台的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参照其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号