一种基于中继链的跨链数据追溯方法和系统与流程

文档序号:33402976发布日期:2023-03-08 19:26阅读:37来源:国知局
一种基于中继链的跨链数据追溯方法和系统与流程

1.本发明涉及区块链技术领域,尤其涉及一种基于中继链的跨链数据追溯方法和系统。


背景技术:

2.区块链(blockchain)是一种云端的共享数据库,存储于其中的数据或信息具有不可伪造、全程留痕、可以追溯、公开透明和集体维护等特征。因为上述特征,区块链技术广泛应用于产品的生产、加工和物流等供应链场景中。在大量使用区块链技术的供应链场景中,供应链的上下游企业通常都会构建各自的区块链。特别是跨境情况下,供应链的参与方可能涉及不同的国家和地区,这就导致各方企业需要遵循不同的安全隐私技术标准和法律法规,进而导致在一条完整的供应链场景中,供应链中各参与方所使用的完整区块链系统中存在多种不同类型的异构区块链。
3.因为异构区块链的异构性,导致异构区块链之间相互独立,其底层账本结构、消息传播机制和共识算法各不相同,整个区块链系统没有统一的通信标准,所以不同的异构区块链之间进行数据交换和功能互补较难,供应链容易形成信息孤岛,进而阻碍了信息价值在供应链中的转移,形成价值孤岛。为解决上述问题,现有技术提供了一种区块链的跨链管理系统,通过在每个参与跨链管理的区块链上设置管理平台程序,用于接入、审核和与其他区块链交互。该管理平台程序设置在区块链的节点上,当需要接入下一区块链时,与接入的区块链进行标识信息、身份验证和约定密钥,由该接入的区块链审核上述标识信息和身份验证信息,再通过上述约定密钥返回数据,从而达成交易。
4.然而,上述设置管理平台程序的跨链管理方式,需要在每一区块链的每一节点上设置跨链管理平台,并且对相邻的每一区块链都进行验证审核处理,这就导致了区块链的数据获取效率低下,数据获取困难的问题。


技术实现要素:

5.本发明提供一种基于中继链的跨链数据追溯方案,旨在解决现有技术提供的跨链管理方式,数据存在不同区块链上,难以高效获取区块链的数据,数据获取困难的问题。
6.为实现上述目的,根据本发明的第一方面,本发明提出了一种基于中继链的跨链数据追溯方法,该跨链数据追溯方法应用于跨链数据追溯系统,跨链数据追溯系统包括系统前端、服务层和网络层,网络层包括应用链和跨链平台,其中,跨链平台包括中继链以及与中继链相连的多个跨链网关,多个跨链网关中每个跨链网关用于连接对应的一应用链;跨链数据追溯方法包括:
7.系统前端发起跨链数据查询请求;
8.服务层根据跨链数据查询请求,向网络层发起跨链查询交易;
9.网络层的源应用链调用跨链合约封装跨链查询交易,得到跨链事件,向跨链平台发送跨链事件;
10.跨链平台校验跨链事件,使用中继链和跨链网关将跨链事件路由至目的应用链,得到跨链事件对应的账本数据;
11.目的应用链通过跨链平台将账本数据返回至源应用链,源应用链将账本数据写入本地账本中。
12.优选的,上述跨链数据追溯方法中,跨链平台校验跨链事件,并使用中继链和跨链网关将跨链事件路由至目的应用链的步骤包括:
13.跨链平台中对应源应用链的跨链网关将跨链事件转发至中继链;
14.跨链平台的中继链检查跨链事件,将跨链事件放入交易池中进行共识;
15.中继链根据跨链事件的路由地址,选择跨链网关或其他跨链平台将跨链事件路由至目的应用链;
16.目的应用链调用跨链合约校验跨链事件,根据跨链事件对应的跨链数据请求提取账本数据;
17.目的应用链通过跨链回执的方式返回账本数据至源应用链。
18.优选的,上述跨链数据追溯方法中,服务层根据跨链数据查询请求,向网络层发起跨链查询交易的步骤包括:
19.服务层获取系统前端发起的跨链查询请求;
20.服务层解析跨链查询请求,校验封装跨链查询请求的跨链参数,得到跨链查询交易;
21.服务层调用源应用链的sdk,向网络层发起跨链查询交易。
22.优选的,上述跨链数据追溯方法中,网络层的源应用链调用跨链合约封装跨链查询交易,得到跨链事件,向跨链平台发送跨链事件的步骤包括:
23.源应用链对跨链查询交易进行非空校验,当跨链查询交易非空校验成功时调用跨链合约;
24.源应用链使用跨链合约封装跨链查询交易的跨链参数,得到预定格式的跨链事件;
25.源应用链使用源应用链的sdk,将跨链事件发送至跨链平台的中继链,以使中继链路由跨链事件至目的应用链的跨链网关。
26.优选的,上述跨链数据追溯方法中,目的应用链通过跨链平台将账本数据返回至源应用链,源应用链将账本数据写入本地账本的步骤包括:
27.目的应用链通过跨链回执的方式返回账本数据至跨链平台;
28.跨链平台按照跨链事件的路由路径,返回跨链回执至源应用链;
29.源应用链将跨链回执中的账本数据写入本地账本;
30.源应用链当再次获取系统前端的跨链数据查询请求时,将本地账本中的账本数据响应至系统前端。
31.优选的,上述跨链数据追溯方法中,跨链平台校验跨链事件,使用中继链和跨链网关将跨链事件路由至目的应用链的步骤包括:
32.跨链平台的中继链判断跨链事件的前端身份信息与中继链存储的前端身份信息是否匹配;
33.若前端身份信息不匹配,则中继链抛弃跨链事件;
34.若前端身份信息匹配,则中继链判断跨链事件的目的应用链id与中继链存储的目的应用链id是否匹配;
35.若目的应用链id不匹配,则中继链抛弃跨链事件;
36.若目的应用链id匹配,则中继链根据目的应用链id计算中继链到目的应用链的路由路径;
37.中继链按照路由路径,路由跨链事件至目的应用链。
38.优选的,上述跨链数据追溯方法中,目的应用链通过跨链平台将账本数据返回至源应用链的步骤包括:
39.目的应用链使用目的应用链id和前端身份信息生成账本数据的加密密钥;
40.目的应用链使用加密密钥对账本数据进行加密,将加密后的账本数据反馈至跨链平台,以使跨链平台将账本数据返回至源应用链。
41.优选的,上述跨链数据追溯方法中,跨链平台校验跨链事件,使用中继链和跨链网关将跨链事件路由至目的应用链的步骤包括:
42.中继链根据跨链事件包含的目的应用链id,计算中继链到目的应用链的多个候选最短路由路径;
43.中继链使用预设探测工具计算每条候选最短路由路径的耗时;
44.中继链选择耗时最短的候选最短路由路径,将跨链事件路由至目的应用链。
45.优选的,上述跨链数据追溯方法中,中继链根据跨链事件包含的目的应用链id,计算中继链到目的应用链的多个候选最短路由路径的步骤之前,还包括:
46.服务层解析跨链数据查询请求,得到跨链数据查询请求对应的查询条件;
47.中继链使用查询条件轮询跨链平台连接的各应用链,得到各应用链的响应数据,其中响应数据包括应用链id;
48.服务层根据各应用链的响应数据,识别得到跨链数据查询请求对应的目的应用链id。
49.根据本发明的第二方面,本发明还提供了一种基于中继链的跨链数据追溯系统,包括:
50.系统前端、服务层和网络层;其中,
51.网络层包括应用链和跨链平台;
52.跨链平台包括中继链以及与中继链相连的多个跨链网关,跨链网关中每个跨链网关用于连接一应用链;
53.系统前端,用于发起跨链数据查询请求;
54.服务层,用于根据跨链数据查询请求向网络层发起跨链查询交易;
55.网络层的源应用链,用于调用跨链合约封装跨链查询交易,得到跨链事件并向跨链平台发送;
56.跨链平台,用于校验跨链事件,使用中继链和跨链网关将跨链事件路由至目的应用链,得到跨链事件对应的账本数据;
57.目的应用链,用于通过跨链平台将账本数据返回至源应用链;
58.源应用链,还用于将账本数据写入本地账本;
59.服务层,还用于当再次接收到跨链数据查询请求时,从源应用链调取账本数据并
发送至系统前端。
60.综上,本发明上述技术方案提供的基于中继链的跨链数据追溯方案,系统前端发起跨链数据查询请求,该请求用于查询非直连应用链的账本数据;此时服务层根据该跨链数据查询请求向网络层发起跨链查询交易;网络层的源应用链调用跨链合约封装该跨链查询交易,从而得到跨链事件,然后向跨链平台发送跨链事件;因为跨链平台的中继链能够通过跨链网关连接多个应用链,这样中继链能够从源应用链获取并校验该跨链事件,然后中继链和跨链网关将跨链事件路由到目的应用链,得到跨链事件对应的账本数据,目的应用链通过跨链平台将账本数据返回至源应用链,源应用链将该账本数据写入本地账本中。这样系统前端随时能够从源应用链的本地账本中调取该账本数据,能够解决现有技术中不同异构区块链难以进行数据交互和功能互补,阻碍信息价值专业的问题,并且只需要中继链校验跨链事件,解决了现有的设置管理平台程序的跨链管理方式需要在每一区块链的每一节点设置跨链管理平台,对每一区块链进行验证审核导致的数据获取效率低下的问题。
附图说明
61.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
62.图1是本发明实施例提供的第一种基于中继链的跨链数据追溯系统的结构示意图;
63.图2是本发明实施例提供的第一种基于中继链的跨链数据追溯方法的流程示意图;
64.图3是图2所示实施例提供的一种跨链事件校验和路由方法的流程示意图;
65.图4是图2所示实施例提供的一种跨链查询交易发起方法的流程示意图;
66.图5是图2所示实施例提供的一种跨链事件的封装方法的流程示意图;
67.图6是图2所示实施例提供的一种账本数据的写入方法的流程示意图;
68.图7是图2所示实施例提供的一种跨链事件的路由方法的流程示意图;
69.图8是图7所示实施例提供的一种账本数据的返回方法的流程示意图;
70.图9是本发明实施例提供的一种跨链事件的校验方法的流程示意图;
71.图10是图9所示实施例提供的一种目的应用链id的计算方法的流程示意图;
72.图11是本发明实施例提供的第二种基于中继链的跨链数据追溯系统的结构示意图;
73.图12是本发明实施例提供的第二种基于中继链的跨链数据追溯方法的流程示意图。
74.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
75.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
76.本发明实施例的主要解决的技术问题是:
77.异构区块链因其异构性,导致异构区块链之间相互独立,其底层账本结构、消息传播机制和共识算法各不相同,整个区块链系统没有统一的通信标准,所以不同的异构区块链之间进行数据交换和功能互补较难,供应链容易形成信息孤岛,进而阻碍了信息价值在供应链中的转移,形成价值孤岛。为解决上述问题,现有技术提供了一种区块链的跨链管理系统,通过在每个参与跨链管理的区块链上设置管理平台程序,用于接入、审核和与其他区块链交互。该管理平台程序设置在区块链的节点上,当需要接入下一区块链时,与接入的区块链进行标识信息、身份验证和约定密钥,由该接入的区块链审核上述标识信息和身份验证信息,再通过上述约定密钥返回数据,从而达成交易。然而,上述设置管理平台程序的跨链管理方式,需要在每一区块链的每一节点上设置跨链管理平台,并且对相邻的每一区块链都进行验证审核处理,这就导致了区块链的数据获取效率低下,数据获取困难的问题。
78.为了解决上述问题,本发明下述实施例提供了基于中继链的跨链数据追溯方案,通过在供应链场景中引入跨链技术,基于包含中继链的跨链平台构建中继链的跨链追溯方案,为同一系统的不同组织(例如同一供应链涉及的公司、企业或工厂等)的区块链提供跨链的数据交换服务。使得各组织能够查询其他组织系统上的记录,实现不同区块链组织异构链的跨链数据交换及信息传递,打破了不同组织的单区块链产生的信息孤岛,使得信息价值在同一系统的不同组织中流通,有助于构建安全可信信息共享的区块链生态。同时只需要在中继链中继时进行信息验证,不需要在每一区块链的每一节点进行验证审核,从而提高了区块链的数据获取效率,降低了数据的获取难度。
79.具体参见图1,图1为本发明实施例实施例提供的一种基于中继链的跨链数据追溯系统的结构示意图。如图1所示,上述跨链数据追溯系统包括:
80.系统前端100、服务层200和网络层300;其中,
81.网络层300包括应用链301和跨链平台302。
82.跨链平台302包括中继链3021以及与中继链3021相连的多个跨链网关3022,跨链网关3022中每个跨链网关3022用于连接一应用链301。其中,中继链可选用bitxhub中继链。
83.跨链技术是区块链的核心技术之一,能够提升区块链的互操作性,是实现通信和信息共享的重要技术手段。跨链技术能够打破各独立区块链的孤立状态,实现单链功能的扩展,促进不同区块链之间信息的传递和价值流通。跨链技术具有广泛应用场景,例如在供应链场景中引入跨链技术,能够实现异构链之间的互操作,促进信息交换和功能互补,打破供应链的各组织的单链系统场景的信息孤岛,使得信息在整个供应链系统中流通,从而构建安全可信和信息共享的供应链生态。
84.跨链数据追溯系统中,网络层300能够提供区块链底的层服务以及跨链底层服务。跨链平台302包含跨链平台由中继链3021(例如bitxhub)、应用链跨链网关3022组成。应用链301中部署有智能合约负责操作账本,处理具体的业务逻辑。跨链网关3022负责监听并路由应用链301抛出的跨链交易。中继链bitxhub作为跨链核心组件,负责跨链交易的校验、共识和执行。具体地。
85.系统前端100,用于发起跨链数据查询请求。
86.服务层200,用于根据跨链数据查询请求向网络层300发起跨链查询交易。
87.网络层300的源应用链301,用于调用跨链合约封装跨链查询交易,得到跨链事件并向跨链平台发送。
88.跨链平台302,用于校验跨链事件,使用中继链3021和跨链网关3022将跨链事件路由至目的应用链,得到跨链事件对应的账本数据。
89.目的应用链301,用于通过跨链平台将账本数据返回至源应用链。
90.源应用链301,还用于将账本数据写入本地账本。
91.服务层200,还用于当再次接收到跨链数据查询请求时,从源应用链调取账本数据并发送至系统前端。
92.从整体上看,系统前端100将用户输入的跨链数据查询请求转换成json格式,通过http协议封装并提交上述跨链数据查询请求。服务层200监听到该请求后,校验用户输入并序列化,通过调用应用链的sdk;sdk向底层应用链提交交易,调用网络层的账本服务或跨链服务。若需要返回执行结果,则服务层将网络层返回的数据,返回给前端展示。
93.综上,本发明上述实施例提供的基于中继链的跨链数据追溯系统,系统前端发起跨链数据查询请求,该请求用于查询非直连应用链的账本数据;此时服务层根据该跨链数据查询请求向网络层发起跨链查询交易;网络层的源应用链调用跨链合约封装该跨链查询交易,从而得到跨链事件,然后向跨链平台发送跨链事件;因为跨链平台的中继链能够通过跨链网关连接多个应用链,这样中继链能够从源应用链获取并校验该跨链事件,然后中继链和跨链网关将跨链事件路由到目的应用链,得到跨链事件对应的账本数据,目的应用链通过跨链平台将账本数据返回至源应用链,源应用链将该账本数据写入本地账本中。这样系统前端随时能够从源应用链的本地账本中调取该账本数据,能够解决现有技术中不同异构区块链难以进行数据交互和功能互补,阻碍信息价值专业的问题,并且只需要中继链校验跨链事件,解决了现有的设置管理平台程序的跨链管理方式需要在每一区块链的每一节点设置跨链管理平台,对每一区块链进行验证审核导致的数据获取效率低下的问题。
94.为实现上述目的,参见图2,图2为本发明实施例提供的一种基于中继链的跨链数据追溯方法的流程示意图。该跨链数据追溯方法应用于图1所示的跨链数据追溯系统,跨链数据追溯系统包括系统前端、服务层和网络层,网络层包括应用链和跨链平台,其中,跨链平台包括中继链以及与中继链相连的多个跨链网关,多个跨链网关中每个跨链网关用于连接对应的一应用链。如图2所示,该跨链数据追溯方法包括:
95.s110:系统前端发起跨链数据查询请求。系统前端可为前端电脑、手机或平板上的app,该跨链数据查询请求可为系统前端http、html或css等协议请求携带响应的查询条件,从而发起的跨链数据查询请求。
96.s120:服务层根据跨链数据查询请求,向网络层发起跨链查询交易。该跨链数据查询请求携带跨链参数(目的应用链id、目的合约地址和查询条件等)到服务层,服务层内置有跨链数据追溯模块解析该跨链参数并校验封装。
97.s130:网络层的源应用链调用跨链合约封装跨链查询交易,得到跨链事件,向跨链平台发送跨链事件。
98.s140:跨链平台校验跨链事件,使用中继链和跨链网关将跨链事件路由至目的应用链,得到跨链事件对应的账本数据。
99.s150:目的应用链通过跨链平台将账本数据返回至源应用链,源应用链将账本数据写入本地账本中。
100.综上,本发明上述技术方案提供的基于中继链的跨链数据追溯方法,系统前端发
起跨链数据查询请求,该请求用于查询非直连应用链的账本数据;此时服务层根据该跨链数据查询请求向网络层发起跨链查询交易;网络层的源应用链调用跨链合约封装该跨链查询交易,从而得到跨链事件,然后向跨链平台发送跨链事件;因为跨链平台的中继链能够通过跨链网关连接多个应用链,这样中继链能够从源应用链获取并校验该跨链事件,然后中继链和跨链网关将跨链事件路由到目的应用链,得到跨链事件对应的账本数据,目的应用链通过跨链平台将账本数据返回至源应用链,源应用链将该账本数据写入本地账本中。这样系统前端随时能够从源应用链的本地账本中调取该账本数据,能够解决现有技术中不同异构区块链难以进行数据交互和功能互补,阻碍信息价值专业的问题,并且只需要中继链校验跨链事件,解决了现有的设置管理平台程序的跨链管理方式需要在每一区块链的每一节点设置跨链管理平台,对每一区块链进行验证审核导致的数据获取效率低下的问题。
101.作为一种优选的实施例,如图3所示,上述跨链数据追溯方法中,步骤s140:跨链平台校验跨链事件,并使用中继链和跨链网关将跨链事件路由至目的应用链,具体包括:
102.s201:跨链平台中对应源应用链的跨链网关将跨链事件转发至中继链。
103.s202:跨链平台的中继链检查跨链事件,将跨链事件放入交易池中进行共识。
104.s203:中继链根据跨链事件的路由地址,选择跨链网关或其他跨链平台将跨链事件路由至目的应用链。
105.s204:目的应用链调用跨链合约校验跨链事件,根据跨链事件对应的跨链数据请求提取账本数据。
106.s205:目的应用链通过跨链回执的方式返回账本数据至源应用链。
107.本技术实施例提供的技术方案中,跨链平台的源应用链的跨链网关实时监视和轮询跨链事件,过滤出跨链事件并转发至中继链;中继链对跨链交易进行检查,在检查通过后将该跨链事件放入交易池中进行共识,然后打包出块,随后执行跨链交易,由中继链中的分类路由根据预定的路由地址交易到目的应用链的跨链网关;然后目的应用链的跨链网关对该跨链事件验证通过后,转发该跨链事件至目的应用链,等待回执结果。目的应用链调用跨链合约broker对跨链事件进行校验,查询相应的账本数据,当上述步骤执行完毕后以跨链回执的方式,目的应用链将账本数据沿相反的路由路径方向反馈回源应用链中,通过上述方式,通过中继链和跨链网关能够接入到不同的区块链,从而实现异构链间的跨链数据交换和信息传递,避免了单链系统无法交换产生的信息孤岛问题,使得所有价值信息在整条供应链上流通,从而实现信息共享。
108.另外,作为一种优选的实施例,如图4所示,在本技术实施例提供的跨链数据追溯方法中,上述步骤s120:服务层根据跨链数据查询请求,向网络层发起跨链查询交易具体包括:
109.s301:服务层获取系统前端发起的跨链查询请求。该跨链查询请求携带有跨链参数,跨链参数包括目的应用链id、目的合约地址和查询条件等。
110.s302:服务层解析跨链查询请求,校验封装跨链查询请求的跨链参数,得到跨链查询交易。服务层内置有跨链数据追溯模块,能够解析上述跨链参数,并对上述跨链参数进行校验封装,通过调用源应用链sdk向区块链网络发起跨链查询交易。
111.s303:服务层调用源应用链sdk,向网络层发起跨链查询交易。
112.本技术实施例提供的技术方案中,在源应用链内设置sdk,该sdk是一种加密具有
功能的数字货币,能够提供分布式算法,通过调用源应用链sdk能够向区块链网络发起跨链交易,从而将跨链查询交易发送至网络层的中继链,通过中继链和其他跨链网关路由至目的链id对应的目的应用链。
113.另外,作为一种优选的实施例,如图5所示,上述跨链数据追溯方法中,步骤s130:网络层的源应用链调用跨链合约封装跨链查询交易,得到跨链事件,向跨链平台发送跨链事件;具体包括:
114.s401:源应用链对跨链查询交易进行非空校验,当跨链查询交易非空校验成功时调用跨链合约。
115.s402:源应用链使用跨链合约封装跨链查询交易的跨链参数,得到预定格式的跨链事件。
116.s403:源应用链使用源应用链sdk,将跨链事件发送至跨链平台的中继链,以使中继链路由跨链事件至目的应用链的跨链网关。
117.本技术实施例提供的技术方案中,网络层,即区块链网络,能够对上述跨链查询交易进行非空校验,具体通过调用源应用链中的跨链合约broker对上述跨链查询交易进行非空校验,若跨链查询交易校验为空,则丢弃该跨链查询交易;若该跨链查询交易非空,则所述网络层的源应用链使用跨链合约broker将该跨链查询交易中的跨链参数(目的链id、源合约地址、目的合约地址“interchainget”、查询键和“interchainset”)进行封装,并制作得到特定格式的跨链事件,调用源应用链sdk发送跨链事件到跨链平台。
118.另外,作为一种优选的实施例,如图6所示,上述跨链数据追溯方法中,步骤s150:目的应用链通过跨链平台将账本数据返回至源应用链,源应用链将账本数据写入本地账本的步骤包括:
119.s501:目的应用链通过跨链回执的方式返回账本数据至跨链平台。
120.s502:跨链平台按照跨链事件的路由路径,返回跨链回执至源应用链。
121.s503:源应用链将跨链回执中的账本数据写入本地账本。
122.s504:源应用链当再次获取系统前端的跨链数据查询请求时,将本地账本中的账本数据响应至系统前端。
123.本技术实施例提供的技术方案中,目的应用链的跨链网关通过跨链回执的方式返回账本数据,其传递流程和跨链交易类似,按照原有跨链事件的路由路径对应的相反路径,即依次为目的应用链的跨链网关、中继链、源应用链的跨链网关和源应用链反馈上述账本数据,将账本数据写入源应用链的本地账本,源应用链将跨链回执中携带的账本数据写入服务层。这样前端需要重新发送一次查询请求就能够查询被写入的跨链执行结果,将该本地账本中的账本数据响应至系统前端。通过上述方式能够实现异构链间的跨链数据交互和信息传递,打破了各单链系统产生的信息孤岛,使得有价值的信息在整条供应链中流通,能够构建安全可信且信息共享的供应链生态。
124.另外,为了保证跨链事件的安全,避免虚假的跨链事件获取目的应用链的账本数据;并且保证跨链事件路由过程中的快速传输,作为一种优选的实施例,如图7所示,上述步骤s140:跨链平台校验跨链事件,使用中继链和跨链网关将跨链事件路由至目的应用链,具体包括:
125.s601:跨链平台的中继链判断跨链事件的前端身份信息与中继链存储的前端身份
信息是否匹配。
126.s602:若前端身份信息不匹配,则中继链抛弃跨链事件。通过验证前端身份信息,判断该前端身份信息是否存在于中继链中,这样就能够使用中继链验证跨链事件是否为具有权限的系统前端发送,从而避免非直连的系统前端获取目的应用链的账本数据,避免虚假的跨链事件窃取账本数据。
127.s603:若前端身份信息匹配,则中继链判断跨链事件的目的应用链id与中继链存储的目的应用链id是否匹配。
128.s604:若目的应用链id不匹配,则中继链抛弃跨链事件。
129.同样,使用该目的应用链id对跨链事件进行验证,中继链判断跨链事件的目的应用链id是否存在于中继链中,从而避免虚假跨链事件获取特定目的应用链的账本数据。
130.s605:若目的应用链id匹配,则中继链根据目的应用链id计算中继链到目的应用链的路由路径。
131.s606:中继链按照路由路径,路由跨链事件至目的应用链。
132.本技术实施例提供的技术方案中,使用前端身份信息和目的应用链id对系统前端的身份和跨链事件的真伪进行校验,从而避免虚假的跨链事件窃取目的应用链的数据。同时,中继链根据目的应用链id计算中继链到目的应用链的路由路径、如图11所示,因为中继链可能连接其他跨链平台的中继链,或者中继链通过多条跨链网关连接其他目的应用链,这样就会导致中继链到目的应用链存在多条路径,中继链根据该目的应用链id能够计算得到中继链到目的应用链的所有路径。从中选择最短的路由路径,中继链就能够将跨链事件路由至目的应用链。
133.另外,为了保护账本数据的安全,使得账本数据能够正确被源应用链和服务层解析,避免账本数据被窃取到其他数据平台或系统前端;作为一种优选的实施例,如图8所示,本技术实施例提供的跨链数据追溯方法,上述步骤s150:目的应用链通过跨链平台将账本数据返回至源应用链;具体包括:
134.s701:目的应用链使用目的应用链id和前端身份信息生成账本数据的加密密钥。
135.s702:目的应用链使用加密密钥对账本数据进行加密,将加密后的账本数据反馈至跨链平台,以使跨链平台将账本数据返回至源应用链。
136.本技术实施例提供的技术方案,目的应用链使用该目的应用链id和前端身份信息生成账本数据的加密密钥,这样只有中继链或源应用链存在该目的应用链id和前端身份信息,这样使用该加密密钥对账本数据进行加密,加密后的账本数据只有返回到源应用链,才能够被源应用链使用目的应用链id和前端身份信息进行解密,从而保证了账本数据的数据安全,避免该账本数据被其他平台窃取后解析出来。
137.另外,如图11所述,从源应用链到目的应用链可能会经历多个跨链平台和多个中继链,这样跨链事件从源应用链到目的应用链就存在多条路由路径,为了减少跨链事件的传输时长,减少跨链事件传输的堵塞,同时减少跨链事件的窃取情况。作为一种优选的实施例,如图9所示,本技术实施例提供的跨链数据追溯方法中,上述步骤s140:跨链平台校验跨链事件,使用中继链和跨链网关将跨链事件路由至目的应用链;具体包括:
138.s801:中继链根据跨链事件包含的目的应用链id,计算中继链到目的应用链的多个候选最短路由路径。
139.s802:中继链使用预设探测工具计算每条候选最短路由路径的耗时。
140.s803:中继链选择耗时最短的候选最短路由路径,将跨链事件路由至目的应用链。
141.本技术实施例提供的技术方案,中继链根据目的应用链id,能够计算得到中继链到目的应用链的多条候选最短路由路径,这样使用预设探测工具,例如traceroute工具,向各候选最短路由路径发送探测包,根据响应时长选择耗时最短的候选最短路由路径,从而中继链将该跨链事件路由到目的应用链。通过上述方法能够减少跨链事件的传输时长,减少跨链事件传输过程中的堵塞,同时选择最短的路由路径能够减少跨链事件的窃取情况。
142.另外,系统前端可能并不知道需要查询的账本数据所在的目的应用链的地址,即预先难以确知跨链事件中的应用链id,需要提前获取跨链数据查询请求对应的目的应用链id。为了解决上述问题,作为一种优选的实施例,如图10所示,在上述步骤s801:中继链根据跨链事件包含的目的应用链id,计算中继链到目的应用链的多个候选最短路由路径的步骤之前,还包括:
143.s901:服务层解析跨链数据查询请求,得到跨链数据查询请求对应的查询条件。
144.s902:中继链使用查询条件轮询跨链平台连接的各应用链,得到各应用链的响应数据,其中响应数据包括应用链id。
145.s903:服务层根据各应用链的响应数据,识别得到跨链数据查询请求对应的目的应用链id。
146.本技术实施例提供的技术方案,通过服务层解析跨链数据查询请求,从而得到查询条件,通过该查询条件轮询各应用链,能够得到各应用链的响应数据,通过解析该响应数据就能够获取到该应用链id,识别得到跨链数据查询请求对应的目的应用链id,从而方便后续使用该目的应用链id从目的应用链路由账本数据至源应用链中。
147.另外,结合具体案例和应用场景,说明本技术实施例提供的基于中继链的跨链数据追溯方法;如图12所示。针对供应链的跨链数据追溯场景:
148.一供应链系统的组织包括渔业公司、加工包装厂、海关、检验检疫局、物流公司、分销商和零售商等。一方面需要对本组织产生的业务数据进行基本操作,包括业务数据存储、查询、更新和删除;另一方面需要跨链数据追溯,获取其他区块链网络组织产生的业务数据。当参与者需要了解某批次海产品在供应链其他组织中的流通信息时,需要使用跨链数据追溯服务。
149.该操作的前置条件是组织所在的应用链已接入跨链系统且跨链合约已通过管理员审核。执行该操作需要录入查询条件,包括目的应用链id、目的合约地址和查询键。应用链跨链网关将抛出跨链事件,跨链系统捕捉到跨链事件后进行验证和共识等,转发给目的应用链处理。处理完毕后发送一个交易回执,该回执携带源应用链需要的数据。源应用链收到回执之后将数据写入本地账本,用户查询本地账本即可。
150.以下以一跨链查询请求的处理流程阐述该模块的实现。
151.供应链系统的区块链hyperledger fabric中的零售商组织想要获取以太坊中检验检疫局账本数据。其中,中继链为bitxhub,前端为零售商组织、该区块链还包括服务层、源应用链、源应用链账本、源应用链网关、中继链、目标链跨链网关、目标链和目标链账本。具体包括以下步骤:
152.步骤一:
153.1、零售商组织作为前端发送跨链请求,携带跨链参数(以太坊链id、以太坊合约地址和检验检疫编号xxx)到服务层。即图12中前端发起跨链请求的步骤。
154.2、服务层解析该跨链参数并校验封装,通过区块链hyperledger fabric sdk在区块链网络中发起跨链交易。即图12中服务层校验和发起跨链交易的步骤。
155.步骤二:
156.1、区块链网络的源应用链对该跨链交易进行非空校验,当非空校验成功后,调用跨链合约broker。即图12中源应用链调用跨链合约的步骤。
157.2、源应用链使用该跨链合约broker,将该跨链参数(以太坊id、hyperledgerfabric id、以太坊合约地址和检验检疫编号)等信息封装,构造成跨链事件e(查询检验检疫编号为xxx的信息),并写入本地源应用链账本中。调用应用链hyperledgerfabric sdk发送跨链事件e(查询检验检疫编号为xxx的信息)至源应用链网关。即图12中源应用链抛出跨链事件至源应用链网关的步骤。
158.步骤三:
159.1、区块链hyperledgerfabric的跨链网关监视和轮询跨链事件e,过滤出跨链事件转发给中继链bitxhub。即图12中,源应用链网关校验和路由至中继链的步骤。
160.2、中继链bitxhub将跨链事件e进行共识和执行,并由中继链内的路由模块分类路由到目的链的跨链网关。即图12中,中继链校验、共识和执行以及路由至目标链跨链网关的步骤。
161.3、以太坊链网关(即目标链跨链网关)验证该跨链事件后转发至以太坊链(即目标链),等待回执结果。即图12中,目标链跨链网关校验以及路由至目标链的步骤。
162.4、以太坊链调用跨链合约broker校验该跨链事件,根据跨链事件对应的查询要求,获取检验检疫编号xxx的账本数据,执行完毕将结果回传给以太坊网关(目标链跨链网关)。即图12中,目标链共识出块、执行交易查询账本以及返回账本查询结果至目标链跨链网关的步骤。
163.步骤四:
164.1、以太坊链网关(即目标链的跨链网关)将结果依次回传给中继链、hyperledger fabric链的跨链网关和hyperledger fabric链的服务层;即图12中目标链跨链网关抛出跨链回执事件至中继链、中继链校验、共识、执行回执交易和路由至源应用链的步骤。
165.2、hyperledgerfabric链的服务层将跨链回执中携带的数据写入本地账本中;即图12中源应用链校验、共识和执行,然后写入跨链数据至源应用链账本的步骤。
166.3、零售商在前端重新发送一次查询请求,得到执行结果。即图12中,前端发送本地查询请求、服务层发起交易查询、源应用链执行交易、源应用链账本返回查询结果、源应用链返回查询结果至服务层以及服务层返回查询结果的步骤。
167.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
168.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程
图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
169.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
170.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
171.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
172.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
173.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1