基于多区块链间的通信方法、装置、客户端及存储介质与流程

文档序号:19311835发布日期:2019-12-03 23:36阅读:133来源:国知局
基于多区块链间的通信方法、装置、客户端及存储介质与流程

本发明涉及区块链技术领域,尤其涉及一种基于多区块链间的通信方法、装置、客户端及存储介质。



背景技术:

区块链是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链具有去中心化、反篡改、数据一致性存储、过程透明可追踪等技术优势,其被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。

目前,已有很多组织或机构发布公链、私链及联盟链,但是,每条链都是相互独立的,各种区块链网络之间互相交换信息是通过线下交换等方式来实现的,这种方式很难满足跨链通信的需求。

因此,如何实现跨链通信是一个亟待解决的技术问题。



技术实现要素:

鉴于以上内容,有必要提供一种基于多区块链间的通信方法、装置、客户端及存储介质,能够实现跨链通信。

本发明的第一方面提供一种基于多区块链间的通信方法,应用于第一客户端,所述第一客户端具备加入多条不同区块链的功能,所述方法包括:

接收在第一区块链上触发的查询请求,所述查询请求用于请求查询第二区块链上的信息;

判断所述第一客户端是否加入所述第二区块链;

若所述第一客户端加入所述第二区块链,在所述第二区块链上发送所述查询请求,获得第一查询结果,并通过所述第二区块链将所述第一查询结果回传至所述第一区块链;

在所述第一区块链上广播针对所述第一查询结果的验证请求,其中,由所述第一区块链上的第二客户端对所述第一查询结果进行验证,所述第第二客户端为同时加入所述第一区块链和所述第二区块链的客户端;

统计所述第二客户端对所述第一查询结果的验证通过的第一数量;

若所述第一数量超过预设阈值,确定所述第一查询结果生效。

在一种可能的实现方式中,所述在所述第一区块链上广播针对所述第一查询结果的验证请求之后,以及所述统计所述第二客户端对所述第一查询结果的验证通过的第一数量之前,所述方法还包括:

接收所述第二客户端针对所述查询请求返回的待验证结果;

判断所述第一查询结果与所述待验证结果是否一致;

若所述待验证结果与所述第一查询结果一致,确定所述第二客户端对所述第一查询结果的验证通过。

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

若所述第一客户端未加入所述第二区块链,在所述第一区块链上广播所述查询请求。

在一种可能的实现方式中,所述接收在第一区块链上触发的查询请求之前,所述方法还包括:

为所述第一客户端在其要加入的每条区块链生成账户信息。

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

接收在区块链列表上输入的区块链选择指令,所述区块链列表包括所述第一客户端能够加入的多条区块链;

响应所述区块链选择指令,将被选择的至少一条区块链加入至所述第一客户端上。

本发明的第二方面提供一种通信装置,运行于第一客户端,所述第一客户端具备加入多条不同区块链的功能,所述通信装置包括:

接收模块,用于接收在第一区块链上触发的查询请求,所述查询请求用于请求查询第二区块链上的信息;

判断模块,用于判断所述第一客户端是否加入所述第二区块链;

传输模块,用于若所述第一客户端加入所述第二区块链,在所述第二区块链上发送所述查询请求,获得第一查询结果,并通过所述第二区块链将所述第一查询结果回传至所述第一区块链;

广播模块,用于在所述第一区块链上广播针对所述第一查询结果的验证请求,其中,由所述第一区块链上的第二客户端对所述第一查询结果进行验证,所述第二客户端为同时加入所述第一区块链和所述第二区块链的客户端;

统计模块,用于统计所述第二客户端对所述第一查询结果的验证通过的第一数量;

确定模块,用于若所述第一数量超过预设阈值,确定所述第一查询结果生效。

在一种可能的实现方式中,所述广播模块,还用于若所述第一客户端未加入所述第二区块链,在所述第一区块链上广播所述查询请求。

在一种可能的实现方式中,所述通信装置还包括:

生成模块,用于在所述接收模块接收在第一区块链上触发的查询请求之前,为所述第一客户端在其要加入的每条区块链生成账户信息。

本发明的第三方面提供一种第一客户端,所述第一客户端包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现所述的基于多区块链间的通信方法。

本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于多区块链间的通信方法。

由以上技术方案,本发明中,可以接收在第一区块链上触发的查询请求,所述查询请求用于请求查询第二区块链上的信息,并判断所述第一客户端是否加入所述第二区块链;若所述第一客户端加入所述第二区块链,在所述第二区块链上发送所述查询请求,获得第一查询结果,并通过所述第二区块链将所述第一查询结果回传至所述第一区块链;在所述第一区块链上广播针对所述第一查询结果的验证请求,其中,由所述第一区块链上的第二客户端对所述第一查询结果进行验证,所述第第二客户端为同时加入所述第一区块链和所述第二区块链的客户端;进一步地,即可统计所述第二客户端对所述第一查询结果的验证通过的第一数量;若所述第一数量超过预设阈值,确定所述第一查询结果生效。可见,本发明中,可以通过选用能同时在多条区块链上工作的客户端充当区块链间的媒介,不同区块链间需要通信时,可以在全网广播找到同时加入多条区块链间的客户端,客户端查询后的结果仍然需要同时加入多条区块链的客户端的确认,从而不仅实现了跨链通信,同时,还保证了通信结果的可靠性。

附图说明

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

图1是本发明公开的一种基于多区块链间的通信方法的较佳实施例的流程图。

图2是本发明公开的一种通信装置的较佳实施例的功能模块图。

图3是本发明实现基于多区块链间的通信方法的较佳实施例的第一客户端的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明所述的客户端包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述客户端可以包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理pda等。

请参见图1,图1是本发明公开的一种基于多区块链间的通信方法的较佳实施例的流程图。其中,所述基于多区块链间的通信方法应用于第一客户端,所述第一客户端具备加入多条不同区块链的功能,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

s11、第一客户端接收在第一区块链上触发的查询请求。

当存在互相授权的多条区块链时,可以对多条区块链对应的客户端进行封装、整合以及授权,即实现客户端的多功能化,这样,就获得能够加入多条区块链的客户端,也即获得的客户端具备了能够加入多条区块链的功能。其中,对多条区块链对应的客户端进行封装、整合属于现有技术,在此不再赘述,授权指的是获取区块链对应商家的使用权限,如果商家开发了内部接口,即可通过内部接口调用多条区块链,实现多条区块链的互相授权。

本发明实施例中,第一客户端具备加入多条不同区块链的功能,即所述第一客户端可以加入至少两条区块链,具体加入多少由用户决定。第一客户端为区块链网络上任意一个客户端。

本发明实施例中,当需要在第二区块链上查询地址信息时,第一客户端可以接收在第一区块链上触发的查询请求,所述查询请求用于请求查询第二区块链上的信息,可以包括但不限于第二区块链上的某账户的地址信息,某账户的余额、交易记录等信息。其中,地址信息是指存放token的地址。

其中,所述第一客户端可以仅加入第一区块链,或者,所述第一客户端可以同时加入第一区块链和第二区块链,或者,所述第一客户端可以同时加入三条以上的区块链,本发明实施例不做限定。

作为一种可选的实施方式,步骤s11之前,所述方法还包括:

为所述第一客户端在其要加入的每条区块链生成账户信息。

在该可选的实施方式中,由于第一客户端是通过对多个客户端进行封装、整合以及授权之后获得的,而处理之前多个客户端的区块链地址对于第一客户端已经不再适用,因此,针对所述第一客户端,需要为所述第一客户端在其要加入的每条区块链生成账户信息,比如所述第一客户端上存放token的账户的地址信息。其中,地址信息可以是一个地址在多条区块链上使用,也可以是每条区块链生成一个地址。用户首次使用时可以选择创建多条区块链共同使用的地址,也可以选择创建单独的地址,每个地址仅能在自己链上使用。通常,如果多条区块链使用相同的地址格式时,可以使用一个地址对应多条区块链,当使用不同的地址格式时,只能一条区块链对应一个地址。

作为一种可选的实施方式,所述方法还包括:

接收在区块链列表上输入的区块链选择指令,所述区块链列表包括所述第一客户端能够加入的多条区块链;

响应所述区块链选择指令,将被选择的至少一条区块链加入至所述第一客户端上。

在该可选的实施方式中,虽然第一客户端具备了能够加入多条区块链的功能,但是所述第一客户端加入几条区块链是由用户的选择决定的,用户可以在区块链列表上进行选择输入区块链选择指令,所述区块链列表包括所述第一客户端能够加入的多条区块链;所述第一客户端即可响应所述区块链选择指令,将被选择的至少一条区块链加入至所述第一客户端上,即所述第一客户端可以仅加入一条区块链,也可以加入多条区块链。

s12、第一客户端判断所述第一客户端是否加入所述第二区块链,若是,执行步骤s13,若否,结束本流程。

本发明实施例中,第一客户端需要先判断所述第一客户端是否加入所述第二区块链,如果所述第一客户端加入所述第二区块链,则可以通过所述第一客户端本身来响应查询请求,如果所述第一客户端未加入所述第二区块链,需要借助其他同时加入第一区块链以及第二区块链的客户端来响应查询请求。

作为一种可选的实施方式,所述方法还包括:

若所述第一客户端未加入所述第二区块链,在所述第一区块链上广播所述查询请求。

在该可选的实施方式中,所述第一客户端仅加入了所述第一区块链,当所述第一客户端在第一区块链上接收到触发的查询请求时,由于所述第一客户端未加入所述第二区块链,因此,所述第一客户端需要借助同时加入所述第一区块链和所述第二区块链的客户端来响应所述查询请求,具体的,所述第一客户端可以在所述第一区块链上广播所述查询请求,所述第一区块链上的其他客户端检查自己是否同时加入了所述第一区块链和所述第二区块链,未同时加入所述第一区块链以及所述第二区块链的客户端丢弃此广播的查询请求,而由同时加入所述第一区块链和所述第二区块链的第三客户端针对所述查询请求在所述第二区块链上进行查询,获得第二地址查询结果,并通过所述第二区块链将所述第二地址查询结果回传至所述第一区块链。所述第一客户端可以在所述第一区块链上接收所述第三客户端返回的所述第二地址查询结果,为了防止客户端作恶,还需要在所述第一区块链上广播针对所述第二地址查询结果的验证请求,所述第一区块链上同时加入所述第一区块链和所述第二区块链的第四客户端(除了第三客户端之外的其他客户端)对所述第二地址查询结果进行验证,并将验证结果返回给所述第一客户端,所述第一客户端可以统计所述第四客户端对所述第二地址查询结果验证通过的第二数量,若所述第二数量超过所述预设阈值,表明大部分的客户端验证所述第二地址查询结果通过,所述第一客户端可以确定所述第二地址查询结果生效,从而实现了通过借助同时加入所述第一区块链以及所述第二区块链的客户端来完成所述查询请求,同时也确保了地址查询结果的可靠性。

s13、第一客户端在所述第二区块链上发送所述查询请求,获得第一查询结果,并通过所述第二区块链将所述第一查询结果回传至所述第一区块链。

本发明实施例中,所述第一客户端同时加入所述第一区块链和所述第二区块链,当在第一区块链上触发查询请求时,所述第一客户端可以直接向所述第二区块链上发送所述查询请求,所述第一客户端在所述第二区块链上响应所述查询请求,获得第一查询结果,并通过所述第一客户端内部的接口将所述第二区块链上查询到的所述第一查询结果回传至所述第一区块链,从而实现了跨链通信。

s14、第一客户端在所述第一区块链上广播针对所述第一查询结果的验证请求。

本发明实施例中,为了防止客户端作恶,第一客户端还需要在所述第一区块链上广播针对所述第一查询结果的验证请求。所述第一区块链上同时加入所述第一区块链和所述第二区块链的第二客户端(除了所述第一客户端之外的客户端)对所述第一查询结果进行验证,而其他未同时加入所述第一区块链和所述第二区块链的客户端丢弃此广播的验证请求。其中,所述第二客户端可以针对所述查询请求在所述第二区块链上进行地址查询,获得待验证结果,也即所述第二客户端自身查询到的地址结果。

作为一种可选的实施方式,步骤s14之后,以及步骤s15之前,所述方法还包括:

接收所述第二客户端针对所述查询请求返回的待验证结果;

判断所述第一查询结果与所述待验证结果是否一致;

若所述待验证结果与所述第一查询结果一致,确定所述第二客户端对所述第一查询结果的验证通过。

在该可选的实施方式中,所述第二客户端在对所述第一查询结果进行验证,获得待验证结果之后,还需要将所述待验证结果返回给所述第一客户端,所述第一客户端接收到所述待验证结果之后,需要判断所述第一查询结果与所述待验证结果是否一致;如果所述待验证结果与所述第一查询结果一致,表明查询到的所述第一查询结果有效,即可确定所述第二客户端对所述第一查询结果的验证通过。

s15、第一客户端统计所述第二客户端对所述第一查询结果的验证通过的第一数量。

本发明实施例中,同时加入所述第一区块链和所述第二区块链的第二客户端有多个,为了判定所述第一查询结果是否有效,第一客户端需要统计所述第二客户端对所述第一查询结果的验证通过的第一数量。

s16、若所述第一数量超过预设阈值,第一客户端确定所述第一查询结果生效。

其中,可以预先设置一个预设阈值,比如第二客户端有a个,可以设置预设阈值为a/2个,如果所述第一数量超过预设阈值,表明大部分的第二客户端都验证通过了,第一客户端即可确定所述第一查询结果生效,也即地址查询成功了,从而确保了地址查询结果的可靠性。

在图1所描述的方法流程中,可以接收在第一区块链上触发的查询请求,所述查询请求用于请求查询第二区块链上的信息,并判断所述第一客户端是否加入所述第二区块链;若所述第一客户端加入所述第二区块链,在所述第二区块链上发送所述查询请求,获得第一查询结果,并通过所述第二区块链将所述第一查询结果回传至所述第一区块链;在所述第一区块链上广播针对所述第一查询结果的验证请求,其中,由所述第一区块链上的第二客户端对所述第一查询结果进行验证,所述第第二客户端为同时加入所述第一区块链和所述第二区块链的客户端;进一步地,即可统计所述第二客户端对所述第一查询结果的验证通过的第一数量;若所述第一数量超过预设阈值,确定所述第一查询结果生效。可见,本发明中,可以通过选用能同时在多条区块链上工作的客户端充当区块链间的媒介,不同区块链间需要通信时,可以在全网广播找到同时加入多条区块链间的客户端,客户端查询后的结果仍然需要同时加入多条区块链的客户端的确认,从而不仅实现了跨链通信,同时,还保证了通信结果的可靠性。

以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。

请参见图2,图2是本发明公开的一种通信装置的较佳实施例的功能模块图。

在一些实施例中,所述通信装置运行于第一客户端中,所述第一客户端具备加入多条不同区块链的功能。所述通信装置可以包括多个由程序代码段所组成的功能模块。所述通信装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的基于多区块链间的通信方法中的部分或全部步骤。

本实施例中,所述通信装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块201、判断模块202、传输模块203、广播模块204、统计模块205及确定模块206。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。

其中:

所述接收模块201,用于接收在第一区块链上触发的查询请求,所述查询请求用于请求查询第二区块链上的信息;

当存在互相授权的多条区块链时,可以对多条区块链对应的客户端进行封装、整合以及授权,即实现客户端的多功能化,这样,就获得能够加入多条区块链的客户端,也即获得的客户端具备了能够加入多条区块链的功能。其中,对多条区块链对应的客户端进行封装、整合属于现有技术,在此不再赘述,授权指的是获取区块链对应商家的使用权限,如果商家开发了内部接口,即可通过内部接口调用多条区块链,实现多条区块链的互相授权。

本发明实施例中,第一客户端具备加入多条不同区块链的功能,即所述第一客户端可以加入至少两条区块链,具体加入多少由用户决定。第一客户端为区块链网络上任意一个客户端。

本发明实施例中,当需要在第二区块链上查询地址信息时,第一客户端可以接收在第一区块链上触发的查询请求,所述查询请求用于请求查询第二区块链上的信息,可以包括但不限于第二区块链上的某账户的地址信息,某账户的余额、交易记录等信息。其中,地址信息是指存放token的地址。

其中,所述第一客户端可以仅加入第一区块链,或者,所述第一客户端可以同时加入第一区块链和第二区块链,或者,所述第一客户端可以同时加入三条以上的区块链,本发明实施例不做限定。

所述判断模块202,用于判断所述第一客户端是否加入所述第二区块链;

本发明实施例中,第一客户端需要先判断所述第一客户端是否加入所述第二区块链,如果所述第一客户端加入所述第二区块链,则可以通过所述第一客户端本身来响应查询请求,如果所述第一客户端未加入所述第二区块链,需要借助其他同时加入第一区块链以及第二区块链的客户端来响应查询请求。

所述传输模块203,用于若所述第一客户端加入所述第二区块链,在所述第二区块链上发送所述查询请求,获得第一查询结果,并通过所述第二区块链将所述第一查询结果回传至所述第一区块链;

本发明实施例中,所述第一客户端同时加入所述第一区块链和所述第二区块链,当在第一区块链上触发查询请求时,所述第一客户端可以直接向所述第二区块链上发送所述查询请求,所述第一客户端在所述第二区块链上响应所述查询请求,获得第一查询结果,并通过所述第一客户端内部的接口将所述第二区块链上查询到的所述第一查询结果回传至所述第一区块链,从而实现了跨链通信。

所述广播模块204,用于在所述第一区块链上广播针对所述第一查询结果的验证请求,其中,由所述第一区块链上的第二客户端对所述第一查询结果进行验证,所述第二客户端为同时加入所述第一区块链和所述第二区块链的客户端;

本发明实施例中,为了防止客户端作恶,第一客户端还需要在所述第一区块链上广播针对所述第一查询结果的验证请求。所述第一区块链上同时加入所述第一区块链和所述第二区块链的第二客户端(除了所述第一客户端之外的客户端)对所述第一查询结果进行验证,而其他未同时加入所述第一区块链和所述第二区块链的客户端丢弃此广播的验证请求。其中,所述第二客户端可以针对所述查询请求在所述第二区块链上进行地址查询,获得待验证结果,也即所述第二客户端自身查询到的地址结果。

所述统计模块205,用于统计所述第二客户端对所述第一查询结果的验证通过的第一数量;

本发明实施例中,同时加入所述第一区块链和所述第二区块链的第二客户端有多个,为了判定所述第一查询结果是否有效,第一客户端需要统计所述第二客户端对所述第一查询结果的验证通过的第一数量。

所述确定模块206,用于若所述第一数量超过预设阈值,确定所述第一查询结果生效。

其中,可以预先设置一个预设阈值,比如第二客户端有a个,可以设置预设阈值为a/2个,如果所述第一数量超过预设阈值,表明大部分的第二客户端都验证通过了,第一客户端即可确定所述第一查询结果生效,也即地址查询成功了,从而确保了地址查询结果的可靠性。

可选的,所述接收模块201,还用于在所述广播模块204在所述第一区块链上广播针对所述第一查询结果的验证请求之后,以及所述统计模块205统计所述第二客户端对所述第一查询结果的验证通过的第一数量之前,接收所述第二客户端针对所述查询请求返回的待验证结果;

所述判断模块202,还用于判断所述第一查询结果与所述待验证结果是否一致;

所述确定模块206,还用于若所述待验证结果与所述第一查询结果一致,确定所述第二客户端对所述第一查询结果的验证通过。

在该可选的实施方式中,所述第二客户端在对所述第一查询结果进行验证,获得待验证结果之后,还需要将所述待验证结果返回给所述第一客户端,所述第一客户端接收到所述待验证结果之后,需要判断所述第一查询结果与所述待验证结果是否一致;如果所述待验证结果与所述第一查询结果一致,表明查询到的所述第一查询结果有效,即可确定所述第二客户端对所述第一查询结果的验证通过。

可选的,所述广播模块204,还用于若所述第一客户端未加入所述第二区块链,在所述第一区块链上广播所述查询请求。

在该可选的实施方式中,所述第一客户端仅加入了所述第一区块链,当所述第一客户端在第一区块链上接收到触发的查询请求时,由于所述第一客户端未加入所述第二区块链,因此,所述第一客户端需要借助同时加入所述第一区块链和所述第二区块链的客户端来响应所述查询请求,具体的,所述第一客户端可以在所述第一区块链上广播所述查询请求,所述第一区块链上的其他客户端检查自己是否同时加入了所述第一区块链和所述第二区块链,未同时加入所述第一区块链以及所述第二区块链的客户端丢弃此广播的查询请求,而由同时加入所述第一区块链和所述第二区块链的第三客户端针对所述查询请求在所述第二区块链上进行查询,获得第二地址查询结果,并通过所述第二区块链将所述第二地址查询结果回传至所述第一区块链。所述第一客户端可以在所述第一区块链上接收所述第三客户端返回的所述第二地址查询结果,为了防止客户端作恶,还需要在所述第一区块链上广播针对所述第二地址查询结果的验证请求,所述第一区块链上同时加入所述第一区块链和所述第二区块链的第四客户端(除了第三客户端之外的其他客户端)对所述第二地址查询结果进行验证,并将验证结果返回给所述第一客户端,所述第一客户端可以统计所述第四客户端对所述第二地址查询结果验证通过的第二数量,若所述第二数量超过所述预设阈值,表明大部分的客户端验证所述第二地址查询结果通过,所述第一客户端可以确定所述第二地址查询结果生效,从而实现了通过借助同时加入所述第一区块链以及所述第二区块链的客户端来完成所述查询请求,同时也确保了地址查询结果的可靠性。

可选的,所述通信装置还包括:

生成模块,用于在所述接收模块201接收在第一区块链上触发的查询请求之前,为所述第一客户端在其要加入的每条区块链生成账户信息。

在该可选的实施方式中,由于第一客户端是通过对多个客户端进行封装、整合以及授权之后获得的,而处理之前多个客户端的区块链地址对于第一客户端已经不再适用,因此,针对所述第一客户端,需要为所述第一客户端在其要加入的每条区块链生成账户信息,比如所述第一客户端上存放token的账户的地址信息。其中,生成的地址信息可以是一个地址在多条区块链上使用,也可以是每条区块链生成一个地址。用户首次使用时可以选择创建多条区块链共同使用的地址,也可以选择创建单独的地址,每个地址仅能在自己链上使用。通常,如果多条区块链使用相同的地址格式时,可以使用一个地址对应多条区块链,当使用不同的地址格式时,只能一条区块链对应一个地址。

可选的,所述接收模块201,还用于接收在区块链列表上输入的区块链选择指令,所述区块链列表包括所述第一客户端能够加入的多条区块链;

所述通信装置还包括:

加入模块,用于响应所述区块链选择指令,将被选择的至少一条区块链加入至所述第一客户端上。

在该可选的实施方式中,虽然第一客户端具备了能够加入多条区块链的功能,但是所述第一客户端加入几条区块链是由用户的选择决定的,用户可以在区块链列表上进行选择输入区块链选择指令,所述区块链列表包括所述第一客户端能够加入的多条区块链;所述第一客户端即可响应所述区块链选择指令,将被选择的至少一条区块链加入至所述第一客户端上,即所述第一客户端可以仅加入一条区块链,也可以加入多条区块链。

在图2所描述的通信装置中,可以接收在第一区块链上触发的查询请求,所述查询请求用于请求查询第二区块链上的信息,并判断所述第一客户端是否加入所述第二区块链;若所述第一客户端加入所述第二区块链,在所述第二区块链上发送所述查询请求,获得第一查询结果,并通过所述第二区块链将所述第一查询结果回传至所述第一区块链;在所述第一区块链上广播针对所述第一查询结果的验证请求,其中,由所述第一区块链上的第二客户端对所述第一查询结果进行验证,所述第第二客户端为同时加入所述第一区块链和所述第二区块链的客户端;进一步地,即可统计所述第二客户端对所述第一查询结果的验证通过的第一数量;若所述第一数量超过预设阈值,确定所述第一查询结果生效。可见,本发明中,可以通过选用能同时在多条区块链上工作的客户端充当区块链间的媒介,不同区块链间需要通信时,可以在全网广播找到同时加入多条区块链间的客户端,客户端查询后的结果仍然需要同时加入多条区块链的客户端的确认,从而不仅实现了跨链通信,同时,还保证了通信结果的可靠性。

如图3所示,图3是本发明实现基于多区块链间的通信方法的较佳实施例的第一客户端的结构示意图。所述第一客户端3包括存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33及至少一条通讯总线34。

本领域技术人员可以理解,图3所示的示意图仅仅是所述第一客户端3的示例,并不构成对所述第一客户端3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述第一客户端3还可以包括输入输出设备、网络接入设备等。

所述第一客户端3还包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)、游戏机、交互式网络电视(internetprotocoltelevision,iptv)、智能式穿戴式设备等。所述第一客户端3所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。

所述至少一个处理器32可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器32可以是微处理器或者该处理器32也可以是任何常规的处理器等,所述处理器32是所述第一客户端3的控制中心,利用各种接口和线路连接整个第一客户端3的各个部分。

所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述第一客户端3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据第一客户端3的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

结合图1,所述第一客户端3中的所述存储器31存储多个指令以实现一种基于多区块链间的通信方法,所述处理器32可执行所述多个指令从而实现:

接收在第一区块链上触发的查询请求,所述查询请求用于请求查询第二区块链上的信息;

判断所述第一客户端是否加入所述第二区块链;

若所述第一客户端加入所述第二区块链,在所述第二区块链上发送所述查询请求,获得第一查询结果,并通过所述第二区块链将所述第一查询结果回传至所述第一区块链;

在所述第一区块链上广播针对所述第一查询结果的验证请求,其中,由所述第一区块链上的第二客户端对所述第一查询结果进行验证,所述第第二客户端为同时加入所述第一区块链和所述第二区块链的客户端;

统计所述第二客户端对所述第一查询结果的验证通过的第一数量;

若所述第一数量超过预设阈值,确定所述第一查询结果生效。

在一种可选的实施方式中,所述在所述第一区块链上广播针对所述第一查询结果的验证请求之后,以及所述统计所述第二客户端对所述第一查询结果的验证通过的第一数量之前,所述处理器32可执行所述多个指令从而实现:

接收所述第二客户端针对所述查询请求返回的待验证结果;

判断所述第一查询结果与所述待验证结果是否一致;

若所述待验证结果与所述第一查询结果一致,确定所述第二客户端对所述第一查询结果的验证通过。

在一种可选的实施方式中,所述处理器32可执行所述多个指令从而实现:

若所述第一客户端未加入所述第二区块链,在所述第一区块链上广播所述查询请求,其中,由所述第一区块链上的第三客户端针对所述查询请求在所述第二区块链上进行查询,获得第二地址查询结果,并通过所述第二区块链将所述第二地址查询结果回传至所述第一区块链,所述第三客户端为同时加入所述第一区块链和所述第二区块链的客户端;

在所述第一区块链上接收所述第三客户端返回的所述第二地址查询结果;

在所述第一区块链上广播针对所述第二地址查询结果的验证请求,其中,由所述第一区块链上的第四客户端对所述第二地址查询结果进行验证,所述第四客户端为同时加入所述第一区块链和所述第二区块链的客户端;

统计所述第四客户端对所述第二地址查询结果验证通过的第二数量;

若所述第二数量超过所述预设阈值,确定所述第二地址查询结果生效。

在一种可选的实施方式中,所述接收在第一区块链上触发的查询请求之前,所述处理器32可执行所述多个指令从而实现:

为所述第一客户端在其要加入的每条区块链生成账户信息。

在一种可选的实施方式中,所述处理器32可执行所述多个指令从而实现:

接收在区块链列表上输入的区块链选择指令,所述区块链列表包括所述第一客户端能够加入的多条区块链;

响应所述区块链选择指令,将被选择的至少一条区块链加入至所述第一客户端上。

具体地,所述处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。

在图3所描述的第一客户端3中,可以接收在第一区块链上触发的查询请求,所述查询请求用于请求查询第二区块链上的信息,并判断所述第一客户端是否加入所述第二区块链;若所述第一客户端加入所述第二区块链,在所述第二区块链上发送所述查询请求,获得第一查询结果,并通过所述第二区块链将所述第一查询结果回传至所述第一区块链;在所述第一区块链上广播针对所述第一查询结果的验证请求,其中,由所述第一区块链上的第二客户端对所述第一查询结果进行验证,所述第第二客户端为同时加入所述第一区块链和所述第二区块链的客户端;进一步地,即可统计所述第二客户端对所述第一查询结果的验证通过的第一数量;若所述第一数量超过预设阈值,确定所述第一查询结果生效。可见,本发明中,可以通过选用能同时在多条区块链上工作的客户端充当区块链间的媒介,不同区块链间需要通信时,可以在全网广播找到同时加入多条区块链间的客户端,客户端查询后的结果仍然需要同时加入多条区块链的客户端的确认,从而不仅实现了跨链通信,同时,还保证了通信结果的可靠性。

所述第一客户端3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

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