一种基于区块链的数据交换服务器及数据传输系统的制作方法

文档序号:17373755发布日期:2019-04-12 23:04阅读:277来源:国知局
一种基于区块链的数据交换服务器及数据传输系统的制作方法

本发明实施例涉及区块链技术领域,具体涉及一种基于区块链的数据交换服务器及数据传输系统。



背景技术:

由于工作的需要,很多业务机构之间都需要相互合作,共享数据。但是,各业务机构之间由于区域限制问题、信任问题等,不能实现完全数据的共享。如果某个业务机构希望得到某一数据,将会存在两个问题。第一,不清楚该去哪个业务机构获取该数据;第二,即使清楚该去哪个业务机构获取数据,但是由于信任问题,具有数据的业务机构不敢轻易将自身拥有的源数据轻易分享给该业务机构。担心该业务机构会将大数据进行复制、修改等,无法再控制数据的流向,从而导致自己业务机构的利益受损。

而这也阻碍了相关业务机构之间的相互合作,影响了工作效率。那么如何实现各业务机构之间的“相互信任”,实现数据共享,从而提高政务机关的办事效率成为亟待解决的技术问题。



技术实现要素:

为此,本发明实施例提供一种基于区块链的数据交换服务器及数据传输系统,用以解决现有相关业务机构之间不能相互信任,数据不能共享,从而影响政务机关的办事效率的问题。

为了实现上述目的,本发明的实施方式提供如下技术方案:

在本发明的实施方式的第一方面中,提供了一种基于区块链的数据交换服务器,数据交换服务器属于一种基于区块链的数据交换系统,系统包括:需求方客户端、数据交换服务器和供应方客户端;数据交换服务器包括:第一数据通信接口、处理器和第二数据通信接口,数据交换服务器通过第一数据通信接口和需求方客户端建立双向通信连接,数据交换服务器通过第二数据通信接口和供应方客户端建立双向通信连接;

第一数据通信接口,用于接收需求方客户端发送的数据请求,并反馈至处理器,数据请求包括与需求数据对应的信息、智能合约以及供应方标识信息,智能合约上包含需求方标识信息;与需求数据对应的信息、智能合约和供应方标识信息为需求方从区块链上挂载的数据目录中查询获得,需求方通过需求方客户端,在智能合约上写入需求方的公钥,智能合约包含对于需求数据的请求限定条件,并保存请求过程记录;

处理器,用于通过第二数据通信接口将数据请求发送至供应方客户端,以便当供应方客户端根据智能合约和供应方标识信息确定数据请求合法时,根据与需求数据对应的信息,调用需求数据;利用公钥对需求数据进行加密并反馈;

第二数据通信接口还用于,接收加密后的需求数据,并反馈至处理器;

处理器用于通过第一数据通信接口反馈加密后的需求数据至需求方客户端。

在本发明的一个实施例中,第一数据通信接口具体用于,接收需求方客户端通过第一中间层发送的数据请求。

在本发明的另一实施例中,第二数据通信接口具体用于,接收供应方客户端通过第二中间层发送的加密后的需求数据,并反馈至处理器。

在本发明的又一个实施例中,与需求数据对应的信息至少包括:与需求数据对应的关键字段信息和数据请求路径;

第二数据通信接口,具体用于根据数据请求路径,将与需求数据对应的关键字段信息、智能合约以及供应方标识信息发送至供应方客户端。

在本发明的再一个实施例中,当供应方包含至少两个时,第二数据通信接口与至少两个供应方客户端中的第一供应方客户端建立双向通信连接,并接收第一供应方客户端反馈的加密后的需求数据,第一供应方客户端为至少两个供应方客户端按照预设协议确定的一个供应方客户端,第一供应方客户端用于接收处理器通过第二数据通信接口发送的数据请求,并将数据请求分发至至少两个供应方客户端中的每一个供应方客户端;以及,还用于接收每一个供应方客户端根据数据请求反馈的子需求数据,并将所有子需求数据进行汇总构成需求数据,加密后通过第二数据通信接口反馈至处理器。

在本发明的再一个实施例中,当供应方包含至少两个时,第二数据通信接口分别与每一个供应方客户端建立双向通信连接;

处理器通过第二数据通信接口分别发送数据请求至每一个供应方客户端;

第二数据通信接口还用于并分别接收每一个供应方客户端反馈的加密后的需求子需求数据,并反馈至处理器。

在本发明的实施方式的第二方面中,提供了一种基于区块链的数据传输系统,数据传输系统包括:需求方客户端、供应方客户端和如第一方面的数据交换服务器;

需求方客户端,用于从区块链上挂载的数据目录中查询获得与需求数据对应的信息、智能合约以及供应方标识信息,在智能合约上写入需求方的公钥;

将与需求数据对应的信息、智能合约以及供应方标识信息构成一个数据请求后,发送至数据交换服务器;

供应方客户端,用于根据供应方标识信息和智能合约验证数据请求合法性;

且当数据请求合法时,根据与需求数据对应的信息,调用需求数据;利用公钥对需求数据进行加密并反馈至数据交换服务器。

根据本发明的实施方式,区块链上仅仅挂载各个业务机构所提供的与自身拥有数据对应的数据目录。需求方可以根据区块链上挂载的数据目录查询自己需要的数据存在于哪一个业务机构,与需求数据对应的信息等。需求方可以通过客户端发送数据请求至数据交换服务器,由数据交换服务器将数据请求发送至供应方客户端。在这个过程中,需求方需要遵守智能合约,智能合约为供应方挂在到区块链上的,用以约束需求方对数据的索取和利用。比如限制数据只能被需求方读取一次,然后就失效。而且,还需要记录数据请求的全过程。如此,可以有效的控制数据的去向和利用率。而在数据请求时,供应方还需要验证请求方的合法性,因此要根据智能合约和供应方标识信息确定数据请求是否合法。只有在合法情况下,调用需求数据;利用公钥对需求数据进行加密并反馈。从而保证数据传输的安全性。通过上述方式,不仅可以保证各业务机构之间的“相互信任”,还可以实现数据共享,提高各业务机构的办事效率。

附图说明

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

图1为本发明的一实施例提供的一种基于区块链的数据交换服务器结构示意图;

图2为本发明的另一实施例提供的一种基于区块链的数据传输系统结构图。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例1提供了一种基于区块链的数据交换服务器,具体如图1所示,该数据交换服务器属于一种基于区块链的数据交换系统,该系统包括数据交换服务器、需求方客户端和供应方客户端。数据交换服务器包括:第一数据通信接口101、处理器102和第二数据通信接口103,数据交换服务器通过第一数据通信接口101和需求方客户端建立双向通信连接,数据交换服务器通过第二数据通信接口103和供应方客户端建立双向通信连接。

第一数据通信接口101,用于接收需求方客户端发送的数据请求,并反馈至处理器102。

具体的,数据请求包括与需求数据对应的信息、智能合约以及供应方标识信息,智能合约上包含需求方标识信息;与需求数据对应的信息、智能合约和供应方标识信息为需求方从区块链上挂载的数据目录中查询获得,需求方通过需求方客户端,在智能合约上写入需求方的公钥,作为需求方的标识信息,智能合约包含对于需求数据的请求限定条件,并保存请求过程记录。

在这之前,需要事先做一些准备工作。例如,供应方需要统计自身所拥有的数据。对数据进行分类,然后按照一定的规则提取每一类数据的属性信息。以关键字段的形式记载到数据目录上。每一个供应方在区块链上都有一个数据目录相对应。另外,数据目录上至少还可以包括每一类数据对应的数据请求路径,以及供应方自己的标识信息,即供应方标识信息。同时,供应方还可以制定智能合约,该智能合约用以约束数据需求方对请求的数据的使用。例如,可以限定请求数据的需求方身份信息、使用数据范围的权限、使用数据的时间和使用数据次数等等。通过智能合约,可以保证数据的使用属于供应方能够控制的范围内。进而提升供应方和需求方之间的信任度。

而当需求方需要向供应方请求数据时,需要在智能合约上写上自己的公钥,用以供应方可以识别请求数据的需求方身份。

而智能合约还需要记录数据请求和使用的全过程。便于后续一旦数据的使用发生任何意外,都可以根据记录进行追溯相应责任。

处理器102,用于通过第二数据通信接口103将数据请求发送至供应方客户端,以便当供应方客户端根据智能合约和供应方标识信息确定数据请求合法时,根据与需求数据对应的信息,调用需求数据;利用公钥对需求数据进行加密并反馈。

可选的,与需求数据对应的信息至少包括:与需求数据对应的关键字段信息和数据请求路径。将数据请求发送至供应方客户端,第二数据通信接口103,具体用于:根据数据请求路径,将与需求数据对应的关键字段信息、智能合约以及供应方标识信息发送至供应方客户端。

供应方客户端可以根据智能合约和供应方标识信息确定数据请求是否合法。

即,首先根据供应方标识信息确定该请求是发送给自己的,需要自己来处理。然后,还需要根据签名信息确定需求方的身份。根据智能合约确定该需求方存有请求数据的权限。如果以上均符合,则可以证明该数据请求合法。供应方可以从自身的数据库中调用需求数据,然后再利用需求方的公钥对需求数据进行加密,并反馈至数据交换服务器。

具体的执行过程为:供应方客户端利用需求方的公钥对需求数据进行加密,然后通过第二数据通信接口103反馈至处理器102。

即,第二数据通信接口103还用于,接收加密后的需求数据,并反馈至处理器102。

处理器102用于通过第一数据通信接口101反馈加密后的需求数据至需求方客户端。

可选的,当供应方包含至少两个时,第二数据通信接口103与至少两个供应方客户端中的第一供应方客户端建立双向通信连接,并接收第一供应方客户端反馈的加密后的需求数据,第一供应方客户端为至少两个供应方客户端按照预设协议确定的一个供应方客户端,第一供应方客户端用于接收处理器102通过第二数据通信接口103发送的数据请求,并将数据请求分发至至少两个供应方客户端中的每一个供应方客户端;以及,还用于接收每一个供应方客户端根据数据请求反馈的子需求数据,并将所有子需求数据进行汇总构成需求数据,加密后通过第二数据通信接口103反馈至处理器102。

或者,当供应方包含至少两个时,第二数据通信接口103分别与每一个供应方客户端建立双向通信连接;处理器102通过第二数据通信接口103将数据请求分发至每一个供应方客户端;第二数据通信接口103还用于分别接收每一个供应方客户端反馈的加密后的需求子数据,并反馈至处理器102,由处理器102进行同一汇总构成需求数据。

具体的,如果需求方需要的是结果数据,那么供应方为了防止自己的源数据被泄密,还可以在自身一侧,也即是供应方客户端中根据源数据和相应的算法进行运算,得到结果数据后,反馈给第二数据通信接口103。

又或者,如果需求方要求的数据需要多个供应方分别提供,例如一个供应方提供算法,一个供应方提供源数据。那么,供应方可以自定义一个供应方客户端汇总所有内容,包括算法和源数据,然后统一通过第二数据通信接口103反馈至处理器102。而处理器102将算法和源数据一同反馈至需求方客户端。或者,每一个供应方分别将自己的数据通过第二数据通信接口103发送至处理器102,处理器102统一发送至需求方客户端。

根据智能合约设定,需求方客户端不会直接看到算法和数据,而是需要通过沙箱操作获取结果。也即是,需求方通过客户端所能看到的仍然只是结果数据,而看不到源数据和算法。

可选的,为了提升数据传输性能,需求方客户端和第一数据通信接口101之间,可以通过第一中间层进行数据传输。即,第一数据通信接口101具体用于,接收需求方客户端通过第一中间层发送的数据请求。

而第二数据通信接口103具体用于,接收供应方客户端通过第二中间层发送的加密后的需求数据,并反馈至处理器102。

并由处理器102将需求数据通过第一数据通信接口101传输至需求方客户端。而传输至需求方客户端时,同样可以通过第一中间层传输。这里的中间层实际就是对需求方客户端和数据交换服务器之间的调用接口远程调用协议(remoteprocedurecallprotocol,简称rpc)接口进行封装。以及,对供应方客户端和数据交换服务器之间的调用接口rpc接口进行封装。在一个具体例子中,需求方客户端和供应方客户端可以是agent机。中间层主要作用是解耦,同时简化agent功能,在中间层中添加了消息队列,利用一套分布式的消息队列服务,每个agent对应一个消息节点,agent对消息队列的消息可以并发的处理,从而提升了数据传输性能。

本发明实施例提供的一种基于区块链的数据交换服务器,区块链上仅仅挂载各个业务机构所提供的与自身拥有数据对应的数据目录。需求方可以根据区块链上挂载的数据目录查询自己需要的数据存在于哪一个业务机构,与需求数据对应的信息等。需求方可以通过客户端发送数据请求至数据交换服务器,由数据交换服务器将数据请求发送至供应方客户端。在这个过程中,需求方需要遵守智能合约,智能合约为供应方挂在到区块链上的,用以约束需求方对数据的索取和利用。比如限制数据只能被需求方读取一次,然后就失效。而且,还需要记录数据请求的全过程。如此,可以有效的控制数据的去向和利用率。而在数据请求时,供应方还需要验证请求方的合法性,因此要根据智能合约和供应方标识信息确定数据请求是否合法。只有在合法情况下,调用需求数据;利用公钥对需求数据进行加密并反馈。从而保证数据传输的安全性。通过上述方式,不仅可以保证各业务机构之间的“相互信任”,还可以实现数据共享,提高各业务机构的办事效率。

与上述实施例相对应的,本发明实施例2还提供了一种基于区块链的数据传输系统,具体如图2所示,该系统包括:需求方客户端20、供应方客户端30和如上一实施例中介绍的数据交换服务器10。

需求方客户端20,用于从区块链上挂载的数据目录中查询获得与需求数据对应的信息、智能合约以及供应方标识信息,在智能合约上写入需求方的公钥;

将与需求数据对应的信息、智能合约以及供应方标识信息构成一个数据请求后,发送至数据交换服务器10;

供应方客户端30,用于根据供应方标识信息和智能合约验证数据请求合法性;

且当数据请求合法时,根据与需求数据对应的信息,调用需求数据;利用公钥对需求数据进行加密并反馈至数据交换服务器10。

数据交换服务器10所执行的功能均已在上一实施例中做了详细介绍,这里不做过多赘述。

本发明实施例提供的一种基于区块链的数据传输系统,区块链上仅仅挂载各个业务机构所提供的与自身拥有数据对应的数据目录。需求方可以根据区块链上挂载的数据目录查询自己需要的数据存在于哪一个业务机构,与需求数据对应的信息等。需求方可以通过客户端发送数据请求至数据交换服务器,由数据交换服务器将数据请求发送至供应方客户端。在这个过程中,需求方需要遵守智能合约,智能合约为供应方挂在到区块链上的,用以约束需求方对数据的索取和利用。比如限制数据只能被需求方读取一次,然后就失效。而且,还需要记录数据请求的全过程。如此,可以有效的控制数据的去向和利用率。而在数据请求时,供应方还需要验证请求方的合法性,因此要根据智能合约和供应方标识信息确定数据请求是否合法。只有在合法情况下,调用需求数据;利用公钥对需求数据进行加密并反馈。从而保证数据传输的安全性。通过上述方式,不仅可以保证各业务机构之间的“相互信任”,还可以实现数据共享,提高各业务机构的办事效率。

虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

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