发明内容
本申请实施例提供了账户查询方法、装置、系统、服务器及介质,旨在解决相关技术中不同的区块链之间的链上身份通常并不互通,一条区块链不能确定另一条区块链上的账户是否真的存在的问题。
第一方面,本申请实施例提供了一种账户查询方法,该方法包括:
接收第一区块链发送的跨链账户查询请求,跨链账户查询请求包括第二区块链上的待查账户的账户标识;
从预先存储的跨链身份记录信息表中查找与账户标识对应的账户身份描述信息,其中,跨链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息;
响应于查找到与账户标识对应的账户身份描述信息,将查找到的账户身份描述信息向第一区块链发送,使得第一区块链基于查找到的账户身份描述信息确定第二区块链上的待查账户存在。
进一步地,该方法还包括:
响应于未查找到与账户标识对应的账户身份描述信息,向通信连接的上级中继链发送包括账户标识的继续查询请求;
接收上级中继链针对继续查询请求返回的、与账户标识对应的账户身份描述信息,以及将接收到的账户身份描述信息向第一区块链发送。
第二方面,本申请实施例提供了一种账户查询系统,该系统包括:第一区块链、第二区块链、用于连接第一区块链和第二区块链的中继链,其中,
第一区块链,用于向中继链发送跨链账户查询请求,跨链账户查询请求包括第二区块链上的待查账户的账户标识;
中继链,用于接收第一区块链发送的跨链账户查询请求,从预先存储的跨链身份记录信息表中查找与账户标识对应的账户身份描述信息,其中,跨链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息;响应于查找到与账户标识对应的账户身份描述信息,将查找到的账户身份描述信息向第一区块链发送,使得第一区块链基于查找到的账户身份描述信息确定第二区块链上的待查账户存在。
进一步地,第一区块链还用于:
响应于接收到本链账户所在用户终端发送的用于查询第一区块链上的待查账户的本链账户查询请求,从本链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息,其中,本链账户查询请求包括待查账户的账户标识,本链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息;
将从本链身份记录信息表中查找到的账户身份描述信息向用户终端发送。
进一步地,系统还包括存储服务器,第一区块链通过构建步骤得到本链身份记录信息表,构建步骤包括:
响应于接收到本链账户所在用户终端发送的、包括本链账户的账户标识和账户身份描述信息的身份注册请求,将本链账户的账户身份描述信息向存储服务器发送,以及接收存储服务器针对本链账户的账户身份描述信息返回的存储地址;
将本链账户的账户标识、存储地址、本链账户的账户身份描述信息的哈希值、取值为第一预设值的账户状态参数的整体作为身份记录信息存入本链身份记录信息表,其中,第一预设值用于指示本链账户当前处于注册待审核状态。
进一步地,构建步骤还可以包括:
对本链身份记录信息表中对应账户状态参数的取值为第一预设值的身份记录信息执行预设审核操作,得到审核结果,以及根据审核结果,对相应身份记录信息中的账户状态参数的取值进行修改。
进一步地,在对相应身份记录信息中的账户状态参数的取值进行修改之后,第一区块链还用于:
响应于修改后的相应身份记录信息中的账户状态参数的取值为第二预设值,将修改后的相应身份记录信息发送至中继链,使得中继链基于修改后的相应身份记录信息更新跨链身份记录信息表,其中,第二预设值用于指示账户当前处于审核通过状态。
进一步地,本链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息的存储地址;以及
从本链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息,包括:
从本链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息的存储地址,以根据查找到的存储地址得到与账户标识对应的账户身份描述信息。
进一步地,构建步骤还可以包括:
响应于接收到本链账户所在用户终端发送的、包括本链账户的账户标识和新账户身份描述信息的身份更新请求,将本链账户的新账户身份描述信息向存储服务器发送,以及接收存储服务器针对新账户身份描述信息返回的新存储地址;
将本链账户对应的身份记录信息中的存储地址修改为新存储地址,将账户身份描述信息的哈希值修改为新账户身份描述信息的哈希值,将账户状态参数的取值修改为第三预设值,其中,第三预设值用于指示本链账户当前处于更新待审核状态。
第三方面,本申请实施例提供了一种账户查询装置,该装置包括:
请求接收单元,用于接收第一区块链发送的跨链账户查询请求,跨链账户查询请求包括第二区块链上的待查账户的账户标识;
信息查找单元,用于从预先存储的跨链身份记录信息表中查找与账户标识对应的账户身份描述信息,其中,跨链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息;
信息发送单元,用于响应于查找到与账户标识对应的账户身份描述信息,将查找到的账户身份描述信息向第一区块链发送,使得第一区块链基于查找到的账户身份描述信息确定第二区块链上的待查账户存在。
第四方面,本申请实施例提供了一种服务器,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述账户查询方法的步骤。
第五方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现上述账户查询方法的步骤。
第六方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行上述第一方面中任一项的账户查询方法。
本申请实施例与相关技术相比存在的有益效果是:通过中继链实现不同的区块链之间可以身份互通,有助于提高不同的区块链之间进行交易的安全性。另外,通过查表的方式,从跨链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息,技术上易于实现,有助于提高账户查询效率。
可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
为了说明本申请的技术方案,下面通过以下实施例来进行说明。
实施例一
参考图1,为本申请实施例提供的一种账户查询方法应用的系统架构图。
如图1所示,系统架构可以包括区块链C1、C2、C3、C4和中继链B1、B2、B3、B4。其中,区块链C1、C2、C3、C4和中继链B1、B2、B3、B4之间的连接关系呈树状结构,中继链B2和中继链B3为中继链B1的叶子节点。区块链C1和区块链C2为中继链B2的叶子节点。区块链C3和中继链B4为中继链B3的叶子节点。区块链C4为中继链B4的叶子节点。中继链B1为中继链B2和中继链B3的上级中继链,以及中继链B3为中继链B4的上级中继链。
针对树状结构中的所有中继链,可以实现一个中继链的多个叶子节点之间身份互通,如,区块链C1和区块链C2之间身份互通。也可以实现不同的中继链的叶子节点之间进行身份互通,如,区块链C1和区块链C3之间身份互通。
实践中,若一中继链具有至少两个叶子节点,每个叶子节点为区块链。为了便于区分描述,可以称其中一个区块链为第一区块链,称另一个区块链为第二区块链。此时,中继链可以接收第一区块链发送的跨链账户查询请求,跨链账户查询请求包括第二区块链上的待查账户的账户标识;从预先存储的跨链身份记录信息表中查找与账户标识对应的账户身份描述信息,其中,跨链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息;响应于查找到与账户标识对应的账户身份描述信息,将查找到的账户身份描述信息向第一区块链发送,使得第一区块链基于查找到的账户身份描述信息确定第二区块链上的待查账户存在。本申请通过中继链实现不同的区块链之间可以身份互通,有助于提高不同的区块链之间进行交易的安全性。另外,通过查表的方式,从跨链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息,技术上易于实现,有助于提高账户查询效率。
实施例二
继续参阅图2,本申请实施例提供一种账户查询方法,包括:
步骤201,接收第一区块链发送的跨链账户查询请求。
其中,跨链账户查询请求包括第二区块链上的待查账户的账户标识。上述待查账户通常为待查询的账户。
实践中,每条区块链上通常具有很多个区块链账户,每个区块链账户对应具有区块链账户地址。为了便于描述,本申请可以将区块链账户简称为账户。
其中,上述账户标识通常是用于标识账户的信息。实际应用中,账户标识通常可以指示账户和账户所在的区块链。举例来说,账户标识可以为:001:0x1234567,其中001可以为区块链的标识,0x1234567为账户在标识为001的区块链上的编码。
在本实施例中,上述账户查询方法的执行主体可以为中继链。中继链通常是用于对所连接的区块链进行鉴权以及向所连接的区块链传输信息的特殊区块链。上述执行主体可以通过网络接收到第一区块链发送的跨链账户查询请求。
实践中,为了区别描述,可以将除中继链外的区块链记作应用链。另外,除特别说明外,本申请所提及的区块链(如,第一区块链、第二区块链)均为应用链。
步骤202,从预先存储的跨链身份记录信息表中查找与账户标识对应的账户身份描述信息。
其中,跨链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息。上述账户身份描述信息通常是用于描述账户身份的信息。作为示例,账户身份描述信息可以包括但不限于:账户地址、账户公钥、账户加密算法、账户注册时间等。账户地址通常是指区块链账户的地址。账户公钥通常是指区块链账户所采用的公钥。账户加密算法通常是指区块链账户所采用的加密算法。本申请中,账户身份描述信息的具体格式可以为对象简谱格式(JavaScript Object Notation,JSON),也可以为可扩展标记语言格式(eXtensible Markup Language,XML),还可以为另一种标记语言格式(Yet AnotherMarkup Language,YAML)。本申请对账户身份描述信息的具体格式不做限定。
实践中,跨链身份记录信息表中具有多条身份记录信息,且每条身份记录信息包括账户标识和与账户标识对应的账户身份描述信息。
在本实施例中,中继链中可以预先存储有跨链身份记录信息表。上述执行主体可以直接采用跨链账户查询请求中的账户标识,从跨链身份记录信息表中找到该账户标识所在的身份记录信息,从而得到该身份记录信息中的账户身份描述信息。
步骤203,响应于查找到与账户标识对应的账户身份描述信息,将查找到的账户身份描述信息向第一区块链发送,使得第一区块链基于查找到的账户身份描述信息确定第二区块链上的待查账户存在。
在本实施例中,若查找到与账户标识对应的账户身份描述信息,则上述执行主体可以将查找到的账户身份描述信息向第一区块链发送。这样,第一区块链可以接收到所查找到的账户身份描述信息,从而确定第二区跨链上的待查账户存在。
本实施例提供的方法,通过中继链实现不同的区块链之间可以身份互通,有助于提高不同的区块链之间进行交易的安全性。另外,通过查表的方式,从跨链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息,技术上易于实现,有助于提高账户查询效率。
在本实施例的一些可选的实现方式中,上述账户查询方法,还可以包括如下步骤:
响应于未查找到与账户标识对应的账户身份描述信息,向通信连接的上级中继链发送包括账户标识的继续查询请求。
其中,上述继续查询请求可以用于请求继续查询的信息。
这里,若上述执行主体未查找到与账户标识对应的账户身份描述信息,在上述执行主体具有上级中继链的情况下,上述执行主体可以向上级中继链发送继续查询请求。这样,上级中继链可以基于继续查询请求中的账户标识,从该上级中继链中继续查询是否存在与该账户标识对应的账户身份描述信息。
需要指出的是,每个中继链所存储的跨链身份记录信息表中通常具有该中继链的叶子节点区块链上的账户对应的身份记录信息。任意一个中继链的上级中继链中,可以备份有该中继链所存储的跨链身份记录信息表。这样,可以实现各区块链之间身份互通。举例来说,结合图1,中继链B1可以同时具有中继链B2所存储的跨链身份记录信息表、中继链B3所存储的跨链身份记录信息表、B4所存储的跨链身份记录信息表。进一步举例来说,若区块链C1向中继链B2发送查询区块链C3上的某账户的跨链账户查询请求,中继链B2中的跨链身份记录信息表中通常不具有区块链C3上账户对应的身份记录信息。此时,中继链B2可以向上一级的中继链B1发送继续查询请求,从而通过中继链B1查询到区块链C3上的该账户对应的身份记录信息。
接收上级中继链针对继续查询请求返回的、与账户标识对应的账户身份描述信息,以及将接收到的账户身份描述信息向第一区块链发送。
这里,上级中继链在接收到继续查询请求后,通常会采用继续查询请求中的账户标识,从该上级区块链所存储的一个或多个跨链身份记录信息表中继续查询。若查找到该账户标识所在的身份记录信息,则将查找到的该身份记录信息中的账户身份描述信息向上述执行主体发送。这样,上述执行主体可以接收上级中继链发送的与账户标识对应的账户身份描述信息,以及将所接收到的账户身份描述信息向第一区块链发送。
本实现方式中,通过向上级中继链发送继续查询请求,以使得通过上级中继链继续针对待查账户的账户标识进行查询,可以实现不同的中继链的叶子节点之间进行身份互通。有助于进一步提高不同的区块链之间进行交易的安全性。
实施例三
继续参考图3,为本申请实施例提供的一种账户查询系统的结构示意图。如图3所示的账户查询系统,包括第一区块链301、第二区块链302、用于连接第一区块链301和第二区块链302的中继链303,其中,
第一区块链301,用于向中继链发送跨链账户查询请求,跨链账户查询请求包括第二区块链上的待查账户的账户标识。
中继链303,用于接收第一区块链发送的跨链账户查询请求,从预先存储的跨链身份记录信息表中查找与账户标识对应的账户身份描述信息。其中,跨链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息。然后,响应于查找到与账户标识对应的账户身份描述信息,将查找到的账户身份描述信息向第一区块链发送,使得第一区块链基于查找到的账户身份描述信息确定第二区块链上的待查账户存在。
本实施例提供的系统,通过中继链实现不同的区块链之间可以身份互通,有助于提高不同的区块链之间进行交易的安全性。另外,通过查表的方式,从跨链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息,技术上易于实现,有助于提高账户查询效率。
在一些实施例中,中继链303,还用于响应于未查找到与账户标识对应的账户身份描述信息,向通信连接的上级中继链发送包括账户标识的继续查询请求。接收上级中继链针对继续查询请求返回的、与账户标识对应的账户身份描述信息,以及将接收到的账户身份描述信息向第一区块链发送。
需要说明的是,上述第一区块链301、上述第二区块链302和上述中继链303之间的信息交互、执行过程等内容,由于与本申请的方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
在本实施例的一些可选的实现方式中,第一区块链中,向中继链发送跨链账户查询请求,包括:响应于接收到本链账户所在用户终端发送的跨链账户查询请求,向中继链发送跨链账户查询请求。
其中,跨链账户查询请求包括第二区块链上的待查账户的账户标识。
其中,上述本链账户通常是指第一区块链上的账户。用户可以通过用户终端登陆区块链上的账户。
这里,第一区块链可以接收本链账户所在用户终端发送的跨链账户查询请求。然后,将所接收到的跨链账户查询请求向中继链发送。这样,在中继链返回与账户标识对应的账户身份描述信息时,第一区块链可以及时将所返回的账户身份描述信息反馈至用户终端。
在本实施例的一些可选的实现方式中,第一区块链还用于:响应于接收到本链账户所在用户终端发送的用于查询第一区块链上的待查账户的本链账户查询请求,从本链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息。将从本链身份记录信息表中查找到的账户身份描述信息向用户终端发送。
其中,本链账户查询请求包括待查账户的账户标识,本链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息。其中,上述本链账户通常是指第一区块链上的账户。用户可以通过用户终端登陆区块链上的账户。
这里,若待查账户为第一区块链上的账户。此时,第一区块链在接收到用户终端发送的包括待查账户的账户标识的本链查询请求时,可以从第一区块链所存储的本链身份记录信息表中查找与待查账户的账户标识对应的身份记录信息。若查找到,则第一区块链可以直接将所查找到的身份记录信息中的账户身份描述信息发送至用户终端。
本实现方式中,区块链中存储有本链身份记录信息表,可以实现该区块链上的一个账户所在用户终端需要查询该区块链上的另一账户的相关信息时,该区块链可以直接将上述另一账户的账户身份描述信息发送至用户终端。有助于提高数据处理速度,从而提高相同的区块链之间进行交易的速度。另外,并非所有的查询请求都通过中继链实现,可以节约中继链的处理资源。
在本实施例的一些可选的实现方式中,第一区块链通过构建步骤得到本链身份记录信息表,构建步骤包括:
步骤一,响应于接收到本链账户所在用户终端发送的、包括本链账户的账户标识和账户身份描述信息的身份注册请求,将本链账户的账户身份描述信息向存储服务器发送,以及接收存储服务器针对本链账户的账户身份描述信息返回的存储地址。
上述身份注册请求通常是用于请求注册的信息。上述预设服务器可以是预先设定的用于存储数据的服务器。
这里,若第一区块链接收到本链账户发送的身份注册请求,则第一区块链可以将身份注册请求中的账户身份描述信息向存储服务器发送。这样,存储服务器可以对身份注册请求中的账户身份描述信息进行存储,以及可以将该账户身份描述信息的存储地址返回至第一区块链。
步骤二,将本链账户的账户标识、存储地址、本链账户的账户身份描述信息的哈希值、取值为第一预设值的账户状态参数的整体作为身份记录信息存入本链身份记录信息表。
其中,第一预设值用于指示本链账户当前处于注册待审核状态。
这里,第一区块链可以将账户标识、存储地址、账户身份描述信息的哈希值和账户状态参数四者作为一条身份记录信息存入本链身份记录信息表。
图4为本申请实施例提供的身份注册流程示意图。
步骤401,账户所在用户终端向应用链发送身份注册请求,该身份注册请求包括账户标识和账户身份描述信息。
这里,应用链可以是上述第一区块链,也可以是上述第二区块链,还可以是其他区块链。
步骤402,应用链将账户身份描述信息向存储服务器发送。
步骤403,存储服务器可以存储该账户身份描述信息,以及将该账户身份描述信息的存储地址返回给应用链。
步骤404,应用链将账户标识、存储地址和账户身份描述信息的哈希值作为一条身份记录信息存入本链身份记录信息表。
实践中,本链身份记录信息表中的每条身份记录信息还可以具有用于指示账户状态的账户状态参数。账户状态参数的不同取值可以指示不同的账户状态。对账户进行身份注册时,该账户状态参数的取值可以为第一预设值,用于指示账户状态为注册待审核状态。
在本实施例的一些可选的实现方式中,若本链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息的存储地址。此时,上述从本链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息,可以包括:从本链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息的存储地址,以根据查找到的存储地址得到与账户标识对应的账户身份描述信息。
这里,若本链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息的存储地址,则第一区块链可以根据账户标识从本链身份记录信息表中查找到一存储地址,该存储地址所对应的内容即为账户标识对应的账户身份描述信息。
本实现方式中,第一区块链中,在本链身份记录信息表中存储账户身份描述信息的存储地址,而非存储账户身份描述信息本身,可以节约第一区块链的存储空间,且可以简化本链身份记录信息表。需要指出的是,各区块链上的账户的账户身份描述信息都存储在同一存储服务器中,每个账户的账户身份描述信息只需存储一次即可,各区块链可以通过存储地址的方式访问到所有区块链的账户的账户身份描述信息,有助于节约整个区块链网络的存储空间。
在本实施例的一些可选的实现方式中,构建步骤还可以包括:
对本链身份记录信息表中对应账户状态参数的取值为第一预设值的身份记录信息执行预设审核操作,得到审核结果,以及根据审核结果,对相应身份记录信息中的账户状态参数的取值进行修改。
其中,上述预设审核操作可以是对账户身份描述信息进行审核的操作。如,上述预设审核操作可以为:区块链控制该区块链的全部或部分区块链节点执行如下步骤:采用身份记录信息中的存储地址下载账户身份描述信息。然后,计算得到所下载的身份描述信息的哈希值。最后,将计算得到的哈希值与身份记录信息中的哈希值进行比较,若二者相同,则向区块链返回用于指示审核通过的审核通过指示信息,若二者不同,则向区块链返回用于指示审核不通过的审核不通过指示信息。这样,区块链可以通过统计审核通过指示信息的数目,确定账户的账户身份描述信息是否审核通过。若审核结果为审核通过,则区块链可以对相应身份记录信息中的账户状态参数的取值进行修改。反之,若审核结果为审核不通过,则无需修改。
实践中,若审核结果为审核通过,区块链可以将相应身份记录信息中的账户状态参数的取值修改为第二预设值。其中,第二预设值用于指示账户当前处于审核通过状态。若审核结果为审核不通过,区块链可以将相应身份记录信息中的账户状态参数的取值修改为第四预设值。其中,第四预设值用于指示账户当前处于审核驳回状态。
在上述实现方式中,在对相应身份记录信息中的账户状态参数的取值进行修改之后,第一区块链还用于:响应于修改后的相应身份记录信息中的账户状态参数的取值为第二预设值,将修改后的相应身份记录信息发送至中继链,使得中继链基于修改后的相应身份记录信息更新跨链身份记录信息表。
其中,第二预设值用于指示账户当前处于审核通过状态。
这里,若账户状态为审核通过状态,则认为身份记录信息有效。此时,区块链可以将该身份记录信息发送至中继链。这样,中继链可以采用该身份记录信息对跨链身份记录信息表进行更新。具体地,中继链可以将该身份记录信息添加至跨链身份记录信息表。
图5为本申请实施例提供的身份审核流程示意图。
应用链对账户的身份记录信息进行审核,审核不通过时,执行步骤501-503。审核通过时,执行步骤504-505。
步骤501,应用链将账户身份描述信息的存储地址发送至存储服务器,使得存储服务器将该存储地址所对应的账户身份描述信息删除。
步骤502,存储服务器返回用于提示删除完成的信息。
步骤503,应用链将所审核的身份记录信息中的账户状态参数的取值修改为第四预设值,以及将该身份记录信息中的存储地址删除。其中,第四预设值用于指示账户当前处于审核驳回状态。
步骤504,应用链更新本链身份记录信息表。
这里,可以将本链身份记录信息中通过审核的身份记录信息的账户状态参数的取值修改为第二预设值。其中,第二预设值用于指示账户当前处于审核通过状态。
步骤505,应用链将通过审核的身份记录信息发送至中继链。
步骤506,中继链更新跨链身份记录信息表。
这里,中继链可以将通过审核的身份记录信息添加至跨链身份记录信息表。
步骤507,中继链将通过审核的身份记录信息向该中继链的上级中继链发送。这样,该中继链的上级中继链可以将该通过审核的身份记录信息添加至相应跨链身份记录信息表。
在本实施例的一些可选的实现方式中,构建步骤还可以包括:
响应于接收到本链账户所在用户终端发送的、包括本链账户的账户标识和新账户身份描述信息的身份更新请求,将本链账户的新账户身份描述信息向存储服务器发送,以及接收存储服务器针对本链账户的新账户身份描述信息返回的新存储地址。
这里,身份更新请求可以为用于请求更新账户的账户身份描述信息的信息。第一区块链在接收到身份更新请求后,可以将身份更新请求中的新的账户身份描述信息发送送至存储服务器进行存储。在存储服务器对新的账户身份描述信息存储后,可以向第一区块链返回用于存储新的账户身份描述信息的存储地址。这里,为了便于描述,将用于存储新的账户身份描述信息的存储地址,记作新存储地址。
将本链账户对应的身份记录信息中的存储地址修改为新存储地址,将账户身份描述信息的哈希值修改为新账户身份描述信息的哈希值,将账户状态参数的取值修改为第三预设值。
其中,第三预设值用于指示本链账户当前处于更新待审核状态。
这里,第一区块链在接收到新的存储地址后,可以将账户的身份记录信息中的存储地址修改为新存储地址,以及将账户身份描述信息的哈希值修改为新账户身份描述信息的哈希值,将账户状态参数的取值修改为第三预设值。
需要指出的是,区块链可以对新的账户身份描述信息进行审核。这里,对新的账户身份描述信息进行审核的操作与前述对账户身份描述信息进行审核的操作基本相同,这里不做赘述。实践中,若对账户状态参数的取值为第三预设值的新身份记录信息进行审核时,若审核不通过,则区块链可以删除新的存储地址,以及通过向存储服务器发送该新存储地址实现删除新存储地址所存储的新的账户身份描述信息。在删除新存储地址后,区块链可以将该新存储地址所在的身份记录信息修改为与更新前相同。
实施例四
图6为本申请实施例提供的账户查询方法的流程示意图。
步骤601,账户所在用户终端向区块链发送本链账户查询请求,本链账户查询请求包括账户标识。
步骤602,应用链从本链身份记录信息表中查找账户标识所在的身份记录信息。若查找成功,执行步骤603-606。若查找不成功,则执行步骤607。
步骤603,应用链将查找到的身份记录信息中的存储地址发送至存储服务器。
步骤604,应用链接收存储服务器基于存储地址返回的账户身份描述信息。
步骤605,应用链对所接收的账户身份描述信息进行验证。
这里,对所接收的账户身份描述信息进行验证,通常是计算所接收的账户身份描述信息的哈希值,若计算得到的哈希值与身份记录信息中的哈希值相同,则验证通过。反之,若不一致,则验证不通过。
步骤606,应用链将验证结果和账户身份描述信息发送至用户终端。
步骤607,应用链将包括账户标识的继续查询请求发送至中继链。
步骤608,中继链从跨链身份记录信息表中查找账户标识所在的身份记录信息。若查找失败,执行步骤609。若查找成功,则将查找到的身份记录信息中的存储地址发送至应用链。这样,应用链通过执行步骤603-606将查找成功的查找结果返回至用户终端。
步骤609,向上级中继链发送继续查询请求,实现在上级中继链中执行查找。若上级中继链以及上级中继链的各层的上级中继链乃至最顶层的中继链均查找不成功,则执行步骤610。
步骤610,中继链将查找不成功的查找结果返回至应用链。
步骤611,应用链将查找不成功的查找结果返回至用户终端。
实施例五
对应于上文实施例的账户查询方法,图4示出了本申请实施例提供的账户查询装置700的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图7,该装置包括:
请求接收单元701,用于接收第一区块链发送的跨链账户查询请求,跨链账户查询请求包括第二区块链上的待查账户的账户标识;
信息查找单元702,用于从预先存储的跨链身份记录信息表中查找与账户标识对应的账户身份描述信息,其中,跨链身份记录信息表中的身份记录信息包括账户标识和与账户标识对应的账户身份描述信息;
信息发送单元703,用于响应于查找到与账户标识对应的账户身份描述信息,将查找到的账户身份描述信息向第一区块链发送,使得第一区块链基于查找到的账户身份描述信息确定第二区块链上的待查账户存在。
在一个实施例中,信息发送单元703还用于:
响应于未查找到与账户标识对应的账户身份描述信息,向通信连接的上级中继链发送包括账户标识的继续查询请求;
接收上级中继链针对继续查询请求返回的、与账户标识对应的账户身份描述信息,以及将接收到的账户身份描述信息向第一区块链发送。
本实施例提供的装置,通过中继链实现不同的区块链之间可以身份互通,有助于提高不同的区块链之间进行交易的安全性。另外,通过查表的方式,从跨链身份记录信息表中查找与待查账户的账户标识对应的账户身份描述信息,技术上易于实现,有助于提高账户查询效率。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
实施例六
图8为本申请一实施例提供的服务器800的结构示意图。如图8所示,该实施例的服务器800包括:至少一个处理器801(图8中仅示出一个处理器)、存储器802以及存储在存储器802中并可在至少一个处理器801上运行的计算机程序803,例如账户查询程序。处理器801执行计算机程序803时实现上述任意各个方法实施例中的步骤。处理器801执行计算机程序803时实现上述各个账户查询方法的实施例中的步骤。处理器801执行计算机程序803时实现上述各装置实施例中各模块/单元的功能,例如图7所示单元701至703的功能。
示例性的,计算机程序803可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器802中,并由处理器801执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序803在服务器800中的执行过程。例如,计算机程序803可以被分割成请求接收单元,信息查找单元,信息发送单元,各单元具体功能在上述实施例中已有描述,此处不再赘述。
服务器800可以是服务器、台式电脑、平板电脑、云端服务器和移动终端等计算设备。服务器800可包括,但不仅限于,处理器801,存储器802。本领域技术人员可以理解,图8仅仅是服务器800的示例,并不构成对服务器800的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如服务器还可以包括输入输出设备、网络接入设备、总线等。
所称处理器801可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器802可以是服务器800的内部存储单元,例如服务器800的硬盘或内存。存储器802也可以是服务器800的外部存储设备,例如服务器800上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器802还可以既包括服务器800的内部存储单元也包括外部存储设备。存储器802用于存储计算机程序以及服务器所需的其他程序和数据。存储器802还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/服务器和方法,可以通过其它的方式实现。例如,以上所描述的装置/服务器实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。