用于实现跨链消息处理的方法以及设备与流程

文档序号:17356025发布日期:2019-04-09 21:40阅读:253来源:国知局
用于实现跨链消息处理的方法以及设备与流程

本公开内容属于区块链技术领域,尤其涉及一种用于实现跨链消息处理的方法以及一种用于实现跨链消息处理的设备。



背景技术:

区块链(blockchain)技术是一种基于去中心化的对等网络的技术,其将密码学原理与共识机制相结合来保障分布式各节点的数据连贯和持续,从而实现信息即时验证、可追溯、难篡改和无法屏蔽之目的,进而创造了一套隐私、高效、安全的共享价值体系。

区块链根据访问权限通常分为公有链、联盟链和私有链。其中,公有链是指任何人都可以根据协议接入并且参与共识的区块链;联盟链是指其共识过程受到预选节点控制的区块链;私有链是指所有权限都在一个组织中,并受该组织任意控制的区块链。

随着区块链技术的不断发展,区块链系统之间存在的交互需要,例如,通过订阅消息和发布消息在不同区块链之间进行消息通信。另外,区块链之间交互的消息处理通常需要考虑实用性、灵活性、可扩展性和安全性。实用性是指不同区块链之间如何实现消息的通信。灵活性和可扩展性是指不同区块链之间交互的消息类型、消息内容如何根据参与交互的区块链的需求来确定。安全性是指如何实现不同区块链之间交互的消息是安全可控的。



技术实现要素:

由于现有技术中的区块链之间的信息交互基本上是通过在区块链之间订阅消息和发布消息来实现的,无法同时实现跨区块链的信息处理的实用性、灵活性、可扩展性和安全性。

针对上述问题,本公开内容的第一方面提出了一种用于实现跨链消息处理的方法,所述方法包括:

接收并保存一个或多个区块链登记信息,其中,每一个区块链登记信息包括所述区块链的区块链名称、区块链标识、区块链类型以及所述区块链所支持的消息类型;

接收注册请求,其中,所述注册请求包括接收方区块链的区块链名称、区块链标识,发送方区块链的区块链名称、区块链标识以及请求获取的消息名称、消息类型;

发送所述注册请求;

接收授权通知,其中,所述授权通知包括所述发送方区块链的区块链名称、区块链标识,所授权的接收方区块链的区块链名称、区块链标识以及所授权的消息名称、消息类型;

将所述授权通知保存在注册消息表中;

接收发送方消息,其中,所述发送方消息包括消息名称、消息类型以及消息内容;以及

基于所述注册消息表,发送所接收到的发送方消息。

在根据本公开内容的第一方面的实施例中,发送所述注册请求进一步包括:

确定是否保存了所述注册请求中的发送方区块链的区块链名称和区块链标识;

在确定存在所述发送方区块链的区块链名称和区块链标识的情况下,向所述发送方区块链的客户端发送所述注册请求。

在根据本公开内容的第一方面的实施例中,在接收并保存一个或多个区块链登记信息之后,所述方法进一步包括:

接收查询请求,其中,所述查询请求包括查询任一区块链所支持的消息类型、所述区块链的区块链名称、区块链标识以及区块链类型;

确定是否保存了所述查询请求中要查询的区块链信息;

在确定存在所述查询请求中要查询的区块链信息的情况下,返回与所述查询请求相对应的信息。

在根据本公开内容的第一方面的实施例中,基于所述注册消息表发送所接收到的发送方消息进一步包括:

基于所述注册消息表确定与所述发送方消息中的发送方区块链的区块链名称、区块链标识、所述消息名称以及所述消息类型相匹配的接收方区块链的区块链名称和区块链标识;

向所匹配的接收方区块链发送所述发送方消息。

在根据本公开内容的第一方面的实施例中,在将所述授权通知保存在注册消息表中之后,所述方法进一步包括:

发送授权结果,其中,所述授权结果包括所述发送方区块链是否同意向所述接收方区块链发送所述注册请求中请求获取的消息。

在根据本公开内容的第一方面的实施例中,所述消息类型至少包括:区块链节点事件类消息、区块事件类消息、智能合约事件类消息、系统类消息以及交易事件类消息;所述区块链类型至少包括公有链和联盟链。

本公开内容的第二方面提出了一种用于实现跨链消息处理的方法,所述方法包括:

发送区块链登记信息,其中,所述区块链登记信息包括所述区块链的区块链名称、区块链标识、区块链类型以及所述区块链所支持的消息类型;

发送注册请求,其中,所述注册请求包括接收方区块链的区块链名称、区块链标识,发送方区块链的区块链名称、区块链标识以及请求获取的消息名称、消息类型;

接收所述发送方消息,其中,所述发送方消息是所述注册请求所请求获取的消息名称、消息类型以及消息内容。

在根据本公开内容的第二方面的实施例中,在发送区块链登记信息之后,所述方法进一步包括:

发送查询请求,其中,所述查询请求包括查询任一区块链所支持的消息类型、所述区块链的区块链名称、区块链标识以及区块链类型;

在确定所述查询请求中要查询的区块链信息被登记的情况下,接收与所述查询请求相对应的信息。

在根据本公开内容的第二方面的实施例中,在发送注册请求之后,所述方法进一步包括:

接收授权结果,其中,所述授权结果包括所述发送方区块链是否同意向所述接收方区块链发送所述注册请求中请求获取的消息。

本公开内容的第三方面提出了一种用于实现跨链消息处理的方法,所述方法包括:

发送区块链登记信息,其中,所述区块链登记信息包括所述区块链的区块链名称、区块链标识、区块链类型以及所述区块链所支持的消息类型;

接收注册请求,其中,所述注册请求包括接收方区块链的区块链名称、区块链标识,发送方区块链的区块链名称、区块链标识以及请求获取的消息名称、消息类型;

基于授权策略确定是否对所述接收方区块链进行授权;

在确定对所述接收方区块链进行授权的情况下,发送授权通知,其中,所述授权通知包括所述发送方区块链的区块链名称、区块链标识,所授权的接收方区块链的区块链名称、区块链标识以及所授权的消息名称、消息类型;

发送请求消息,其中,所述请求消息包括所述注册请求中所请求获取的消息名称以及消息类型;

接收发送方消息,其中,所述发送方消息包括所述注册请求中所请求的消息名称、消息类型以及消息内容;

发送所述发送方消息。

在根据本公开内容的第三方面的实施例中,基于授权策略确定是否对所述接收方区块链进行授权进一步包括:

在所述发送方区块链是联盟链类型的情况下,当所述接收方区块链请求获取的消息类型是系统类消息时,对所述接收方区块链进行授权;

在所述发送方区块链是公有链类型的情况下,当所述接收方区块链请求获取的消息类型是系统类消息、交易事件类消息、区块链节点事件类消息以及区块事件类消息中的一种或多种时,对所述接收方区块链进行授权;或者

在所述接收方区块链存在于白名单中的情况下,对所述接收方区块链进行授权,其中,所述白名单是允许获得发送方区块链消息的区块链名单列表。

在根据本公开内容的第三方面的实施例中,在发送区块链登记信息之后,所述方法进一步包括:

发送查询请求,其中,所述查询请求包括查询任一区块链所支持的消息的类型、所述区块链的区块链名称、区块链标识以及区块链类型;

在确定所述查询请求中要查询的区块链信息被登记的情况下,接收与所述查询请求相对应的信息。

本公开内容的第四方面提出了一种用于实现跨链消息处理的设备,所述设备包括:

处理器;以及

存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:

接收并保存一个或多个区块链登记信息,其中,每一个区块链登记信息包括所述区块链的区块链名称、区块链标识、区块链类型以及所述区块链所支持的消息类型;

接收注册请求,其中,所述注册请求包括接收方区块链的区块链名称、区块链标识,发送方区块链的区块链名称、区块链标识以及请求获取的消息名称、消息类型;

发送所述注册请求;

接收授权通知,其中,所述授权通知包括所述发送方区块链的区块链名称、区块链标识,所授权的接收方区块链的区块链名称、区块链标识以及所授权的消息名称、消息类型;

将所述授权通知保存在注册消息表中;

接收发送方消息,其中,所述发送方消息包括消息名称、消息类型以及消息内容;以及

基于所述注册消息表,发送所接收到的发送方消息。

在根据本公开内容的第四方面的实施例中,发送所述注册请求进一步包括:

确定是否保存了所述注册请求中的发送方区块链的区块链名称和区块链标识;

在确定存在所述发送方区块链的区块链名称和区块链标识的情况下,向所述发送方区块链的客户端发送所述注册请求。

在根据本公开内容的第四方面的实施例中,在接收并保存一个或多个区块链登记信息之后,当所述指令执行时使得所述处理器进一步执行以下操作:

接收查询请求,其中,所述查询请求包括查询任一区块链所支持的消息类型、所述区块链的区块链名称、区块链标识以及区块链类型;

确定是否保存了所述查询请求中要查询的区块链信息;

在确定存在所述查询请求中要查询的区块链信息的情况下,返回与所述查询请求相对应的信息。

在根据本公开内容的第四方面的实施例中,基于所述注册消息表发送所接收到的发送方消息进一步包括:

基于所述注册消息表确定与所述发送方消息中的发送方区块链的区块链名称、区块链标识、所述消息名称以及所述消息类型相匹配的接收方区块链的区块链名称和区块链标识;

向所匹配的接收方区块链发送所述发送方消息。

在根据本公开内容的第四方面的实施例中,在将所述授权通知保存在注册消息表中之后,当所述指令执行时使得所述处理器进一步执行以下操作:

发送授权结果,其中,所述授权结果包括所述发送方区块链是否同意向所述接收方区块链发送所述注册请求中请求获取的消息。

在根据本公开内容的第四方面的实施例中,所述消息类型至少包括:区块链节点事件类消息、区块事件类消息、智能合约事件类消息、系统类消息以及交易事件类消息;所述区块链类型至少包括公有链和联盟链。

本公开内容的第五方面提出了一种用于实现跨链消息处理的设备,所述设备包括:

处理器;

存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:

发送区块链登记信息,其中,所述区块链登记信息包括所述区块链的区块链名称、区块链标识、区块链类型以及所述区块链所支持的消息类型;

发送注册请求,其中,所述注册请求包括接收方区块链的区块链名称、区块链标识,发送方区块链的区块链名称、区块链标识以及请求获取的消息名称、消息类型;以及

接收所述发送方消息,其中,所述发送方消息是所述注册请求所请求获取的消息名称、消息类型以及消息内容。

在根据本公开内容的第五方面的实施例中,在发送区块链登记信息之后,当所述指令执行时使得所述处理器进一步执行以下操作:

发送查询请求,其中,所述查询请求包括查询任一区块链所支持的消息类型、所述区块链的区块链名称、区块链标识以及区块链类型;

在确定所述查询请求中要查询的区块链信息被登记的情况下,接收与所述查询请求相对应的信息。

在根据本公开内容的第五方面的实施例中,在发送注册请求之后,当所述指令执行时使得所述处理器进一步执行以下操作:

接收授权结果,其中,所述授权结果包括所述发送方区块链是否同意向所述接收方区块链发送所述注册请求中请求获取的消息。

本公开内容的第六方面提出了一种用于实现跨链消息处理的设备,所述设备包括:

处理器;以及

存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:

发送区块链登记信息,其中,所述区块链登记信息包括所述区块链的区块链名称、区块链标识、区块链类型以及所述区块链所支持的消息类型;

接收注册请求,其中,所述注册请求包括接收方区块链的区块链名称、区块链标识,发送方区块链的区块链名称、区块链标识以及请求获取的消息名称、消息类型;

基于授权策略确定是否对所述接收方区块链进行授权;

在确定对所述接收方区块链进行授权的情况下,发送授权通知,其中,所述授权通知包括所述发送方区块链的区块链名称、区块链标识,所授权的接收方区块链的区块链名称、区块链标识以及所授权的消息名称、消息类型;

发送请求消息,其中,所述请求消息包括所述注册请求中所请求获取的消息名称以及消息类型;

接收发送方消息,其中,所述发送方消息包括所述注册消息中所请求的消息名称、消息类型以及消息内容;

发送所述发送方消息。

在根据本公开内容的第六方面的实施例中,基于授权策略确定是否对所述接收方区块链进行授权进一步包括:

在所述发送方区块链是联盟链类型的情况下,当所述接收方区块链请求获取的消息类型是系统类消息时,对所述接收方区块链进行授权;

在所述发送方区块链是公有链类型的情况下,当所述接收方区块链请求获取的消息类型是系统类消息、交易事件类消息、区块链节点事件类消息以及区块事件类消息中的一种或多种时,对所述接收方区块链进行授权;或者

在所述接收方区块链存在于白名单中的情况下,对所述接收方区块链进行授权,其中,所述白名单是允许获得所述发送方区块链消息的区块链名单列表。

在根据本公开内容的第六方面的实施例中,在发送区块链登记信息之后,当所述指令执行时使得所述处理器进一步执行以下操作:

发送查询请求,其中,所述查询请求包括查询任一区块链所支持的消息的类型、所述区块链的区块链名称、区块链标识以及区块链类型;

在确定所述查询请求中要查询的区块链信息被登记的情况下,接收与所述查询请求相对应的信息。

依据本公开内容的用于实现跨链消息处理的方法以及设备能够实现每个区块链节点与该区块链的客户端进行安全通信、客户端与服务端节点进行安全通信,接收方区块链的客户端通过服务端节点发起注册请求,发送方区块链的客户端确定是否授权该接收方区块链的客户端获取其消息,并且在服务端节点接收到发送方区块链的消息的时候能够将其发送给相应的接收方区块链的客户端,从而实现了跨链交易的实用性、灵活性、可扩展性和安全性。

附图说明

结合附图并参考以下详细说明,本公开的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实施例,在附图中:

图1为依据本公开内容的用于实现跨链消息处理的方法的示例性流程图;

图2为依据本公开内容的用于实现跨链消息处理的方法的示例性系统的示意图;以及

图3示出了依据本公开内容实的用于实现跨链消息处理的设备300的示意图。

具体实施方式

以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。

本文所使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”,表示还可以包括其他内容。术语“基于”是“至少部分地基于"。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”,等等。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。

本公开内容的实施例主要关注以下技术问题:现有的跨链消息通信一般是通过在不同区块链之间订阅消息和发布消息来实现,但是无法灵活地动态申请对某个消息的接收和注销对某个消息的接收,也不能确保消息控制的实用性以及消息处理的及时性。

为了解决上述问题,本公开内容所公开的用于实现跨链消息处理的方法及设备能够使得接收方区块链的客户端动态地发起注册请求,并且发送方区块链的客户端根据授权策略确定是否授权接收方区块链接收来自发送方区块链的消息,从而保证了消息控制的实用性;此外,本文所公开的设备中包括多个服务端系统节点,所有服务端系统节点之间同步所有数据也保证消息处理的一致性和及时性。

图1示出了用于实现跨链消息处理的方法的示例性流程图。本实施例中,第一区块链的区块链节点1010与第一客户端1020进行通信,第二区块链的区块链节点1050与第二客户端1040进行通信,并且第一客户端1020经由服务端系统节点1030与第二客户端1040进行通信,进而利用这种结构实现对跨越不同的区块链(例如,第一区块链和第二区块链)的消息的处理。

步骤101:第一区块链的区块链节点1010向其客户端(也即,图1中的第一客户端1020)发送第一区块链登记信息。其中,第一区块链登记信息包括第一区块链的区块链名称(例如,b)、区块链标识(例如,b_b)、区块链类型以及第一区块链所支持的消息类型。

在本实施例中,所述消息类型至少包括:区块链节点事件类消息(例如,区块链节点重启消息、区块链节点错误消息、区块链节点警告消息、共识成功消息、共识失败消息等)、区块事件类消息(例如,区块创建、区块写入成功、区块写入失败等)、智能合约事件类消息(例如,智能合约正常执行、智能合约异常处理等)、系统类消息以及交易事件类消息(例如,交易成功、交易失败、交易超时等)。同时,所述区块链类型至少包括公有链和联盟链,替代地,所述区块链类型还可以包括私有链。

步骤102:第一客户端1020向服务端系统节点1030发送第一区块链登记信息。

步骤103:第二区块链的区块链节点1050向其客户端(也即,图1中的第二客户端1040)发送第二区块链登记信息。其中,第二区块链登记信息包括该区块链的区块链名称(例如,a)、区块链标识(例如,a_a)、区块链类型以及该区块链所支持的消息类型。

步骤104:第二客户端1040向服务端系统节点1030发送第二区块链登记信息。

在本公开内容中,步骤101-102与步骤103-104没有执行先后的顺序区别,可以同时执行也可以先执行步骤101-102后执行步骤103-104,或者先执行步骤103-104后执行步骤101-102。

步骤105:服务端系统节点1030分别保存第一区块链登记信息和第二区块链登记信息。

在本实施例中,可以存在多个服务端系统节点,在其中一个服务端系统节点1030接收到第一区块链登记信息和第二区块链登记信息的同时,这些区块链登记信息同时保存在其他的服务端系统节点,以保证数据的一致性,并且避免由于其中某个服务端系统节点发生故障时无法对跨链消息进行处理的情况出现。

步骤106:第一客户端1020向服务端系统节点1030发送查询请求。例如,所述查询请求包括查询第二区块链所支持的消息类型、第二区块链的区块链名称、区块链标识以及区块链类型。

步骤107:服务端系统节点1030向第一客户端1020返回与所述查询请求相对应的信息。本步骤具体操作如下:

首先,服务端系统节点1030确定是否保存过所述查询请求中要查询的区块链信息;

其次,在确定存在所述查询请求中要查询的区块链信息的情况下,服务端系统节点1030向第一客户端1020返回与所述查询请求相对应的信息;例如,返回所查询的第二区块链所支持的消息类型、第二区块链的区块链名称、区块链标识以及区块链类型。

步骤108:第一客户端1020向服务端系统节点1030发送注册请求。例如,所述注册请求包括接收方区块链的区块链名称(例如,b)、区块链标识(例如,b_b),发送方区块链的区块链名称(例如,a)、区块链标识(例如,a_a)以及请求获取的消息名称(例如,xxxx)、消息类型(例如,系统类消息)。

步骤109:服务端系统节点1030向第二客户端1040发送该注册请求。在本步骤中具体包括如下操作:

第一,服务端系统节点1030确定是否保存过所述注册请求中的发送方区块链的区块链名称和区块链标识。

第二,在确定存在所述发送方区块链的区块链名称和区块链标识的情况下,向所述发送方区块链的客户端发送所述注册请求。

步骤110:第二客户端1040基于授权策略确定是否对所述接收方区块链进行授权。在本步骤中的授权策略具体如下:

在发送方区块链(例如,第二区块链)是联盟链类型的情况下,当接收方区块链(例如,第一区块链)请求获取的消息类型是系统类消息时,第二客户端1040对该接收方区块链进行授权;当接收方区块链请求获取的消息类型是其他类型(例如,区块链节点事件类消息、区块事件类消息、智能合约事件类消息以及交易事件类消息中的一种或多种)时,第二客户端1040拒绝该接收方区块链的注册请求。在发送方区块链是公有链类型的情况下,当接收方区块链请求获取的消息类型是系统类消息、交易事件类消息、区块链节点事件类消息以及区块事件类消息中的一种或多种时,第二客户端1040对所述接收方区块链进行授权;当接收方区块链请求获取的消息类型是智能合约事件类消息时,第二客户端1040拒绝该接收方区块链的注册请求。

替代地,在第二客户端1040(也即,发送方区块链的客户端)的白名单中存在接收方区块链的信息的情况下,对该接收方区块链进行授权。该白名单是指允许获得发送方区块链消息的区块链名单列表。

步骤111:在确定对所述接收方区块链进行授权的情况下,第二客户端1040向服务端系统节点1030发送授权通知。其中,所述授权通知包括所述发送方区块链的区块链名称、区块链标识,所授权的接收方区块链的区块链名称、区块链标识以及所授权的消息名称、消息类型。

在本公开内容中,当确定拒绝对所述接收方区块链进行授权时,第二客户端1040向服务端系统节点1030发送拒绝授权通知。

步骤112:服务端系统节点1030将所述授权通知保存在注册消息表中。

表一

如表一所示,注册消息表包括发送方区块链名称(例如,a)、发送方区块链标识(例如,a_a)、消息名称(例如,xxxx)、消息类型(例如,系统类消息)、接收方区块链名称(例如,b,c,d)以及接收方区块链标识(例如,b_b,c_c,d_d)。

步骤113:服务端系统节点1030向第一客户端1020发送授权结果。其中,所述授权结果包括发送方区块链是否同意向所述接收方区块链发送所述注册请求中请求获取的消息。

步骤114:在第二客户端1040授权第一区块链获取其注册请求相关的消息时,第二客户端1040向第二区块链的区块链节点1050发送请求消息。其中,所述请求消息包括上述注册请求中所请求获取的消息名称(例如,xxxx)以及消息类型(例如,系统类消息)。

在本实施例中,已经向第二区块链的区块链节点1050发送过的请求消息将不再被第二客户端1040重复发送。

步骤115:第二区块链的区块链节点1050向第二客户端1040返回发送方消息。其中,所述发送方消息包括所述注册消息中所请求的消息名称、消息类型以及消息内容。

在本实施例中,已经从第二区块链的区块链节点1050中接收到的发送方消息将不再被第二客户端1040重复接收。

步骤116:第二客户端1040向服务端系统节点1030发送该发送方消息。

步骤117:服务端系统节点1030基于所述注册消息表向第一客户端1020发送所接收到的发送方消息。

在本实施例中,步骤117的具体操作如下:

首先,基于注册消息表确定与所述发送方消息中的发送方区块链的区块链名称、区块链标识、所述消息名称以及所述消息类型相匹配的接收方区块链的区块链名称和区块链标识。

其次,向所匹配的接收方区块链发送所述发送方消息。

例如,如表一所示,当所接收到的消息的消息名称是xxxx、消息类型是系统类消息并且确定是从第二区块链(也即,区块链名称是a)中接收到的时,将确定将消息名称xxxx、消息类型为系统类消息的发送方消息分别发送给第一区块链(也即,区块链名称是b)的第一客户端1020以及,区块链名称是c、d的客户端。

最后,第一客户端1020根据需要来处理所获得的发送方消息。

在本公开内容所公开的实施例中,区块链客户端(例如,第一客户端1020、第二客户端1040)可以按需动态地向在服务端系统节点中登记的任一其他区块链发送注册请求,并且在授权通过的情况下经由服务端系统节点接收与注册请求相关的消息。另外,在本公开内容中,区块链与其客户端、客户端与服务端系统节点之间的消息处理都是基于约定的算法和算法长度进行加签加密,并且经过验签解密来确保消息通信的安全性。

进一步,本公开内容中的多个服务端系统节点之间实时保持数据同步或者共同使用同一个数据库,以保持数据的一致性;而且多个服务端系统节点之间是采用基于负载均衡的方式对外提供网络通信。

如图2所示,本公开内容公开了用于实现跨链消息处理的系统。在图2中包括第一客户端210、第二客户端220、服务端系统230、第一区块链240以及第二区块链250。另外,在服务端系统230中包括了若干个服务端系统节点(例如,图2中的第一服务端系统节点231、第二服务端系统节点232),使得各个服务端系统节点之间能够随时同步其从不同区块链的客户端所获得的所有消息,以便于在任一服务端系统节点发生故障时,其他服务端系统节点能够替代其完成相应操作。在本文中,第一客户端210、第二客户端220以及服务端系统230中的第一服务端系统节点231或第二服务端系统节点232分别可以相应地实现上述实施例中的第一客户端1020、第二客户端1040、服务端系统节点1030的功能;第一区块链240的区块链节点、第二区块链250的区块链节点分别可以实现上述实施例中的第一区块链的区块链节点1010、第二区块链的区块链节点1050的功能。另外,本文所公开的第一客户端210和第二客户端220可以同时具有上述实施例中的第一客户端1020和第二客户端1040的功能,也即,既可以实现作为发起获取信息请求的客户端又可以作为接受获取信息请求并发送与获取信息请求相对应的消息的客户端。

如图3所示,本文所公开的用于实现跨链消息处理的设备300包括处理器310和存储器320,其中,存储器320被配置为存储指令,使得处理器310执行相应的操作。当设备300作为图1所示的服务端系统节点时,存储器320中存储的指令使得处理器310执行以下动作:

接收并保存一个或多个区块链登记信息,其中,每一个区块链登记信息包括所述区块链的区块链名称、区块链标识、区块链类型以及所述区块链所支持的消息类型;

接收注册请求,其中,所述注册请求包括接收方区块链的区块链名称、区块链标识,发送方区块链的区块链名称、区块链标识以及请求获取的消息名称、消息类型;

发送所述注册请求;

接收授权通知,其中,所述授权通知包括所述发送方区块链的区块链名称、区块链标识,所授权的接收方区块链的区块链名称、区块链标识以及所授权的消息名称、消息类型;

将所述授权通知保存在注册消息表中;

接收发送方消息,其中,所述发送方消息包括消息名称、消息类型以及消息内容;以及

基于所述注册消息表,发送所接收到的发送方消息。

在依据本公开内容的一个实施例中,发送所述注册请求进一步包括:

确定是否保存了所述注册请求中的发送方区块链的区块链名称和区块链标识;

在确定存在所述发送方区块链的区块链名称和区块链标识的情况下,向所述发送方区块链的客户端发送所述注册请求。

在依据本公开内容的一个实施例中,在接收并保存一个或多个区块链登记信息之后,当所述指令执行时使得所述处理器进一步执行以下操作:

接收查询请求,其中,所述查询请求包括查询任一区块链所支持的消息类型、所述区块链的区块链名称、区块链标识以及区块链类型;

确定是否保存了所述查询请求中要查询的区块链信息;

在确定存在所述查询请求中要查询的区块链信息的情况下,返回与所述查询请求相对应的信息。

在依据本公开内容的一个实施例中,基于所述注册消息表发送所接收到的发送方消息进一步包括:

基于所述注册消息表确定与所述发送方消息中的发送方区块链的区块链名称、区块链标识、所述消息名称以及所述消息类型相匹配的接收方区块链的区块链名称和区块链标识;

向所匹配的接收方区块链发送所述发送方消息。

在依据本公开内容的一个实施例中,在将所述授权通知保存在注册消息表中之后,当所述指令执行时使得所述处理器进一步执行以下操作:发送授权结果,其中,所述授权结果包括所述发送方区块链是否同意向所述接收方区块链发送所述注册请求中请求获取的消息。

在依据本公开内容的一个实施例中,所述消息类型至少包括:区块链节点事件类消息、区块事件类消息、智能合约事件类消息、系统类消息以及交易事件类消息;所述区块链类型至少包括公有链和联盟链。

当设备300作为图1所示的第一客户端时,存储器320中存储的指令使得处理器310执行以下动作:

发送区块链登记信息,其中,所述区块链登记信息包括所述区块链的区块链名称、区块链标识、区块链类型以及所述区块链所支持的消息类型;

发送注册请求,其中,所述注册请求包括接收方区块链的区块链名称、区块链标识,发送方区块链的区块链名称、区块链标识以及请求获取的消息名称、消息类型;以及

接收所述发送方消息,其中,所述发送方消息是所述注册请求所请求获取的消息名称、消息类型以及消息内容。

在依据本公开内容的一个实施例中,在发送区块链登记信息之后,当所述指令执行时使得所述处理器进一步执行以下操作:

发送查询请求,其中,所述查询请求包括查询任一区块链所支持的消息类型、所述区块链的区块链名称、区块链标识以及区块链类型;

在确定所述查询请求中要查询的区块链信息被登记的情况下,接收与所述查询请求相对应的信息。

在依据本公开内容的一个实施例中,在发送注册请求之后,当所述指令执行时使得所述处理器进一步执行以下操作:接收授权结果,其中,所述授权结果包括所述发送方区块链是否同意向所述接收方区块链发送所述注册请求中请求获取的消息。

当设备300作为图1所示的第二客户端时,存储器320中存储的指令使得处理器310执行以下动作:

发送区块链登记信息,其中,所述区块链登记信息包括所述区块链的区块链名称、区块链标识、区块链类型以及所述区块链所支持的消息类型;

接收注册请求,其中,所述注册请求包括接收方区块链的区块链名称、区块链标识,发送方区块链的区块链名称、区块链标识以及请求获取的消息名称、消息类型;

基于授权策略确定是否对所述接收方区块链进行授权;

在确定对所述接收方区块链进行授权的情况下,发送授权通知,其中,所述授权通知包括所述发送方区块链的区块链名称、区块链标识,所授权的接收方区块链的区块链名称、区块链标识以及所授权的消息名称、消息类型;

发送请求消息,其中,所述请求消息包括所述注册请求中所请求获取的消息名称以及消息类型;

接收发送方消息,其中,所述发送方消息包括所述注册消息中所请求的消息名称、消息类型以及消息内容;

发送所述发送方消息。

在依据本公开内容的一个实施例中,基于授权策略确定是否对所述接收方区块链进行授权进一步包括:

在所述发送方区块链是联盟链类型的情况下,当所述接收方区块链请求获取的消息类型是系统类消息时,对所述接收方区块链进行授权;

在所述发送方区块链是公有链类型的情况下,当所述接收方区块链请求获取的消息类型是系统类消息、交易事件类消息、区块链节点事件类消息以及区块事件类消息中的一种或多种时,对所述接收方区块链进行授权;或者

在所述接收方区块链存在于白名单中的情况下,对所述接收方区块链进行授权,其中,所述白名单是允许获得发送方区块链消息的区块链名单列表。

在依据本公开内容的一个实施例中,在发送区块链登记信息之后,当所述指令执行时使得所述处理器进一步执行以下操作:

发送查询请求,其中,所述查询请求包括查询任一区块链所支持的消息的类型、所述区块链的区块链名称、区块链标识以及区块链类型;

在确定所述查询请求中要查询的区块链信息被登记的情况下,接收与所述查询请求相对应的信息。

本文所公开的不同的用于实现跨链消息处理的设备能够互相配合以实现在这些设备以及相应的区块链节点正常工作的情况下,使得对跨链消息的控制和处理保持实用性、灵活性、可扩展性和安全性;使得发送注册请求的接收方区块链的客户端根据发送方区块链的类型、消息类型确定是否发送注册请求,同时可以灵活地增加对其感兴趣的消息的正常请求;另外,确保在区块链客户端与服务端系统节点之间、区块链节点与该区块链客户端之间的跨链消息能够基于约定的算法和算法长度进行加签加密,并且经过验签解密来确保跨链消息的安全性。

替代地,上述的方法能够通过计算机程序产品来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

应当注意,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。

以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。

虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

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