数据获取方法及装置、计算机装置及存储介质与流程

文档序号:19951032发布日期:2020-02-18 10:30阅读:133来源:国知局
本发明涉及计算机网络
技术领域
:,具体涉及一种数据获取方法及装置、计算机装置和计算机可读存储介质。
背景技术
::目前,数据获取方法主要为中心化的数据获取方法,需要使用互联网数据中心(internetdatacenter,简称idc)服务器。如采用中心化的数据获取方法的数据平台在数据获取过程中容易出现存储瓶颈和鉴权瓶颈,导致数据获取效率低。而且idc服务器运行时需要较高的运营成本和很大的带宽成本,达到的数据获取效果也有限,导致数据获取效率低。如何提升数据获取的效率成为亟须解决的问题。技术实现要素:鉴于以上内容,有必要提出一种数据获取方法及装置、计算机装置和计算机可读存储介质,其可以根据节点的存储信息将数据获取至存储空间足够的节点中,提高数据获取的效率。本申请的第一方面提供一种数据获取方法,所述方法包括:接收第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码;根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限;若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码确定存储有所述目标数据的第二节点;连接所述第二节点;通过所述连接从所述第二节点获取所述目标数据。另一种可能的实现方式中,所述根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限包括:获取所述智能合约中记录的所述目标数据的类型;若所述目标数据的类型为免费数据,则所述数据请求用户有所述目标数据的获取权限;若所述目标数据的类型为付费数据,判断所述智能合约中是否存在所述数据请求用户的区块链账户对于所述目标数据的购买信息;若所述智能合约中存在所述数据请求用户的区块链账户对于所述目标数据的购买信息,则所述数据请求用户有所述目标数据的获取权限;若所述智能合约中不存在所述数据请求用户的区块链账户对于所述目标数据的购买信息,则所述数据请求用户没有所述目标数据的获取权限。另一种可能的实现方式中,所述根据所述目标数据的标识码确定存储有所述目标数据的第二节点包括:根据所述目标数据的标识码从所述第一节点的路由表中选择第三节点;从所述第三节点查询所述目标数据的索引信息;根据所述目标数据的索引信息确定所述第二节点。另一种可能的实现方式中,若所述数据请求用户没有所述目标数据的获取权限,所述方法还包括:获取所述数据请求用户的电子签名;根据所述电子签名向所述预先部署的区块链请求从所述数据请求用户的区块链账户向所述第一节点的数据上传用户的区块链账户和服务方的预设区块链账户进行购买转账交易;若购买转账交易成功,在所述智能合约中写入所述数据请求用户对于所述目标数据的购买信息,使所述数据请求用户有所述目标数据的获取权限。另一种可能的实现方式中,在所述接收第一节点的数据请求用户对目标数据的数据获取请求之前,所述方法还包括:将所述目标数据的类型、所述目标数据的价格和所述目标数据的数据上传用户的区块链账户写入所述智能合约。另一种可能的实现方式中,所述将所述目标数据的类型、所述目标数据的价格和所述目标数据的数据上传用户的区块链账户写入所述智能合约包括:接收所述数据上传用户对所述目标数据的数据上传请求,所述数据上传请求包括所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户;判断所述智能合约中是否存在所述目标数据的相关信息;若所述智能合约中不存在所述目标数据的相关信息,将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约。另一种可能的实现方式中,在所述将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约之前,所述方法还包括:向所述预先部署的区块链请求从所述数据上传用户的区块链账户向所述服务方的预设区块链账户进行转账,将所述预先部署的区块链响应从所述数据上传用户的区块链账户向所述服务方的预设区块链账户进行转账的请求返回的所述目标数据的相关信息发送给所述数据上传用户;接收所述数据上传用户用所述数据上传用户的密钥对所述目标数据的相关信息进行加密得到的所述数据上传用户的电子签名;将所述数据上传用户的电子签名发送给所述预先部署的区块链,接收所述预先部署的区块链返回的上传转账交易结果;根据所述上传转账交易结果判断是否将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约。本申请的第二方面提供一种计算机装置,所述计算机装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述数据获取方法。本申请的第三方面提供一种数据获取装置,应用于第一节点,所述装置包括:接收单元,用于接收所述第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码;判断单元,用于根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限;确定单元,用于若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码确定存储有所述目标数据的第二节点;连接单元,用于连接所述第二节点;获取单元,用于通过所述连接从所述第二节点获取所述目标数据。本申请的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述数据获取方法。本发明接收所述第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码;根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限;若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码确定存储有所述目标数据的第二节点;连接所述第二节点;通过所述连接从所述第二节点获取所述目标数据。本发明可以从布式系统中获取目标数据,提高数据获取的效率。附图说明图1是本发明实施例提供的数据获取方法较佳实施例的流程图。图2是本发明实施例提供的数据获取装置较佳实施例的流程图。图3是本发明实施例提供的计算机装置较佳实施例的示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。优选地,本发明的数据获取方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。所述计算机装置可以是组成cdn(contentdeliverynetwork,内容分发网络)网络、dht(distributedhashtable,分布式哈希表)网络或者区块链网络的节点。实施例一图1是本发明实施例提供的数据获取方法的流程图。所述数据获取方法应用于第一节点中,所述第一节点包括网络存储设备(如玩客云、赚钱宝)、路由器、智能盒子、网络附属存储(nas,networkattachedstorage)、个人电脑、智能电视、光调制解调器等。参阅1所示,所述数据获取方法具体包括以下步骤:101,接收所述第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码。所述目标数据可以包括视频数据、音频数据、文本数据等。所述数据请求用户通过所述数据请求用户的区块链账户在所述第一节点登录,可以接收所述数据请求用户输入的对所述目标数据的所述数据获取请求,所述数据获取请求可以包括所述数据请求用户的区块链账户和所述目标数据的标识码。所述数据请求用户可以通过以太坊(ethereum,简写为eth)钱包生成私钥和公钥。可以将对所述数据请求用户的公钥进行哈希计算得到所述数据请求用户的钱包地址,将所述数据请求用户的钱包地址作为所述数据请求用户的区块链账户(即所述数据请求用户的用户名)。可以通过所述数据请求用户的区块链账户查询所述数据请求用户的区块链账户的交易信息和余额。私钥可以用于所述数据请求用户证明所述数据请求用户是所述数据请求用户的区块链账户的拥有者。所述目标数据的标识码是区分所述目标数据与其他数据的凭证。所述目标数据的标识码可以通过对所述目标数据的关键字进行哈希计算得到,所述目标数据的标识码的哈希计算方法和所述数据请求用户的区块链账户的哈希计算方法相同。具体地,生成所述目标数据的标识码所用的哈希计算方法与生成所述数据请求用户的区块链账户所用的哈希计算方法可以都为sha256、sha384或sha512等。102,根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限。在一具体实施例中,所述根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限包括:获取所述智能合约中记录的所述目标数据的类型;若所述目标数据的类型为免费数据,则所述数据请求用户有所述目标数据的获取权限;若所述目标数据的类型为付费数据,判断所述智能合约中是否存在所述数据请求用户的区块链账户对于所述目标数据的购买信息;若所述智能合约中存在所述数据请求用户的区块链账户对于所述目标数据的购买信息,则所述数据请求用户有所述目标数据的获取权限;若所述智能合约中不存在所述数据请求用户的区块链账户对于所述目标数据的购买信息,则所述数据请求用户没有所述目标数据的获取权限。例如,从所述智能合约的查询接口查询目标数据n的类型,如果查询到的智能合约中记录的目标数据n为免费数据,则数据请求用户a有目标数据n的获取权限。如果查询到的智能合约中记录的目标数据n为付费数据,则继续判断智能合约中是否存在数据请求用户a对于目标数据n的购买信息。如果智能合约中存在数据请求用户a对于目标数据n的购买信息,则数据请求用户a有目标数据n的获取权限。如果智能合约中不存在数据请求用户a对于目标数据n的购买信息,则数据请求用户a没有目标数据n的获取权限。所述智能合约为所述预先部署的区块链上的可以运行的逻辑代码。所述智能合约中的变量可以存储所述目标数据的购买信息、所述目标数据的相关信息。所述目标数据的购买信息可以包括区块链账户和所述目标数据的类型等。所述目标数据的相关信息可以包括区块链账户、所述目标数据的类型和所述目标数据的价格等。103,若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码中确定存储有所述目标数据的第二节点。在一具体实施例中,所述根据所述目标数据的标识码确定存储有所述目标数据的第二节点包括:根据所述目标数据的标识码从所述第一节点的路由表中选择第三节点;从所述第三节点查询所述目标数据的索引信息;根据所述目标数据的索引信息确定所述第二节点。每个节点有一个唯一的节点标识码,每个节点的节点标识码可以通过对该节点的ip(internetprotocol,网际协议)地址和/或mac(mediaaccesscontrol,媒体访问控制)地址进行哈希计算得到。每个节点的节点标识码的哈希计算方法和所述目标数据的标识码的哈希计算方法可以相同。所述第一节点的路由表中可以包括多个节点的路由信息。可以计算所述目标数据的标识码与所述第一节点的路由表中的节点的节点标识码的异或距离;从所述第一节点的路由表中选择与所述目标数据的标识码的异或距离小的多个节点作为所述第三节点。向所述第三节点迭代查询所述目标数据的索引信息,直到接收到所述目标数据的索引信息,所述目标数据的索引信息包括所述目标数据的标识码(即key-value键值对中的key键)和存储由所述目标数据的所述第二节点的路由信息(即key-value键值对中的value值)。根据所述目标数据的索引信息可以确定所述第二节点,使所述第一节点可以从所述第二节点获取所述目标数据。在另一实施例中,若所述数据请求用户没有所述目标数据的获取权限,所述方法还可以包括:(1)获取所述数据请求用户的电子签名。所述获取所述数据请求用户的电子签名可以包括:向所述预先部署的区块链请求从所述数据请求用户的区块链账户进行转账;接收所述预先部署的区块链响应于从所述数据请求用户的区块链账户进行转账的请求返回的所述数据请求用户对于所述目标数据的购买信息,其中,所述预先部署的区块链根据从所述数据请求用户的区块链账户进行转账的请求生成所述数据请求用户对于所述目标数据的购买信息;将所述数据请求用户对于所述目标数据的购买信息发送给所述数据请求用户;接收所述数据请求用户用所述数据请求用户的密钥对所述数据请求用户对于所述目标数据的购买信息进行加密得到的所述数据请求用户的电子签名。在另一实施例中,在所述获取所述数据请求用户的电子签名之前,还可以执行以下操作:判断所述数据请求用户的区块链账户的余额是否大于第一预设余额;若所述数据请求用户的区块链账户的余额大于第一预设余额,则确定需要获取所述数据请求用户的电子签名;若所述数据请求用户的区块链账户的余额小于或等于第一预设余额,则确定不需要获取所述数据请求用户的电子签名,向所述数据请求用户发送余额不足提醒。(2)根据所述电子签名向所述预先部署的区块链请求从所述数据请求用户的区块链账户向所述第一节点的数据上传用户的区块链账户和服务方的预设区块链账户进行购买转账交易。所述服务方的预设区块链账户可以存储于所述智能合约中。所述预先部署的区块链可以用所述数据请求用户的公钥对所述电子签名进行解密,得到解密的所述数据请求用户对于所述目标数据的购买信息。若解密的所述数据请求用户对于所述目标数据的购买信息与生成的所述数据请求用户对于所述目标数据的购买信息一致,则购买转账交易成功。若解密的所述数据请求用户对于所述目标数据的购买信息与生成的所述数据请求用户对于所述目标数据的购买信息不一致,则购买转账交易失败。(3)若购买转账交易成功,在所述智能合约中写入所述数据请求用户对于所述目标数据的购买信息,使所述数据请求用户有所述目标数据的获取权限。具体地,如果购买转账交易成功,在所述智能合约中写入所述数据上传用户的区块链账户、所述目标数据的类型和所述数据请求用户的区块链账户,使得所述智能合约中存在所述数据请求用户对于所述目标数据的购买信息,即所述数据请求用户有所述目标数据的获取权限。104,连接所述第二节点。在一具体实施例中,可以通过tcp(transmissioncontrolprotocol,传输控制协议)或udp(userdatagramprotocol,中文名是用户数据报协议)协议连接所述第二节点。例如,向所述第二节点发送tcp连接请求,接收所述第二节点响应于tcp连接请求返回的确认请求,响应于所述第二节点的确认请求,向所述第二节点发送确认信息,使所述第一节点与所述第二节点连接成功。105,通过所述连接从所述第二节点获取所述目标数据。在一具体实施例中,可以通过tcp连接向所述第二节点发送视频数据请求;接收所述第二节点响应于所述视频数据请求通过tcp连接返回的视频数据。在另一实施例中,可以通过tcp连接向所述第二节点发送文本数据请求;接收所述第二节点响应于所述文本数据请求通过tcp连接返回的视频数据。通过将所述目标数据分布式存储于所述第二节点可以减少上传所述目标数据和请求所述目标数据的瓶颈,通过根据智能合约判断所述数据请求用户是否有所述目标数据的获取权限可以减少鉴权时的瓶颈,通过区块链的数据购买方式可以增加用户账户的安全,减少服务器为增加安全性而增加的运算和存储,从而增加数据获取的效率。实施例一的数据获取方法接收所述第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码;根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限;若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码确定存储有所述目标数据的第二节点;连接所述第二节点;通过所述连接从所述第二节点获取所述目标数据。实施例一的数据获取方法可以从布式系统中获取目标数据,提高数据获取的效率。在另一实施例中,在所述接收所述第一节点的数据请求用户对目标数据的数据获取请求之前,所述数据获取方法还可以包括:将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约。在一具体实施例中,所述将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约包括:接收所述数据上传用户对所述目标数据的数据上传请求,所述数据上传请求包括所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户;判断所述智能合约中是否存在所述目标数据的相关信息;若所述智能合约中不存在所述目标数据的相关信息,将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约。在另一具体实施例中,在所述将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约之前,所述数据获取方法还包括:向所述预先部署的区块链请求从所述数据上传用户的区块链账户向所述服务方的预设区块链账户进行转账,将所述预先部署的区块链响应从所述数据上传用户的区块链账户向所述服务方的预设区块链账户进行转账的请求返回的所述目标数据的相关信息发送给所述数据上传用户;接收所述数据上传用户用所述数据上传用户的密钥对所述目标数据的相关信息进行加密得到的所述数据上传用户的电子签名;将所述数据上传用户的电子签名发送给所述预先部署的区块链,接收所述预先部署的区块链返回的上传转账交易结果;根据所述上传转账交易结果判断是否将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约。在另一实施例中,所述数据获取方法还可以包括:接收所述数据上传用户上传的所述目标数据;将所述数据上传用户上传的所述目标数据传输给第三节点,使得所述第三节点将所述目标数据存储至所述第二节点。所述第三节点可以是专用于接收数据上传用户上传的所述目标数据的服务器,相较于其他节点,所述第三节点有更强的数据文件处理能力。实施例二图2为本发明实施例提供的数据获取装置较佳实施例的结构图。所述数据获取装置10应用于第一节点,所述第一节点包括玩客云网络存储设备(如玩客云、赚钱宝)、客户端路由器、智能盒子、网络附属存储(nas,networkattachedstorage)、个人电脑、智能电视、光调制解调器等。如图2所示,所述数据获取装置10可以包括:接收单元201、判断单元202、确定单元203、连接单元204、获取单元205。接收单元201,用于接收所述第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码。所述目标数据可以包括视频数据、音频数据、文本数据等。所述数据请求用户通过所述数据请求用户的区块链账户在所述第一节点登录,可以接收所述数据请求用户输入的对所述目标数据的所述数据获取请求,所述数据获取请求可以包括所述数据请求用户的区块链账户和所述目标数据的标识码。所述数据请求用户可以通过以太坊(ethereum,简写为eth)钱包生成私钥和公钥。可以将对所述数据请求用户的公钥进行哈希计算得到所述数据请求用户的钱包地址,将所述数据请求用户的钱包地址作为所述数据请求用户的区块链账户(即所述数据请求用户的用户名)。可以通过所述数据请求用户的区块链账户查询所述数据请求用户的区块链账户的交易信息和余额。私钥可以用于所述数据请求用户证明所述数据请求用户是所述数据请求用户的区块链账户的拥有者。所述目标数据的标识码是区分所述目标数据与其他数据的凭证。所述目标数据的标识码可以通过对所述目标数据的关键字进行哈希计算得到,所述目标数据的标识码的哈希计算方法和所述数据请求用户的区块链账户的哈希计算方法相同。具体地,生成所述目标数据的标识码所用的哈希计算方法与生成所述数据请求用户的区块链账户所用的哈希计算方法可以都为sha256、sha384或sha512等。判断单元202,用于根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限。在一具体实施例中,所述根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限包括:获取所述智能合约中记录的所述目标数据的类型;若所述目标数据的类型为免费数据,则所述数据请求用户有所述目标数据的获取权限;若所述目标数据的类型为付费数据,判断所述智能合约中是否存在所述数据请求用户的区块链账户对于所述目标数据的购买信息;若所述智能合约中存在所述数据请求用户的区块链账户对于所述目标数据的购买信息,则所述数据请求用户有所述目标数据的获取权限;若所述智能合约中不存在所述数据请求用户的区块链账户对于所述目标数据的购买信息,则所述数据请求用户没有所述目标数据的获取权限。例如,从所述智能合约的查询接口查询目标数据n的类型,如果查询到的智能合约中记录的目标数据n为免费数据,则数据请求用户a有目标数据n的获取权限。如果查询到的智能合约中记录的目标数据n为付费数据,则继续判断智能合约中是否存在数据请求用户a对于目标数据n的购买信息。如果智能合约中存在数据请求用户a对于目标数据n的购买信息,则数据请求用户a有目标数据n的获取权限。如果智能合约中不存在数据请求用户a对于目标数据n的购买信息,则数据请求用户a没有目标数据n的获取权限。所述智能合约为所述预先部署的区块链上的可以运行的逻辑代码。所述智能合约中的变量可以存储所述目标数据的购买信息、所述目标数据的相关信息。所述目标数据的购买信息可以包括区块链账户和所述目标数据的类型等。所述目标数据的相关信息可以包括区块链账户、所述目标数据的类型和所述目标数据的价格等。确定单元203,用于若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码确定存储有所述目标数据的第二节点。在一具体实施例中,所述根据所述目标数据的标识码确定存储有所述目标数据的第二节点包括:根据所述目标数据的标识码从所述第一节点的路由表中选择第三节点;从所述第三节点查询所述目标数据的索引信息;根据所述目标数据的索引信息确定所述第二节点。每个节点有一个唯一的节点标识码,每个节点的节点标识码可以通过对该节点的ip(internetprotocol,网际协议)地址和/或mac(mediaaccesscontrol,媒体访问控制)地址进行哈希计算得到。每个节点的节点标识码的哈希计算方法和所述目标数据的标识码的哈希计算方法可以相同。所述第一节点的路由表中可以包括多个节点的路由信息。可以计算所述目标数据的标识码与所述第一节点的路由表中的节点的节点标识码的异或距离;从所述第一节点的路由表中选择与所述目标数据的标识码的异或距离小的多个节点作为所述第三节点。向所述第三节点迭代查询所述目标数据的索引信息,直到接收到所述目标数据的索引信息,所述目标数据的索引信息包括所述目标数据的标识码(即key-value键值对中的key键)和存储由所述目标数据的所述第二节点的路由信息(即key-value键值对中的value值)。根据所述目标数据的索引信息可以确定所述第二节点,使所述第一节点可以从所述第二节点获取所述目标数据。在另一实施例中,若所述数据请求用户没有所述目标数据的获取权限,所述方法还可以包括:(1)获取所述数据请求用户的电子签名。所述获取所述数据请求用户的电子签名可以包括:向所述预先部署的区块链请求从所述数据请求用户的区块链账户进行转账;接收所述预先部署的区块链响应于从所述数据请求用户的区块链账户进行转账的请求返回的所述数据请求用户对于所述目标数据的购买信息,其中,所述预先部署的区块链根据从所述数据请求用户的区块链账户进行转账的请求生成所述数据请求用户对于所述目标数据的购买信息;将所述数据请求用户对于所述目标数据的购买信息发送给所述数据请求用户;接收所述数据请求用户用所述数据请求用户的密钥对所述数据请求用户对于所述目标数据的购买信息进行加密得到的所述数据请求用户的电子签名。在另一实施例中,在所述获取所述数据请求用户的电子签名之前,还可以执行以下操作:判断所述数据请求用户的区块链账户的余额是否大于第一预设余额;若所述数据请求用户的区块链账户的余额大于第一预设余额,则确定需要获取所述数据请求用户的电子签名;若所述数据请求用户的区块链账户的余额小于或等于第一预设余额,则确定不需要获取所述数据请求用户的电子签名,向所述数据请求用户发送余额不足提醒。(2)根据所述电子签名向所述预先部署的区块链请求从所述数据请求用户的区块链账户向所述第一节点的数据上传用户的区块链账户和服务方的预设区块链账户进行购买转账交易。所述服务方的预设区块链账户可以存储于所述智能合约中。所述预先部署的区块链可以用所述数据请求用户的公钥对所述电子签名进行解密,得到解密的所述数据请求用户对于所述目标数据的购买信息。若解密的所述数据请求用户对于所述目标数据的购买信息与生成的所述数据请求用户对于所述目标数据的购买信息一致,则购买转账交易成功。若解密的所述数据请求用户对于所述目标数据的购买信息与生成的所述数据请求用户对于所述目标数据的购买信息不一致,则购买转账交易失败。(3)若购买转账交易成功,在所述智能合约中写入所述数据请求用户对于所述目标数据的购买信息,使所述数据请求用户有所述目标数据的获取权限。具体地,如果购买转账交易成功,在所述智能合约中写入所述数据上传用户的区块链账户、所述目标数据的类型和所述数据请求用户的区块链账户,使得所述智能合约中存在所述数据请求用户对于所述目标数据的购买信息,即所述数据请求用户有所述目标数据的获取权限。连接单元204,用于连接所述第二节点。在一具体实施例中,可以通过tcp(transmissioncontrolprotocol,传输控制协议)或udp(userdatagramprotocol,中文名是用户数据报协议)协议连接所述第二节点。例如,向所述第二节点发送tcp连接请求,接收所述第二节点响应于tcp连接请求返回的确认请求,响应于所述第二节点的确认请求,向所述第二节点发送确认信息,使所述第一节点与所述第二节点连接成功。获取单元205,用于通过所述连接从所述第二节点获取所述目标数据。在一具体实施例中,可以通过tcp连接向所述第二节点发送视频数据请求;接收所述第二节点响应于所述视频数据请求通过tcp连接返回的视频数据。在另一实施例中,可以通过tcp连接向所述第二节点发送文本数据请求;接收所述第二节点响应于所述文本数据请求通过tcp连接返回的视频数据。通过将所述目标数据分布式存储于所述第二节点中可以减少上传所述目标数据和请求所述目标数据的瓶颈,通过根据智能合约判断所述数据请求用户是否有所述目标数据的获取权限可以减少鉴权时的瓶颈,通过区块链的数据购买方式可以增加用户账户的安全,减少服务器为增加安全性而增加的运算和存储,从而增加数据获取的效率。实施例二的数据获取装置10接收所述第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码;根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限;若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码确定存储有所述目标数据的第二节点;连接所述第二节点;通过所述连接从所述第二节点获取所述目标数据。实施例二的数据获取装置10可以从布式系统中获取目标数据,提高数据获取的效率。在另一实施例中,所述数据获取装置还包括写入单元,用于在所述接收所述第一节点的数据请求用户对目标数据的数据获取请求之前,将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约。在一具体实施例中,所述将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约包括:接收所述数据上传用户对所述目标数据的数据上传请求,所述数据上传请求包括所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户;判断所述智能合约中是否存在所述目标数据的相关信息;若所述智能合约中不存在所述目标数据的相关信息,将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约。在另一具体实施例中,在所述将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约之前,所述数据获取装置还用于:向所述预先部署的区块链请求从所述数据上传用户的区块链账户向所述服务方的预设区块链账户进行转账,将所述预先部署的区块链响应从所述数据上传用户的区块链账户向所述服务方的预设区块链账户进行转账的请求返回的所述目标数据的相关信息发送给所述数据上传用户;接收所述数据上传用户用所述数据上传用户的密钥对所述目标数据的相关信息进行加密得到的所述数据上传用户的电子签名;将所述数据上传用户的电子签名发送给所述预先部署的区块链,接收所述预先部署的区块链返回的上传转账交易结果;根据所述上传转账交易结果判断是否将所述目标数据的类型、所述目标数据的价格和所述数据上传用户的区块链账户写入所述智能合约。在另一实施例中,所述数据获取装置还包括传输单元,用于接收所述数据上传用户上传的所述目标数据;将所述数据上传用户上传的所述目标数据传输给第三节点,使得所述第三节点将所述目标数据存储至所述第二节点。所述第三节点可以是专用于接收数据上传用户上传的所述目标数据的服务器,相较于其他节点,所述第三节点有更强的数据文件处理能力。实施例三本实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据获取方法实施例中的步骤,例如图1所示的101-105:101,接收第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码;102,根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限;103,若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码确定存储有所述目标数据的第二节点;104,连接所述第二节点;105,通过所述连接从所述第二节点获取所述目标数据。或者,该计算机程序被处理器执行时实现上述装置实施例中各模块/单元的功能,例如图2中的单元201-205:接收单元201,用于接收第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码;判断单元202,用于根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限;确定单元203,用于若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码确定存储有所述目标数据的第二节点;连接单元204,用于连接所述第二节点;获取单元205,用于通过所述连接从所述第二节点获取所述目标数据。实施例四图3为本发明实施例提供的计算机装置的示意图。所述计算机装置1包括存储器20、处理器30、总线50以及存储在所述存储器20中并可在所述处理器30上运行的计算机程序40,例如数据获取程序。所述处理器30执行所述计算机程序40时实现上述数据获取方法实施例中的步骤,例如图1所示的101-105:101,接收第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码;102,根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限;103,若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码确定存储有所述目标数据的第二节点;104,连接所述第二节点;105,通过所述连接从所述第二节点获取所述目标数据。或者,所述处理器30执行所述计算机程序40时实现上述装置实施例中各模块/单元的功能,例如图2中的单元201-205:接收单元201,用于接收第一节点的数据请求用户对目标数据的数据获取请求,所述数据获取请求包括所述数据请求用户的区块链账户和所述目标数据的标识码;判断单元202,用于根据预先部署的区块链中的智能合约和所述数据请求用户的区块链账户判断所述数据请求用户是否有所述目标数据的获取权限;确定单元203,用于若所述数据请求用户有所述目标数据的获取权限,根据所述目标数据的标识码确定存储有所述目标数据的第二节点;连接单元204,用于连接所述第二节点;获取单元205,用于通过所述连接从所述第二节点获取所述目标数据。示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序40在所述计算机装置1中的执行过程。例如,所述计算机程序40可以被分割成图2中的接收单元201、判断单元202、确定单元203、连接单元204、获取单元205,各单元具体功能参见实施例二。所述计算机装置1可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备等终端设备。所称处理器30可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器30也可以是任何常规的处理器等,所述处理器30是所述计算机装置1的控制中心,利用各种接口和线路连接整个计算机装置1的各个部分。所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述计算机装置1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置1的使用所创建的数据(比如音频数据等)等。此外,存储器20还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。所述总线50以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。所述总线50可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。进一步地,计算机装置1还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该计算机装置1与其他电子设备之间建立通信连接。可选地,该计算机装置1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机装置1中处理的信息以及用于显示可视化的用户界面。本领域技术人员可以理解,所述示意图3仅仅是计算机装置1的示例,并不构成对计算机装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机装置上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机装置可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1