CN114006911B - 数据处理方法、装置、终端设备及存储介质 - Google Patents
数据处理方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN114006911B CN114006911B CN202111664031.3A CN202111664031A CN114006911B CN 114006911 B CN114006911 B CN 114006911B CN 202111664031 A CN202111664031 A CN 202111664031A CN 114006911 B CN114006911 B CN 114006911B
- Authority
- CN
- China
- Prior art keywords
- chain
- interaction information
- sequence number
- message sequence
- cross
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于区块链技术领域,提供了一种数据处理方法、装置、终端设备及存储介质,该方法包括:第一跨链网关获取第一区块链组织中存储的第一历史交互信息,第一历史交互信息为第一应用链与第二应用链之间的交互信息,第二应用链为第二区块链组织中的应用链;第一跨链网关获取第二区块链组织中存储的第二历史交互信息,第二历史交互信息为第二应用链与第一应用链之间的交互信息;第一跨链网关将第一历史交互信息和第二历史交互信息进行比对,得到第一比对结果;若第一比对结果表示第一历史交互信息与第二历史交互信息不一致,则第一跨链网关根据第一比对结果更新第一历史交互信息。上述方法能够保证跨链系统的正常运转。
Description
技术领域
本申请属于区块链技术领域,尤其涉及一种数据处理方法、装置、终端设备及存储介质。
背景技术
近年来,随着区块链跨链技术的快速发展,万链互联的时代已然到来,越来越多的数据面临着跨组织、跨时空的可信传输与可信存证的需求。目前,有多种单组织模式下的中继跨链方案用来满足组织内部的成员跨链需求,而若要满足不同组织之间的成员跨链需求,则需要组成跨组织的大规模混合跨链网络的万链互连系统。
若网络连接异常,跨链网络之间链路长时间不可用,导致跨链网络之间无法进行信息交互。在网络恢复连接之后,跨链网络之间的信息往往是不同步的,这将导致跨链网络之间信息堵塞、服务不可用等情况,使得跨链网络无法正常运转。
发明内容
本申请实施例提供了一种数据处理方法、装置、终端设备及存储介质,可以保证跨链网络之间的信息同步,从而保证跨链系统的正常运转。
第一方面,本申请实施例提供了一种数据处理方法,应用于第一区块链组织中的第一跨链网关,所述第一区块链组织包括所述第一跨链网关和至少一个第一应用链,所述方法包括:
第一跨链网关获取所述第一区块链组织中存储的第一历史交互信息,所述第一历史交互信息为所述第一应用链与第二应用链之间的交互信息,所述第二应用链为第二区块链组织中的应用链;
所述第一跨链网关获取所述第二区块链组织中存储的第二历史交互信息,所述第二历史交互信息为所述第二应用链与所述第一应用链之间的交互信息;
所述第一跨链网关将所述第一历史交互信息和所述第二历史交互信息进行比对,得到第一比对结果;
若所述第一比对结果表示所述第一历史交互信息与所述第二历史交互信息不一致,则所述第一跨链网关根据所述第一比对结果更新所述第一历史交互信息。
第二方面,本申请实施例提供了一种数据处理装置,应用于第一区块链组织中的第一跨链网关,所述第一区块链组织包括所述第一跨链网关和至少一个第一应用链,所述装置包括:
第一获取模块,用于获取所述第一区块链组织中存储的第一历史交互信息,所述第一历史交互信息为所述第一应用链与第二应用链之间的交互信息,所述第二应用链为第二区块链组织中的应用链;
第二获取模块,用于获取所述第二区块链组织中存储的第二历史交互信息,所述第二历史交互信息为所述第二应用链与所述第一应用链之间的交互信息;
比对模块,用于将所述第一历史交互信息和所述第二历史交互信息进行比对,得到第一比对结果;
第一信息更新模块,用于在所述第一比对结果表示所述第一历史交互信息与所述第二历史交互信息不一致时,根据所述第一比对结果更新所述第一历史交互信息。
第三方面,本申请实施例提供了一种终端设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述的数据处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的数据处理方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的数据处理方法。
本申请第一方面实施例与现有技术相比存在的有益效果是:第一跨链网关通过获取第一区块链组织中存储的第一历史交互信息,第一历史交互信息为第一应用链与第二应用链之间的交互信息,第二应用链为第二区块链组织中的应用链;获取第二区块链组织中存储的第二历史交互信息,第二历史交互信息为第二应用链与第一应用链之间的交互信息;将第一历史交互信息和第二历史交互信息进行比对,得到第一比对结果;在第一比对结果表示第一历史交互信息与第二历史交互信息不一致时,根据第一比对结果更新第一历史交互信息,这样,第一跨链网关基于两个区块链组织各自存储的第一应用链与第二应用链之间的历史交互信息的比较结果,在信息不一致时,更新第一区块链组织中存储的历史交互信息,从而恢复跨组织间的数据,保证跨链网络之间的信息同步,进而保证跨链系统的正常运转。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的跨组织区块链系统的结构示意图;
图2是本申请一实施例提供的数据处理方法的流程示意图;
图3是本申请另一实施例提供的数据处理方法的流程示意图;
图4是本申请一实施例提供的数据处理装置的结构示意图;
图5是本申请一实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当……时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的数据处理方法可适用于图1所示的应用场景。其中,参照图1,是本申请实施例提供的跨组织区块链系统的示意图。该跨组织区块链系统包括区块链组织A、区块链组织B、区块链组织C和区块链组织D。其中,通过各个区块链组织中的跨链网关实现各个区块链组织之间通信。
参照图1,区块链组织A包括跨链网关A1、中继链A2、应用链A3和应用链A4,其中应用链A3与中继链A2之间通过跨链网关A5通信,应用链A4与中继链A2之间通过跨链网关A6通信;区块链组织B包括跨链网关B1、中继链B2、应用链B3和应用链B4,其中应用链B3与中继链B2之间通过跨链网关B5通信,应用链B4与中继链B2之间通过跨链网关B6通信;区块链组织C包括跨链网关C1、中继链C2、应用链C3和应用链C4,其中应用链C3与中继链C2之间通过跨链网关C5通信,应用链C4与中继链C2之间通过跨链网关C6通信;区块链组织D包括跨链网关D1、中继链D2、应用链D3和应用链D4,其中应用链D3与中继链D2之间通过跨链网关D5通信,应用链D4与中继链D2之间通过跨链网关D6通信。其中,中继链为其所在区块链组织中的各个应用链提供跨链服务。各个区块链组织中实现跨组织通信交互的跨链网关之间的通信连接结构为环形结构,这里仅为一示例,其他可以实现跨链网关间相互通信的通信连接结构(比如星型结构)均可,这里不做具体限定。
需要说明的是,在中继链与应用链之间设置跨链网关(比如跨链网关A5、跨链网关B5),其目的是为了保证同一区块链组织下的应用链和中继链的跨链交互,跨链网关的主要功能包括适配中继链和应用链的跨链交互、监听或消费中继链和应用链上的跨链事件。
各区块链组织之间通信交互(即跨组织跨链交互)是基于跨链网关(比如跨链网关A1、跨链网关B1)实现的,其目的是为当前区块链组织提供大规模跨链能力,使其能加入与其他区块链组织共同维护的大规模跨链网络。
该跨链网关的主要功能包括监听当前中继链的跨组织跨链事件、向当前中继链提交跨组织跨链事件、加入与其他跨链网关组成的点对点网络进行跨组织跨链事件的转发或监听。
上述跨组织区块链系统能够实现跨组织间的可信传输与可信存证的需求。这里,跨组织区块链系统中的区块链组织对应不同组织,这里,组织可以理解为行业组织或机构。需要解释的是,一个组织包括多个子组织,应用链为子组织的区块链。比如,区块链组织A是一个金融行业组织下的区块链系统,该金融行业组织中有多个金融机构或者金融公司,每个金融机构或金融公司被称作一个子组织,每个子组织对应一个应用链。具体的,应用链可以是联盟链,那么该应用链对应的区块链组织则为联盟链集群。
在该跨组织区块链系统下,不同应用链之间进行跨链交互的跨链消息包括同一区块链组织下各个应用链之间的跨链消息和不同区块链组织下的各个应用链之间的跨链消息。其中,跨链消息包括跨链请求和跨链回执。
图2示出了本申请提供的数据处理方法的示意性流程图,其中,该方法应用于第一区块链组织中第一跨链网关,第一区块链组织包括第一跨链网关和至少一个第一应用链,参照图2,对数据处理方法的详述如下:
S201,第一跨链网关获取第一区块链组织中存储的第一历史交互信息,第一历史交互信息为第一应用链与第二应用链之间的交互信息,第二应用链为第二区块链组织中的应用链。
其中,第一跨链网关用于实现第一区块链组织与其他不同区块链组织之间的跨链交互。
可选的,第一历史交互信息包括第一消息序号和对应第一消息序号的第一消息内容。其中,第一消息内容为第一应用链与第二应用链之间进行跨链交互的消息内容。
需要说明的是,第一应用链与第二应用链之间的交互信息包括第一信息类型的交互信息和第二信息类型的交互信息。
其中,第一信息类型为第一应用链向第二应用链发送交互信息的信息类型。具体的,第一信息类型包括第一信息子类型和第二信息子类型,其中,第一信息子类型为第一应用链向第二应用链发送交互请求消息的信息子类型,第二信息子类型为第一应用链向第二应用链发送交互回执消息的信息子类型。
第二信息类型为第二应用链向第一应用链发送交互信息的信息类型。具体的,第二信息类型包括第三信息子类型和第四信息子类型,其中,第三信息子类型为第二应用链向第一应用链发送交互请求消息的信息子类型,第四信息子类型为第二应用链向第一应用链发送交互回执消息的信息子类型。
针对每种子类型的信息,设置对应消息的初始消息序号为0,第一应用链与第二应用链之间每获取一种子类型的交互消息,都在之前获取的该子类型的交互消息的消息序号上加1,作为当前获取的该子类型的交互消息的消息序号。
可选的,第一应用链中存储第一历史交互信息。相应的,步骤S201具体可以包括:第一跨链网关获取第一应用链中存储的第一历史交互信息。
需要说明的是,第一跨链网关通过第一应用链获取第一历史交互信息,是需要在可信的环境中进行的,对于环境可信度有很高的要求。若环境变得不可信,则应用链上的数据可能存在泄露的风险。所以从数据的高可用层面来看,采用中继链的方式,数据会更加安全。其原因在于,同一区块链组织中不同应用链之间进行数据交互均通过中继链进行共识后,再存储至对应的应用链中,不同区块链组织的应用链之间进行数据交互也需要通过各自的中继链进行共识后,再存储至相应的应用链中,这样能够保证应用链上数据的安全性。
综上,若本申请实施例的方法应用于图1所示的场景中,第一区块链组织还包括第一中继链。其中,第一中继链和第一应用链分别存储有第一历史交互信息。
为了保证第一应用链上数据的安全性,第一跨链网关获取第一中继链中存储的第一历史交互信息。
S202,第一跨链网关获取第二区块链组织中存储的第二历史交互信息,第二历史交互信息为第二应用链与第一应用链之间的交互信息。
本步骤中,第二区块链组织的结构与第一区块链组织的结构相同。第二区块链组织包括第二跨链网关和多个第二应用链。
其中,第二跨链网关用于实现第二区块链组织与其他不同区块链组织之间的跨链交互。
需要说明的是,由于第一应用链为第一区块链组织中的应用链,第二应用链为第二区块链组织中的应用链,所以二者之间的历史交互信息,即第一应用链与第二应用链之间的交互信息分别存储在第一区块链组织和第二区块链组织,这样便于后续信息比对和数据恢复。
可选的,第二历史交互信息包括第二消息序号和对应第二消息序号的第二消息内容。其中,第二消息内容为第二应用链与第一应用链之间进行跨链交互的消息内容。
可选的,第二应用链中存储第二历史交互信息。相应的,步骤S202具体可以包括:第一跨链网关通过第二跨链网关获取第二应用链中存储的第二历史交互信息。
需要说明的是,在第二区块链组织侧,第二跨链网关通过第二应用链获取第二历史交互信息,是需要在可信的环境中进行的,对于环境可信度有很高的要求。若环境变得不可信,则应用链上的数据可能存在泄露的风险。所以从数据的高可用层面来看,采用中继链的方式,数据会更加安全。原因详见步骤S201这里不再赘述。
综上,若本申请实施例的方法应用于图1所示的场景中,第二区块链组织还包括第二中继链。其中,第二中继链和第二应用链分别存储有第二历史交互信息。
为了保证第二应用链上数据的安全性,第一跨链网关通过第二跨链网关获取第二中继链中存储的第二历史交互信息。
S203,第一跨链网关将第一历史交互信息和第二历史交互信息进行比对,得到第一比对结果。
由上述可知,第一历史交互信息包括第一消息序号和对应第一消息序号的第一消息内容,第二历史交互信息包括第二消息序号和对应第二消息序号的第二消息内容。所以,第一跨链网关将第一历史交互信息和第二历史交互信息进行比对,可以通过比对消息序号来实现,也可以通过比对消息内容来实现。
S204,若第一比对结果表示第一历史交互信息与第二历史交互信息不一致,则第一跨链网关根据第一比对结果更新第一历史交互信息。
这里,若通过比对消息序号来实现第一历史交互信息和第二历史交互信息之间的对比,则第一比对结果表示第一历史交互信息与第二历史交互信息不一致的具体表示为第一消息序号与第二消息序号不同;
若通过比对消息内容来实现第一历史交互信息和第二历史交互信息之间的比对,则第一比对结果表示第一历史交互信息与第二历史交互信息不一致的具体表示为第一消息内容与第二消息内容不同,即各自对应的历史交互信息中的消息内容不一致。
在一种可能的实现方式中,步骤S201的实现过程可以包括:
步骤S2011,第一跨链网关获取第一区块链组织中存储的第一服务列表,第一服务列表包括通过第一区块链组织进行跨链传输的所有应用链服务的所有历史交互信息。
需要说明的是,应用链服务可以理解为应用链上的智能合约或者链上账本中的部分数据。
其中,通过第一区块链组织进行跨链传输的所有应用链服务包括隶属于第一区块链组织的应用链服务和隶属于其他区块链组织的应用链服务。
这里,其他区块链组织中包括第二区块链组织、第三区块链组织等。
隶属于其他区块链组织的应用链服务的历史交互信息包括隶属于第二区块链组织的应用链服务的历史交互信息和隶属于第三区块链组织的应用链服务的历史交互信息等。
步骤S2012,第一跨链网关滤除第一服务列表中的第三历史交互信息,得到第四历史交互信息,其中,第三历史交互信息包括隶属于第一区块链组织的应用链服务所对应的第一区块链组织中各个第一应用链之间的历史交互信息,和隶属于第一区块链组织的应用链服务所对应的第一区块链组织中第一应用链与其他区块链组织中的应用链之间的历史交互信息;第四历史交互信息包括隶属于其他区块链组织的应用链服务所对应的、其他区块链组织中的应用链与第一区块链组织中的第一应用链之间的历史交互信息。
步骤S2013,第一跨链网关对第四历史交互信息按照区块链组织的标识进行分类,得到多个第五历史交互信息,其中,每个第五历史交互信息为隶属于其他区块链组织中的一个区块链组织的应用链服务所对应的、该区块链组织中的应用链与第一区块链组织中的第一应用链之间的历史交互信息。
步骤S2014,第一跨链网关利用第二区块链组织的标识,从多个第五历史交互信息中选取隶属于第二区块链组织的应用链服务所对应的、第二应用链与第一应用链之间的所述第一历史交互信息。
相应的,在一种可能的实现方式中,步骤S202的实现过程可以包括:
第一跨链网关根据第二区块链组织的标识,通过第二区块链组织中的第二跨链网关获取第二区块链组织中存储的第二历史交互信息。
需要说明的是,消息序号相对于消息序号对应的消息内容而言,其数据更为简单,消息序号处理起来更为高效,所以为了进一步提高数据处理效率,在一种可能的实现方式中,步骤S203的实现过程可以包括:
步骤S2031,第一跨链网关将目标第一消息序号和目标第二消息序号进行比对,得到第一比对结果,其中,目标第一消息序号为第一消息序号中的最大消息序号,目标第二消息序号为第二消息序号中的最大消息序号。
相应的,步骤S204的实现过程可以包括:
步骤S2041,若目标第一消息序号大于目标第二消息序号,则第一跨链网关获取第一区块链组织中存储的第三消息序号对应的第三消息内容,并通过第二区块链组织中的第二跨链网关向第二应用链发送第三消息序号和第三消息内容,其中,第三消息序号为第一消息序号中除第二消息序号之外的消息序号。
需要说明的是,第一应用链与第二应用链之间的历史交互信息中的消息内容包括一条或者多条消息内容,相应的,第一应用链与第二应用链之间的历史交互信息中的消息序号包括一个或者多个。
其中,若目标第一消息序号大于目标第二消息序号,说明第一区块链组织中存储的第一应用链和第二应用链之间的消息数量多于第二区块链组织中存储的第一应用链与第二应用链之间的消息数量,也就是说,第一区块链组织中多余出来的消息在之前并未成功发送该第二区块链组织中的第二应用链。为了实现数据恢复,需要第一跨链网关将第三消息序号对应的第三消息内容,通过第二跨链网关发送至第二应用链。
需要说明的是,第三消息序号可以是一个消息序号也可以是多个消息序号,具体由目标第一消息序号与目标第二消息序号之间的差值确定。比如,第一消息序号包括1、2、3、4和5,第二消息序号包括1和2,则说明第二区块链组织中存储的第一应用链与第二应用链之间的消息数量比第一区块链组织中存储的第一应用链和第二应用链之间的消息数量少三条,此时,需要第一跨链网关主动向第一区块链组织获取消息序号为3、4和5的跨链消息,并通过与第二跨链网关的点对点连接最终将消息序号为3、4和5的跨链消息发送至第二区块链组织下的第二应用链。
步骤S2042,若目标第一消息序号小于目标第二消息序号,则第一跨链网关获取第二区块链组织中存储的第四消息序号对应的第四消息内容,向第一应用链发送第四消息序号和第四消息内容,并将第四消息序号和第四消息内容添加至第一历史交互信息中,其中,第四消息序号为第二消息序号中除第一消息序号之外的消息序号。
这里,若目标第一消息序号小于目标第二消息序号,说明第一区块链组织中存储的第一应用链和第二应用链之间的消息数量少于第二区块链组织中存储的第一应用链与第二应用链之间的消息数量,也就是说,第二区块链组织中多余出来的消息在之前并未成功发送该第一区块链组织中的第一应用链。为了实现数据恢复,需要第一跨链网关通过第二跨链网关获取第二区块链组织中多余出来的消息,并发送给第一应用链,并将第二区块链组织中多余出来的消息更新到第一历史交互信息中。
需要说明的是,第四消息序号可以是一个消息序号也可以是多个消息序号,具体由第一消息序号与第二消息序号之间的差值确定。比如,第一消息序号包括1和2,第二消息序号包括1、2、3、4和5,则说明第二区块链组织中存储的第一应用链与第二应用链之间的消息数量比第一区块链组织中存储的第一应用链和第二应用链之间的消息数量多三条,此时,需要第一跨链网关通过第二跨链网关获取第二区块链组织中存储的消息序号为3、4和5的跨链消息,并将消息序号为3、4和5的跨链消息发送给第一应用链,并更新到第一历史交互信息中。
由于消息序号相对于消息序号对应的消息内容而言,其数据更为简单,对消息序号处理起来更为高效,上述给出了步骤S203的一个可能的实现方式,即通过比对消息序号来实现数据的更新,使得数据更新处理更为高效。
由于第一区块链组织和第二区块链组织中均存储有第一应用链和第二应用链之间的交互数据,数据更新处理也是基于这两个区块链组织中的数据进行的。所以进一步的,在比对消息序号之前,第一跨链网关只需要获取第一应用链与第二应用链之间进行跨链交互的消息内容对应的消息序号即可,不需要再额外获取消息序号对应的消息内容,也就是第一跨链网关只获取历史交互信息中的消息序号,这样可以在节省数据处理资源的情况下,进一步提高数据更新处理效率。
以上数据处理过程是在跨链网关启动后,对区块链组织的应用链之间的历史交互信息的更新过程,在完成历史交互信息的更新后,跨链网关进入正常运行状态。
对于由不同区块链组织构成的跨组织区块链系统,可参照图1,通过上述方法每个区块链组织只需要关注与自身区块链组织相关的跨链交互,无需遍历及存储与自身区块链组织无关的跨链交互,极大提升了跨链网关启动时的数据恢复效率。
在跨链网关进入正常运行状态后,不同区块链组织的各应用链之间进行跨链交互时,目的应用链需要按照跨链消息的先后顺序处理这些跨链消息。但是由于网络不稳定等原因,可能导致在目的应用链未能成功收到消息的情况下,又收到后续发来的跨链消息,这样使得目的应用链端虽然接收到后续发来的消息,也不能及时处理,存在消息阻塞和服务不可用的风险。
为了解决上述问题,参照图3,在一种可能的实现方式中,上述方法还包括:
S301,当第一跨链网关监测到第一应用链与第二应用链之间的第一交互信息,第一跨链网关获取第五历史交互信息,其中,第一交互信息包括第五消息序号和对应第五消息序号的第五消息内容,第五历史交互信息为在接收到第一交互信息之前第一应用链与第二应用链之间的交互信息,第五历史交互信息包括第六消息序号和对应第六消息序号的第六消息内容。
参照图1所示的实现方式中的阐述,第一交互信息为第一信息类型的交互信息或者第二信息类型的交互信息。
若第一交互信息为第一信息类型的交互信息,则第一交互信息为第一应用链向第二应用链发送的第一交互请求消息或者第一交互回执消息。
若第一交互信息为第二信息类型的交互信息,则第一交互信息为第二应用链向第一应用链发送的第二交互请求消息或者第二交互回执消息。
这里,当第一跨链网关监测到第一应用链与第二应用链之间的第一交互信息说明第一应用链与第二应用链之间当前需要跨链交互,而为了保证在此之前的第一应用链与第二应用链之间的跨链交互都得到了相应的处理,第一跨链网关需要获取第五历史交互信息。
这里,第一跨链网关可以是从存储第五历史交互信息的对应链上获取第五历史交互信息。
第一跨链网关还可以从本地内存中获取第五历史交互信息,也就是第一跨链网关在每次执行完跨链消息后自行维护第一应用链和第二应用链之间的交互序号,以减少网络通信交互,提升网络性能。
因为连接应用链的跨链网关同一时间只有一个,所以跨链网关可以维护应用链之间的交互序号,而且若跨链网关维护应用链之间的交互序号的话,数据处理效率更高。当然应用链和中继链中也维护了应用链之间的交互序号,可以供跨链网关宕机恢复时获取。
需要说明的是,第五历史交互信息的信息类型与第一交互信息的信息类型相同。
可选的,若第一交互信息为第一信息类型的交互信息,则第一跨链网关获取第一应用链中的第五历史交互信息。
相应的,若本申请实施例的方法应用于图1所示的场景中,即第一区块链组织还包括第一中继链,第二区块链组织还包括第二中继链,则第一跨链网关获取第一中继链中的第五历史交互信息。
若第一交互信息为第二信息类型的交互信息,则第一跨链网关通过第二跨链网关获取第二应用链中的第五历史交互信息。
相应的,若本申请实施例的方法应用于图1所示的场景中,即第一区块链组织还包括第一中继链,第二区块链组织还包括第二中继链,则第一跨链网关获取第二中继链中的第五历史交互信息。
S302,若第五消息序号与目标第六消息序号满足第一预设条件,则第一跨链网关根据第五消息序号和目标第六消息序号更新第五历史交互信息,其中,目标第六消息序号为第六消息序号中的最大消息序号,第一预设条件为第五消息序号大于目标第六消息序号,且第五消息序号与目标第六消息序号之差大于1。
需要说明的是,第五历史交互信息中的消息内容包括一条或多条消息内容相应的,第五交互信息中的第六消息序号包括一个或多个。
这里,若第五消息序号与目标第六消息序号满足第一预设条件,说明在目标第六消息序号之后,第五消息序号之前,第一区块链组织中存在未成功发送或者接收的跨链消息。为了保证第二应用链按照跨链消息的先后顺序及时处理跨链消息,或者保证第一应用链按照收到的跨链消息的先后顺序及时处理跨链消息,第一跨链网关需要根据第五消息序号和目标第六消息序号更新第五历史交互信息。
在一种可能的实现方式中,步骤S302的实现过程可包括:
S3021,第一跨链网关获取第五消息序号与目标第六消息序号之间第七消息序号对应的第七消息内容。
具体的,若第一交互信息为第一信息类型的交互信息,则第一跨链网关获取第一应用链中的第五消息序号与第六消息序号之间第七消息序号对应的第七消息内容。
相应的,若本申请实施例的方法应用于图1所示的场景中,即第一区块链组织还包括第一中继链,第二区块链组织还包括第二中继链,则第一跨链网关获取第一中继链中的第五消息序号与目标第六消息序号之间第七消息序号对应的第七消息内容。
若第一交互信息为第二信息类型的交互信息,则第一跨链网关通过第二跨链网关获取第二应用链中的第五消息序号与目标第六消息序号之间第七消息序号对应的第七消息内容。
相应的,若本申请实施例的方法应用于图1所示的场景中,即第一区块链组织还包括第一中继链,第二区块链组织还包括第二中继链,则第一跨链网关通过第二跨链网关获取第二中继链中的第五消息序号与目标第六消息序号之间第七消息序号对应的第七消息内容。
S3022,第一跨链网关将第七消息序号和第七消息内容添加至第五历史交互信息中。
可选的,若第一交互信息为第一信息类型的交互信息,则第一跨链网关将第七消息序号和第七消息内容添加至第一应用链中的第五历史交互信息中。
相应的,若本申请实施例的方法应用于图1所示的场景中,即第一区块链组织还包括第一中继链,第二区块链组织还包括第二中继链,第一跨链网关将第七消息序号和第七消息内容添加至第一中继链中的第五历史交互信息中。
可选的,若第一交互信息为第二信息类型的交互信息,则第一跨链网关通过第二跨链网关将第七消息序号和第七消息内容添加至第二应用链中的第五历史交互信息中。
相应的,若本申请实施例的方法应用于图1所示的场景中,即第一区块链组织还包括第一中继链,第二区块链组织还包括第二中继链,第一跨链网关通过第二跨链网关将第七消息序号和第七消息内容添加至第二中继链中的第五历史交互信息中。
S303,在第一跨链网关在得到更新后的第五历史交互信息之后,第一跨链网关根据第一交互信息的信息类型处理第一交互信息。
在一种可能的实现方式中,步骤S303的实现过程可以包括:
步骤S3031,若第一交互信息的信息类型为第一信息类型,则第一跨链网关通过第二区块链组织中的第二跨链网关向第二应用链发送第一交互信息,第一信息类型为第一应用链向第二应用链发送交互信息的信息类型。
相应的,若本申请实施例的方法应用于图1所示的场景中,即第一区块链组织还包括第一中继链,第二区块链组织还包括第二中继链,第一跨链网关通过第二跨链网关向第二中继链发送第一交互信息,由第二中继链将第一交互信息转发给第二应用链。
需要说明的是,第二跨链网关在接收到第一交互信息之后,向第二应用链发送第一交互信息之前,同样也需要检查给第一交互信息的有序性,即第二跨链网关获取第六历史交互信息,该第六历史交互信息为在接收到第一交互信息之前第一应用链与第二应用链之间的交互信息。通过检查确定是否需要更新第六历史交互信息,详细实现步骤可参考第一跨链网关侧,这里不再赘述。
需要说明的是,第六历史交互信息的信息类型与第一交互信息的信息类型相同。
步骤S3032,若第一交互信息的信息类型为第二信息类型,则第一跨链网关向第一应用链发送第一交互信息,第二信息类型为第二应用链向第一应用链发送交互信息的信息类型。
相应的,若本申请实施例的方法应用于图1所示的场景中,即第一区块链组织还包括第一中继链,第二区块链组织还包括第二中继链,第一跨链网关向第一中继链发送第一交互信息,由第一中继链将第一交互信息转发给第一应用链。
在一种可能的实现方式中,在步骤S301之后,上述方法还包括:
S304,若第五消息序号等于或者小于目标第六消息序号,则第一跨链网关对第一交互信息不做处理。
需要说明的是,第五消息序号等于或者小于目标第六消息序号,说明第五历史交互消息中已存储第五消息序号,也就是说,第一交互信息已经被第一应用链处理过,所以不需要对第一交互信息再做处理。
S305,若第五消息序号与目标第六消息序号满足第二预设条件,则第一跨链网关根据第一交互信息的信息类型处理第一交互信息,第二预设条件为第五消息序号大于目标第六消息序号,且第五消息序号与目标第六消息序号之差为1。
这里,若第五消息序号与目标第六消息序号满足第二预设条件,说明第一交互信息按照先后顺序刚好是需要被处理。
具体的,第一跨链网关根据第一交互信息的信息类型处理第一交互信息与步骤S303部分第一跨链网关根据第一交互信息的信息类型处理第一交互信息的实现过程相同,具体详见步骤S303部分的阐述,这里不再赘述。
下面参照图1所示的跨组织区块链系统,以一示例具体说明在跨组织区块链系统中的各跨链网关进入正常运行状态后,本申请实施例的数据处理方法(即跨链消息的消息序号矫正方法)的实现过程。
S401,中继链A2接收来自应用链A3的第一跨链交互请求,该第一跨链交互请求用于请求与应用链B3进行跨链交互,该第一跨链交互请求包括消息序号和对应该消息序号的具体请求内容。
S402,中继链A2向跨链网关A1发送该第一跨链交互请求;
这里,中继链A2接收到来自应用链A3的第一跨链交互请求后,经过检查发现需要进行跨链交互的目的应用链不是本区块链组织内的应用链,则将该第一跨链交互请求转发给跨链网关A1。
S403,当跨链网关A1监测到该第一跨链交互请求,跨链网关A1获取应用链A3向应用链B3发起的第一历史跨链交互请求。
S404,跨链网关A1将第一历史跨链交互请求中的最大消息序号与该第一跨链交互请求中的消息序号进行比较,得到比较结果。
S405,若第一跨链交互请求中的消息序号大于第一历史跨链交互请求中的最大消息序号,且二者之差大于1,则跨链网关A1通过中继链A2获取第一跨链交互请求中的消息序号与第一历史跨链交互消息中的最大消息序号之间每个消息序号对应的第二历史跨链交互请求,并将每个消息序号对应的第二历史跨链交互请求发送给跨链网关B1,由该跨链网关B1转发给中继链B2,最后由中继链B2将每个消息序号对应的第二历史跨链交互请求发送给应用链B3。
需要说明的是,第二历史跨链交互请求指的是在第一跨链交互请求之前未成功发送的跨链交互请求。
具体的,跨链网关A1中的适配器会根据第二历史跨链交互请求中的目的中继链ID(即中继链B2的ID),将每个消息序号对应的第二历史跨链交互请求发送给跨链网关B1。
经过该步骤,能够将之前未成功发送的第二历史跨链交互请求发送至应用链B3,从而保证应用链B3按照跨链交互请求的先后顺序处理相应的跨链交互请求。
在步骤S405之后,执行步骤S408。
S406,若第一跨链交互请求中的消息序号等于第一历史跨链交互请求中的最大消息序号,则跨链网关A1对第一跨链交互请求不做处理。
S407,若第一跨链交互请求中的消息序号大于第一历史跨链交互请求中的最大消息序号,且二者之差等于1,则执行步骤S408。
S408,跨链网关A1向跨链网关B1发送第一跨链交互请求。
S409,当跨链网关B1监测到该第一跨链交互请求,跨链网关B1获取应用链A3向应用链B3发起的第三历史跨链交互请求;将第三历史跨链交互请求中的最大消息序号与该第一跨链交互请求中的消息序号进行比较,得到比较结果。
S410,若第一跨链交互请求中的消息序号大于第三历史跨链交互请求中的最大消息序号,且二者之差大于1,则跨链网关B1通过跨链网关A1获取第一跨链交互请求中的消息序号与第三历史跨链交互消息中的最大消息序号之间每个消息序号对应的第四历史跨链交互请求,并将第四历史跨链交互请求转发给中继链B2,最后由中继链B2将每个消息序号对应的第四历史跨链交互请求发送给应用链B3。
在步骤S410之后,执行步骤S413。
S411,若第一跨链交互请求中的消息序号等于或者小于第三历史跨链交互请求中的最大消息序号,则跨链网关B1对第一跨链交互请求不做处理。
S412,若第一跨链交互请求中的消息序号大于第三历史跨链交互请求中的最大消息序号,且二者之差等于1,则执行步骤S413。
S413,跨链网关B1将第一跨链交互请求转发给中继链B2,最后由中继链B2将第一跨链交互请求发送给应用链B3。
S414,应用链B3基于第一跨链交互请求执行相应的服务,生成第一跨链交互回执。
之后,通过以上同理路径将第一跨链交互回执返回给应用链A3,这里不再赘述。
通过上述跨链消息的消息序号矫正,能够保证跨组织区块链系统在运行时的网络容错。而且通过主动消息获取,保证了即使遇到跨组织区块链系统在运行时的网络不稳定问题也可高效规避重放与消息遗漏。
本申请实施例的方法通过将跨链网关宕机异常后数据恢复和运行时自动调整消息序号,使得跨区块链组织间实现了非依赖式可靠服务,而且使得跨区块链组织的动态接入或者退出跨组织区块链系统具备了技术底座,为跨组织区块链系统跨链管理及运行监控的实现提供了工程可操作性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的数据处理方法,图4示出了本申请实施例提供的数据处理装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。该数据处理装置应用于第一区块链组织中的第一跨链网关,第一区块链组织包括第一跨链网关和多个第一应用链。
参照图4,该装置500可以包括:第一获取模块510、第二获取模块520、比对模块530和第一信息更新模块540。
其中,第一获取模块510,用于获取第一区块链组织中存储的第一历史交互信息,第一历史交互信息为第一应用链与第二应用链之间的交互信息,第二应用链为第二区块链组织中的应用链。
第二获取模块520,用于获取第二区块链组织中存储的第二历史交互信息,第二历史交互信息为第二应用链与第一应用链之间的交互信息。
对比模块530,用于将第一历史交互信息和第二历史交互信息进行比对,得到第一比对结果。
第一信息更新模块540,用于在第一比对结果表示第一历史交互信息与第二历史交互信息不一致时,根据第一比对结果更新第一历史交互信息。
在一种可能的实现方式中,第一获取模块510具体可以用于:
获取第一区块链组织中存储的第一服务列表,第一服务列表通过第一区块链组织进行跨链传输的所有应用链服务的所有历史交互信息;滤除第一服务列表中的第三历史交互信息,得到第四历史交互信息,其中,第三历史交互信息包括隶属于第一区块链组织的应用链服务所对应的、第一区块链组织中各个第一应用链之间的历史交互信息,和隶属于第一区块链组织的应用链服务所对应的、第一区块链组织中第一应用链与其他区块链组织中的应用链之间的历史交互信息;第四历史交互信息为隶属于其他区块链组织的应用链服务所对应的、其他区块链组织中的应用链与第一区块链组织中的第一应用链之间的历史交互信息;对第四历史交互信息按照区块链组织的标识进行分类,得到多个第五历史交互信息,其中,每个第五历史交互信息为隶属于其他区块链组织中的一个区块链组织的应用链服务所对应的、该区块链组织中的应用链与第一区块链组织中的第一应用链之间的历史交互信息;利用第二区块链组织的标识,从多个第五历史交互信息中选取隶属于第二区块链组织的应用链服务所对应的、第二应用链与第一应用链之间的第一历史交互信息。
在一种可能的实现方式中,第二获取模块520具体可以用于:
根据第二区块链组织的标识,通过第二区块链组织中的第二跨链网关获取第二区块链组织中存储的第二历史交互信息。
在一种可能的实现方式中,第一历史交互信息包括第一消息序号和对应第一消息序号的第一消息内容,第二历史交互信息包括第二消息序号和对应第二消息序号的第二消息内容;相应的,对比模块530具体可以用于:
将目标第一消息序号和目标第二消息序号进行比对,得到第一比对结果,其中,目标第一消息序号为第一消息序号中的最大序号,目标第二消息序号为第二消息序号中的最大序号。
相应的,第一信息更新模块540具体可以用于:
若目标第一消息序号大于目标第二消息序号,则获取第一区块链组织中存储的第三消息序号对应的第三消息内容,并通过第二区块链组织中的第二跨链网关向第二应用链发送第三消息序号和第三消息内容,其中,第三消息序号为第一消息序号中除第二消息序号之外的消息序号。
若目标第一消息序号小于目标第二消息序号,则获取第二区块链组织中存储的第四消息序号对应的第四消息内容,向第一应用链发送第四消息序号和第四消息内容,并将第四消息序号和第四消息内容添加至第一历史交互信息中,其中,第四消息序号为第二消息序号中除第一消息序号之外的消息序号。
在一种可能的实现方式中,该装置500还包括:
第三获取模块,用于当监测到第一应用链与第二应用链之间的第一交互信息,获取第五历史交互信息,其中,第一交互信息包括第五消息序号和对应第五消息序号的第五消息内容,第五历史交互信息为在接收到第一交互信息之前第一应用链与第二应用链之间的交互信息,第五历史交互信息包括第六消息序号和对应第六消息序号的第六消息内容。
第二信息更新模块,用于在第五消息序号与目标第六消息序号满足第一预设条件时,根据第五消息序号和第六消息序号更新第五历史交互信息,其中,目标第六消息序号为第六消息序号中的最大消息序号,第一预设条件为第五消息序号大于目标第六消息序号,且第五消息序号与目标第六消息序号之差大于1。
第一处理模块,用于在得到更新后的第五历史交互信息之后,根据第一交互信息的信息类型处理第一交互信息。
在一种可能的实现方式中,第二信息更新模块具体可以用于:
获取第五消息序号与目标第六消息序号之间第七消息序号对应的第七消息内容。
将第七消息序号和第七消息内容添加至第五历史交互信息中。
在一种可能的实现方式中,该装置500还包括:
第二处理模块,用于在第五消息序号等于或者小于目标第六消息序号时,对第一交互信息不做处理。
第三处理模块,用于在第五消息序号与目标第六消息序号满足第二预设条件时,根据第一交互信息的信息类型处理第一交互信息,第二预设条件为第五消息序号大于第六消息序号,且第五消息序号与第六消息序号之差为1。
在一种可能的实现方式中,第一处理模块或第三处理模块具体可以用于:
若第一交互信息的信息类型为第一信息类型,则通过第二区块链组织中的第二跨链网关向第二应用链发送第一交互信息,第一信息类型为第一应用链向所述第二应用链发送交互信息的信息类型。
若第一交互信息的信息类型为第二信息类型,则向第一应用链发送第一交互信息,第二信息类型为第二应用链向第一应用链发送交互信息的信息类型。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种第一区块链组织,该第一区块链组织包括第一跨链网关和多个第一应用链,第一区块链组织用于实现上述数据处理方法。
本申请实施例还提供了一种终端设备,参见图5,该终端设备600可以包括:至少一个处理器610、存储器620以及存储在所述存储器620中并可在所述至少一个处理器610上运行的计算机程序,所述处理器610执行所述计算机程序时实现上述任意各个方法实施例中的步骤,例如图5所示实施例中的步骤S201至步骤S204。或者,处理器410执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块510至540的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器620中,并由处理器610执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序段,该程序段用于描述计算机程序在终端设备600中的执行过程。
本领域技术人员可以理解,图5仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如输入输出设备、网络接入设备、总线等。
处理器610可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器620可以是终端设备的内部存储单元,也可以是终端设备的外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。所述存储器620用于存储所述计算机程序以及终端设备所需的其他程序和数据。所述存储器620还可以用于暂时地存储已经输出或者将要输出的数据。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请实施例提供的数据处理方法可以应用于计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的终端设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被一个或多个处理器执行时,可实现上述各个方法实施例的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被一个或多个处理器执行时,可实现上述各个方法实施例的步骤。
同样,作为一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (11)
1.一种数据处理方法,其特征在于,应用于第一区块链组织中的第一跨链网关,所述第一区块链组织包括所述第一跨链网关和至少一个第一应用链,所述方法包括:
所述第一跨链网关获取所述第一区块链组织中存储的第一历史交互信息,所述第一历史交互信息为所述第一应用链与第二应用链之间的交互信息,所述第二应用链为第二区块链组织中的应用链;
所述第一跨链网关获取所述第二区块链组织中存储的第二历史交互信息,所述第二历史交互信息为所述第二应用链与所述第一应用链之间的交互信息;
所述第一跨链网关将所述第一历史交互信息和所述第二历史交互信息进行比对,得到第一比对结果;
若所述第一比对结果表示所述第一历史交互信息与所述第二历史交互信息不一致,则所述第一跨链网关根据所述第一比对结果更新所述第一历史交互信息。
2.如权利要求1所述的数据处理方法,其特征在于,所述第一跨链网关获取所述第一区块链组织中存储的第一历史交互信息,包括:
所述第一跨链网关获取所述第一区块链组织中存储的第一服务列表,所述第一服务列表包括通过所述第一区块链组织进行跨链传输的所有应用链服务的所有历史交互信息;
所述第一跨链网关滤除所述第一服务列表中的第三历史交互信息,得到第四历史交互信息,其中,所述第三历史交互信息包括隶属于所述第一区块链组织的应用链服务所对应的、所述第一区块链组织中各个第一应用链之间的历史交互信息,和隶属于所述第一区块链组织的应用链服务所对应的、所述第一区块链组织中第一应用链与其他区块链组织中的应用链之间的历史交互信息;所述第四历史交互信息为隶属于所述其他区块链组织的应用链服务所对应的、所述其他区块链组织中的应用链与所述第一区块链组织中的第一应用链之间的历史交互信息;
所述第一跨链网关对所述第四历史交互信息按照区块链组织的标识进行分类,得到多个第五历史交互信息,其中,每个所述第五历史交互信息为隶属于所述其他区块链组织中的一个区块链组织的应用链服务所对应的、该区块链组织中的应用链与所述第一区块链组织中的第一应用链之间的历史交互信息;
所述第一跨链网关利用第二区块链组织的标识,从所述多个第五历史交互信息中选取隶属于所述第二区块链组织的应用链服务所对应的、所述第二应用链与所述第一应用链之间的所述第一历史交互信息;
其中,通过所述第一区块链组织进行跨链传输的所有应用链服务包括隶属于第一区块链组织的应用链服务和隶属于其他区块链组织的应用链服务,所述其他区块链组织中包括所述第二区块链组织,隶属于所述其他区块链组织的应用链服务的历史交互信息包括隶属于所述第二区块链组织的应用链服务的历史交互信息。
3.如权利要求2所述的数据处理方法,其特征在于,所述第一跨链网关获取所述第二区块链组织中存储的第二历史交互信息,包括:
所述第一跨链网关根据所述第二区块链组织的标识,通过所述第二区块链组织中的第二跨链网关获取所述第二区块链组织中存储的所述第二历史交互信息。
4.如权利要求1所述的数据处理方法,其特征在于,所述第一历史交互信息包括第一消息序号和对应所述第一消息序号的第一消息内容,所述第二历史交互信息包括第二消息序号和对应所述第二消息序号的第二消息内容;
所述第一跨链网关将所述第一历史交互信息和所述第二历史交互信息进行比对,得到第一比对结果,包括:
所述第一跨链网关将目标第一消息序号和目标第二消息序号进行比对,得到所述第一比对结果,其中,所述目标第一消息序号为所述第一消息序号中的最大消息序号,所述目标第二消息序号为所述第二消息序号中的最大消息序号;
相应的,所述若所述第一比对结果表示所述第一历史交互信息与所述第二历史交互信息不一致,则所述第一跨链网关根据所述第一比对结果更新所述第一历史交互信息,包括:
若所述目标第一消息序号大于所述目标第二消息序号,则所述第一跨链网关获取所述第一区块链组织中存储的第三消息序号对应的第三消息内容,并通过所述第二区块链组织中的第二跨链网关向所述第二应用链发送所述第三消息序号和所述第三消息内容,其中,所述第三消息序号为所述第一消息序号中除所述第二消息序号之外的消息序号;
若所述目标第一消息序号小于所述目标第二消息序号,则所述第一跨链网关获取所述第二区块链组织中存储的第四消息序号对应的第四消息内容,向所述第一应用链发送所述第四消息序号和所述第四消息内容,并将所述第四消息序号和所述第四消息内容添加至所述第一历史交互信息中,其中,所述第四消息序号为所述第二消息序号中除所述第一消息序号之外的消息序号。
5.如权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
当所述第一跨链网关监测到所述第一应用链与所述第二应用链之间的第一交互信息,所述第一跨链网关获取第六历史交互信息,其中,所述第一交互信息包括第五消息序号和对应所述第五消息序号的第五消息内容,所述第一交互信息为第一信息类型的交互信息或第二信息类型的交互信息,所述第一信息类型为所述第一应用链向所述第二应用链发送交互信息的信息类型,所述第二信息类型为所述第二应用链向所述第一应用链发送交互信息的信息类型,所述第六历史交互信息为在接收到所述第一交互信息之前所述第一应用链与所述第二应用链之间的且信息类型与所述第一交互信息的信息类型相同的交互信息,所述第六历史交互信息包括第六消息序号和对应所述第六消息序号的第六消息内容;
若所述第五消息序号与目标第六消息序号满足第一预设条件,则所述第一跨链网关根据所述第五消息序号和所述目标第六消息序号更新所述第六历史交互信息,其中,所述目标第六消息序号为所述第六消息序号中的最大消息序号,所述第一预设条件为所述第五消息序号大于所述目标第六消息序号,且所述第五消息序号与所述目标第六消息序号之差大于1;
在所述第一跨链网关在得到更新后的所述第六历史交互信息之后,所述第一跨链网关根据所述第一交互信息的信息类型处理所述第一交互信息。
6.如权利要求5所述的数据处理方法,其特征在于,所述若所述第五消息序号与目标第六消息序号满足第一预设条件,则所述第一跨链网关根据所述第五消息序号和所述目标第六消息序号更新所述第六历史交互信息,包括:
所述第一跨链网关获取所述第五消息序号与所述目标第六消息序号之间第七消息序号对应的第七消息内容;
所述第一跨链网关将所述第七消息序号和所述第七消息内容添加至所述第六历史交互信息中。
7.如权利要求5所述的数据处理方法,其特征在于,所述当所述第一跨链网关监测到所述第一应用链与所述第二应用链之间的第一交互信息,所述第一跨链网关获取第六历史交互信息之后,所述方法还包括:
若所述第五消息序号等于或者小于所述目标第六消息序号,则所述第一跨链网关对所述第一交互信息不做处理;
若所述第五消息序号与所述目标第六消息序号满足第二预设条件,则所述第一跨链网关根据所述第一交互信息的信息类型处理所述第一交互信息,所述第二预设条件为第五消息序号大于所述目标第六消息序号,且所述第五消息序号与所述目标第六消息序号之差为1。
8.根据权利要求5或7所述的数据处理方法,其特征在于,所述第一跨链网关根据所述第一交互信息的信息类型处理所述第一交互信息,包括:
若所述第一交互信息的信息类型为第一信息类型,则所述第一跨链网关通过所述第二区块链组织中的第二跨链网关向所述第二应用链发送所述第一交互信息;
若所述第一交互信息的信息类型为第二信息类型,则所述第一跨链网关向所述第一应用链发送所述第一交互信息。
9.一种数据处理装置,其特征在于,应用于第一区块链组织中的第一跨链网关,所述第一区块链组织包括所述第一跨链网关和至少一个第一应用链,所述装置包括:
第一获取模块,用于获取所述第一区块链组织中存储的第一历史交互信息,所述第一历史交互信息为所述第一应用链与第二应用链之间的交互信息,所述第二应用链为第二区块链组织中的应用链;
第二获取模块,用于获取所述第二区块链组织中存储的第二历史交互信息,所述第二历史交互信息为所述第二应用链与所述第一应用链之间的交互信息;
比对模块,用于将所述第一历史交互信息和所述第二历史交互信息进行比对,得到第一比对结果;
第一信息更新模块,用于在所述第一比对结果表示所述第一历史交互信息与所述第二历史交互信息不一致时,根据所述第一比对结果更新所述第一历史交互信息。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的数据处理方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111664031.3A CN114006911B (zh) | 2021-12-31 | 2021-12-31 | 数据处理方法、装置、终端设备及存储介质 |
PCT/CN2022/120863 WO2023124302A1 (zh) | 2021-12-31 | 2022-09-23 | 数据处理方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111664031.3A CN114006911B (zh) | 2021-12-31 | 2021-12-31 | 数据处理方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114006911A CN114006911A (zh) | 2022-02-01 |
CN114006911B true CN114006911B (zh) | 2022-04-26 |
Family
ID=79932498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111664031.3A Active CN114006911B (zh) | 2021-12-31 | 2021-12-31 | 数据处理方法、装置、终端设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114006911B (zh) |
WO (1) | WO2023124302A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114006911B (zh) * | 2021-12-31 | 2022-04-26 | 杭州趣链科技有限公司 | 数据处理方法、装置、终端设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189853A (zh) * | 2018-08-08 | 2019-01-11 | 众安信息技术服务有限公司 | 一种区块链之间数据同步方法与装置 |
CN110597907A (zh) * | 2019-09-10 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 跨区块链的数据信息同步方法、装置、设备及介质 |
CN112003889A (zh) * | 2020-07-10 | 2020-11-27 | 南京邮电大学 | 分布式跨链系统及跨链信息交互与系统访问控制机制 |
CN113194141A (zh) * | 2021-04-29 | 2021-07-30 | 杭州链网科技有限公司 | 一种基于异构区块链的跨链网桥构建方法 |
CN113315832A (zh) * | 2021-05-26 | 2021-08-27 | 杭州云象网络技术有限公司 | 基于云跨链转账协议的跨链信息同步方法、系统及装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415784B (zh) * | 2018-02-27 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 跨区块链的交互方法及装置、系统、电子设备 |
US11531768B2 (en) * | 2018-08-08 | 2022-12-20 | Panasonic Intellectual Property Corporation Of America | Data protection method, authentication server, data protection system, and data structure |
CN110046998B (zh) * | 2019-01-31 | 2020-04-14 | 阿里巴巴集团控股有限公司 | 跨链用权系统及方法、装置、电子设备、存储介质 |
US10901983B2 (en) * | 2019-03-01 | 2021-01-26 | Wanchain Ltd. | System and method for universal blockchain interoperability |
CN111769948B (zh) * | 2020-06-15 | 2023-06-02 | 布比(北京)网络技术有限公司 | 基于区块链的链间交互方法、系统、装置和计算机设备 |
CN111814175B (zh) * | 2020-09-15 | 2020-12-18 | 北京东方通科技股份有限公司 | 一种区块链间跨链信息传输控制系统 |
CN112669038B (zh) * | 2020-12-28 | 2024-03-15 | 杭州趣链科技有限公司 | 账户查询系统、跨链网关 |
CN112822181B (zh) * | 2020-12-30 | 2022-08-16 | 杭州趣链科技有限公司 | 跨链交易的验证方法、终端设备及可读存储介质 |
CN112667601B (zh) * | 2020-12-30 | 2023-06-20 | 杭州趣链科技有限公司 | 区块链标识的管理方法、终端设备及计算机可读存储介质 |
CN112651046A (zh) * | 2020-12-30 | 2021-04-13 | 杭州趣链科技有限公司 | 跨链交易的数据同步方法、装置、系统及终端设备 |
CN113114759B (zh) * | 2021-04-09 | 2022-06-10 | 杭州链网科技有限公司 | 一种实现多链互通的跨链方法及系统 |
CN113111126A (zh) * | 2021-04-12 | 2021-07-13 | 浙江永旗区块链科技有限公司 | 一种区块链跨链转发系统及其转发方法 |
CN112861190B (zh) * | 2021-04-23 | 2021-07-16 | 腾讯科技(深圳)有限公司 | 数据跨链协同方法、系统及装置 |
CN112948153B (zh) * | 2021-05-14 | 2021-08-10 | 支付宝(杭州)信息技术有限公司 | 一种消息跨链传输的方法和装置 |
CN114006911B (zh) * | 2021-12-31 | 2022-04-26 | 杭州趣链科技有限公司 | 数据处理方法、装置、终端设备及存储介质 |
-
2021
- 2021-12-31 CN CN202111664031.3A patent/CN114006911B/zh active Active
-
2022
- 2022-09-23 WO PCT/CN2022/120863 patent/WO2023124302A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189853A (zh) * | 2018-08-08 | 2019-01-11 | 众安信息技术服务有限公司 | 一种区块链之间数据同步方法与装置 |
CN110597907A (zh) * | 2019-09-10 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 跨区块链的数据信息同步方法、装置、设备及介质 |
CN112003889A (zh) * | 2020-07-10 | 2020-11-27 | 南京邮电大学 | 分布式跨链系统及跨链信息交互与系统访问控制机制 |
CN113194141A (zh) * | 2021-04-29 | 2021-07-30 | 杭州链网科技有限公司 | 一种基于异构区块链的跨链网桥构建方法 |
CN113315832A (zh) * | 2021-05-26 | 2021-08-27 | 杭州云象网络技术有限公司 | 基于云跨链转账协议的跨链信息同步方法、系统及装置 |
Non-Patent Citations (1)
Title |
---|
区块链跨链技术进展研究;李芳等;《软件学报》;20190327(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114006911A (zh) | 2022-02-01 |
WO2023124302A1 (zh) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026367B (zh) | 微服务编排方法、装置、终端设备及存储介质 | |
US11200123B2 (en) | Consensus process recovery method and related node | |
CN114006911B (zh) | 数据处理方法、装置、终端设备及存储介质 | |
US20230388148A1 (en) | Data communication method and device | |
WO2023040453A1 (zh) | 一种交易信息处理方法及装置 | |
CN111752811A (zh) | 异常告警信息处理方法、电子设备及存储介质 | |
CN111652728A (zh) | 一种交易处理方法及装置 | |
CN112667270A (zh) | 语音处理资源的更新方法、计算机设备及存储装置 | |
CN111310242A (zh) | 设备指纹生成的方法、装置、存储介质及电子设备 | |
US20220156153A1 (en) | Method for controlling other systems based on single-point execution contract | |
CN115361141A (zh) | 中继跨链校验方法、装置、存储介质及电子设备 | |
CN112788551B (zh) | 消息处理方法、装置、终端设备及存储介质 | |
CN112699648B (zh) | 数据处理方法及装置 | |
CN114500237A (zh) | 一种通信方法和系统 | |
CN112187937A (zh) | 一种解除配对方法、装置、终端设备及存储介质 | |
CN114172674B (zh) | 一种异常数据检测方法、装置、设备及计算机介质 | |
CN114189934B (zh) | 一种重复寻呼确定方法、装置、设备及介质 | |
CN114629889B (zh) | 远程控制链接的建立方法、装置、设备及介质 | |
CN116208470A (zh) | 服务调用方法、设备及介质 | |
CN113741403A (zh) | 车辆诊断方法、诊断设备及计算机可读存储介质 | |
CN117118910A (zh) | 一种网络流量负载均衡控制方法、装置、系统和介质 | |
CN117375885A (zh) | 边缘节点可信评估方法及相关设备 | |
US20110099434A1 (en) | System and method for determining whether a failed communication between signal transfer points was in error | |
CN117014904A (zh) | 升级状态及可用性确定方法、装置、电子设备及介质 | |
CN117094798A (zh) | 线上交易的处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40068142 Country of ref document: HK |