跨链存证方法及访问方法、装置、电子设备
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种跨链存证方法及访问方法、装置、电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种基于区块链的发票创建方法及装置、电子设备。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种跨链存证方法,应用于跨链路由设备,所述跨链路由设备与多个区块链的节点设备保持通讯连接;所述方法包括:
接收客户端发起的发票存证请求;其中,所述发票存证请求包括目标发票;
响应于所述发票存证请求,基于预设规则从所述多个区块链中为所述目标发票确定对应的目标区块链;
将所述发票存证请求转发至所述目标区块链的节点设备,以由所述目标区块链的节点设备对所述目标发票进行共识处理,并在共识通过后将所述目标发票在所述目标区块链中进行存证。
可选的,还包括:
接收所述目标区块链中的节点设备返回的所述目标发票存证成功的通知消息;
响应于所述通知消息,在本地保存所述目标发票的标识信息与所述目标区块链的对应关系。
可选的,所述目标发票的标识信息,包括:
针对所述目标发票的发票内容;或者,所述发票内容中的唯一性信息进行hash计算得到的hash值。
可选的,所述发票存证请求中还包括所述目标发票的发票代码;所述多个区块链分别对应不同的发票代码取值范围;
所述基于预设规则从所述多个区块链中为所述目标发票确定对应的目标区块链,包括:
将所述目标发票的发票代码与所述多个区块链对应的发票代码取值范围分别进行匹配;如果所述目标发票的发票代码的取值位于所述多个区块链中的任一区块链对应的发票代码取值范围,则将该区块链确定为与所述目标发票对应的目标区块链。
可选的,将所述发票存证请求转发至所述目标区块链的节点设备,包括:
基于所述目标区块链支持的交易格式,构建对应于所述发票存证请求的发票存证交易;其中,所述发票存证交易包括所述目标发票;
将所述发票存证交易发送至所述目标区块链的节点设备。
可选的,还包括:
接收客户端发起的发票访问请求;其中,所述发票访问请求包括待访问的目标发票的标识信息;
响应于所述发票访问请求,查询所述对应关系,确定与所述目标发票的标识信息对应的目标区块链;
将所述发票访问请求转发至所述目标区块链的节点设备,并将所述目标区块链的节点设备返回的所述待访问的目标发票转发给所述客户端。
可选的,将所述发票访问请求转发至所述目标区块链的节点设备,包括:
基于所述目标区块链支持的交易格式,构建对应于所述发票访问请求的发票访问交易;其中,所述发票访问交易包括所述目标发票的标识信息;
将所述发票访问交易发送至所述目标区块链的节点设备。
可选的,所述多个区块链分别对应不同的行政区域。
根据本说明书一个或多个实施例的第二方面,提出了一种跨链访问方法,应用于跨链路由设备,所述跨链路由设备与多个区块链的节点设备保持通讯连接,所述跨链路由设备本地保存有发票的标识信息与区块链的对应关系;所述方法包括:
接收客户端发起的发票访问请求;其中,所述发票访问请求包括待访问的目标发票的标识信息;
响应于所述发票访问请求,查询所述对应关系,确定与所述目标发票的标识信息对应的目标区块链;
将所述发票访问请求转发至所述目标区块链的节点设备,并将所述目标区块链的节点设备返回的所述待访问的目标发票转发给所述客户端。
可选的,将所述发票访问请求转发至所述目标区块链的节点设备,包括:
基于所述目标区块链支持的交易格式,构建对应于所述发票访问请求的发票访问交易;其中,所述发票访问交易包括所述目标发票的标识信息;
将所述发票访问交易发送至所述目标区块链的节点设备。
根据本说明书一个或多个实施例的第三方面,提出了一种跨链存证装置,应用于跨链路由设备,所述跨链路由设备与多个区块链的节点设备保持通讯连接;所述装置包括:
存证接收单元,接收客户端发起的发票存证请求;其中,所述发票存证请求包括目标发票;
第一确定单元,响应于所述发票存证请求,基于预设规则从所述多个区块链中为所述目标发票确定对应的目标区块链;
第一转发单元,将所述发票存证请求转发至所述目标区块链的节点设备,以由所述目标区块链的节点设备对所述目标发票进行共识处理,并在共识通过后将所述目标发票在所述目标区块链中进行存证。
可选的,还包括:
消息接收单元,接收所述目标区块链中的节点设备返回的所述目标发票存证成功的通知消息;
保存单元,响应于所述通知消息,在本地保存所述目标发票的标识信息与所述目标区块链的对应关系。
可选的,所述目标发票的标识信息,包括:
针对所述目标发票的发票内容;或者,所述发票内容中的唯一性信息进行hash计算得到的hash值。
可选的,所述发票存证请求中还包括所述目标发票的发票代码;所述多个区块链分别对应不同的发票代码取值范围;
所述第一确定单元具体用于:
将所述目标发票的发票代码与所述多个区块链对应的发票代码取值范围分别进行匹配;如果所述目标发票的发票代码的取值位于所述多个区块链中的任一区块链对应的发票代码取值范围,则将该区块链确定为与所述目标发票对应的目标区块链。
可选的,所述第一转发单元具体用于:
基于所述目标区块链支持的交易格式,构建对应于所述发票存证请求的发票存证交易;其中,所述发票存证交易包括所述目标发票;
将所述发票存证交易发送至所述目标区块链的节点设备。
可选的,还包括:
访问接收单元,接收客户端发起的发票访问请求;其中,所述发票访问请求包括待访问的目标发票的标识信息;
第二确定单元,响应于所述发票访问请求,查询所述对应关系,确定与所述目标发票的标识信息对应的目标区块链;
第二转发单元,将所述发票访问请求转发至所述目标区块链的节点设备,并将所述目标区块链的节点设备返回的所述待访问的目标发票转发给所述客户端。
可选的,所述第二转发单元具体用于:
基于所述目标区块链支持的交易格式,构建对应于所述发票访问请求的发票访问交易;其中,所述发票访问交易包括所述目标发票的标识信息;
将所述发票访问交易发送至所述目标区块链的节点设备。
可选的,所述多个区块链分别对应不同的行政区域。
根据本说明书一个或多个实施例的第四方面,提出了一种跨链访问装置,应用于跨链路由设备,所述跨链路由设备与多个区块链的节点设备保持通讯连接,所述跨链路由设备本地保存有发票的标识信息与区块链的对应关系;所述装置包括:
接收单元,接收客户端发起的发票访问请求;其中,所述发票访问请求包括待访问的目标发票的标识信息;
确定单元,响应于所述发票访问请求,查询所述对应关系,确定与所述目标发票的标识信息对应的目标区块链;
转发单元,将所述发票访问请求转发至所述目标区块链的节点设备,并将所述目标区块链的节点设备返回的所述待访问的目标发票转发给所述客户端。
可选的,所述转发单元具体用于:
基于所述目标区块链支持的交易格式,构建对应于所述发票访问请求的发票访问交易;其中,所述发票访问交易包括所述目标发票的标识信息;
将所述发票访问交易发送至所述目标区块链的节点设备。
根据本说明书一个或多个实施例的第五方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一实施例中所述的跨链存证方法。
根据本说明书一个或多个实施例的第六方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一实施例中所述的跨链访问方法。
由以上技术方案可见,一方面,通过跨链路由设备将发票存证请求和发票访问请求转发至相应区块链的节点设备,可实现针对发票的跨链存证和跨链访问。另一方面,即使各区块链采用不同的区块链技术搭建,由位于中间层的跨链路由设备屏蔽了底层技术实现上的差异,客户端也无需与区块链的节点设备对接;换言之,对于外部的客户端来说,在逻辑上只有一个区块链,而物理上的区块链对外不露出,客户端感知不到底层区块链之间的差异,通过跨链路由设备在区块链上存证和访问发票即可,而无需直接访问某个特定的区块链。
附图说明
图1是一示例性实施例提供的一种跨链存证方法的流程图。
图2是一示例性实施例提供的一种跨链访问方法的流程图。
图3是一示例性实施例提供的一种跨链存证方案以及跨链访问方案的整体架构示意图。
图4是一示例性实施例提供的跨链存证方法的交互示意图。
图5是一示例性实施例提供的跨链访问方法的交互示意图。
图6是一示例性实施例提供的一种设备的结构示意图。
图7是一示例性实施例提供的一种跨链存证装置的框图。
图8是一示例性实施例提供的另一种设备的结构示意图。
图9是一示例性实施例提供的一种跨链访问装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
图1是一示例性实施例提供的一种跨链存证方法的流程图。如图1所示,该方法应用于跨链路由设备,可以包括以下步骤:
步骤102,接收客户端发起的发票存证请求;其中,所述发票存证请求包括目标发票。
在一实施例中,客户端可以为存证请求方使用的手机、平板电脑、智能手表等任意类型的电子设备,本说明书并不对此进行限制。存证请求方通过在电子设备上登录已注册账号,可接入跨链路由设备以与跨链路由设备进行交互。
在一实施例中,跨链路由设备与多个区块链的节点设备保持通讯连接。发票的存证请求方在完成对发票的开具后,可通过客户端向跨链路由设备发送发票存证请求(包括该发票),以使得跨链路由设备将发票存证请求转发至适用于存证该发票的区块链的节点设备,那么该节点设备在接收到发票存证请求后对发票进行共识处理,并在共识通过后将发票在区块链中进行存证。
步骤104,响应于所述发票存证请求,基于预设规则从所述多个区块链中为所述目标发票确定对应的目标区块链。
在一实施例中,可按照发票代码的取值范围的不同来相应地搭建不同的区块链;换言之,各个区块链用于存证发票代码在相应取值范围内的发票(可以多个区块链与同一发票代码的取值范围对应,也可以区块链与发票代码的取值范围一一对应)。因此,跨链路由设备可将目标发票的发票代码作为确定目标区块链的依据。基于上述存证发票的机制(多个区块链分别对应不同的发票代码取值范围),客户端可在发票存证请求中添加目标发票的发票代码;那么跨链路由设备可将所述目标发票的发票代码与所述多个区块链对应的发票代码取值范围分别进行匹配;如果所述目标发票的发票代码的取值位于所述多个区块链中的任一区块链对应的发票代码取值范围,则将该区块链确定为与所述目标发票对应的目标区块链。
在一实施例中,多个区块链可分别对应不同的行政区域;换言之,发票代码的取值范围与行政区域相对应。以省级行政区域为例,各个省份可搭建用于存证归属于自身行政区域范围内的发票的区块链。那么,跨链路由设备可根据目标发票的发票代码确定出目标发票所归属的行政区域,从而与该行政区域对应的区块链便是目标区块链。
步骤106,将所述发票存证请求转发至所述目标区块链的节点设备,以由所述目标区块链的节点设备对所述目标发票进行共识处理,并在共识通过后将所述目标发票在所述目标区块链中进行存证。
在一实施例中,多个区块链之间可能由不同的区块链技术来搭建。因此,各个区块链的交易格式可能存在差异。基于交易格式上的差异,跨链路由设备在将发票存证请求转发至目标区块链的节点设备时,需要进行交易格式的转换。作为一示例性实施例,跨链路由设备可基于目标区块链支持的交易格式,构建对应于发票存证请求的发票存证交易(该发票存证交易包括目标发票),再将发票存证交易发送至目标区块链的节点设备。
在一实施例中,区块链的节点设备在接收到跨链路由设备转发的发票存证请求后,对其中包括的目标发票进行共识处理,并在共识通过后将目标发票存证至区块链中。进一步的,在存证成功后,节点设备可向跨链路由设备返回目标发票存证成功的通知消息。那么,跨链路由设备可接收目标区块链中的节点设备返回的目标发票存证成功的通知消息,以及响应于该通知消息,在本地保存目标发票的标识信息与目标区块链的对应关系。其中,目标发票的标识信息可以包括:针对目标发票的发票内容;或者,该发票内容中的唯一性信息进行hash计算得到的hash值。例如,唯一性信息可以包括:发票号码、发票代码、发票日期、不含税金额等信息。当然,本说明书并不对发票内容以及发票内容中唯一性信息的具体形式进行限制。
在一实施例中,基于跨链路由设备本地保存有发票的标识信息与区块链之间的对应关系,客户端可通过向跨链路由设备发送发票访问请求来访问各个区块链中存证的发票。以上述目标发票为例,跨链路由设备接收客户端发起的发票访问请求(发票访问请求包括待访问的目标发票的标识信息),响应于该发票访问请求,查询所述对应关系,确定与所述目标发票的标识信息对应的目标区块链,以及将所述发票访问请求转发至所述目标区块链的节点设备,并将所述目标区块链的节点设备返回的所述待访问的目标发票转发给所述客户端。
在一实施例中,同样的,由于各个区块链的交易格式可能存在差异,跨链路由设备在接收到发票访问请求后,可基于目标区块链支持的交易格式,构建对应于发票访问请求的发票访问交易(所述发票访问交易包括所述目标发票的标识信息),再将所述发票访问交易发送至所述目标区块链的节点设备。
相应的,本说明书还提供一种跨链访问方案。请参见图2,图2是一示例性实施例提供的一种跨链访问方法的流程图。如图2所示,该方法应用于跨链路由设备,可以包括以下步骤:
步骤202,接收客户端发起的发票访问请求;其中,所述发票访问请求包括待访问的目标发票的标识信息。
在一实施例中,跨链路由设备与多个区块链的节点设备保持通讯连接。同时,跨链路由设备本地保存有发票的标识信息与区块链的对应关系,而针对该对应关系的保存过程,可参考上述跨链存证方案中的实施例,在此不再赘述。
步骤204,响应于所述发票访问请求,查询所述对应关系,确定与所述目标发票的标识信息对应的目标区块链。
步骤206,将所述发票访问请求转发至所述目标区块链的节点设备,并将所述目标区块链的节点设备返回的所述待访问的目标发票转发给所述客户端。
在一实施例中,多个区块链之间可能由不同的区块链技术来搭建。因此,各个区块链的交易格式可能存在差异。基于交易格式上的差异,跨链路由设备在将发票访问请求转发至目标区块链的节点设备时,需要进行交易格式的转换。作为一示例性实施例,跨链路由设备可基于目标区块链支持的交易格式,构建对应于发票访问请求的发票访问交易(发票访问交易包括所述目标发票的标识信息),再将发票访问交易发送至目标区块链的节点设备。
由以上技术方案可见,一方面,通过跨链路由设备将发票存证请求和发票访问请求转发至相应区块链的节点设备,可实现针对发票的跨链存证和跨链访问。另一方面,即使各区块链采用不同的区块链技术搭建,由位于中间层的跨链路由设备屏蔽了底层技术实现上的差异,客户端也无需与区块链的节点设备对接;换言之,对于外部的客户端来说,在逻辑上只有一个区块链,而物理上的区块链对外不露出,客户端感知不到底层区块链之间的差异,通过跨链路由设备在区块链上存证和访问发票即可,而无需直接访问某个特定的区块链。
图3是一示例性实施例提供的一种跨链存证方案以及跨链访问方案的整体架构示意图。如图3所示,用户(发票的存证请求方)在完成对发票(以下称为目标发票)的开具后,可通过客户端31输入目标发票的发票内容,使得客户端31向跨链路由设备32发送发票存证请求(包括目标发票)。跨链路由设备32在接收到发票存证请求后,基于预设规则从多个区块链(如图3所示的区块链A、区块链B、区块链C等)中为目标发票确定对应的目标区块链,并将发票存证请求转发至目标区块链的节点设备(例如,假定目标区块链为区块链B,跨链路由设备32可将发票存证请求转发至节点设备33B),以由目标区块链的节点设备(以下简称为目标节点设备)对目标发票进行共识处理,并在共识通过后将目标发票在目标区块链中进行存证。
进一步的,跨链路由设备32可在本地保存发票的标识信息与区块链(存证该发票的区块链)的对应关系。那么,后续用户(发票的访问请求方)可通过客户端31输入待访问的目标发票的标识信息,使得客户端31向跨链路由设备32发送发票访问请求(包括目标发票的标识信息)。跨链路由设备32在接收到发票访问请求后,通过查询对应关系确定与目标发票的标识信息对应的目标区块链,以及将发票访问请求转发至目标区块链的节点设备。
需要说明的是,在一种情况下,跨链路由设备32可以是区别于多个区块链的节点设备的第三方可信服务设备(如图3所示)。其中,跨链路由设备32可以为包含一独立主机的物理服务器,或者跨链路由设备32可以为主机集群承载的虚拟服务器。在另一种情况下,跨链路由设备32也可以是多个区块链的共同节点设备(例如,跨链路由设备32可以是区块链A、区块链B、区块链C共同的节点设备)。当然,本说明书一个或多个实施例并不对此进行限制。
为了便于理解,下面针对客户端31、跨链路由设备32和目标节点设备分别在跨链存证和跨链访问过程中实现的操作和功能,结合图4-5对本说明书的技术方案进行详细说明。图4是一示例性实施例提供的跨链存证方法的交互示意图。如图4所示,该交互过程可以包括以下步骤:
步骤402,客户端31与跨链路由设备32之间实现对绑定关系的建立。
在一实施例中,所需建立的绑定关系为用户(包括存证请求方和访问请求方)的身份信息与客户端31的设备信息之间的绑定关系。基于该绑定关系,使得跨链路由设备32在接收到客户端31后续发送的发票存证请求和发票访问请求时,可以确认这些请求对应于该用户。
举例而言,用户可以预先在跨链路由设备32处进行账号注册,得到与自身唯一对应的已注册账号。然后,用户可以通过在客户端31上登录该已注册账号,而跨链路由设备32基于该已注册账号在客户端31上的登录信息,确定该已注册账号(对应于该用户)与客户端31之间建立了绑定关系。
步骤404,客户端31获取待存证的目标发票。
在一实施例中,存证请求方在目标发票被开具后,可在客户端中输入目标发票(例如,输入目标发票的发票内容),客户端31进而可根据输入的目标发票生成发票存证请求。
步骤406,客户端31向跨链路由设备32发送发票存证请求。
步骤408,跨链路由设备32根据目标发票的发票代码确定目标区块链。
在一实施例中,多个区块链可分别对应不同的行政区域。以市级区域划分区块链为例,各个市级地区可搭建用于存证归属于自身行政区域范围内的发票的区块链。那么,跨链路由设备可根据目标发票的发票代码(发票内容中包含发票代码)确定出目标发票所归属的市级行政区域,从而与该市级行政区域对应的区块链便是目标区块链。
举例而言,假定发票代码(仅示出发票代码中发票批印税务机关的地区代码)与市级行政区域以及区块链之间的对应关系如表1所示:
发票代码 |
市级行政区域 |
区块链 |
3301 |
杭州 |
区块链A |
3302 |
宁波 |
区块链B |
3303 |
温州 |
区块链C |
3304 |
嘉兴 |
区块链D |
…… |
…… |
…… |
表1
假定目标发票的发票代码(其中的地区代码)为3301,则可以确定出目标区块链为区块链A。
步骤410,跨链路由设备32构建发票存证交易。
在一实施例中,各个行政区域的区块链可能由不同的区块链技术搭建。因此,各个区块链的交易格式可能存在差异。基于交易格式上的差异,跨链路由设备32在确定出目标区块链之后,需要进行交易格式的转换。
承接于上述举例,跨链路由设备32在确定出目标区块链为区块链A后,可基于区块链A支持的交易格式,构建对应于发票存证请求的发票存证交易(即该发票存证交易的交易格式为区块链A支持的交易格式,并且该发票存证交易包括目标发票)。
步骤412,跨链路由设备32向目标节点设备发送构建的发票存证交易。
承接于上述举例,如图3所示,区块链A的节点设备中与跨链路由设备32接入的为节点设备33A(即节点设备33A为目标节点设备)。那么,跨链路由设备32在构建出发票存证交易后,可向节点设备33A发送该发票存证交易。
步骤414,目标节点设备在目标区块链中存证目标发票。
在一实施例中,目标节点设备在接收到跨链路由设备发送的发票存证交易后,对其中包括的目标发票进行共识处理,并在共识通过后将目标发票存证至目标区块链中。
步骤416,目标节点设备在存证成功后向跨链路由设备32返回目标发票存证成功的通知消息。
步骤418,跨链路由设备32在本地保存目标发票的标识信息与目标区块链的对应关系。
在一实施例中,跨链路由设备32可对目标发票的发票内容中的唯一性信息进行hash计算,并将得到的hash值作为目标发票的标识信息。其中,唯一性信息可以包括:发票号码、发票代码、发票日期、不含税金额等信息。当然,本说明书并不对发票内容以及发票内容中唯一性信息的具体形式进行限制。
举例而言,跨链路由设备32在接收到各节点设备返回的通知消息后,可在本地保存如表2所示的跨链路由表:
发票的标识信息 |
区块链 |
hash值1 |
区块链A |
hash值2 |
区块链B |
hash值3 |
区块链C |
…… |
…… |
表2
步骤420,跨链路由设备32向客户端31返回存证成功的通知消息。
在一实施例中,客户端31在接收到该通知消息后,可展示该通知消息以提示用户(存证请求方)目标发票已存证成功。
基于跨链路由设备32本地保存了发票的标识信息与区块链之间的对应关系,用户在存在访问区块链上存证的某一发票的需求时,可通过客户端31向跨链路由设备32发送发票访问请求来访问该发票。请参见图5,图5是一示例性实施例提供的跨链访问方法的交互示意图。如图5所示,该方法应用于跨链路由设备,可以包括以下步骤:
步骤502,客户端31生成发票访问请求。
在一实施例中,当用户存在访问区块链上存证的某一发票的需求时,可在客户端31中输入目标发票(以用户需访问的发票为上述目标发票为例)的发票内容中的唯一性信息(发票号码、发票代码、发票日期、不含税金额等信息)。那么客户端31可根据该唯一性信息生成发票访问请求。例如,客户端31可直接在发票访问请求中添加该唯一性信息;或者,客户端31可对该唯一性信息进行hash计算,以将计算得到的hash值作为标致信息添加至发票访问请求中。
步骤504,客户端31向跨链路由设备32发送发票访问请求。
步骤506,跨链路由设备32根据标识信息确定目标区块链。
在一实施例中,当发票访问请求中记录的是目标发票的唯一性信息时,读对该唯一性信息进行hash计算以得到目标发票的标识信息;当发票访问请求中记录有目标发票的标识信息(客户端31根据用户输入的发票内容中的唯一性信息进行hash计算得到的hash值)时,直接读取该标识信息即可。在获取到标识信息后,根据上述图4所示实施例得到的对应关系查询与目标发票对应的目标区块链。承接于上述表2的举例,假定获取到的标识信息为hash值1,根据表2记录的对应关系可确定出目标区块链为区块链A。
步骤508,跨链路由设备32构建发票访问交易。
在一实施例中,由于各个行政区域的交易格式可能存在差异,跨链路由设备32在确定出目标区块链之后,需要进行交易格式的转换。承接于上述举例,跨链路由设备32在确定出目标区块链为区块链A后,可基于区块链A支持的交易格式,构建对应于发票访问请求的发票访问交易(即该发票访问交易的交易格式为区块链A支持的交易格式,并且该发票访问交易包括目标发票的标识信息)。
步骤510,跨链路由设备32向目标节点设备发送构建的发票访问交易。
承接于上述举例,如图3所示,区块链A的节点设备中与跨链路由设备32接入的为节点设备33A(即节点设备33A为目标节点设备)。那么,跨链路由设备32在构建出发票访问交易后,可向节点设备33A发送该发票访问交易。
步骤512,目标节点设备根据目标发票的标识信息在目标区块链中获取目标发票。
步骤514,目标节点设备将获取到的目标发票返回至跨链路由设备32。
步骤516,跨链路由设备32将目标发票返回至客户端31。
由以上技术方案可见,一方面,通过跨链路由设备将发票存证请求和发票访问请求转发至相应区块链的节点设备,可实现针对发票的跨链存证和跨链访问。另一方面,即使各区块链采用不同的区块链技术搭建,由位于中间层的跨链路由设备屏蔽了底层技术实现上的差异,客户端也无需与区块链的节点设备对接;换言之,对于外部的客户端来说,在逻辑上只有一个区块链,而物理上的区块链对外不露出,客户端感知不到底层区块链之间的差异(比如,客户端无需构建对应于各个区块链的交易格式),通过跨链路由设备在区块链上存证和访问发票即可,而无需直接访问某个特定的区块链。
图6是一示例性实施例提供的一种设备的示意结构图。请参考图6,在硬件层面,该设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。处理器602从非易失性存储器610中读取对应的计算机程序到内存608中然后运行,在逻辑层面上形成跨链存证装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图7,在软件实施方式中,该跨链存证装置应用于跨链路由设备,所述跨链路由设备与多个区块链的节点设备保持通讯连接;该装置可以包括:
存证接收单元71,接收客户端发起的发票存证请求;其中,所述发票存证请求包括目标发票;
第一确定单元72,响应于所述发票存证请求,基于预设规则从所述多个区块链中为所述目标发票确定对应的目标区块链;
第一转发单元73,将所述发票存证请求转发至所述目标区块链的节点设备,以由所述目标区块链的节点设备对所述目标发票进行共识处理,并在共识通过后将所述目标发票在所述目标区块链中进行存证。
可选的,还包括:
消息接收单元74,接收所述目标区块链中的节点设备返回的所述目标发票存证成功的通知消息;
保存单元75,响应于所述通知消息,在本地保存所述目标发票的标识信息与所述目标区块链的对应关系。
可选的,所述目标发票的标识信息,包括:
针对所述目标发票的发票内容;或者,所述发票内容中的唯一性信息进行hash计算得到的hash值。
可选的,所述发票存证请求中还包括所述目标发票的发票代码;所述多个区块链分别对应不同的发票代码取值范围;
所述第一确定单元72具体用于:
将所述目标发票的发票代码与所述多个区块链对应的发票代码取值范围分别进行匹配;如果所述目标发票的发票代码的取值位于所述多个区块链中的任一区块链对应的发票代码取值范围,则将该区块链确定为与所述目标发票对应的目标区块链。
可选的,所述第一转发单元73具体用于:
基于所述目标区块链支持的交易格式,构建对应于所述发票存证请求的发票存证交易;其中,所述发票存证交易包括所述目标发票;
将所述发票存证交易发送至所述目标区块链的节点设备。
可选的,还包括:
访问接收单元76,接收客户端发起的发票访问请求;其中,所述发票访问请求包括待访问的目标发票的标识信息;
第二确定单元77,响应于所述发票访问请求,查询所述对应关系,确定与所述目标发票的标识信息对应的目标区块链;
第二转发单元78,将所述发票访问请求转发至所述目标区块链的节点设备,并将所述目标区块链的节点设备返回的所述待访问的目标发票转发给所述客户端。
可选的,所述第二转发单元78具体用于:
基于所述目标区块链支持的交易格式,构建对应于所述发票访问请求的发票访问交易;其中,所述发票访问交易包括所述目标发票的标识信息;
将所述发票访问交易发送至所述目标区块链的节点设备。
可选的,所述多个区块链分别对应不同的行政区域。
图8是一示例性实施例提供的另一种设备的示意结构图。请参考图8,在硬件层面,该设备包括处理器802、内部总线804、网络接口808、内存808以及非易失性存储器810,当然还可能包括其他业务所需要的硬件。处理器802从非易失性存储器810中读取对应的计算机程序到内存808中然后运行,在逻辑层面上形成跨链访问装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图9,在软件实施方式中,该跨链访问装置应用于跨链路由设备,所述跨链路由设备与多个区块链的节点设备保持通讯连接,所述跨链路由设备本地保存有发票的标识信息与区块链的对应关系;该装置可以包括:
接收单元91,接收客户端发起的发票访问请求;其中,所述发票访问请求包括待访问的目标发票的标识信息;
确定单元92,响应于所述发票访问请求,查询所述对应关系,确定与所述目标发票的标识信息对应的目标区块链;
转发单元93,将所述发票访问请求转发至所述目标区块链的节点设备,并将所述目标区块链的节点设备返回的所述待访问的目标发票转发给所述客户端。
可选的,所述转发单元93具体用于:
基于所述目标区块链支持的交易格式,构建对应于所述发票访问请求的发票访问交易;其中,所述发票访问交易包括所述目标发票的标识信息;
将所述发票访问交易发送至所述目标区块链的节点设备。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。