用于多链区块链系统中的跨链处理方法、设备及系统与流程

文档序号:21732146发布日期:2020-08-05 01:27阅读:237来源:国知局
用于多链区块链系统中的跨链处理方法、设备及系统与流程

本发明实施例涉及区块链技术领域,尤其涉及一种用于多链区块链系统中的跨链处理方法、设备及系统。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链在本质上是一个去中心化的数据库,是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

区块链技术需要同时兼顾去中心化、扩展性以及吞吐量,而目前在实际业务场景中区块链的低吞吐量已经成为区块链技术被广泛使用的瓶颈。如何提高区块链系统的吞吐量已经成为区块链技术领域被广泛关注的一个技术问题。多链技术是一种提高区块链系统吞吐量的有效方式。

多链技术作为提高区块链系统吞吐量的有效方式之一,受到越来越多的重视和应用。在多链区块链系统中,亟待解决的一个问题就是数据在多链区块链系统中各子区块链之间如何进行流转,即多链区块链系统中的跨链问题。若数据无法在多链区块链系统中各子区块链之间进行流转,将严重影响多链区块链系统的应用范围。



技术实现要素:

本发明实施例提供一种用于多链区块链系统中的跨链处理方法、设备及系统,用于实现多链区块链系统中的跨链处理,扩展多链区块链系统的应用范围。

第一方面,本发明实施例提供一种用于多链区块链系统中的跨链处理方法,应用于源链,包括:

接收跨链交易查询请求,跨链交易查询请求包括目标链的标识;

根据目标链的标识,从源链的中转链表中获取目标链的跨链交易数据,其中,中转链表用于存储待处理的跨链交易数据;

将目标链的跨链交易数据发送至目标链,以使目标链根据跨链交易数据进行跨链处理。

在一种可能的实现方式中,接收跨链交易查询请求之后,所述方法还包括:

对跨链交易查询请求中的签名进行验证。

在一种可能的实现方式中,所述方法还包括:

将跨链处理与链内处理记录在源链中的同一个账本中。

在一种可能的实现方式中,接收跨链交易查询请求之前,所述方法还包括:

接收客户端发送的交易请求信息,交易请求信息包括源账号信息、目标账号信息和资产转移信息;

获取目标账号信息对应的子区块链标识;

根据交易请求信息和子区块链标识,确定跨链交易数据;

将跨链交易数据加入源链的中转链表。

在一种可能的实现方式中,获取目标账号信息对应的子区块链标识,包括:

向系统链发送账号查询请求,账号查询请求包括目标账号信息,以使系统链根据目标账号信息确定目标账号信息对应的子区块链标识,系统链中包括账号与子区块链标识的映射关系;

接收系统链返回的目标账号信息对应的子区块链标识。

在一种可能的实现方式中,所述方法还包括:

获取中转链表中各跨链交易数据对应的交易状态;

若跨链交易数据对应的交易状态为成功,则将该跨链交易数据从中转链表中删除。

第二方面,本发明实施例一种用于多链区块链系统中的跨链处理方法,应用于目标链,包括:

向源链发送跨链交易查询请求,跨链交易查询请求包括目标链的标识;

接收源链发送的跨链交易数据,跨链交易数据为源链根据目标链的标识,从源链的中转链表中获取的;

根据跨链交易数据,进行跨链处理。

在一种可能的实现方式中,向源链发送跨链交易查询请求之前,所述方法还包括:

对跨链交易查询请求进行签名。

在一种可能的实现方式中,所述方法还包括:

将跨链处理与链内处理记录在目标链中的同一个账本中。

在一种可能的实现方式中,所述方法还包括:

根据跨链处理的结果,更新跨链交易数据对应的交易状态。

第三方面,本发明实施例提供一种用于多链区块链系统中的跨链处理装置,包括:

接收模块,用于接收跨链交易查询请求,跨链交易查询请求包括目标链的标识;

获取模块,用于根据目标链的标识,从源链的中转链表中获取目标链的跨链交易数据,其中,中转链表用于存储待处理的跨链交易数据;

发送模块,用于将目标链的跨链交易数据发送至目标链,以使目标链根据跨链交易数据进行跨链处理。

第四方面,本发明实施例提供一种用于多链区块链系统中的跨链处理装置,包括:

发送模块,用于向源链发送跨链交易查询请求,跨链交易查询请求包括目标链的标识;

接收模块,用于接收源链发送的跨链交易数据,跨链交易数据为源链根据目标链的标识,从源链的中转链表中获取的;

处理模块,用于根据跨链交易数据,进行跨链处理。

第五方面,本发明实施例提供一种电子设备,包括:

存储器;

处理器;以及

计算机程序;

其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如第一方面任一项所述的用于多链区块链系统中的跨链处理方法,和/或,如第二方面任一项所述的用于多链区块链系统中的跨链处理方法。

第六方面,本发明实施例提供一种多链区块链系统,包括:

一个系统链和多个子区块链;

多个子区块链的网络拓扑结构、共识算法和组织参与方相同;

系统链包括账号与子区块链标识的映射关系,用于根据账号确定与之对应的子区块链标识;

多个子区块链中的源链使用如第一方面任一项所述的用于多链区块链系统中的跨链处理方法进行跨链处理;

多个子区块链中的目标链使用如第二方面任一项所述的用于多链区块链系统中的跨链处理方法进行跨链处理。

第七方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面任一项所述的用于多链区块链系统中的跨链处理方法,和/或,如第二方面任一项所述的用于多链区块链系统中的跨链处理方法。

本发明实施例提供的用于多链区块链系统中的跨链处理方法、设备及系统,通过接收包括目标链的标识的跨链交易查询请求,根据目标链的标识,从源链的中转链表中获取目标链的跨链交易数据,其中,中转链表用于存储待处理的跨链交易数据,并将目标链的跨链交易数据发送至目标链,以使目标链根据跨链交易数据进行跨链处理,实现了多链区块链系统中的跨链处理,扩展了多链区块链系统的应用范围。。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为本发明提供的多链区块链系统一实施例的示意图;

图2为本发明提供的用于多链区块链系统中的跨链处理方法一实施例的流程图;

图3为本发明提供的多链区块链系统又一实施例的示意图;

图4为本发明提供的用于多链区块链系统中的跨链处理方法又一实施例的流程图;

图5为本发明提供的用于多链区块链系统中的跨链处理方法另一实施例的流程图;

图6为本发明提供的用于多链区块链系统中的跨链处理方法又一实施例的流程图;

图7为本发明提供的用于多链区块链系统中的跨链处理方法另一实施例的信令流程图;

图8为本发明提供的用于多链区块链系统中的跨链处理方法的流程示意图;

图9为本发明提供的用于多链区块链系统中的跨链处理装置一实施例的结构示意图;

图10为本发明提供的用于多链区块链系统中的跨链处理装置又一实施例的结构示意图;

图11为本发明提供的电子设备一实施例的结构示意图。

通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

本发明的说明书和权利要求书中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明中的“第一”和“第二”只起标识作用,而不能理解为指示或暗示顺序关系、相对重要性或者隐含指明所指示的技术特征的数量。“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

本发明的说明书中通篇提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

合理的多链区块链系统,是实现安全、高效跨链操作的前提,本发明实施例提供一种多链区块链系统。图1为本发明提供的多链区块链系统一实施例的示意图。如图1所示,本实施例提供的多链区块链系统可以包括:一个系统链和多个子区块链。

多个子区块链的网络拓扑结构、共识算法和组织参与方相同。系统链包括账号与子区块链标识的映射关系,用于根据账号确定与之对应的子区块链标识。

系统链和各个子区块链中至少有一个节点属于同一个组织,各个组织在系统链和多个子区块链中的用户信息例如身份信息、证书等是完全一样的。

其中,n表示多链区块链系统所包括的子区块链的数量,具体数值例如可以根据要求的吞吐量确定,若所要求的吞吐量增大,则可以增大n的取值,若所要求的吞吐量减小,则可以降低n的取值,本实施例对此不做限制。m表示多链区块链系统的组织参与方的数量。

图1中的菱形表示系统链中的节点,圆形表示子区块链中的节点。org1表示组织参与方1;orgm表示组织参与方m。org1.p1i表示子区块链1中第i个节点,且属于组织参与方1;org3.p1(i+2)表示子区块链1中第i+2个节点,且属于组织参与方3;org1.p3i表示子区块链3中第i个节点,且属于组织参与方1。

可选的,在各个子区块链中,可以将参与该子区块链的各个节点的身份信息进行注册,使他们互相知道对方的存在,例如可以采用如在hyperledgerfabric中通过将身份信息写入到创世块中的方式完成注册。

可选的,对于同一个组织参与方,虽然属于它的多个节点分别参与到不同的多个子区块链网络中,但是互相之间知道对方身份的存在。例如,对于同一个组织参与方,可以使用相同的证书颁发机构(certificateauthority,ca),可以认证证书与签名。节点启动后,可以通过组织将各节点身份信息、endpoint、以及参与的子区块链标识等信息注册到各个本组织的节点中。

可选的,系统链还用于维护多链区块链系统的结构信息,提供路由规则的管理功能,

可选的,可以通过水平扩展的方式增加子区块链。

可以采用下面实施例所述的用于多链区块链系统的跨链方法,实现数据在本实施例提供的多链区块链系统中各子区块链之间的流转。需要说明的是,下面实施例提供的用于多链区块链系统的跨链方法,不仅可以解决本实施例提供的多链区块链系统的跨链问题,而且还可以用于其他多链区块链系统。例如,可以用于目前非常流行的区块链解决方案超级账本(hyperledgerfabric)中,多个组织可以通过hyperledgerfabric组成联盟区块链网络。

本发明实施例中的源链为一次跨链操作中数据来自的子区块链,目标链为一次跨链操作中数据转移的目的子区块链,也就是说,源链为源账号信息对应的子区块链,目标链为目标账号信息对应的子区块链。可以理解的是,源链和目标链不是固定不变的,一个子区块链既可以是源链,也可以是目标链。

图2为本发明提供的用于多链区块链系统中的跨链处理方法一实施例的流程图。本实施例可以应用于源链,如图2所示,本实施例提供的方法可以包括:

s201、接收跨链交易查询请求,跨链交易查询请求包括目标链的标识。

本实施例中的跨链交易查询请求是由目标链周期性发送的,或者,事件性触发发送的,用于获取源链中目的地址为目标链的跨链交易数据。

本实施例中的跨链交易查询请求可以包括目标链的标识,例如可以采用目标链的子区块链标识。

s202、根据目标链的标识,从源链的中转链表中获取目标链的跨链交易数据,其中,中转链表用于存储待处理的跨链交易数据。

本实施例的中转链表用于存储待处理的跨链交易数据,每一个跨链交易数据可以包括源账号信息、目标账号信息和资产转移信息等。下面示例性的给出一个具体的跨链交易数据的数据结构:

本实施例中根据目标链的标识,从源链的中转链表中获取目标链的跨链交易数据。例如,可以将中转链表中跨链交易数据目标链标识与跨链交易查询请求中所包括目标链的标识相同的跨链交易数据,作为所述目标链的跨链交易数据。

s203、将目标链的跨链交易数据发送至目标链,以使目标链根据跨链交易数据进行跨链处理。

本实施例中在确定了目标链的跨链交易数据之后,则将目标链的跨链交易数据发送至目标链,以使所述目标链根据该跨链交易数据进行跨链处理。

可选的,本实施例中在确定了目标链的跨链交易数据之后,还可以对相应的数据进行签名处理,以提高跨链处理的安全性。

本实施例提供的用于多链区块链系统中的跨链处理方法,通过接收包括目标链的标识的跨链交易查询请求,根据目标链的标识,从源链的中转链表中获取目标链的跨链交易数据,其中,中转链表用于存储待处理的跨链交易数据,并将目标链的跨链交易数据发送至目标链,以使目标链根据跨链交易数据进行跨链处理,实现了多链区块链系统中的跨链处理,扩展了多链区块链系统的应用范围。

可选的,在接收跨链交易查询请求之后,所述方法还可以包括:对跨链交易查询请求中的签名进行验证。

可以理解的,为了提高跨链处理的安全性,目标链发送的跨链交易查询请求可以进行签名处理。当源链接收到目标链发送的跨链交易查询请求之后,首先需要对其中的签名进行验证,若验证通过,则执行后续跨链处理;若验证不通过,则终止跨链处理。

可选的,为了便于后续对跨链处理进行追溯,在上述实施例的基础上,本实施例提供的方法中还可以包括:将跨链处理与链内处理记录在源链中的同一个账本中。

本实施例中的链内处理为发生在源链内部的数据处理。可选的,为了减少对业务链码的影响,可以由中转链码来完成跨链实现的细节。

例如,本实施例中可以由中转链码将跨链记录与业务链码记录在同一个账本中,可以为以后进行跨链操作追溯提供便捷。

在上述实施例的基础上,本实施例提供的方法在接收跨链交易查询请求之前,还可以包括:接收客户端发送的交易请求信息,交易请求信息包括源账号信息、目标账号信息和资产转移信息;获取目标账号信息对应的子区块链标识;根据交易请求信息和子区块链标识,确定跨链交易数据;将跨链交易数据加入源链的中转链表。

本实施例中的客户端可以是安装于终端设备上的应用程序app,接收用户输入的指令,根据用户指令生成交易请求信息,并将交易请求信息发送至源链。本实施例中的交易请求信息可以包括源账号信息、目标账号信息和资产转移信息,用于描述一次跨链交易。本实施例中源链在接收到客户端发送的交易请求信息之后,则根据该交易请求信息以及目标账号信息对应的子区块链标识,确定跨链交易数据,并将跨链交易数据加入源链的中转链表中,以使目标链能够根据目标链的标识从中转链表中获取相应的跨链交易数据,执行跨链处理。

在一些实施例中,获取目标账号信息对应的子区块链标识的一种实现方式可以是:向系统链发送账号查询请求,账号查询请求包括目标账号信息,以使系统链根据目标账号信息确定目标账号信息对应的子区块链标识,系统链中包括账号与子区块链标识的映射关系;接收系统链返回的目标账号信息对应的子区块链标识。

本实施例中的系统链包括了账号与子区块链标识的映射关系,因此能够提供查找账号所对应的子区块链标识的功能。

本实施例中,源链在接收到客户端发送的交易请求信息之后,则向系统链发送账号查询请求,该账号查询请求包括了目标账号信息,以使系统链根据目标账号信息确定目标账号信息对应的子区块链标识。

在上述任一实施例的基础上,为了进一步提高处理效率,本实施例提供的方法还可以包括:获取中转链表中各跨链交易数据对应的交易状态;若跨链交易数据对应的交易状态为成功,则将该跨链交易数据从中转链表中删除。

本实施例中将交易成功的跨链交易数据从中转链表中删除,可以减少中转链表中的数据量,提高跨链交易查询请求的处理速度,有效避免了因中转链表数据太多而导致系统变慢的问题。

本实施例中获取中转链表中各跨链交易数据对应的交易状态,例如可以通过查询目标链中的交易标识获取。本实施例对此不做限制。

为了支持跨链处理的信息通讯,节点之间需要支持底层的可信传输。图3为本发明提供的多链区块链系统又一实施例的示意图。如图3所示,在图1所示多链区块链系统的基础上,本实施例提供的多链区块链系统提供了一种安全的底层通讯机制。

如图3所示,为了保证跨链处理安全可靠,以及整个跨链过程可被背书,可追溯,在本实施例中各个组织的节点只相信本组织在其他子区块链上的节点,所以跨链通讯只发生在同一个组织在不同子区块链上的节点之间。节点通过认证对方身份信息以及签名来保证信息的可靠性。每个节点在启动之后,将根据配置监听来自本组织其他节点的跨链交易查询请求,为了提高通讯效率以及安全性,本实施例中可以使用远程过程调用(remoteprocedurecall,rpc)协议进行通讯。

同时,各个节点需要向链码提供底层通讯的接口,方便链码可以通过该接口跨链的调用其他子区块链网络上的链码。例如,在hyperledgerfabric中,可以通过扩充节点代码中的shim接口,在现有基础上增加接口:func(stub*chaincodestub)invokenetworkchaincode(networkedstring,chaincodenamestring,args[][]byte,channelstring)pb.response。可选的,图3中的接口可以采用shim接口。

需要说明的是,跨链通讯只发生在背书阶段,背书节点如果需要查询其他子区块链上的链码信息,就会触发跨链交易查询请求。而且出于安全考虑,跨链处理只能调用查询接口,并不能调用写操作的接口。

在上述实施例的基础上,本实施例对上述实施例进行结合。图4为本发明提供的用于多链区块链系统中的跨链处理方法又一实施例的流程图。如图4所示,本实施例提供的方法可以包括:

s401、接收跨链交易查询请求,跨链交易查询请求包括目标链的标识。

s402、对跨链交易查询请求中的签名进行验证。若验证通过,则执行s403;若验证不通过,则终止跨链处理。

s403、对跨链交易查询请求进行解码,获取目标链的跨链交易数据。

s404、对目标链的跨链交易数据进行签名处理,将签名处理后的跨链交易数据发送至所述目标链。

本实施例中例如可以调用shim通讯接口,将签名处理后的跨链交易数据发送至所述目标链。

本实施例提供的用于多链区块链系统中的跨链处理方法,在上述任一实施例的基础上,通过对跨链交易查询请求以及跨链交易数据进行签名处理,进一步提高了跨链处理的安全性和可靠性。

图5为本发明提供的用于多链区块链系统中的跨链处理方法另一实施例的流程图。本实施例提供的方法可以应用于目标链,如图5所示,本实施例提供的方法可以包括:

s501、向源链发送跨链交易查询请求,跨链交易查询请求包括目标链的标识。

可选的,本实施例中目标链在向源链发送跨链交易查询请求之前,可以先与源链建立rpc连接。

本实施例中目标链可以周期性的向源链发送跨链交易查询请求,也可以在接收到触发类消息时,向源链发送跨链交易查询请求。其中触发目标链发送跨链交易查询请求的触发类消息,可以由多链区块链系统中的任意节点进行触发。触发类消息不会直接修改任何账本数据,只会触发中转链码按照跨链交易数据的源账号信息和目标账号信息进行数据转移。

s502、接收源链发送的跨链交易数据,跨链交易数据为源链根据目标链的标识,从源链的中转链表中获取的。

本实施例中目标链接收到的跨链交易数据,为源链根据目标链的标识,从源链的中转链表中获取的。

s503、根据跨链交易数据,进行跨链处理。

本实施例提供的用于多链区块链系统中的跨链处理方法,通过向源链发送包括目标链的标识的跨链交易查询请求,接收源链发送的跨链交易数据,跨链交易数据为源链根据目标链的标识,从源链的中转链表中获取的,并根据跨链交易数据,进行跨链处理,实现了多链区块链系统中的跨链处理,扩展了多链区块链系统的应用范围。

可选的,为了提高跨链处理的安全性和可靠性,在向源链发送跨链交易查询请求之前,所述方法还可以包括:对跨链交易查询请求进行签名。本实施例对于签名的具体实现方式不做限制。

可选的,为了便于后续对跨链处理进行追溯,在上述实施例的基础上,本实施例提供的方法中还可以包括:将跨链处理与链内处理记录在目标链中的同一个账本中。

可选的,所述方法还可以包括:根据跨链处理的结果,更新跨链交易数据对应的交易状态。举例来说,若跨链处理成功,则将相应的数据转移到目标账号下,将跨链交易数据对应的交易状态更新为success;若跨链处理失败,则将相应的数据退回到源账号下,并跨链交易数据对应的交易状态更新为fail。

在上述实施例的基础上,本实施例对上述实施例进行结合。图6为本发明提供的用于多链区块链系统中的跨链处理方法又一实施例的流程图。如图6所示,本实施例提供的方法可以包括:

s601、与源链建立rpc连接。

本实施例中,目标链的链码例如可以调用shim.invokenetworkchaincode接口,查询本组织对应目标网络的子区块链网络中的参与节点的endpoint,然后与该节点建立rpc连接。

s602、对跨链交易查询请求进行签名,将签名后的跨链交易查询请求发送至源链,跨链交易查询请求包括目标链的标识。

为了提高安全性和可靠性,本实施例中对于跨链交易查询请求进行签名处理。本实施例中例如可以将签名处理后的跨链交易查询请求打包成rpc请求发送至源链节点。

s603、接收源链发送的跨链交易数据,跨链交易数据为源链根据目标链的标识,从源链的中转链表中获取的。

接收源链对于跨链交易查询请求的响应消息。

s604、对跨链交易数据进行签名验证并解码,根据解码后的跨链交易数据,进行跨链处理。

本实施例中在接收到源链发送的跨链交易数据之后,对该数据进行签名验证,若验证通过,继续执行后续跨链处理;若验证不通过,则终止跨链处理。对于签名验证通过的跨链交易数据进行解码,并将解码后的数据返回至相应的链码,以便进行跨链处理。

图7为本发明提供的用于多链区块链系统中的跨链处理方法另一实施例的信令流程图。如图7所示,本实施例提供的方法可以包括:

s701、客户端向源链发送交易请求信息,交易请求信息包括源账号信息、目标账号信息和资产转移信息。

例如,当用户需要从账户a向账户b转移50个单位的数字凭证时,可以向客户端输入相应的指令信息,客户端可以根据用户输入的指令信息生成交易请求信息,并将该交易请求信息发送至源链。

本实施例中的交易请求信息例如可以包括源账号信息即账户a,目标账号信息即账户b,以及资产转移信息即50个单位的数字凭证。

s702、源链向系统链发送账号查询请求,账号查询请求包括目标账号信息。

本实施例中源链在接收到客户端发送的交易请求信息之后,则向系统链发送账号查询请求。

s703、系统链根据目标账号信息确定目标账号信息对应的子区块链标识。

本实施例中的系统链可以包括账号与子区块链标识的映射关系,因此能够提供查找账号所对应的子区块链标识的功能。

s704、系统链向源链发送目标账号信息对应的子区块链标识。

本实施例中系统链在确定目标账号信息对应的子区块链标识之后,则向源链发送目标账号信息对应的子区块链标识。可以理解的是,本实施例中目标账号信息对应的子区块链标识即目标链的标识。

s705、源链根据交易请求信息和目标账号信息对应的子区块链标识,确定跨链交易数据,并将该跨链交易数据加入源链的中转链表。

例如,可以采用如下数据结构用于存储跨链交易数据。

s706、源链向客户端发送目标账号信息对应的子区块链标识。

可选的,源链可以向客户端发送目标账号信息对应的子区块链标识,即告知客户端目标链的标识。

s707、客户端向目标链发送第一触发消息,用于触发目标链发起跨链交易查询。

可选的,第一触发消息中可以包括源链的标识,以使目标链向源链发送跨链交易查询请求。

s708、目标链向源链发送跨链交易查询请求,跨链交易查询请求包括目标链的标识。

s709、源链根据目标链的标识,从源链的中转链表中获取目标链的跨链交易数据。

s710、源链向目标链发送目标链的跨链交易数据。

s711、目标链根据跨链交易数据,进行跨链处理,并根据跨链处理的结果,更新跨链交易数据对应的交易状态。

s712、客户端向源链发送第二触发消息,用于触发源链发起对中转链表的清理。

需要说明的是,本实施例中的第二触发消息可以由客户端触发,也可以定期触发。

s713、源链向目标链发送交易状态查询请求。

s714、目标链向源链发送交易状态响应消息。

s715、源链根据交易状态响应消息,对中转链表进行清理。

若跨链交易数据对应的交易状态为成功,则将该跨链交易数据从中转链表中删除;若跨链交易数据对应的交易状态为失败,则将该跨链交易数据对应的资产返回至源账号中,然后将该跨链交易数据从中转链表中删除。

如图7所示,一次成功的跨链交易需要客户端发起三步子交易,只有至少前两步子交易都成功,才认为一次跨链交易成功。可以理解的是,若跨链交易失败,为便于将进行转账的数字凭证回退到源账号中,客户端通常会主动触发第三步子交易。通过对源链的中转链表进行清理,可以有效防止中转链表中的数据太多,进而导致系统变慢的问题。需要说明的是,对中转链表的清理可以由跨链交易源账号的客户端触发,也可以由专门的定期触发条件来定期触发。

如图7所示,本实施例的第二步和第三步子交易中,客户端发送的都是触发类消息。触发类消息可以由网络中的任意节点发送,因为触发类消息无法直接修改任何账本数据,它只会触发中转链码按照跨链交易数据中的源账号信息和目标账号信息进行数字凭证的转移,触发者无法干扰跨链处理。

可选的,跨链交易一旦触发,整个过程会被记录到参与跨链处理的各个子区块链的账本中。由于资产转移只能由中转链码按照跨链交易发起时的源账号信息和目标账号信息进行转移,因此可以避免双花情况的出现。

图8为本发明提供的用于多链区块链系统中的跨链处理方法的流程示意图。如图8所示,示出了源链即子区块链p和目标链即子区块链q之间的跨链处理流程。

可选的,每个网络节点可以包括中转链码和业务链码。其中,中转链码作为预装链码会与业务链码安装在同一个通道中。由中转链码完成跨链处理,以减少对业务链码的影响,并且为了便于以后对跨链操作进行追溯,中转链码会将中转链码的跨链处理流程与业务链码记录在同一个账本中。如图8所示,子区块链p的中转链码和业务链码会将相应数据记录在子区块链p的账本,即账本1中;子区块链q的中转链码和业务链码会将相应数据记录在子区块链q的账本,即账本2中。

如图8所示,源账号信息与目标账号信息标记了要转移的数据的源地址和目的地址,资产信息标记了要转移的数字凭证的数量,中转链码将严格按照源账号信息与目标账号信息对数字凭证进行转移,避免出现双花的情况。若跨链交易成功,则数字凭证将转移至目标账号中,否则将会退还到源账号中。

例如,在hyperledgerfabric中,中转链码提供了以下接口:

func(stub*chaincodestub)send(sourcechaincodenamestring,sourceaccount[][]byte,targetaccount[][]byte,args[][]byte)pb.response

func(stub*chaincodestub)rcv(targetchaincodenamestring,sourceaccount[][]byte,targetaccount[][]byte,transactionidstring)pb.response用于实现跨链处理。

图9为本发明提供的用于多链区块链系统中的跨链处理装置一实施例的结构示意图。如图9所示,本实施例提供的用于多链区块链系统中的跨链处理装置90可以包括:接收模块901、获取模块902和发送模块903。

接收模块901,用于接收跨链交易查询请求,跨链交易查询请求包括目标链的标识;

获取模块902,用于根据目标链的标识,从源链的中转链表中获取目标链的跨链交易数据,其中,中转链表用于存储待处理的跨链交易数据;

发送模块903,用于将目标链的跨链交易数据发送至目标链,以使目标链根据跨链交易数据进行跨链处理。

本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

可选的,在接收跨链交易查询请求之后,还可以对跨链交易查询请求中的签名进行验证。

可选的,还可以将跨链处理与链内处理记录在源链中的同一个账本中。

可选的,在接收跨链交易查询请求之前,还可以包括:接收客户端发送的交易请求信息,交易请求信息包括源账号信息、目标账号信息和资产转移信息;获取目标账号信息对应的子区块链标识;根据交易请求信息和子区块链标识,确定跨链交易数据;将跨链交易数据加入源链的中转链表。

可选的,获取目标账号信息对应的子区块链标识,具体可以包括:向系统链发送账号查询请求,账号查询请求包括目标账号信息,以使系统链根据目标账号信息确定目标账号信息对应的子区块链标识,系统链中包括账号与子区块链标识的映射关系;接收系统链返回的目标账号信息对应的子区块链标识。

可选的,还可以包括:获取中转链表中各跨链交易数据对应的交易状态;若跨链交易数据对应的交易状态为成功,则将该跨链交易数据从中转链表中删除。

图10为本发明提供的用于多链区块链系统中的跨链处理装置又一实施例的结构示意图。如图10所示,本实施例提供的用于多链区块链系统中的跨链处理装置100可以包括:发送模块1001、接收模块1002和处理模块1003。

发送模块1001,用于向源链发送跨链交易查询请求,跨链交易查询请求包括目标链的标识。

接收模块1002,用于接收源链发送的跨链交易数据,跨链交易数据为源链根据目标链的标识,从源链的中转链表中获取的。

处理模块1003,用于根据跨链交易数据,进行跨链处理。

本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

可选的,在向源链发送跨链交易查询请求之前,还可以对跨链交易查询请求进行签名。

可选的,还可以将跨链处理与链内处理记录在目标链中的同一个账本中。

可选的,还可以根据跨链处理的结果,更新跨链交易数据对应的交易状态。

本发明实施例还提供一种电子设备,请参见图11所示,本发明实施例仅以图11为例进行说明,并不表示本发明仅限于此。图11为本发明提供的电子设备一实施例的结构示意图。如图11所示,本实施例提供的电子设备110可以包括:存储器1101、处理器1102和总线1103。其中,总线1103用于实现各元件之间的连接。

存储器1101中存储有计算机程序,计算机程序被处理器1102执行时可以实现上述任一方法实施例的技术方案。

其中,存储器1101和处理器1102之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线1103连接。存储器1101中存储有实现用于多链区块链系统中的跨链处理方法的计算机程序,包括至少一个可以软件或固件的形式存储于存储器1101中的软件功能模块,处理器1102通过运行存储在存储器1101内的软件程序以及模块,从而执行各种功能应用以及数据处理。

存储器1101可以是,但不限于,随机存取存储器(randomaccessmemory,简称:ram),只读存储器(readonlymemory,简称:rom),可编程只读存储器(programmableread-onlymemory,简称:prom),可擦除只读存储器(erasableprogrammableread-onlymemory,简称:eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,简称:eeprom)等。其中,存储器1101用于存储程序,处理器1102在接收到执行指令后,执行程序。进一步地,上述存储器1101内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。

处理器1102可以是一种集成电路芯片,具有信号的处理能力。上述的处理器1102可以是通用处理器,包括中央处理器(centralprocessingunit,简称:cpu)、网络处理器(networkprocessor,简称:np)等。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。可以理解,图11的结构仅为示意,还可以包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。图11中所示的各组件可以采用硬件和/或软件实现。

需要说明的是,本实施例提供的电子设备包括但不限于以下中的至少一个:用户侧设备、网络侧设备。用户侧设备包括但不限于计算机、智能手机、平板电脑、数字广播终端、消息收发设备、游戏控制台、个人数字助理等。网络侧设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机组成的一个超级虚拟计算机。

本实施例提供的电子设备,可以用于执行上述任一方法实施例提供的应用于源链的跨链处理方法,和/或,上述任一方法实施例提供的应用于目标链的跨链处理方法,其实现原理和技术效果类似,此处不再赘述。

本发明实施例还提供一种多链区块链系统,可以包括:一个系统链和多个子区块链;多个子区块链的网络拓扑结构、共识算法和组织参与方相同;系统链包括账号与子区块链标识的映射关系,用于根据账号确定与之对应的子区块链标识;多个子区块链中的源链可以使用应用于源链的用于多链区块链系统中的跨链处理方法进行跨链处理;多个子区块链中的目标链可以使用应用于目标链的用于多链区块链系统中的跨链处理方法进行跨链处理。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现上述任一方法实施例提供的用于多链区块链系统中的跨链处理方法方法。本实施例中的计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备,可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如ssd)等。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1