一种区块链的资源处理方法、装置、设备和介质转让专利

申请号 : CN202210666699.X

文献号 : CN114793244B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 荆博

申请人 : 北京百度网讯科技有限公司

摘要 :

本公开提供了一种区块链的资源处理方法、装置、设备和介质,涉及计算机技术领域,尤其涉及区块链技术领域。该方法应用于资源解析系统,具体实现方案为:获取链资源处理请求;根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;基于所述资源信息响应所述链资源处理请求。本公开的技术方案实现了多链之间的数据资源的相互定位和获取,以及对多链数据资源的维护和管理。

权利要求 :

1.一种区块链的资源处理方法,应用于资源解析系统,所述方法包括:获取链资源处理请求;

根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;

基于所述资源信息响应所述链资源处理请求;

其中,所述资源存储网络中存储的资源信息包括:资源定位数据和资源权限数据;

资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;

所述资源定位标识的字符串中包括域名;所述域名为待访问资源所在区块链节点所属域的域名,所述资源访问地址中包括待访问资源所在区块链节点的通信地址。

2.根据权利要求1所述的方法,其中,获取链资源处理请求包括:获取区块链节点发起的链资源处理请求;其中,所述链资源处理请求基于区块链客户端发起的事务请求而产生。

3.根据权利要求1所述的方法,其中,根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据所述链资源处理请求,产生资源信息处理事务请求;

将所述资源信息处理事务请求向所述资源存储网络发起,以请求所述资源存储网络处理所述资源信息处理事务请求,并反馈资源信息;其中,所述资源存储网络是基于区块链技术实现的区块链网络。

4.根据权利要求1所述的方法,其中,根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:通过所述资源解析系统中的域名解析器,根据所述链资源处理请求确定目标域名服务器;

通过域名解析器,向所述目标域名服务器发起资源信息处理请求;其中,所述资源信息处理请求用于请求所述目标域名服务器,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;

通过域名解析器,接收所述目标域名服务器反馈的资源信息。

5.根据权利要求4所述的方法,其中,通过域名解析器,根据所述链资源处理请求确定目标域名服务器包括:通过域名解析器,根据所述链资源处理请求,在所述域名解析器已发现的域名服务器中,确定目标域名服务器;

相应的,通过域名解析器,接收所述目标域名服务器反馈的资源信息之前,还包括:通过所述域名解析器,如果接收到所述目标域名服务器反馈的可选域名服务器连接地址,则根据所述可选域名服务器连接地址与对应的域名服务器建立连接,并更新作为新的目标域名服务器,继续执行发起资源信息处理请求的操作,直至接收到资源信息或失败结果;其中,链资源的地址空间划分为多个域,每个域名服务器用于查询一个或多个域中资源信息。

6.根据权利要求4所述的方法,根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询之后,还包括:如果通过所述域名解析器,确定资源信息查询失败,则确定其他的可选域名解析器,并将所述可选域名解析器的连接地址反馈给所述链资源处理请求的发起方,以供所述发起方向所述可选域名解析器重新发起链资源处理请求。

7.根据权利要求4所述的方法,其中,通过域名解析器,接收所述目标域名服务器反馈的资源信息之后,还包括:通过所述域名解析器,对所述资源信息进行下述至少一项检查:合法性检查、有效性检查和匹配性检查。

8.根据权利要求1所述的方法,其中,根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据所述链资源处理请求,在本地缓存中进行资源信息的查询;

如果在本地缓存中查询到资源信息,则确定为所述资源信息;

如果在本地缓存中未查询到资源信息,则向所述资源存储网络发起资源信息处理请求,以进行资源信息查询,并确定资源信息。

9.根据权利要求1‑8任一所述的方法,其中,所述链资源处理请求为链资源访问请求,则根据所述链资源访问请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据所述链资源访问请求中的待访问资源的资源定位标识,基于所述资源存储网络中存储的资源定位数据,进行访问地址查询,以确定资源访问地址;其中,所述资源访问地址表征待访问资源在区块链网络中的访问入口。

10.根据权利要求9所述的方法,其中,所述链资源访问请求中包括资源定位标识和访问参数,所述访问参数包括下述至少一项:资源名称、资源执行参数、发起方公钥和发起方签名。

11.根据权利要求1‑8任一所述的方法,其中,所述链资源处理请求为域名查询请求,则根据所述域名查询请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据所述域名查询请求中的资源访问地址,基于资源存储网络中存储的资源定位数据,进行域名查询,以确定资源域名;所述资源域名为资源访问地址所属域的域名。

12.根据权利要求1‑8任一所述的方法,其中,所述链资源处理请求为权限查询请求,则根据所述权限查询请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据所述权限查询请求中的待查询资源的资源访问地址或资源定位标识,基于资源存储网络中存储的资源权限数据,进行权限查询,以确定资源权限;所述资源权限为资源被访问的权限控制信息。

13.根据权利要求1所述的方法,其中,区块链网络的域名空间包括多个层级,采用树状结构进行域名存储,所述树状结构的节点用于存储对应层级域名的标签,每个节点与区块链所提供的数据资源对应,每个节点的域名包括从当前节点至树状结构根节点路径上的标签组合;

所述域名空间的各层级域名标签,从上至下包括:区块链架构名称、区块链网络所属运营商名称、区块链名称、区块链节点名称和资源名称。

14.根据权利要求13所述的方法,其中,区块链网络提供的可访问资源包括:区块链可支持服务和/或区块链可读数据;

所述区块链可支持服务包括下述至少一项:智能合约,和智能合约中可访问的方法程序。

15.一种区块链的资源处理方法,应用于资源存储网络,所述资源存储网络为去中心化存储网络,所述方法包括:获取资源信息处理请求;所述资源信息处理请求基于链资源处理请求而确定;

根据所述资源信息处理请求,和所述资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;

基于所述资源信息响应所述资源信息处理请求;所述资源数据为区块链网络中提供的可访问资源;

其中,所述资源存储网络中存储的资源信息包括:资源定位数据和资源权限数据;

资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;

所述资源定位标识的字符串中包括域名;所述域名为待访问资源所在区块链节点所属域的域名,所述资源访问地址中包括待访问资源所在区块链节点的通信地址。

16.根据权利要求15所述的方法,其中,获取资源信息处理请求包括:获取资源解析系统中域名解析器或域名服务器发起的资源信息处理请求。

17.根据权利要求15所述的方法,其中,所述资源存储网络是基于区块链技术实现的区块链网络,则获取资源信息处理请求包括:获取区块链客户端发起的资源信息处理事务请求,作为资源信息处理请求。

18.根据权利要求15‑17任一所述的方法,其中,所述资源信息处理请求为域名解析请求,则根据所述域名解析请求,和所述资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据所述域名解析请求中的待解析域名,和所述资源存储网络中存储的资源定位数据,进行域名所对应的资源访问地址查询,以确定资源访问地址。

19.根据权利要求15‑17任一所述的方法,其中,所述资源信息处理请求为域名查询请求,则根据所述域名查询请求,和所述资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据所述域名查询请求中的待查询地址,和所述资源存储网络中存储的资源定位数据,进行地址所对应的域名查询,以确定资源域名。

20.根据权利要求15‑17任一所述的方法,其中,所述资源信息处理请求为权限查询请求,则根据所述权限查询请求,和所述资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据所述权限查询请求中的待查询资源的资源访问地址或资源定位标识,和所述资源存储网络中存储的资源权限数据,进行权限查询,以确定资源权限;其中,所述资源权限为资源被访问的权限控制信息。

21.根据权利要求15‑17任一所述的方法,还包括:

接收区块链节点发起的资源注册请求;

将所述资源注册请求中的资源数据的关联信息存储在所述资源存储网络中;其中,所述关联信息包括下述至少一项:资源定位数据和资源权限数据。

22.根据权利要求21所述的方法,其中,将所述资源注册请求中的资源数据的关联信息存储在所述资源存储网络中包括:将所述资源注册请求中的资源数据的关联信息,进行加密和分片,以形成加密分片副本;

将所述加密分片副本,分别存储在所述资源存储网络中的存储节点中。

23.根据权利要求22所述的方法,还包括:

按照存储证明机制,向各存储节点发起存储证明保持请求,并接收存储节点基于所存储的资源信息反馈的存储证明。

24.根据权利要求15所述的方法,还包括:

基于所述资源存储网络所部署的授权合约,将所存储的部分或全部资源数据的资源信息,授权给资源解析系统进行查询。

25.根据权利要求15所述的方法,其中,区块链网络的域名空间包括多个层级,采用树状结构进行域名存储,所述树状结构的节点用于存储对应层级域名的标签,每个节点与区块链所提供的数据资源对应,每个节点的域名包括从当前节点至树状结构根节点路径上的标签组合;

所述域名空间的各层级域名标签,从上至下包括:区块链架构名称、区块链网络所属运营商名称、区块链名称、区块链节点名称和资源名称。

26.根据权利要求25所述的方法,其中,区块链网络提供的资源包括:区块链可支持服务和/或区块链可读数据;

所述区块链可支持服务包括下述至少一项:智能合约和智能合约中可访问的方法程序。

27.一种区块链的资源处理方法,应用于区块链节点,所述方法包括:在识别到跨链资源的信息获取需求时,产生链资源处理请求;

将所述链资源处理请求发送给资源解析系统,以请求所述资源解析系统基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;

接收所述资源解析系统反馈的资源信息;

其中,所述资源存储网络中存储的资源信息包括:资源定位数据和资源权限数据;

资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;

所述资源定位标识的字符串中包括域名;所述域名为待访问资源所在区块链节点所属域的域名,所述资源访问地址中包括待访问资源所在区块链节点的通信地址。

28.根据权利要求27所述的方法,其中,在识别到跨链资源的信息获取需求时,产生链资源处理请求包括:在识别到跨链资源的访问需求时,产生链资源访问请求;所述链资源访问请求中包括待访问资源的资源定位标识;

相应的,所述资源信息为资源访问地址,则接收所述资源解析系统反馈的资源信息之后,还包括:根据所述资源访问地址发起跨链的资源访问事务请求。

29.根据权利要求27所述的方法,其中,在识别到跨链资源的信息获取需求时,产生链资源处理请求包括下述至少一项:在识别到跨链资源的域名查询需求时,产生域名查询请求;所述域名查询请求中包括待访问资源的资源访问地址;和在识别到跨链资源的权限查询需求时,产生权限查询请求;所述权限查询请求中包括待访问资源的资源定位标识或资源访问地址。

30.根据权利要求27所述的方法,还包括:

向资源存储网络发起资源注册请求;其中,所述资源注册请求中包括本地区块链节点所提供可访问资源的资源定位数据和资源权限数据。

31.根据权利要求27所述的方法,其中,在识别到跨链资源的信息获取需求时,产生链资源处理请求包括:在执行区块链客户端发起的业务处理事务请求时,识别到跨链资源的信息获取需求,则根据待访问资源的资源定位标识,基于资源解析合约,产生链资源处理请求。

32.根据权利要求31所述的方法,其中,根据待访问资源的资源定位标识,基于资源解析合约,产生链资源处理请求包括:根据待访问资源的资源定位标识,基于资源解析合约中配置的域名解析器地址,产生目标地址为域名解析器的链资源处理请求。

33.根据权利要求27所述的方法,其中,区块链网络的域名空间包括多个层级,采用树状结构进行域名存储,所述树状结构的节点用于存储对应层级域名的标签,每个节点与区块链所提供的数据资源对应,每个节点的域名包括从当前节点至树状结构根节点路径上的标签组合;

所述域名空间的各层级域名标签,从上至下包括:区块链架构名称、区块链网络所属运营商名称、区块链名称、区块链节点名称和资源名称。

34.根据权利要求33所述的方法,其中,区块链网络提供的资源包括:区块链可支持服务和/或区块链可读数据;

所述区块链可支持服务包括下述至少一项:智能合约,和智能合约中可访问的方法程序。

35.一种区块链的资源处理装置,配置于资源解析系统,所述装置包括:处理请求获取模块,用于获取链资源处理请求;

资源信息确定模块,用于根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;

处理请求响应模块,用于基于所述资源信息响应所述链资源处理请求;

其中,所述资源存储网络中存储的资源信息包括:资源定位数据和资源权限数据;

资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;

所述资源定位标识的字符串中包括域名;所述域名为待访问资源所在区块链节点所属域的域名,所述资源访问地址中包括待访问资源所在区块链节点的通信地址。

36.一种区块链的资源处理装置,应用于资源存储网络,所述资源存储网络为去中心化存储网络,所述装置包括:信息处理请求获取模块,用于获取资源信息处理请求;所述资源信息处理请求基于链资源处理请求而确定;

资源信息确定模块,用于根据所述资源信息处理请求,和所述资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;

信息处理请求响应模块,用于基于所述资源信息响应所述资源信息处理请求;所述资源数据为区块链网络中提供的可访问资源;

其中,所述资源存储网络中存储的资源信息包括:资源定位数据和资源权限数据;

资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;

所述资源定位标识的字符串中包括域名;所述域名为待访问资源所在区块链节点所属域的域名,所述资源访问地址中包括待访问资源所在区块链节点的通信地址。

37.一种区块链的资源处理装置,应用于区块链节点,所述装置包括:处理请求产生模块,用于在识别到跨链资源的信息获取需求时,产生链资源处理请求;

处理请求发送模块,用于将所述链资源处理请求发送给资源解析系统,以请求所述资源解析系统基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;

资源信息接收模块,用于接收所述资源解析系统反馈的资源信息;

其中,所述资源存储网络中存储的资源信息包括:资源定位数据和资源权限数据;

资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;

所述资源定位标识的字符串中包括域名;所述域名为待访问资源所在区块链节点所属域的域名,所述资源访问地址中包括待访问资源所在区块链节点的通信地址。

38.一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑14或15‑26或27‑34中任一项所述的区块链的资源处理方法。

39.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1‑14或15‑26或27‑34中任一项所述的区块链的资源处理方法。

说明书 :

一种区块链的资源处理方法、装置、设备和介质

技术领域

[0001] 本公开涉及计算机技术领域,尤其涉及区块链技术。

背景技术

[0002] 近年来,随着区块链行业的蓬勃发展,产生了很多的区块链网络,无论是采用相同框架的同构区块链,还是采用不同框架的异构区块链,彼此之间都很难寻找和定位到彼此的数据资源,造成了众多的数据孤岛,严重阻碍了数据要素的流通。
[0003] 因此,迫切需要一个解决方案能够系统地解决多链之间互相定位到彼此数据资源的问题。

发明内容

[0004] 本公开提供了一种区块链的资源处理方法、装置、设备和介质,以实现多链之间的数据资源的相互定位和获取,以及对多链数据资源的维护和管理。
[0005] 根据本公开的一方面,提供了一种区块链的资源处理方法,应用于资源解析系统,所述方法包括:
[0006] 获取链资源处理请求;
[0007] 根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;
[0008] 基于所述资源信息响应所述链资源处理请求。
[0009] 根据本公开的另一方面,提供了一种区块链的资源处理方法,应用于资源存储网络,所述方法包括:
[0010] 获取资源信息处理请求;所述资源信息处理请求基于链资源处理请求而确定;
[0011] 根据所述资源信息处理请求,和所述资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;
[0012] 基于所述资源信息响应所述资源信息处理请求;所述资源数据为区块链网络中提供的可访问资源。
[0013] 根据本公开的另一方面,提供了一种区块链的资源处理方法,应用于区块链节点,所述方法包括:
[0014] 在识别到跨链资源的信息获取需求时,产生链资源处理请求;
[0015] 将所述链资源处理请求发送给资源解析系统,以请求所述资源解析系统基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;
[0016] 接收所述资源解析系统反馈的资源信息。
[0017] 根据本公开的另一方面,提供了一种区块链的资源处理装置,配置于资源解析系统,所述装置包括:
[0018] 处理请求获取模块,用于获取链资源处理请求;
[0019] 资源信息确定模块,用于根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;
[0020] 处理请求响应模块,用于基于所述资源信息响应所述链资源处理请求。
[0021] 根据本公开的另一方面,提供了一种区块链的资源处理装置,应用于资源存储网络,所述装置包括:
[0022] 信息处理请求获取模块,用于获取资源信息处理事务请求;所述资源信息处理事务请求基于链资源处理请求而确定;
[0023] 资源信息确定模块,用于根据所述资源信息处理事务请求,和所述资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;
[0024] 信息处理请求响应模块,用于基于所述资源信息响应所述资源信息处理事务请求;所述资源数据为区块链网络中提供的可访问资源。
[0025] 根据本公开的另一方面,提供了一种区块链的资源处理装置,应用于区块链节点,所述装置包括:
[0026] 处理请求产生模块,用于在识别到跨链资源的信息获取需求时,产生链资源处理请求;
[0027] 处理请求发送模块,用于将所述链资源处理请求发送给资源解析系统,以请求所述资源解析系统基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;
[0028] 资源信息接收模块,用于接收所述资源解析系统反馈的资源信息。
[0029] 根据本公开的另一方面,还提供了一种电子设备,包括:
[0030] 至少一个处理器;以及
[0031] 与至少一个处理器通信连接的存储器;其中,
[0032] 存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例所提供的任意一种区块链的资源处理方法。
[0033] 根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例所提供的任意一种区块链的资源处理方法。
[0034] 根据本公开的另一方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开实施例所提供的任意一种区块链的资源处理方法。
[0035] 根据本公开的技术,实现了多链之间的数据资源的相互定位和获取,以及对多链数据资源的维护和管理。
[0036] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0037] 附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0038] 图1是根据本公开实施例提供的一种区块链的资源处理方法的示意图;
[0039] 图2是根据本公开实施例提供的另一种区块链的资源处理方法的示意图;
[0040] 图3是根据本公开实施例提供的又一种区块链的资源处理方法的示意图;
[0041] 图4是根据本公开实施例提供的又一种区块链的资源处理方法的示意图;
[0042] 图5是根据本公开实施例提供的又一种区块链的资源处理方法的示意图;
[0043] 图6是根据本公开实施例提供的一种区块链的资源处理装置的结构图;
[0044] 图7是根据本公开实施例提供的一种区块链的资源处理装置的结构图;
[0045] 图8是根据本公开实施例提供的一种区块链的资源处理装置的结构图;
[0046] 图9是用来实现本公开实施例的区块链的资源处理的方法的电子设备的框图。

具体实施方式

[0047] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0048] 本公开的技术方案适用于在区块链网络中实现资源数据的定位和访问。随着区块链技术的发展,出现了越来越多的跨链网络。即在区块链网络中部署有多条区块链,各条区块链中设置有不同的可访问资源。因此,需要提供一种通用、扩展性强的方案,能够实现在区块链网络中进行资源数据的定位、获取和管理维护。本公开的技术方案,在区块链网络的基础上,设置了资源解析系统和资源存储网络。资源存储网络为去中心化存储网络,优选是采用区块链技术实现,主要用于存储和维护区块链网络中各种资源数据的关联信息。资源解析系统用于在区块链网络和资源存储网络之间,提供资源信息解析查询的服务。下面详细介绍具体技术方案。
[0049] 图1是根据本公开实施例提供的一种区块链的资源处理方法的示意图,本公开实施例可适用于多链之间进行资源数据相互定位和获取的情况。该方法可由一种区块链的资源处理装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以为资源解析系统。参考图1,该方法应用于资源解析系统,该方法具体包括如下:
[0050] S110、获取链资源处理请求。
[0051] 其中,链资源处理请求可以是跨链获取数据资源、查询域名或查询权限等对信息进行处理的请求。链资源处理请求可以由任意跨链资源使用者直接发起,例如,链资源处理请求的发起方可以是区块链节点。
[0052] 在一个可选实施例中,获取链资源处理请求包括:获取区块链节点发起的链资源处理请求;其中,链资源处理请求基于区块链客户端发起的事务请求而产生。
[0053] 示例性的,跨链资源使用者可以根据实际需求,通过区块链客户端发起跨链资源获取或资源处理等事务请求,并将该事务请求作为链资源处理请求发送至资源解析系统。区块链节点中可配置有资源解析系统的访问地址,从而可向资源解析系统直接发起链资源处理请求。
[0054] 本可选实施例通过获取基于区块链客户端发起的事务请求,得到链资源处理请求的方式,实现了区块链上的跨链资源使用者对链资源获取等相关请求的直接发起,提高了链上跨链资源使用者的便利性。
[0055] S120、根据链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息。
[0056] 其中,资源存储网络可以为去中心化存储网络,例如,资源存储网络可以为基于区块链技术实现的去中心化存储网络。资源数据可以为区块链网络中提供的可访问资源,资源信息可以为可访问资源的关联信息。
[0057] 示例性的,资源解析系统可以根据链资源处理请求,向资源存储网络发起资源信息的获取请求;资源存储网络接收到资源信息的获取请求后,根据获取请求,基于网络中存储的资源数据的信息,进行资源信息查询,从而确定与获取请求对应的资源信息。
[0058] 可以理解的是,资源存储网络可以是基于区块链技术实现的区块链网络。因此,资源解析系统可以通过向资源存储网络发起事务请求的方式获取资源信息。从而既保证资源解析系统能够可靠、无篡改的存储资源数据的信息,也可保证对资源信息的查询处理等操作是可靠的。
[0059] 在一个可选实施例中,根据链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据链资源处理请求,产生资源信息处理事务请求;将资源信息处理事务请求向资源存储网络发起,以请求资源存储网络处理资源信息处理事务请求,并反馈资源信息;其中,资源存储网络是基于区块链技术实现的区块链网络。
[0060] 其中,资源信息处理事务请求可以是由资源解析系统对链资源处理请求进行请求解析或转换后得到的,用于向区块链网络发起的事务请求。
[0061] 示例性的,若资源存储网络为基于区块链技术实现的区块链网络,则资源解析系统在获取到资源处理请求后,对资源处理请求进行解析或转换,得到资源信息处理事务请求;资源解析系统向资源存储网络发起资源信息处理事务请求,资源存储网络在获取到资源信息处理事务请求后,基于网络中存储的资源数据的信息,进行资源信息查询,从而确定资源信息。
[0062] 本可选实施例,资源解析系统可装配有资源存储网络的区块链客户端,从而通过根据链资源处理请求,产生资源信息处理事务请求,并向资源存储网络发起资源信息处理事务请求的方式,实现了对基于区块链技术实现的资源存储网络的事务请求的发起,从而实现了对基于区块链技术实现的资源存储网络生成的资源信息的获取。
[0063] S130、基于资源信息响应链资源处理请求。
[0064] 示例性的,资源解析系统可以在获取到资源存储系统确定的资源信息后,将资源信息反馈至链资源处理请求的发起方。
[0065] 在一个可选实施例中,资源解析系统可以基于区块链客户端发起事务请求,从而将资源信息反馈至跨链资源使用者的所属区块链节点。或者,可以直接将资源信息反馈给链资源处理请求的发起方。
[0066] 本公开实施例方案通过根据获取的链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,从而确定资源信息,并基于资源信息响应链资源处理请求。上述方案由去中心化存储网络对多链数据资源进行维护和管理,通过资源解析系统从去中心化存储网络中获取资源信息,并反馈给跨链资源使用者,实现了多链之间的数据资源的相互定位和获取;由去中心化存储网络对多链的数据资源进行存储和维护,能够有效防止数据资源被篡改,且能维持更新;本公开的技术方案通用性强、安全可靠性高。
[0067] 在上述各技术方案的基础上,本公开还提供了一个可选实施例,在该实施例中,对资源信息的确定过程进行优化,以实现根据不同的对链资源处理请求进行处理的方式,确定资源信息。需要说明的是,在本公开实施例中未详述部分,可参见其他实施例中的相关表述,在此不再赘述。
[0068] 参见图2所示的一种区块链的资源处理方法,包括:
[0069] S210、获取链资源处理请求。
[0070] S220、通过资源解析系统中的域名解析器,根据链资源处理请求确定目标域名服务器。
[0071] 其中,域名解析器可以用于对域名进行解析并转换成IP(Internet Protocol,网际互连协议)地址,域名解析器的地址可以预先在区块链节点中进行注册,以供后续区块链节点能够根据预先注册的域名解析器的地址向域名解析器发起链资源处理请求。因此,区块链节点中可以部署有至少一个域名解析器的地址。
[0072] 域名解析器可以管理两类信息,第一类可以为请求数据及请求对应的状态信息,第二类可以为开放查询权限的域名服务器。其中,请求数据可以包括正在查询的域名、节点地址和资源名称等。状态信息可以是查询状态,例如可以包括查询中、查询失败和查询成功等。
[0073] 其中,域名服务器可以是负责管理包括域名空间和资源信息记录的数据库。该数据库可以被划分成多个称为区域(zone)的部分,每个域名服务器可以存储一个或多个区域。域名服务器收到资源信息处理请求后,通过检索本地的区域中的数据来给出响应结果。
[0074] 可以理解的是,资源存储网络可以按区域将资源数据或资源信息授权给域名服务器。其中,区域的划分方式例如可以是按照国家地区划分;也可以是按照城市区域划分,如:A市区域或B市区域;还可以按照企业划分,例如,A企业对应一台域名服务器,B企业对应一台域名服务器等。本实施例对区域的划分方式不作限定。把划分后的区域授权给区域服务器后,即可通过该区域服务器查询划分区域内的数据资源的定位等相关数据。
[0075] 可以理解的是,为增强域名服务器的健壮性,可以提升域名服务器存储区域的冗余度,即多个不同的域名服务器可以存储相同的区域,从而使得多个域名服务器均能够对涉及目标区域的查询做出响应。
[0076] 为实现域名服务器的负载均衡,当某台域名服务器包含的域名空间和资源记录的数据库过于庞大时,为提升效率,可以将其划分为多个区域,每个区域彼此独立,不存在重合的内容。然后将部分区域传输给其它的域名服务器来实现负载均衡。
[0077] 为了提升管理效率,也可以将多台域名服务器进行合并,对这些域名服务器所存储的区域进行去重后,统一集中到单台域名服务器中进行存储和管理。
[0078] 需要说明的是,在域名解析器向域名服务器发起资源信息处理请求之前,需要获取到至少一台具有访问权限的域名服务器。其中,目标域名服务器可以是域名解析器从获取到的至少一台具有访问权限的域名服务器中,任意选取的一台或多台域名服务器。域名解析器对目标域名服务器的选取方式可以是采用随机选取规则随机选取域名服务器,也可以是优先访问离自己物理距离较近的域名服务器,还可以是访问延迟最低的域名服务器等。
[0079] 在一个可选实施例中,通过域名解析器,根据链资源处理请求确定目标域名服务器包括:通过域名解析器,根据链资源处理请求,在域名解析器已发现的域名服务器中,确定目标域名服务器。
[0080] 其中,已发现的域名服务器可以是在域名解析器处理请求过程中,逐步累计确定的至少一台可被访问的域名服务器。
[0081] 可选的,域名解析器向域名服务器发起请求的方式可以是域名解析器会对发起方发起的链资源处理请求进行分析,如果未查询到与链资源处理请求对应的资源信息,或者资源信息不够完整,区域解析器会将链资源处理请求转换成域名服务器可以解析的规范请求,查找开放查询权限的域名服务器,并向其发起请求。
[0082] S230、通过域名解析器,向目标域名服务器发起资源信息处理请求;其中,资源信息处理请求用于请求目标域名服务器,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息。
[0083] 示例性的,域名解析器可以直接向目标域名服务器发起资源信息处理请求,也可以将资源信息处理请求进行广播,以供目标域名服务器监听到资源信息处理请求后获取。
[0084] 可以理解的是,目标域名服务器在无法对资源信息处理请求进行响应时,可以向域名解析器反馈资源解析系统中,域名解析器未发现的其他的域名服务器。需要说明的是,在一台新的域名服务器加入至资源解析系统时,需要获取到至少一个域名服务器的地址,从而建立关联关系。
[0085] 在一个可选实施例中,接收目标域名服务器反馈的资源信息之前,还包括:通过域名解析器,如果接收到目标域名服务器反馈的可选域名服务器连接地址,则根据可选域名服务器连接地址与对应的域名服务器建立连接,并更新作为新的目标域名服务器,继续执行发起资源信息处理请求的操作,直至接收到资源信息或失败结果;其中,链资源的地址空间划分为多个域,每个域名服务器用于查询一个或多个域中资源信息。
[0086] 其中,可选域名服务器可以是与目标域名服务器具有关联关系的,且域名解析器未能主动发现的域名服务器。
[0087] 示例性的,在域名解析器向目标域名服务器发送资源信息处理请求后,若目标域名服务器的本地缓存中没有对应的资源信息,或者无法响应该资源信息处理请求时,目标域名服务器可以查询与自身具有关联关系的其他域名服务器,并从其他域名服务器中确定可选域名服务器,将可选域名服务器连接地址发送给域名解析器。域名解析器根据可选域名服务器连接地址与对应的域名服务器建立连接,并更新作为新的目标域名服务器,继续执行发起资源信息处理请求的操作,直至接收到资源信息或失败结果。
[0088] 可选的,目标域名服务器确定可选域名服务器的方式可以是通过DHT(Distributed Hash Table,分布式哈希表)技术,分布式哈希表来实现对数据资源的递归定位与查询;也可以通过选择性的记录相临近的其它域名服务器所存储的区域的摘要信息来实现。
[0089] 链资源的地址空间划分为多个区域(zone),每个域名服务器用于查询一个或多个区域中资源信息;域名服务器收到资源信息处理请求后,可以通过检索本地区域中的数据来给出响应结果。
[0090] 本可选实施例通过接收目标域名服务器反馈的可选域名服务器连接地址,与可选域名服务器建立连接,实现了域名解析器对可访问到的域名服务器的不断扩充,为域名解析器提供更多的可选空间,从而提高了域名解析器和域名服务器对请求进行处理的效率。
[0091] 可以理解的是,资源解析系统中可以包括至少一台域名解析器,在一台新的域名解析器加入至资源解析系统时,需要获取资源解析系统中至少一个域名解析器的地址,从而建立关联关系。因此,当区块链节点向域名解析器发起链资源处理请求时,如果通过域名解析器确定资源信息查询失败,则确定其他的可选域名解析器。
[0092] 在一个可选实施例中,根据链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询之后,还包括:如果通过域名解析器,确定资源信息查询失败,则确定其他的可选域名解析器,并将可选域名解析器的连接地址反馈给链资源处理请求的发起方,以供发起方向可选域名解析器重新发起链资源处理请求。
[0093] 其中,可选域名解析器可以是资源解析系统部署的与当前处理请求的域名解析器具有关联关系的其他可访问的域名解析器。
[0094] 示例性的,如果域名解析器根据链资源处理请求,对资源信息的查询失败,则可以确定其他的可选域名解析服务器,并将可选域名解析器的连接地址反馈给链资源处理请求的发起方,从而使得发起方重新根据可选域名解析器发起链资源处理请求。此外,链资源请求的发起方还可以对可选域名解析器的连接地址进行存储,以便后续能够根据可选域名解析器发起请求。
[0095] 本可选实施例通过确定其他的可选域名解析器的连接地址,由请求发起方与可选域名解析器建立连接,实现了请求发起方可以对可访问到的域名解析器的不断扩充,为请求发起方提供更多的可选空间,从而提高了域名解析器和域名服务器对请求进行处理的效率。
[0096] 可以理解的是,为提高请求被应答的可能性,减小请求耗用的时间,避免过量请求导致域名服务器过载。如果域名解析器需要访问域名服务器时,对于每个要处理的链资源处理请求,进行状态字段的标记。域名解析器在响应链资源处理请求时生成请求对应的超时时间,在域名解析器和域名服务器在处理资源信息处理请求时,如果处理时间在超时时间到达前未完成,则会强制结束并返回对应的错误信息给发起方。
[0097] 可选的,为提高域名解析器对域名服务器的选取效率,可以对资源解析系统中的域名服务器进行预先分组,由域名解析器对资源信息处理请求进行广播,每次广播请求时只选择其中一组,从而提高选择服务器的效率。域名服务器执行查询的过程中,当查询到结果或者异常终止时,会将查询结果或查询到可访问的可选域名服务器返回给资源解析器。
[0098] S240、通过域名解析器,接收目标域名服务器反馈的资源信息。
[0099] 在一个具体实施例中,域名服务器在获取到链资源处理请求后,在本地缓存中查看是否存在与链资源处理请求相对应的资源信息。若存在,则将本地缓存中的资源信息直接反馈至发起方;若不存在,则采用一定的规则,如随机选取规则,从可访问的域名服务器集合中选取至少一个域名服务器,并向选中的域名服务器发送资源信息处理请求,直到存在一个域名服务器反馈响应结果。资源解析器分析该响应结果,如果响应成功,则将响应的资源信息反馈至发起方。如果该响应包含其他授权的域名服务器,则缓存域名服务器相关信息。如果响应包含域名服务器授权错误、服务器故障或者其他异常,从本地缓存信息中删除该域名服务器信息,并重新选取域名服务器。如果所挑选的域名服务器均无法处理该资源信息处理请求,且总重试次数未到达阈值上限,则从域名服务器集合中选取其他域名服务器再次发起请求,若总重试次数达到阈值上限,则向发起方返回错误。
[0100] 在一个可选实施例中,通过域名解析器,接收目标域名服务器反馈的资源信息之后,还包括:通过域名解析器,对资源信息进行下述至少一项检查:合法性检查、有效性检查和匹配性检查。
[0101] 域名解析器对资源信息的合法性的检查可以包括:响应结果中需要包含域名服务器的权威身份信息,且需要验证通过。同时响应结果的数据结构体需要符合表述规范。
[0102] 域名解析器对资源信息的有效性的检查可以包括:如果响应到达时间超过了发送请求时设置的超时时间,应当抛弃这个响应结果。
[0103] 域名解析器对资源信息的有效性的检查可以包括:对每个请求生成唯一的ID(Identity document,身份标识号),并在发送的请求中包含该ID。域名服务器返回的响应结果中也应包含该ID。域名解析器负责确认响应结果中的的ID与请求的ID是否匹配,从而验证资源信息的有效性。
[0104] 本可选实施例通过对资源信息进行合法性、有效性和匹配性检查,提高了获取到的资源信息的安全性,避免了获取到的资源信息存在安全问题而对请求发起方造成损失情况的方生。
[0105] S250、基于资源信息响应链资源处理请求。
[0106] 可以理解的是,域名解析器接收到链资源处理请求后,根据链资源处理请求确定目标域名服务器,并向目标域名服务器发起资源信息处理请求,由目标域名服务器基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息。在上述过程中,域名解析器可能需要连续访问多个域名服务器,才能够找到能够处理资源信息处理请求的目标域名服务器。此外,目标域名服务器同样需要将该资源信息处理请求发至资源存储网络进行处理并反馈资源信息。然而,上述过程中增加了域名解析器和域名服务器的负载,且转发请求和反馈结果的过程降低了对资源信息的获取效率,从而降低了资源解析系统的性能。因此,在对链资源处理请求进行处理的过程中,可以对资源存储网络反馈的资源信息进行本地存储。
[0107] 在一个可选实施例中,根据链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据链资源处理请求,在本地缓存中进行资源信息的查询;如果在本地缓存中查询到资源信息,则确定为资源信息;如果在本地缓存中未查询到资源信息,则向资源存储网络发起资源信息处理请求,以进行资源信息查询,并确定资源信息。
[0108] 资源解析系统可以将资源存储网络反馈的资源信息在本地进行存储。示例性的,域名服务器和/或域名解析器可以将获取的资源信息在本地缓存。在获取到资源信息处理请求时,域名解析器在本地缓存中进行资源信息的查询;若域名解析器查询到与资源信息处理请求对应的资源信息,则将该资源信息直接反馈至发起方;若域名解析器未查询到与资源信息处理请求对应的资源信息,则向域名服务器发送资源信息处理请求。
[0109] 域名服务器根据资源信息处理请求,在本地缓存中进行查询,若域名服务器查询到与资源信息处理请求对应的资源信息,则将该资源信息发送至域名解析器,由域名解析器将资源信息反馈至发起方;若域名服务器未查询到与资源信息处理请求对应的资源信息,则向资源存储网络发送资源信息处理请求,以请求资源存储网络对资源信息处理请求进行处理,并反馈资源信息。
[0110] 需要说明的是,资源解析系统对资源信息进行缓存的数据容量较小,但随着缓存的资源信息量不断增加,缓存空间被写满是不可避免的。因此,可以采取一定的更新或淘汰机制,将缓存的资源信息进行定期清除,从而为新获取的资源信息预留出更多的存储空间。
[0111] 示例性的,可以预先设定更新时间,对更新时间内的资源信息进行保留,对更新时间外的资源信息进行清除。例如,更新时间可以是7天。即,可以定期对本地缓存中超过更新时间7天的资源数据进行清除。
[0112] 本可选实施例通过对获取的资源信息在本地中进行缓存,根据链资源处理请求,可以在本地缓存中进行资源信息的查询,如果在域名解析器和域名服务器的本地缓存中均查询不到,在向资源存储网络发起请求,大幅度提高了对资源信息处理请求的响应速度,减轻了域名解析器和域名服务器的负载,提高了对资源信息的获取效率,从而提高了资源解析系统的性能。
[0113] 本公开实施例通过资源解析系统中的域名解析器,根据链资源处理请求确定目标域名服务器;通过域名解析器,向目标域名服务器发起资源信息处理请求; 通过域名解析器,接收目标域名服务器反馈的资源信息。上述方案通过采用资源解析系统中的域名解析器和/或域名服务器,对链资源处理请求进行处理的方式,提高了对发起方发起的跨链访问数据请求的效率,相比较于由区块链网络直接查询的效率更高。
[0114] 可以理解的是,资源存储网络可以是基于区块链技术的去中心化存储网络,能够解决区块链空间域名和资源记录的去中心化存储问题。基于去中心化存储技术,能够保证区块链空间域名和资源记录的高可用性和真实性。
[0115] 需要说明的是,跨链资源发起方和提供方需要基于相同的跨链命名协议发起请求,统一的跨链命名协议作为区块链网络间跨链访问资源的互操作性基础。可以通过基于区块链技术的资源存储网络上的智能合约来对全局字典表进行增加和更新等操作。其它区块链节点通过该智能合约来发布资源信息。该全局字典表的实际数据存储于中心化的资源存储网络中。其中,全局字典表可以使用一个全局的编码表,用于区块链网络的定位,在全局声明区块链的属性,如框架类型,名称等用于实现数据互认的基础信息。
[0116] 在一个可选实施例中,资源存储网络中存储的资源信息包括:资源定位数据和资源权限数据;资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;资源定位标识的字符串中包括域名;域名为待访问资源所在区块链节点所属域的域名,资源访问地址中包括待访问资源所在区块链节点的通信地址。
[0117] 其中,链资源的资源定位标识可以是链资源在区块链网络中的定位标志,每个数据资源拥有全局唯一的链资源定位标志。链资源的资源定位标识与资源访问地址之间具有映射关系,可以通过链资源的资源定位标识获取到对应的资源访问地址。
[0118] 其中,待访问资源可以是链资源发起方想要访问或获取的资源。资源权项数据可以包括具有访问链资源权限的区块链节点名称或标识等。
[0119] 跨链资源访问涉及到不同链的数据资源的交互操作,资源定位标识用于实现对这些数据资源的统一定位。在多链构成的区块链网络中,每一条数据资源都有统一且唯一的资源访问地址,该地址与资源定位标识具有映射关系。资源访问地址的协议定义可以预先设定,例如,资源访问地址的协议定义可以为:[链的具体类型:][//链名][子链/侧链/平行链名][/合约名、方法名等参数信息]。
[0120] 其中,参数项可以包括:资源名称、资源执行参数、跨链请求发起方的账户公钥和跨链请求发起方的签名等。其中,资源执行参数可以包括区块链框架预留参数(默认值可以为default)、待访问资源的智能合约的合约名、待访问资源的智能合约的方法名和合约参数等。
[0121] 举例说明:假定有一个区块链网络使用名为Xuper的底层框架搭建,名字叫hello_chain。这个网络下面有一条子链/侧链/平行链叫child_chain。在这个child_chain上有一个使用wasm(webassembly)合约虚拟机才能执行的智能合约,智能合约名叫counter,作用为一个简单的计数器。该智能合约提供了两个方法,分别为increase和getNumber。调用increase方法,会使得每次将数值加1。而调用getNumber方法,会返回当前的数值。若存在区块链网络world_chain,想要跨链访问hello_chain网络上的子链child_chain上名为counter的计数器智能合约,并获取当前的数值。则按照之前预先定义的跨链协议生成的资源访问地址可以为:“xuper://hello_chain/child_chain/module=wasm&contract_name=counter&method_name=getNumber”。
[0122] 其中,xuper表示区块链框架预留参数,即访问的区块链类型为Xuper框架;hello_chain表示待访问资源的链名为hello_chain;child_chain表示待访问资源xuper链的子链名/侧链/平行链名为child_chain;module=wasm表示待访问资源为一个智能合约,且使用的虚拟机为wasm;contract_name=counter表示待访问资源的智能合约的合约名为counter;method_name=getNumber表示待访问资源的智能合约的方法名为getNumber。
[0123] 在一个可选实施例中,区块链网络的域名空间包括多个层级,采用树状结构进行域名存储,树状结构的节点用于存储对应层级域名的标签,每个节点与区块链所提供的数据资源对应,每个节点的域名包括从当前节点至树状结构根节点路径上的标签组合;域名空间的各层级域名标签,从上至下包括:区块链架构名称、区块链网络所属运营商名称、区块链名称、区块链节点名称和资源名称。
[0124] 其中,区块链网络的域名空间记录了树状结构的域名空间和与这些域名空间关联的数据资源。域名空间树的每个节点(包括叶子,本实施例对节点与叶子不加区别,统一称为“节点”)记录一条数据资源记录。其中,数据资源中可以包括资源类型、访问地址、访问协议、版本号、权限要求。例如,资源类型可以是使用的智能合约的类型,如使用wasm虚拟机的智能合约;访问地址中可以包括IP和端口号等;权限要求例如可以是智能合约中不同方法所对应的不同的权限要求。
[0125] 每个节点用于存储对应层级域名的标签,非兄弟节点的标签可以相同,但兄弟节点的标签不同。其中,兄弟节点可以是具有相同父节点的节点。树状结构根节点的标签可以是空标签,即标签长度为零的标签。节点的完整域名是从当前节点到树结构的根路径沿途的各个标签的拼接。
[0126] 示例性的,域名可以用任意大小写命名或保存,例如可以使用标记“A”生成节点,或使用标记“a”生成节点,但是二者不能作为兄弟标签。在生成完整域名时,可能需要拼接多个标签,此时不同标签可以采用标记符隔开,例如,标记符可以是圆点(“.”)。
[0127] 其中,代表完整域名的字符串可以称为绝对域名。例如,绝对域名可以是“channel.xxxxx.xchannel.”。代表不完整域名的开始标签的字符串可以称为相对域名。例如,绝对域名“channel.xxxxx.xchannel.”中的“channel”可作为一个相对域名。如果某个域名被包含在另一个域名中,则前者是后者的子域名。例如,channel.xxxxx.xchannel是xxxxx.xchannel和xchannel的子域名。
[0128] 需要说明的是,发起方所发起的链资源处理请求中的域名可以用标签序列来表示。每个标签可以为一个八位字符长度的字符串,域名的最大总长度被限制不超过255个标签。域名服务器和域名解析器可以采用不区分大小写的方式比较标签。
[0129] 域名中可以采用任意大小写字符。但具有相同拼写、不同大小写的域名可以被看作为同一域名,域名的命名以字母开始,以字母或数字结束,中间的字符可以包括字母、数字和连字符等。对域名长度的限制可以是标签长度不大于63个字符。例如,下述字符串标识可以被用于在跨链请求中描述特定的区块链网络:CHANNEL.XXX.XCHANNEL。
[0130] 可选的,本实施例对区块链网络的域名空间所使用的树状结构不做限定,即不限定使用某种特定的树状结构,或必须使用某种特定的方法在树状结构中定位标签,从而提升域名空间的通用性。
[0131] 其中,每个节点与区块链所提供的数据资源对应,即每个节点可以对应一个域名,每个域名可以与区块链所提供的数据资源相对应,每个数据资源可以对应一条资源记录,每个资源记录可以对应一个资源定位符。
[0132] 需要说明的是,域名服务器中可以缓存有关树状结构的域名空间的结构。域名服务器缓存了指定区块链网络的域名空间内的资源记录信息,并定时进行刷新。资源记录信息被存储在基于区块链技术的去中心化资源存储网络中。
[0133] 在一个可选实施例中,资源查询请求会被域名解析器转发到域名服务器来触发响应。域名服务器可以对资源查询请求进行响应,或者给出发生错误的原因。发起方不会直接将请求发送给域名服务器,而是首先向域名解析器提出资源查询请求。域名解析器将根据某些查询条件,将请求转发给适合处理这些请求的域名服务器,或者给出发生错误的原因。举例说明,假设域名XXXX.XCHANNEL下存在多条链,CHAINX、CHAINY、CHAINZ,这三条链的查询请求可以分别由3台域名服务器ServerX、ServerY、ServerZ分别处理。因此,可以根据具体的链来进行转发对应的请求。例如针对CHAINX.XXXX.XCHANNEL的查询请求,可以根据域名中的“CHAINX”将请求发送给域名服务器ServerX进行处理。
[0134] 在一个可选实施例中,区块链网络提供的可访问资源包括:区块链可支持服务和/或区块链可读数据;区块链可支持服务包括下述至少一项:智能合约,和智能合约中可访问的方法程序。
[0135] 可以理解的是,跨链资源发起方可以向资源解析系统发起获取链资源的链资源访问请求、查询域名的域名查询请求以及查询是否链资源访问权限的权限查询请求。
[0136] 在一个可选实施例中,若链资源处理请求为链资源访问请求,则根据链资源访问请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据链资源访问请求中的待访问资源的资源定位标识,基于资源存储网络中存储的资源定位数据,进行访问地址查询,以确定资源访问地址;其中,资源访问地址表征待访问资源在区块链网络中的访问入口。
[0137] 其中,链资源访问请求可以是发起方对区块链网络中的链资源的访问或获取请求。
[0138] 其中,链资源访问请求中可以包括资源定位标识和访问参数,访问参数可以包括下述至少一项:资源名称、资源执行参数、发起方公钥和发起方签名。
[0139] 资源解析系统根据获取的链资源访问请求,请求资源存储网络根据该链资源访问请求确定资源访问地址。示例性的,资源解析系统可以对获取的链资源访问请求进行解析,从而得到域名解析请求,并向资源存储网络发起域名解析请求。其中,域名解析请求中可以包括待访问资源的资源定位标识和访问参数。资源存储网络基于存储的资源定位数据,根据资源定位标识,查询与资源定位标识具有映射关系的资源访问地址,从而将查询到的资源访问地址基于资源解析系统反馈至发起方。
[0140] 可选的,当资源解析系统获取到链资源访问请求后,可以通过域名解析器,根据链资源访问请求中的资源定位标识和访问参数,在本地缓存中进行查询,若查询到与资源定位标识符对应的资源访问地址,则可以直接将该资源访问地址反馈给发起方;若未查询到与资源定位标识符对应的资源访问地址,则域名解析器将链资源访问请求进行转换得到域名服务器可识别的域名解析请求,由域名服务器在本地缓存中查询是否存在与域名解析请求对应的资源访问地址,若存在,则直接将查询到的资源访问地址经域名解析器反馈至发起方;若不存在,则由资源存储网络对域名解析请求进行处理从而得到对应的资源访问地址。
[0141] 示例性的,在发起方获取到资源访问地址后,可以通过资源访问地址,确定待访问资源在区块链网络中的访问入口,并通过该访问入口对待访问资源进行访问。
[0142] 本可选实施例方案通过链资源访问请求中的待访问资源的资源定位标识,基于资源存储网络中存储的资源定位数据,进行访问地址查询,实现了对资源访问地址的确定,从而实现了发起方能够通过资源访问地址对跨链资源的访问和获取。
[0143] 在一个可选实施例中,若链资源处理请求为域名查询请求,则根据域名查询请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据域名查询请求中的资源访问地址,基于资源存储网络中存储的资源定位数据,进行域名查询,以确定资源域名;资源域名为资源访问地址所属域的域名。
[0144] 其中,域名查询请求可以是发起方发起的对待访问资源所在区块链节点所属域域名的查询请求。
[0145] 其中,域名查询请求中可以包括资源访问地址。资源访问地址中可以包括待访问资源所在区块链节点的通信地址。
[0146] 资源解析系统根据获取的域名查询请求,请求资源存储网络根据该域名查询请求确定资源域名。示例性的,资源解析系统可以对获取的域名查询请求进行解析,并向资源存储网络发起解析后的域名查询请求。其中,域名查询请求中可以包括资源访问地址。资源存储网络基于存储的资源定位数据,根据资源访问地址,进行域名查询,从而将查询到资源访问地址所属域的域名,并作为资源域名基于资源解析系统反馈至发起方。
[0147] 可选的,当资源解析系统获取到域名查询请求后,可以通过域名解析器,根据域名查询请求中的资源访问地址,在本地缓存中进行查询,若查询到资源访问地址所属域的域名,则可以直接将该资源域名反馈给发起方;若未查询到资源访问地址所属域的域名,则域名解析器将域名查询请求进行转换得到域名服务器可识别的域名查询请求,由域名服务器在本地缓存中查询是否存在与域名查询请求对应的资源域名,若存在,则直接将查询到的资源域名经域名解析器反馈至发起方;若不存在,则由资源存储网络对域名查询请求进行处理,从而得到资源访问地址所属域的域名。
[0148] 本可选实施例方案通过域名查询请求中的资源访问地址,基于资源存储网络中存储的资源定位数据,进行域名查询,实现了对资源访问地址所属域的域名的确定。
[0149] 在一个可选实施例中,若链资源处理请求为权限查询请求,则根据权限查询请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据权限查询请求中的待查询资源的资源访问地址或资源定位标识,基于资源存储网络中存储的资源权限数据,进行权限查询,以确定资源权限;资源权限为资源被访问的权限控制信息。
[0150] 其中,权限查询请求可以是发起方发起的区块链网络中的链资源的可被访问权限的查询请求。例如,若发起方想要获取区块链网络的链资源A,则可以预先查询是否具有对链资源A的获取或访问权限,也即链资源A是否对发起方授权,是否允许发起方访问。资源权限可以为资源被访问的权限控制信息。
[0151] 其中,权限查询请求中可以包括待查询资源的资源访问地址或资源定位标识。资源权限数据中可以包括资源被访问的权限控制信息,例如,具有访问链资源权限的区块链节点名称或标识等。
[0152] 资源解析系统根据获取的权限查询请求,请求资源存储网络根据该权限查询请求确定资源权限。示例性的,资源解析系统可以对获取的权限查询请求进行解析,并向资源存储网络发起解析后的权限查询请求。其中,权限查询请求中可以包括待查询资源的资源访问地址或资源定位标识。资源存储网络基于存储的资源权限数据,根据资源访问地址或资源定位标识,查询该资源定位标识或资源访问地址关联的资源是否具有访问权限,从而将查询得到的资源权限结果基于资源解析系统反馈至发起方。
[0153] 可选的,当资源解析系统获取到权限查询请求后,可以通过域名解析器,根据权限查询请求中的资源定位标识和资源访问地址,在本地缓存中进行权限查询,若查询到与权限查询请求对应的资源权限,则可以直接将该资源权限反馈给发起方;若未查询到与权限查询请求对应的资源权限,则域名解析器将权限查询请求进行转换得到域名服务器可识别的权限查询请求,由域名服务器在本地缓存中进行权限查询,若查询到与权限查询请求对应的资源权限,则可以直接将该资源权限反馈给发起方;若未查询到与权限查询请求对应的资源权限,则基于资源存储网络中存储的资源权限数据,进行权限查询,以确定资源权限。
[0154] 示例性的,在发起方获取到资源权限后,可以根据资源权限结果确定是否能够访问待查询资源。若资源权限未发起方具有访问权限,则可以通过资源访问地址,确定待查询资源在区块链网络中的访问入口,并通过该访问入口对待查询资源进行访问。
[0155] 本可选实施例方案通过根据权限查询请求中的待查询资源的资源访问地址或资源定位标识,基于资源存储网络中存储的资源权限数据,进行权限查询,实现了对资源权限的确定,从而实现了发起方对是否具有对待查询资源的访问权限的确定。
[0156] 图3是根据本公开实施例提供的一种区块链的资源处理方法的示意图,本公开实施例可适用于多链之间进行数据资源相互定位和获取的情况。该方法可由一种区块链的资源处理装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以为资源存储网络。参考图3,该方法应用于资源存储网络,该方法具体包括如下:
[0157] S310、获取资源信息处理请求;资源信息处理请求基于链资源处理请求而确定。
[0158] 其中,链资源处理请求可以是跨链获取数据资源、查询域名或查询权限的请求。资源信息处理请求可以是由资源解析系统对链资源处理请求进行解析或转换后的处理请求。其中,链资源处理请求可以基于区块链客户端发起的事务请求而产生。
[0159] 可以理解的是,资源存储网络为去中心化存储网络,资源存储网络既可以为基于区块链技术实现的区块链网络,也可以为基于其他技术实现的普通的分布式网络。当资源存储网络为基于区块链技术实现的区块链网络时,资源解析系统可以通过向资源存储网络发起事务请求的方式获取资源信息。
[0160] 在一个可选实施例中,资源存储网络是基于区块链技术实现的区块链网络,则获取资源信息处理请求包括:获取区块链客户端发起的资源信息处理事务请求,作为资源信息处理请求。
[0161] 其中,资源信息处理事务请求可以是由资源解析系统对链资源处理请求进行请求解析或转换后得到的,用于向区块链网络发起的事务请求。
[0162] 示例性的,若资源存储网络为基于区块链技术实现的区块链网络,则资源解析系统在获取到资源处理请求后,对资源处理请求进行解析或转换,得到资源信息处理事务请求;资源解析系统向资源存储网络发起资源信息处理事务请求,资源存储网络在获取到资源信息处理事务请求后,基于网络中存储的资源数据的信息,进行资源信息查询,从而确定资源信息。
[0163] 本可选实施例通过将区块链客户端发起的资源信息处理事务请求,作为资源信息处理请求的方式,实现了对基于区块链技术实现的资源存储网络的事务请求的发起,从而实现了对基于区块链技术实现的资源存储网络生成的资源信息的获取。
[0164] 可以理解的是,资源信息处理请求可以是资源解析系统中域名解析器或域名服务器在本地缓存中未查询到后发起。资源解析系统获取链资源处理请求,通过资源解析系统中的域名解析器,根据链资源处理请求确定目标域名服务器;通过域名解析器,向目标域名服务器发起资源信息处理请求;目标域名服务器向资源存储网络发起请求,请求基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息。
[0165] 域名解析器可以根据链资源处理请求,在本地缓存中进行资源信息的查询;如果域名解析器在本地缓存中查询到资源信息,则确定为资源信息;如果在本地缓存中未查询到资源信息,则向域名服务器发起资源信息处理请求;如果域名服务器在本地缓存中查询到资源信息,则确定为资源信息;如果在本地缓存中未查询到资源信息,则向资源存储网络发起资源信息处理请求,以进行资源信息查询并确定资源信息。因此,资源信息处理请求可以是由域名解析器或域名服务器发起。
[0166] 在一个可选实施例中,获取资源信息处理请求包括:获取资源解析系统中域名解析器或域名服务器发起的资源信息处理请求。
[0167] 其中,域名解析器可以用于对域名进行解析并转换成IP(Internet Protocol,网际互连协议)地址,域名解析器的地址可以预先在区块链节点中进行注册,以供后续区块链节点能够根据预先注册的域名解析器的地址向域名解析器发起链资源处理请求。因此,区块链节点中可以部署有至少一个域名解析器的地址。
[0168] 其中,域名服务器可以是负责管理包括域名空间和资源信息记录的数据库。该数据库可以被划分成多个称为区域(zone)的部分,每个域名服务器可以存储一个或多个区域。域名服务器收到资源信息处理请求后,通过检索本地的区域中的数据来给出响应结果。
[0169] S320、根据资源信息处理请求,和资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息。
[0170] 其中,资源存储网络可以为去中心化存储网络,例如,资源存储网络可以为基于区块链技术实现的去中心化存储网络。资源数据可以为区块链网络中提供的可访问资源,资源信息可以为可访问资源的关联信息。
[0171] 示例性的,资源解析系统可以根据链资源处理请求,向资源存储网络发起资源信息的获取请求;资源存储网络接收到资源信息的获取请求后,根据获取请求,基于网络中存储的资源数据的信息,进行资源信息查询,从而确定与获取请求对应的资源信息。
[0172] S330、基于资源信息响应资源信息处理请求;资源数据为区块链网络中提供的可访问资源,资源信息为可访问资源的关联信息。
[0173] 示例性的,资源解析系统可以在获取到资源存储系统确定的资源信息后,将资源信息反馈至链资源处理请求的发起方。
[0174] 可选的,资源解析系统可以基于区块链客户端发起事务请求,从而将资源信息反馈至跨链资源使用者的所属区块链节点。
[0175] 本公开实施例方案通过根据获取的资源信息处理请求,和资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;基于资源信息响应资源信息处理请求。上述方案由去中心化存储网络对多链数据资源进行维护和管理,通过资源解析系统从去中心化存储网络中获取资源信息,并反馈给跨链资源使用者,实现了多链之间的数据资源的相互定位和获取;基于域名机制进行管理,使得区块链节点能够灵活发布对外链提供的数据资源,并进行管理。由去中心化存储网络对多链的数据资源进行存储和维护,能够有效防止数据资源被篡改,且能维持更新;本公开的技术方案通用性强、安全可靠性高。
[0176] 在上述各技术方案的基础上,本公开还提供了一个可选实施例,在该实施例中,完善了区块链节点如何在资源存储网络中进行资源注册的过程。需要说明的是,在本公开实施例中未详述部分,可参见其他实施例中的相关表述,在此不再赘述。
[0177] 参见图4所示的一种区块链的资源处理方法,包括:
[0178] S410、接收区块链节点发起的资源注册请求。
[0179] 可以理解的是,资源存储网络中可以包括三类节点,分别为数据持有节点、存储节点和区块链节点。其中,数据持有节点是数据的归属方,一般是某个区块链网络的有存储需求的参与者。参与者可以将自己的区块链网络所对应的区块链空间域名、资源记录信息和访问授权控制信息进行加密、切分、副本制作后分发到存储节点。存储节点有丰富的闲置的存储资源,可以提供存储服务;通过应答数据持有节点的挑战证明自己持有数据分片。区块链节点构成区块链域名网络,支撑整个资源存储网络的去中心化治理。资源存储网络的区块链节点中可部署用于注册维护资源信息的一个或多个智能合约。例如,用于资源注册的智能合约中,可维护全局字典表,即一个全局的编码表,用于区块链网络中资源数据的定位,在全局声明区块链的属性,如框架类型,名称等用于实现数据互认的基础信息。全局字典表可以用智能合约的形式存在于区块链上,以便区块链网络中能够采用统一的命名方式为资源数据的定位标识进行编码。资源存储网络中部署的智能合约,还可以对资源存储网络中所有的存储节点进行健康度检查,并给出衡量结果。衡量指标例如包括:副本保持证明挑战成功比例和有效心跳频率。智能合约会根据衡量结果采用不同的策略,例如:健康,推荐持有数据;中等,可以持有数据;不健康,可能无法持有数据。在条件允许的情况下,智能合约会调度存储网络,将数据分片从中等健康节点/不健康节点迁移到健康节点。
[0180] 其中,区块链节点可以是跨链资源访问请求的数据发起方,也可以是跨链资源的数据持有者。其中,资源注册请求可以是数据持有者想要将自身资源注册并存储至资源存储网络中而发起的请求。
[0181] 示例性的,数据持有者可以通过区块链客户端向资源存储网络发起资源注册请求,以供跨链资源发起方对注册的资源数据进行访问或获取。
[0182] S420、将资源注册请求中的资源数据的关联信息存储在资源存储网络中;其中,关联信息包括下述至少一项:资源定位数据和资源权限数据。
[0183] 其中,资源数据可以为区块链节点所提供的可访问资源。关联信息可以包括资源定位数据和资源权限数据。
[0184] 其中,资源定位数据可以包括链资源的资源定位标识与资源访问地址之间的映射关系。资源权限数据中可以包括资源被访问的权限控制信息,例如,具有访问链资源权限的区块链节点名称或标识等。
[0185] 可以理解的是,在资源存储网络对注册的区块链节点的资源数据进行管理过程中,区块链节点可以对自身注册的资源数据进行增删改查操作,相应的,资源存储网络也可以主动向注册资源数据的区块链节点发起更新资源数据的请求,从而实现对区块链节点的资源数据的及时更新。
[0186] 可以理解的是,为确保数据持有节点在资源注册过程中,资源数据的安全性,可以将资源注册请求中的资源数据进行加密处理。
[0187] 在一个可选实施例中,将资源注册请求中的资源数据的关联信息存储在资源存储网络中包括:将资源注册请求中的资源数据的关联信息,进行加密和分片,以形成加密分片副本;将加密分片副本,分别存储在资源存储网络中的存储节点中。
[0188] 数据持有节点可以将请求注册的资源数据的关联信息进行加密、切分、副本复制和随机分组,以形成加密分片副本;资源存储网络可以针对不同存储节点加密后生成加密分片副本,分发到不同的存储节点中进行存储。采用这种加密存储的方式,能够保证每个存储节点存储的分片都不相同,存储节点之间无法复用同一个存储证明,从而能够有效抵御单副本攻击。多副本多地存储的方式使得存储网络具备故障自愈能力。攻击者无法通过存储节点获取资源数据明文,多个存储节点同时获取数据也需要巨大的成本。
[0189] 本可选实施例通过将资源注册请求中的资源数据的关联信息,进行加密和分片,以形成加密分片副本;将加密分片副本,分别存储在资源存储网络中的存储节点中,提高了数据持有节点在资源注册过程中资源数据的安全性,避免了攻击者对存储节点的资源数据明文进行攻击。
[0190] 需要说明的是,防止存储作弊的机制可以是数据持有节点发布挑战到区块链网络,存储节点提交存储证明到区块链网络以应答挑战,智能合约对应答信息进行自动化验证,如果通过,可证明存储节点保存着加密切片。
[0191] 可选的,资源存储网络可以按照存储证明机制,向各存储节点发起存储证明保持请求,并接收存储节点基于所存储的资源信息反馈的存储证明。
[0192] 可以理解的是,区块链网络的数据持有节点可以选择将自己的域名和资源数据的授权给资源解析系统,从而可以便于发起方能够通过资源解析系统访问到授权的资源信息。
[0193] 在一个可选实施例中,基于资源存储网络所部署的授权合约,将所存储的部分或全部资源数据的资源信息,授权给资源解析系统进行查询。
[0194] 其中,授权合约可以是具有能够处理授权资源数据或域名等相关功能的智能合约。
[0195] 区块链网络的数据持有节点可以选择将包含有自己域名和资源数据的数据文件授权给资源解析系统中的某个域名服务器。且该授权行为可以通过资源存储网络中所部署的用于授权的智能合约完成。当资源信息被授权后,指定的域名服务器将有能力从去资源储网络中提取对应的资源信息密文,从而完成对资源信息的解密操作,得到原始的资源信息。
[0196] 可选的,如果一个域名及其对应的资源数据被授权给至少一个域名服务器进行使用,那么该信息就可以被跨链资源使用者通过资源解析系统访问到。相反的,如果任何域名服务器都没有被授权使用一个域名及其对应的资源数据,那么该信息会从资源存储网络中隐藏,不能被用户使用资源解析系统访问到;如果存在本地缓存中,那么会在缓存期结束后隐藏。
[0197] 本可选实施例通过基于资源存储网络所部署的授权合约,将所存储的部分或全部资源数据的资源信息,授权给资源解析系统进行查询,实现了对资源数据的数据持有节点进行授权,从而便于发起方能够通过资源解析系统访问到授权的资源信息。
[0198] S430、获取资源信息处理请求;资源信息处理请求基于链资源处理请求而确定。
[0199] S440、根据资源信息处理请求,和资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息。
[0200] S450、基于资源信息响应资源信息处理请求;资源数据为区块链网络中提供的可访问资源,资源信息为可访问资源的关联信息。
[0201] 需要说明的是,S410‑S420在本实施例中的执行顺序可以是在S430、S440和S450任意步骤之前,也可以是在S430、S440和S450任意步骤之间,还可以是在S430、S440和S450任意步骤之后,本实施例对此不进行限定。
[0202] 本公开实施例方案通过接收区块链节点发起的资源注册请求,将资源注册请求中的资源数据的关联信息存储在资源存储网络中,实现了区块链节点在资源存储网络中对自身的资源数据的注册,从而便于跨链资源使用者对已注册的资源数据的获取。由去中心化的资源存储网络对区块链节点注册的资源数据进行存储和维护,能够有效防止资源数据被篡改,且能维持更新。
[0203] 需要说明的是,跨链资源发起方和提供方需要基于相同的跨链命名协议发起请求,统一的跨链命名协议作为区块链网络间跨链访问资源的互操作性基础。
[0204] 在一个可选实施例中,资源存储网络中存储的资源信息包括:资源定位数据和资源权限数据;资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;资源定位标识的字符串中包括域名;域名为待访问资源所在区块链节点所属域的域名,资源访问地址中包括待访问资源所在区块链节点的通信地址。
[0205] 其中,链资源的资源定位标识可以是链资源在区块链网络中的定位标志,每个数据资源拥有全局唯一的链资源定位标志。链资源的资源定位标识与资源访问地址之间具有映射关系,可以通过链资源的资源定位标识获取到对应的资源访问地址。
[0206] 其中,待访问资源可以是链资源发起方想要访问或获取的资源。资源权项数据可以包括具有访问链资源权限的区块链节点名称或标识等。
[0207] 跨链资源访问涉及到不同链的数据资源的交互操作,资源定位标识用于实现对这些数据资源的统一定位。在多链构成的区块链网络中,每一条数据资源都有统一且唯一的资源访问地址,该地址与资源定位标识具有映射关系。资源访问地址的协议定义可以预先设定,例如,资源访问地址的协议定义可以为:[链的具体类型:][//链名][子链/侧链/平行链名][/合约名、方法名等参数信息]。
[0208] 其中,参数项可以包括:资源名称、资源执行参数、跨链请求发起方的账户公钥和跨链请求发起方的签名等。其中,资源执行参数可以包括区块链框架预留参数(默认值可以为default)、待访问资源的智能合约的合约名、待访问资源的智能合约的方法名和合约参数等。
[0209] 在一个可选实施例中,区块链网络的域名空间包括多个层级,采用树状结构进行域名存储,树状结构的节点用于存储对应层级域名的标签,每个节点与区块链所提供的数据资源对应,每个节点的域名包括从当前节点至树状结构根节点路径上的标签组合;域名空间的各层级域名标签,从上至下包括:区块链架构名称、区块链网络所属运营商名称、区块链名称、区块链节点名称和资源名称。
[0210] 其中,区块链网络的域名空间记录了树状结构的域名空间和与这些域名空间关联的数据资源。域名空间树的每个节点(包括叶子,本实施例对节点与叶子不加区别,统一称为“节点”)记录一条数据资源记录。其中,数据资源中可以包括资源类型、访问地址、访问协议、版本号、权限要求。例如,资源类型可以是使用的智能合约的类型,如使用wasm虚拟机的智能合约;访问地址中可以包括IP和端口号等;权限要求例如可以是智能合约中不同方法所对应的不同的权限要求。
[0211] 每个节点用于存储对应层级域名的标签,非兄弟节点的标签可以相同,但兄弟节点的标签不同。其中,兄弟节点可以是具有相同父节点的节点。树状结构根节点的标签可以是空标签,即标签长度为零的标签。节点的完整域名是从当前节点到树结构的根路径沿途的各个标签的拼接。
[0212] 示例性的,域名可以用任意大小写命名或保存,例如可以使用标记“A”生成节点,或使用标记“a”生成节点,但是二者不能作为兄弟标签。在生成完整域名时,可能需要拼接多个标签,此时不同标签可以采用标记符隔开,例如,标记符可以是圆点(“.”)。
[0213] 需要说明的是,发起方所发起的链资源处理请求中的域名可以用标签序列来表示。每个标签可以为一个八位字符长度的字符串,域名的最大总长度被限制不超过255个标签。域名服务器和域名解析器可以采用不区分大小写的方式比较标签。
[0214] 域名中可以采用任意大小写字符。但具有相同拼写、不同大小写的域名可以被看作为同一域名,域名的命名以字母开始,以字母或数字结束,中间的字符可以包括字母、数字和连字符等。对域名长度的限制可以是标签长度不大于63个字符。
[0215] 可选的,本实施例对区块链网络的域名空间所使用的树状结构不做限定,即不限定使用某种特定的树状结构,或必须使用某种特定的方法在树状结构中定位标签,从而提升域名空间的通用性。
[0216] 其中,每个节点与区块链所提供的数据资源对应,即每个节点可以对应一个域名,每个域名可以与区块链所提供的数据资源相对应,每个数据资源可以对应一条资源记录,每个资源记录可以对应一个资源定位符。
[0217] 需要说明的是,域名服务器中可以缓存有关树状结构的域名空间的结构。域名服务器缓存了指定区块链网络的域名空间内的资源记录信息,并定时进行刷新。资源记录信息被存储在基于区块链技术的去中心化资源存储网络中。
[0218] 在一个可选实施例中,区块链网络提供的可访问资源包括:区块链可支持服务和/或区块链可读数据;区块链可支持服务包括下述至少一项:智能合约和智能合约中可访问的方法程序。
[0219] 可以理解的是,资源解析系统向资源存储网络发起的资源信息处理请求可以是解析域名获取资源的域名解析请求、查询域名的域名查询请求以及查询是否链资源访问权限的权限查询请求。
[0220] 在一个可选实施例中,若资源信息处理请求为域名解析请求,则根据域名解析请求,和资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据域名解析请求中的待解析域名,和资源存储网络中存储的资源定位数据,进行域名所对应的资源访问地址查询,以确定资源访问地址。
[0221] 其中,资源信息处理请求可以是资源解析系统对链资源访问请求进行解析或转换后得到的获取资源信息的请求。
[0222] 其中,域名解析请求可以是对域名进行解析获取对应的资源访问地址的请求。域名解析请求中可以包括待解析域名。
[0223] 其中,资源访问地址表征待访问资源在区块链网络中的访问入口。资源定位数据可以包括链资源的资源定位标识与资源访问地址之间的映射关系。
[0224] 资源存储网络可以根据获取的域名解析请求,进行资源访问地址查询,从而确定资源访问地址。示例性的,资源存储网络根据存储的资源定位数据中资源定位标识与资源访问地址之间的映射关系,对待解析域名所对应的资源访问地址进行查询,从而确定资源访问地址。其中,资源定位标识的字符串中包括域名,因此,可以通过待解析域名确定对应的资源定位标识,从而根据资源定位标识确定资源访问地址。
[0225] 资源存储网络可以基于资源解析系统将资源访问地址反馈至发起方,在发起方获取到资源访问地址后,可以通过资源访问地址,确定待访问资源在区块链网络中的访问入口,并通过该访问入口对待访问资源进行访问。
[0226] 本可选实施例通过根据域名解析请求中的待解析域名,和资源存储网络中存储的资源定位数据,进行域名所对应的资源访问地址查询,以确定资源访问地址,实现了对域名解析请求的处理,从而便于发起方能够通过资源访问地址进行跨链资源的访问和获取。
[0227] 在一个可选实施例中,若资源信息处理请求为域名查询请求,则根据域名查询请求,和资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据域名查询请求中的待查询地址,和资源存储网络中存储的资源定位数据,进行地址所对应的域名查询,以确定资源域名。
[0228] 其中,域名查询请求可以是对待访问资源所在区块链节点所属域域名的查询请求。
[0229] 其中,域名查询请求中可以包括资源访问地址。资源访问地址中可以包括待访问资源所在区块链节点的通信地址。
[0230] 资源存储网络可以根据获取的域名查询请求,进行域名查询,从而确定资源域名。示例性的,资源存储网络可以根据存储的资源定位数据中的资源定位标识和资源访问地址之间的映射关系,对待查询地址所对应的域名进行查询,从而确定资源域名。
[0231] 本可选实施例通过根据域名查询请求中的待查询地址,和资源存储网络中存储的资源定位数据,进行地址所对应的域名查询,实现了对待查询地址所属域的资源域名的确定。
[0232] 在一个可选实施例中,若资源信息处理请求为权限查询请求,则根据权限查询请求,和资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息包括:根据权限查询请求中的待查询资源的资源访问地址或资源定位标识,和资源存储网络中存储的资源权限数据,进行权限查询,以确定资源权限;其中,资源权限为资源被访问的权限控制信息。
[0233] 其中,权限查询请求可以是发起方发起的区块链网络中的链资源的可被访问权限的查询请求。例如,若发起方想要获取区块链网络的链资源A,则可以预先查询是否具有对链资源A的获取或访问权限,也即链资源A是否对发起方授权,是否允许发起方访问。资源权限可以为资源被访问的权限控制信息。
[0234] 其中,权限查询请求中可以包括待查询资源的资源访问地址或资源定位标识。资源权限数据中可以包括资源被访问的权限控制信息,例如,具有访问链资源权限的区块链节点名称或标识等。
[0235] 资源存储网络可以根据该权限查询请求,基于存储的资源权限数据,确定资源权限。示例性的,资源解析系统可以向资源存储网络发起权限查询请求。其中,权限查询请求中可以包括待查询资源的资源访问地址或资源定位标识。资源存储网络基于存储的资源权限数据,根据资源访问地址或资源定位标识,查询该资源定位标识或资源访问地址关联的资源是否具有访问权限,从而将查询得到的资源权限结果基于资源解析系统反馈至发起方。
[0236] 示例性的,在发起方获取到资源权限后,可以根据资源权限结果确定是否能够访问待查询资源。若资源权限未发起方具有访问权限,则可以通过资源访问地址,确定待查询资源在区块链网络中的访问入口,并通过该访问入口对待查询资源进行访问。
[0237] 本可选实施例方案通过根据权限查询请求中的待查询资源的资源访问地址或资源定位标识,基于资源存储网络中存储的资源权限数据,进行权限查询,实现了对资源权限的确定,从而实现了发起方对是否具有对待查询资源的访问权限的确定。
[0238] 图5是根据本公开实施例提供的一种区块链的资源处理方法的示意图,本公开实施例可适用于多链之间进行数据资源相互定位和获取的情况。该方法可由一种区块链的资源处理装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以为区块链节点。参考图5,该方法应用于区块链节点,该方法具体包括如下:
[0239] S510、在识别到跨链资源的信息获取需求时,产生链资源处理请求。
[0240] 其中,跨链资源的信息获取需求可以是由跨链资源使用者所属区块链节点发起的。链资源处理请求可以是跨链获取数据资源、查询域名或查询权限的请求。
[0241] 示例性的,跨链资源使用者可以通过区块链节点的客户端,主动发起链资源处理请求。
[0242] 可以理解的是,链资源处理请求还可以是区块链节点处理事务请求过程中产生的。当区块链节点处理事务请求过程中需要访问链资源数据时,可以由区块链节点中部署的专用于处理链资源请求的智能合约,对事务请求进行处理。
[0243] 在一个可选实施例中,在识别到跨链资源的信息获取需求时,产生链资源处理请求包括:在执行区块链客户端发起的业务处理事务请求时,识别到跨链资源的信息获取需求,则根据待访问资源的资源定位标识,基于资源解析合约,产生链资源处理请求。
[0244] 其中,业务处理事务请求可以是用户根据自身需求通过区块链客户端发起的事务请求。
[0245] 资源解析合约可以是在业务处理事务请求执行过程中,遇到需要访问或获取其他链上资源数据时所需调用的智能合约。
[0246] 示例性的,用户可以根据实际需求向区块链客户端发起业务处理事务情趣,区块链节点在执行业务处理事务请求的过程中,若识别到跨链资源的信息获取需求时,则可以对部署在区块链中的资源解析合约进行调用;根据业务处理事务请求中所携带的待访问资源的资源定位标识,基于资源解析合约,产生链资源处理请求。
[0247] 本可选实施例通过在执行区块链客户端发起的业务处理事务请求时,根据待访问资源的资源定位标识,基于资源解析合约,产生链资源处理请求。上述方案通过在执行业务处理事务请求过程中产生链资源处理请求得方式,实现了对链资源处理请求生成方式的综合考虑,提高了链资源处理请求生成方式的全面性。
[0248] 可以理解的是,区块链节点可以将链资源处理请求发送至资源解析系统,由资源解析系统对链资源处理请求进行处理。因此,在区块链节点的资源解析合约中可以配置有至少一个可被访问的域名解析器地址,并通过域名解析器地址向域名解析器发起请求。
[0249] 在一个可选实施例中,根据待访问资源的资源定位标识,基于资源解析合约,产生链资源处理请求包括:根据待访问资源的资源定位标识,基于资源解析合约中配置的域名解析器地址,产生目标地址为域名解析器的链资源处理请求。
[0250] 其中,资源解析合约中可以预先配置至少一个可被访问的域名解析器地址,且在后续执行链资源处理请求过程中,资源解析合约中的域名解析器地址可以不断更新。
[0251] 其中,域名解析器地址可以是资源解析系统中域名解析器得通信地址,可以基于该域名解析器地址,访问到相应的域名解析器。
[0252] 其中,目标地址可以是从至少一个域名解析器地址中确定得能够对链资源处理请求进行处理的域名解析器地址。
[0253] 示例性的,区块链节点可以根据待访问资源的资源定位标识,由资源解析合约根据资源定位标识的字符串中的域名,从配置的域名解析器地址中选取目标地址,并基于该目标地址向域名解析器发起链资源处理请求。
[0254] 本可选实施例通过根据待访问资源的资源定位标识,基于资源解析合约中配置的域名解析器地址,产生目标地址为域名解析器的链资源处理请求,实现了对用于处理链资源处理请求的域名解析器地址的确定,便于后续通过确定的域名解析器地址向域名解析器发送链资源处理请求。
[0255] S520、将链资源处理请求发送给资源解析系统,以请求资源解析系统基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息。
[0256] 其中,资源解析系统可以包括域名解析器和域名服务器。域名解析器可以对链资源处理请求进行解析,或转换成域名服务器可以识别并处理的资源信息处理请求。
[0257] 其中,资源存储网络为去中心化存储网络;资源数据为区块链网络中提供的可访问资源,资源信息为所述可访问资源的关联信息。
[0258] 其中,资源数据可以为区块链网络中提供的可访问资源,资源信息可以为可访问资源的关联信息。
[0259] 示例性的,区块链节点将链资源处理请求发送给资源解析系统,资源解析系统通过域名解析器,根据链资源处理请求确定目标域名服务器;通过域名解析器,向目标域名服务器发起资源信息处理请求;目标域名服务基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息。资源存储网络将资源信息反馈至资源解析系统,以通过资源解析系统将资源信息反馈至发起链资源处理请求的区块链节点。
[0260] S530、接收资源解析系统反馈的资源信息。
[0261] 示例性的,可以通过区块链客户获取资源解析系统反馈的资源信息。
[0262] 本公开实施例通过在识别到跨链资源的信息获取需求时,产生链资源处理请求;将链资源处理请求发送给资源解析系统,以请求资源解析系统基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;接收资源解析系统反馈的资源信息。上述方案由去中心化存储网络对多链数据资源进行维护和管理,通过资源解析系统从去中心化存储网络中获取资源信息,并反馈给跨链资源使用者,实现了多链之间的数据资源的相互定位和获取;由去中心化存储网络对多链的数据资源进行存储和维护,能够有效防止数据资源被篡改,且能维持更新;本公开的技术方案通用性强、安全可靠性高。
[0263] 可以理解的是,区块链节点可以是跨链资源访问请求的数据发起方,也可以是跨链资源的数据持有者。当区块链节点想要在资源存储网络中发布自身的资源注册请求时,可以在资源存储网络中注册可以被访问或获取的相关资源数据。
[0264] 在一个可选实施例中,向资源存储网络发起资源注册请求;其中,资源注册请求中包括本地区块链节点所提供可访问资源的资源定位数据和资源权限数据。
[0265] 其中,资源注册请求可以是区块链节点想要将自身资源注册并存储至资源存储网络中而发起的请求。
[0266] 其中,可访问资源可以是区块链节点对外提供的可以被访问获取的资源数据。
[0267] 其中,资源定位数据可以包括链资源的资源定位标识与资源访问地址之间的映射关系。资源权限数据中可以包括资源被访问的权限控制信息,例如,具有访问链资源权限的区块链节点名称或标识等。
[0268] 示例性的,数据持有者可以通过区块链客户端向资源存储网络发起资源注册请求。
[0269] 本可选实施例通过向资源存储网络发起资源注册请求,将资源注册请求中的资源数据的关联信息存储在资源存储网络中,实现了区块链节点在资源存储网络中对自身的资源数据的注册,从而便于跨链资源使用者对已注册的资源数据的获取。由去中心化的资源存储网络对区块链节点注册的资源数据进行存储和维护,能够有效防止资源数据被篡改,且能维持更新。
[0270] 需要说明的是,跨链资源发起方和提供方需要基于相同的跨链命名协议发起请求,统一的跨链命名协议作为区块链网络间跨链访问资源的互操作性基础。
[0271] 在一个可选实施例中,资源存储网络中存储的资源信息包括:资源定位数据和资源权限数据;资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;资源定位标识的字符串中包括域名;域名为待访问资源所在区块链节点所属域的域名,资源访问地址中包括待访问资源所在区块链节点的通信地址。
[0272] 其中,链资源的资源定位标识可以是链资源在区块链网络中的定位标志,每个数据资源拥有全局唯一的链资源定位标志。链资源的资源定位标识与资源访问地址之间具有映射关系,可以通过链资源的资源定位标识获取到对应的资源访问地址。
[0273] 其中,待访问资源可以是链资源发起方想要访问或获取的资源。资源权项数据可以包括具有访问链资源权限的区块链节点名称或标识等。
[0274] 跨链资源访问涉及到不同链的数据资源的交互操作,资源定位标识用于实现对这些数据资源的统一定位。在多链构成的区块链网络中,每一条数据资源都有统一且唯一的资源访问地址,该地址与资源定位标识具有映射关系。资源访问地址的协议定义可以预先设定,例如,资源访问地址的协议定义可以为:[链的具体类型:][//链名][子链/侧链/平行链名][/合约名、方法名等参数信息]。
[0275] 其中,参数项可以包括:资源名称、资源执行参数、跨链请求发起方的账户公钥和跨链请求发起方的签名等。其中,资源执行参数可以包括区块链框架预留参数(默认值可以为default)、待访问资源的智能合约的合约名、待访问资源的智能合约的方法名和合约参数等。
[0276] 在一个可选实施例中,区块链网络的域名空间包括多个层级,采用树状结构进行域名存储,树状结构的节点用于存储对应层级域名的标签,每个节点与区块链所提供的数据资源对应,每个节点的域名包括从当前节点至树状结构根节点路径上的标签组合;域名空间的各层级域名标签,从上至下包括:区块链架构名称、区块链网络所属运营商名称、区块链名称、区块链节点名称和资源名称。
[0277] 其中,区块链网络的域名空间记录了树状结构的域名空间和与这些域名空间关联的数据资源。域名空间树的每个节点(包括叶子,本实施例对节点与叶子不加区别,统一称为“节点”)记录一条数据资源记录。其中,数据资源中可以包括资源类型、访问地址、访问协议、版本号、权限要求。例如,资源类型可以是使用的智能合约的类型,如使用wasm虚拟机的智能合约;访问地址中可以包括IP和端口号等;权限要求例如可以是智能合约中不同方法所对应的不同的权限要求。
[0278] 每个节点用于存储对应层级域名的标签,非兄弟节点的标签可以相同,但兄弟节点的标签不同。其中,兄弟节点可以是具有相同父节点的节点。树状结构根节点的标签可以是空标签,即标签长度为零的标签。节点的完整域名是从当前节点到树结构的根路径沿途的各个标签的拼接。
[0279] 示例性的,域名可以用任意大小写命名或保存,例如可以使用标记“A”生成节点,或使用标记“a”生成节点,但是二者不能作为兄弟标签。在生成完整域名时,可能需要拼接多个标签,此时不同标签可以采用标记符隔开,例如,标记符可以是圆点(“.”)。
[0280] 需要说明的是,发起方所发起的链资源处理请求中的域名可以用标签序列来表示。每个标签可以为一个八位字符长度的字符串,域名的最大总长度被限制不超过255个标签。域名服务器和域名解析器可以采用不区分大小写的方式比较标签。
[0281] 域名中可以采用任意大小写字符。但具有相同拼写、不同大小写的域名可以被看作为同一域名,域名的命名以字母开始,以字母或数字结束,中间的字符可以包括字母、数字和连字符等。对域名长度的限制可以是标签长度不大于63个字符。
[0282] 可选的,本实施例对区块链网络的域名空间所使用的树状结构不做限定,即不限定使用某种特定的树状结构,或必须使用某种特定的方法在树状结构中定位标签,从而提升域名空间的通用性。
[0283] 其中,每个节点与区块链所提供的数据资源对应,即每个节点可以对应一个域名,每个域名可以与区块链所提供的数据资源相对应,每个数据资源可以对应一条资源记录,每个资源记录可以对应一个资源定位符。
[0284] 需要说明的是,域名服务器中可以缓存有关树状结构的域名空间的结构。域名服务器缓存了指定区块链网络的域名空间内的资源记录信息,并定时进行刷新。资源记录信息被存储在基于区块链技术的去中心化资源存储网络中。
[0285] 在一个可选实施例中,区块链网络提供的可访问资源包括:区块链可支持服务和/或区块链可读数据;区块链可支持服务包括下述至少一项:智能合约,和智能合约中可访问的方法程序。
[0286] 可以理解的是,区块链节点产生的链资源处理请求可以包括跨链资源访问的链资源访问请求、跨链资源查询域名的域名查询请求和跨链资源查询权限的权限查询请求。
[0287] 在一个可选实施例中,在识别到跨链资源的信息获取需求时,产生链资源处理请求包括:在识别到跨链资源的访问需求时,产生链资源访问请求;链资源访问请求中包括待访问资源的资源定位标识;相应的,资源信息为资源访问地址,则接收资源解析系统反馈的资源信息之后,还包括:根据资源访问地址发起跨链的资源访问事务请求。
[0288] 其中,链资源的资源定位标识可以是链资源在区块链网络中的定位标志,每个数据资源拥有全局唯一的链资源定位标志。链资源的资源定位标识与资源访问地址之间具有映射关系,可以通过链资源的资源定位标识获取到对应的资源访问地址。
[0289] 其中,资源访问事务请求可以是区块链节点向资源信息所在区块链网络发起的访问或获取资源的事务请求。
[0290] 示例性,区块链节点若识别到跨链资源的访问需求,则产生链资源访问请求,并将该链资源访问请求向资源解析系统发起;资源解析系统根据链资源访问请求中的待访问资源的资源定位标识,基于资源存储网络中存储的资源定位数据,进行访问地址查询,以确定资源访问地址;其中,资源访问地址表征待访问资源在区块链网络中的访问入口。区块链获取到资源解析网络反馈的资源访问地址之后,根据资源访问地址发起跨链的资源访问事务请求。
[0291] 本可选实施例通过在识别到跨链资源的访问需求时,产生链资源访问请求,并接收资源解析系统反馈的资源信息之后,根据资源访问地址发起跨链的资源访问事务请求,实现了发起方通过资源访问地址对跨链资源的访问和获取。
[0292] 在一个可选实施例中,在识别到跨链资源的信息获取需求时,产生链资源处理请求包括下述至少一项:在识别到跨链资源的域名查询需求时,产生域名查询请求;域名查询请求中包括待访问资源的资源访问地址;和在识别到跨链资源的权限查询需求时,产生权限查询请求;权限查询请求中包括待访问资源的资源定位标识或资源访问地址。
[0293] 其中,域名查询请求可以是发起方发起的对待访问资源所在区块链节点所属域域名的查询请求。
[0294] 其中,域名查询请求中可以包括资源访问地址。资源访问地址中可以包括待访问资源所在区块链节点的通信地址。
[0295] 示例性的,区块链节点若识别到跨链资源的域名查询需求时,则产生域名查询请求,并将该域名查询请求向资源解析系统发起;资源解析系统根据获取的域名查询请求,请求资源存储网络根据该域名查询请求确定资源域名。具体的,资源解析系统可以对获取的域名查询请求进行解析,并向资源存储网络发起解析后的域名查询请求。其中,域名查询请求中可以包括资源访问地址。资源存储网络基于存储的资源定位数据,根据资源访问地址,进行域名查询,从而将查询到资源访问地址所属域的域名,并作为资源域名基于资源解析系统反馈至区块链节点。
[0296] 其中,权限查询请求可以是区块链节点发起的区块链网络中的链资源的可被访问权限的查询请求。例如,若发起方想要获取区块链网络的链资源A,则可以预先查询是否具有对链资源A的获取或访问权限,也即链资源A是否对发起方授权,是否允许发起方访问。资源权限可以为资源被访问的权限控制信息。
[0297] 其中,权限查询请求中可以包括待查询资源的资源访问地址或资源定位标识。资源权限数据中可以包括资源被访问的权限控制信息,例如,具有访问链资源权限的区块链节点名称或标识等。
[0298] 示例性的,区块链节点若识别到跨链资源的权限查询需求时,则产生权限查询请求,并将该权限查询请求向资源解析系统发起;资源解析系统根据获取的权限查询请求,请求资源存储网络根据该权限查询请求确定资源权限。具体的,资源解析系统可以对获取的权限查询请求进行解析,并向资源存储网络发起解析后的权限查询请求。其中,权限查询请求中可以包括待查询资源的资源访问地址或资源定位标识。资源存储网络基于存储的资源权限数据,根据资源访问地址或资源定位标识,查询该资源定位标识或资源访问地址关联的资源是否具有访问权限,从而将查询得到的资源权限结果基于资源解析系统反馈至区块链节点。
[0299] 本可选实施例通过在识别跨链资源的信息获取需求时,产生域名查询请求或权限查询请求,实现了对资源访问地址所属域的域名的确定,以及实现了发起方对是否具有对待查询资源的访问权限的确定。
[0300] 图6是根据本公开实施例提供的一种区块链的资源处理装置的示意图,本实施例可适用于多链之间进行数据资源相互定位和获取的应用场景,该装置配置于电子设备中,可实现本公开任意实施例所述的区块链的资源处理方法。该电子设备可以为资源解析系统,参考图6,该区块链的资源处理装置600具体包括如下:
[0301] 处理请求获取模块601,用于获取链资源处理请求;
[0302] 资源信息确定模块602,用于根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;
[0303] 处理请求响应模块603,用于基于所述资源信息响应所述链资源处理请求。
[0304] 本公开实施例方案通过根据获取的链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,从而确定资源信息,并基于资源信息响应链资源处理请求。上述方案由去中心化存储网络对多链数据资源进行维护和管理,通过资源解析系统从去中心化存储网络中获取资源信息,并反馈给跨链资源使用者,实现了多链之间的数据资源的相互定位和获取;由去中心化存储网络对多链的数据资源进行存储和维护,能够有效防止数据资源被篡改,且能维持更新;本公开的技术方案通用性强、安全可靠性高。
[0305] 在一种可选的实施方式中,所述处理请求获取模块601,具体用于:
[0306] 获取区块链节点发起的链资源处理请求;其中,所述链资源处理请求基于区块链客户端发起的事务请求而产生。
[0307] 在一种可选的实施方式中,所述资源信息确定模块602,包括:
[0308] 事务请求产生单元,用于根据所述链资源处理请求,产生资源信息处理事务请求 ;
[0309] 资源信息反馈单元,用于将所述资源信息处理事务请求向所述资源存储网络发起,以请求所述资源存储网络处理所述资源信息处理事务请求,并反馈资源信息;其中,所述资源存储网络是基于区块链技术实现的区块链网络。
[0310] 在一种可选的实施方式中,所述资源信息确定模块602,包括:
[0311] 目标域名服务器确定单元,用于通过所述资源解析系统中的域名解析器,根据所述链资源处理请求确定目标域名服务器;
[0312] 第一资源信息确定单元,用于通过域名解析器,向所述目标域名服务器发起资源信息处理请求;其中,所述资源信息处理请求用于请求所述目标域名服务器,基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;
[0313] 资源信息接收单元,用于通过域名解析器,接收所述目标域名服务器反馈的资源信息。
[0314] 在一种可选的实施方式中,所述目标域名服务器确定单元,包括:
[0315] 目标域名服务器确定子单元,用于通过域名解析器,根据所述链资源处理请求,在所述域名解析器已发现的域名服务器中,确定目标域名服务器;
[0316] 相应的,所述资源信息确定模块602,还包括:
[0317] 目标域名服务器更新单元,用于通过域名解析器,接收所述目标域名服务器反馈的资源信息之前,通过所述域名解析器,如果接收到所述目标域名服务器反馈的可选域名服务器连接地址,则根据所述可选域名服务器连接地址与对应的域名服务器建立连接,并更新作为新的目标域名服务器,继续执行发起资源信息处理请求的操作,直至接收到资源信息或失败结果;其中,链资源的地址空间划分为多个域,每个域名服务器用于查询一个或多个域中资源信息。
[0318] 在一种可选的实施方式中,所述资源信息确定模块602,还包括:
[0319] 可选域名解析器确定单元,用于在根据所述链资源处理请求,基于资源存储网络中存储的资源数据的信息,进行资源信息查询之后,如果通过所述域名解析器,确定资源信息查询失败,则确定其他的可选域名解析器,并将所述可选域名解析器的连接地址反馈给所述链资源处理请求的发起方,以供所述发起方向所述可选域名解析器重新发起链资源处理请求。
[0320] 在一种可选的实施方式中,所述资源信息确定模块602,还包括:
[0321] 资源信息检查单元,用于在通过域名解析器,接收所述目标域名服务器反馈的资源信息之后,通过所述域名解析器,对所述资源信息进行下述至少一项检查:合法性检查、有效性检查和匹配性检查。
[0322] 在一个可选的实施方式中,所述资源信息确定模块602,包括:
[0323] 资源信息查询单元,用于根据所述链资源处理请求,在本地缓存中进行资源信息的查询;
[0324] 第二资源信息确定单元,用于如果在本地缓存中查询到资源信息,则确定为所述资源信息;
[0325] 第三资源信息确定单元,用于如果在本地缓存中未查询到资源信息,则向所述资源存储网络发起资源信息处理请求,以进行资源信息查询,并确定资源信息。
[0326] 在一个可选的实施方式中,所述链资源处理请求为链资源访问请求,则所述资源信息确定模块602,包括:
[0327] 资源访问地址确定单元,用于根据所述链资源访问请求中的待访问资源的资源定位标识,基于所述资源存储网络中存储的资源定位数据,进行访问地址查询,以确定资源访问地址;其中,所述资源访问地址表征待访问资源在区块链网络中的访问入口。
[0328] 在一个可选的实施方式中,所述链资源访问请求中包括资源定位标识和访问参数,所述访问参数包括下述至少一项:资源名称、资源执行参数、发起方公钥和发起方签名。
[0329] 在一个可选的实施方式中,所述链资源处理请求为域名查询请求,则所述资源信息确定模块602,包括:
[0330] 资源域名确定单元,用于根据所述域名查询请求中的资源访问地址,基于资源存储网络中存储的资源定位数据,进行域名查询,以确定资源域名;所述资源域名为资源访问地址所属域的域名。
[0331] 在一个可选的实施方式中,所述链资源处理请求为权限查询请求,则所述资源信息确定模块602,包括:
[0332] 资源权限确定单元,用于根据所述权限查询请求中的待查询资源的资源访问地址或资源定位标识,基于资源存储网络中存储的资源权限数据,进行权限查询,以确定资源权限;所述资源权限为资源被访问的权限控制信息。
[0333] 在一个可选的实施方式中,所述资源存储网络中存储的资源信息包括:资源定位数据和资源权限数据;
[0334] 资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;
[0335] 所述资源定位标识的字符串中包括域名;所述域名为所述待访问资源所在区块链节点所属域的域名,所述资源访问地址中包括待访问资源所在区块链节点的通信地址。
[0336] 在一个可选的实施方式中,区块链网络的域名空间包括多个层级,采用树状结构进行域名存储,所述树状结构的节点用于存储对应层级域名的标签,每个节点与区块链所提供的数据资源对应,每个节点的域名包括从当前节点至树状结构根节点路径上的标签组合;
[0337] 所述域名空间的各层级域名标签,从上至下包括:区块链架构名称、区块链网络所属运营商名称、区块链名称、区块链节点名称和资源名称。
[0338] 在一个可选的实施方式中,区块链网络提供的可访问资源包括:区块链可支持服务和/或区块链可读数据;
[0339] 所述区块链可支持服务包括下述至少一项:智能合约,和智能合约中的可访问的方法程序。
[0340] 本公开实施例的技术方案所提供的一种区块链的资源处理装置可执行本公开任意实施例所提供的区块链的资源处理方法,具备执行区块链的资源处理方法相应的功能模块和有益效果。
[0341] 图7是根据本公开实施例提供的一种区块链的资源处理装置的示意图,本实施例可适用于多链之间进行数据资源相互定位和获取的应用场景,该装置配置于电子设备中,可实现本公开任意实施例所述的区块链的资源处理方法。该电子设备可以为资源存储网络,参考图7,该区块链的资源处理装置700具体包括如下:
[0342] 信息处理请求获取模块701,用于获取资源信息处理请求;所述资源信息处理请求基于链资源处理请求而确定;
[0343] 资源信息确定模块702,用于根据所述资源信息处理请求,和所述资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;
[0344] 信息处理请求响应模块703,用于基于所述资源信息响应所述资源信息处理请求;所述资源数据为区块链网络中提供的可访问资源。
[0345] 本公开实施例方案通过根据获取的资源信息处理请求,和资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;基于资源信息响应资源信息处理请求。上述方案由去中心化存储网络对多链数据资源进行维护和管理,通过资源解析系统从去中心化存储网络中获取资源信息,并反馈给跨链资源使用者,实现了多链之间的数据资源的相互定位和获取;基于域名机制进行管理,使得区块链节点能够灵活发布对外链提供的数据资源,并进行管理。由去中心化存储网络对多链的数据资源进行存储和维护,能够有效防止数据资源被篡改,且能维持更新;本公开的技术方案通用性强、安全可靠性高。
[0346] 在一个可选实施例中,所述信息处理请求获取模块701,包括:
[0347] 资源信息处理请求获取单元,用于获取资源解析系统中域名解析器或域名服务器发起的资源信息处理请求。
[0348] 在一个可选实施例中,所述资源存储网络是基于区块链技术实现的区块链网络,则所述信息处理请求获取模块701,包括:
[0349] 事务请求获取单元,用于获取区块链客户端发起的资源信息处理事务请求,作为资源信息处理请求。
[0350] 在一个可选实施例中,所述资源信息处理请求为域名解析请求,则所述资源信息确定模块702,包括:
[0351] 资源访问地址确定单元,用于根据所述域名解析请求中的待解析域名,和所述资源存储网络中存储的资源定位数据,进行域名所对应的资源访问地址查询,以确定资源访问地址。
[0352] 在一个可选实施例中,所述资源信息处理请求为域名查询请求,则所述资源信息确定模块702,包括:
[0353] 资源域名确定单元,用于根据所述域名查询请求中的待查询地址,和所述资源存储网络中存储的资源定位数据,进行地址所对应的域名查询,以确定资源域名。
[0354] 在一个可选实施例中,所述资源信息处理请求为权限查询请求,则所述资源信息确定模块702,包括:
[0355] 资源权项确定单元,用于根据所述权限查询请求中的待查询资源的资源访问地址或资源定位标识,和所述资源存储网络中存储的资源权限数据,进行权限查询,以确定资源权限;其中,所述资源权限为资源被访问的权限控制信息。
[0356] 在一个可选实施例中,所述区块链的资源处理装置700,还包括:
[0357] 注册请求接收模块,用于接收区块链节点发起的资源注册请求;
[0358] 资源存储模块,用于将所述资源注册请求中的资源数据的关联信息存储在所述资源存储网络中;其中,所述关联信息包括下述至少一项:资源定位数据和资源权限数据。
[0359] 在一个可选实施例中,所述资源存储模块,包括:
[0360] 加密分片副本形成单元,用于将所述资源注册请求中的资源数据的关联信息,进行加密和分片,以形成加密分片副本;
[0361] 资源存储单元,用于将所述加密分片副本,分别存储在所述资源存储网络中的存储节点中。
[0362] 在一个可选实施例中,所述区块链的资源处理装置700,还包括:
[0363] 保持请求发起模块,用于按照存储证明机制,向各存储节点发起存储证明保持请求,并接收存储节点基于所存储的资源信息反馈的存储证明。
[0364] 在一个可选实施例中,所述区块链的资源处理装置700,还包括:
[0365] 资源信息授权模块,用于基于所述资源存储网络所部署的授权合约,将所存储的部分或全部资源数据的资源信息,授权给资源解析系统进行查询。
[0366] 在一个可选实施例中,资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;
[0367] 所述资源定位标识的字符串中包括域名;所述域名为所述待访问资源所在区块链节点所属域的域名,所述资源访问地址中包括待访问资源所在区块链节点的通信地址。
[0368] 在一个可选实施例中,区块链网络的域名空间包括多个层级,采用树状结构进行域名存储,所述树状结构的节点用于存储对应层级域名的标签,每个节点与区块链所提供的数据资源对应,每个节点的域名包括从当前节点至树状结构根节点路径上的标签组合;
[0369] 所述域名空间的各层级域名标签,从上至下包括:区块链架构名称、区块链网络所属运营商名称、区块链名称、区块链节点名称和资源名称。
[0370] 在一个可选实施例中,区块链网络提供的资源包括:区块链可支持服务和/或区块链可读数据;
[0371] 所述区块链可支持服务包括下述至少一项:智能合和智能合约中可访问的方法程序。
[0372] 本公开实施例的技术方案所提供的一种区块链的资源处理装置可执行本公开任意实施例所提供的区块链的资源处理方法,具备执行区块链的资源处理方法相应的功能模块和有益效果。
[0373] 图8是根据本公开实施例提供的一种区块链的资源处理装置的示意图,本实施例可适用于多链之间进行数据资源相互定位和获取的应用场景,该装置配置于电子设备中,可实现本公开任意实施例所述的区块链的资源处理方法。该电子设备可以为区块链节点,参考图8,该区块链的资源处理装置800具体包括如下:
[0374] 处理请求产生模块801,用于在识别到跨链资源的信息获取需求时,产生链资源处理请求;
[0375] 处理请求发送模块802,用于将所述链资源处理请求发送给资源解析系统,以请求所述资源解析系统基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;其中,所述资源存储网络为去中心化存储网络;所述资源数据为区块链网络中提供的可访问资源;
[0376] 资源信息接收模块803,用于接收所述资源解析系统反馈的资源信息。
[0377] 本公开实施例通过在识别到跨链资源的信息获取需求时,产生链资源处理请求;将链资源处理请求发送给资源解析系统,以请求资源解析系统基于资源存储网络中存储的资源数据的信息,进行资源信息查询,以确定资源信息;接收资源解析系统反馈的资源信息。上述方案由去中心化存储网络对多链数据资源进行维护和管理,通过资源解析系统从去中心化存储网络中获取资源信息,并反馈给跨链资源使用者,实现了多链之间的数据资源的相互定位和获取;由去中心化存储网络对多链的数据资源进行存储和维护,能够有效防止数据资源被篡改,且能维持更新;本公开的技术方案通用性强、安全可靠性高。
[0378] 在一个可选实施例中,所述处理请求产生模块801,包括:
[0379] 访问请求生成单元,用于在识别到跨链资源的访问需求时,产生链资源访问请求;所述链资源访问请求中包括待访问资源的资源定位标识;
[0380] 相应的,所述资源信息为资源访问地址,则所述区块链的资源处理装置800,还包括:
[0381] 事务请求发起模块,用于接收所述资源解析系统反馈的资源信息之后, 根据所述资源访问地址发起跨链的资源访问事务请求。
[0382] 在一个可选实施例中,在识别到跨链资源的信息获取需求时,产生链资源处理请求包括下述至少一项:
[0383] 在识别到跨链资源的域名查询需求时,产生域名查询请求;所述域名查询请求中包括待访问资源的资源访问地址;和
[0384] 在识别到跨链资源的权限查询需求时,产生权限查询请求;所述权限查询请求中包括待访问资源的资源定位标识或资源访问地址。
[0385] 在一个可选实施例中,所述区块链的资源处理装置800,还包括:
[0386] 注册请求发起模块,用于向资源存储网络发起资源注册请求;其中,所述资源注册请求中包括本地区块链节点所提供可访问资源的资源定位数据和资源权限数据。
[0387] 在一个可选实施例中,处理请求产生模块801,包括:
[0388] 处理请求产生单元,用于在执行区块链客户端发起的业务处理事务请求时,识别到跨链资源的信息获取需求,则根据待访问资源的资源定位标识,基于资源解析合约,产生链资源处理请求。
[0389] 在一个可选实施例中,所述处理请求产生单元,包括:
[0390] 处理请求产生子单元,用于根据待访问资源的资源定位标识,基于资源解析合约中配置的域名解析器地址,产生目标地址为域名解析器的链资源处理请求。
[0391] 在一个可选实施例中,资源定位数据包括:链资源的资源定位标识与资源访问地址之间的映射关系;
[0392] 所述资源定位标识的字符串中包括域名;所述域名为所述待访问资源所在区块链节点所属域的域名,所述资源访问地址中包括待访问资源所在区块链节点的通信地址。
[0393] 在一个可选实施例中,区块链网络的域名空间包括多个层级,采用树状结构进行域名存储,所述树状结构的节点用于存储对应层级域名的标签,每个节点与区块链所提供的数据资源对应,每个节点的域名包括从当前节点至树状结构根节点路径上的标签组合;
[0394] 所述域名空间的各层级域名标签,从上至下包括:区块链架构名称、区块链网络所属运营商名称、区块链名称、区块链节点名称和资源名称。
[0395] 在一个可选实施例中,区块链网络提供的资源包括:区块链可支持服务和/或区块链可读数据;
[0396] 所述区块链可支持服务包括下述至少一项:智能合约,和智能合约中的可访问方法程序。
[0397] 本公开实施例的技术方案所提供的一种区块链的资源处理装置可执行本公开任意实施例所提供的区块链的资源处理方法,具备执行区块链的资源处理方法相应的功能模块和有益效果。
[0398] 本公开的技术方案中,所涉及的资源信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0399] 根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0400] 图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0401] 如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
[0402] 设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0403] 计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如区块链的资源处理方法。例如,在一些实施例中,区块链的资源处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的区块链的资源处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行区块链的资源处理方法。
[0404] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0405] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0406] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0407] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0408] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0409] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0410] 人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
[0411] 云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
[0412] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
[0413] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。