CN109522462B - 一种基于区块链的云查询方法、装置、设备及存储介质 - Google Patents
一种基于区块链的云查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109522462B CN109522462B CN201811214269.4A CN201811214269A CN109522462B CN 109522462 B CN109522462 B CN 109522462B CN 201811214269 A CN201811214269 A CN 201811214269A CN 109522462 B CN109522462 B CN 109522462B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- target
- client
- block chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明实施例公开了一种基于区块链的云查询方法、装置、设备及存储介质,所述方法包括:接收客户端或辅助节点发送的查询识别信息;根据本机存储的存储处理数据,获取与所述查询识别信息匹配至少一条浏览数据反馈给所述客户端;接收所述客户端针对所述浏览数据反馈的针对目标浏览数据的数据获取请求;根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,所述节点属性包括:全网节点属性或者轻节点属性,本发明实施例的技术方案通过区块链技术实现非中心化的分布式的云平台,以区块链技术的不可篡改特性保证数据存储的安全性,从而保证云数据查询的可靠性。
Description
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种基于区块链的云查询方法、装置、设备及存储介质。
背景技术
云存储是一种新兴的网络存储技术,可以通过集群应用、网络技术或分布式文件系统等功能,对外提供数据存储和业务访问功能。
用户在访问现有的云平台以查询相关数据时,只能通过云平台中的中心化的服务器或服务器集群获取相应的数据。由于现有的云平台的配置过于中心化,一旦遭受攻击则容易导致数据被窃取和修改,数据的安全性较低,容易引发用户访问出错的问题。
发明内容
本发明实施例提供一种基于区块链的云查询方法、装置、设备及存储介质,通过区块链技术实现非中心化的分布式的云平台,以区块链技术的不可篡改特性保证数据存储的安全性,从而保证云数据查询的可靠性。
第一方面,本发明实施例提供了一种基于区块链的云查询方法,应用于区块链节点,包括:
接收客户端或辅助节点发送的查询识别信息;
根据本机存储的存储处理数据,获取与所述查询识别信息匹配的至少一条浏览数据反馈给所述客户端;
接收所述客户端针对所述浏览数据反馈的针对目标浏览数据的数据获取请求;
根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,所述节点属性包括:全网节点属性或者轻节点属性。
第二方面,本发明实施例还提供了一种基于区块链的云查询方法,应用于区块链节点,包括:
接收轻节点属性的节点发送的目标存储数据获取请求;其中,所述目标存储数据获取请求中包括与对待存储数据进行加密后得到的加密数据匹配的查询识别信息和/或目标浏览数据;其中,所述待存储数据和对应的查询识别信息由客户端上传;
根据所述查询识别信息和/或目标浏览数据从本地区块链中查找所述加密数据,并将所述加密数据作为所述目标存储数据发送给所述轻节点属性的节点。
第三方面,本发明实施例还提供了一种基于区块链的云查询装置,配置于区块链节点,包括:
信息获取模块,用于接收客户端或辅助节点发送的查询识别信息;
信息反馈模块,用于根据本机存储的存储处理数据,获取与所述查询识别信息匹配至少一条浏览数据反馈给所述客户端;
第一请求接收模块,用于接收所述客户端针对所述浏览数据反馈的针对目标浏览数据的数据获取请求;
数据获取模块,用于根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,所述节点属性包括:全网节点属性或者轻节点属性。
第四方面,本发明实施例还提供了一种基于区块链的云查询装置,配置于区块链节点,其特征在于,包括:
第二请求接收模块,用于接收轻节点属性的节点发送的目标存储数据获取请求;其中,所述目标存储数据获取请求中包括与对待存储数据进行加密后得到的加密数据匹配的查询识别信息和/或目标浏览数据;其中,所述待存储数据和对应的查询识别信息由客户端上传;
数据发送模块,用于根据所述查询识别信息和/或目标浏览数据从本地区块链中查找所述加密数据,并将所述加密数据作为所述目标存储数据发送给所述轻节点属性的节点。
第五方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的基于区块链的云查询方法。
第六方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的基于区块链的云查询方法。
本发明实施例通过接收客户端或辅助节点发送的查询识别信息,根据本机存储的存储处理数据获取与查询识别信息匹配至少一条浏览数据反馈给客户端;接收客户端针对浏览数据反馈的针对目标浏览数据的数据获取请求,并根据本机的节点属性获取与目标浏览数据匹配的目标存储数据发送至客户端,解决现有云存储技术提供云查询服务时存在的访问出错问题,通过区块链技术实现非中心化的分布式的云平台,以区块链技术的不可篡改特性保证数据存储的安全性,从而保证云数据查询的可靠性。
附图说明
图1是本发明实施例一提供的一种基于区块链的云查询方法的流程图;
图2是本发明实施例二提供的一种基于区块链的云查询方法的流程图;
图3是本发明实施例三提供的一种基于区块链的云查询方法的流程图;
图4是本发明实施例四提供的一种基于区块链的云查询装置的示意图;
图5是本发明实施例五提供的一种基于区块链的云查询装置的示意图;
图6为本发明实施例六提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例一提供的一种基于区块链的云查询方法的流程图,本实施例可适用于通过基于区块链的云平台查询数据的情况,该方法可以由基于区块链的云查询装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在计算机设备中,该计算机设备可以是具备区块链节点功能的设备。相应的,如图1所示,该方法包括如下操作:
S110、接收客户端或辅助节点发送的查询识别信息。
其中,辅助节点可以是区块链网络中的其中一个区块链节点,其可以作为一个中转节点接收客户端发送的查询识别信息。查询识别信息可以是客户端发送的,与基于区块链的云平台中区块链节点中待存储数据一一对应的,用于对待存储数据进行身份标识的信息。待存储数据可以是文本、图片或视频等数据,是客户端发送至基于区块链的云平台中的,用于云平台进行加密后存储的数据,任何可以用于存储的数据均可以作为待存储数据,本发明实施例对此并不进行限制。
在本发明实施例中,基于区块链的云平台可以由区块链中的多个区块链节点组建并对外提供云服务。其中,区块链可以是公有链或联盟链,云服务即为云存储服务。云平台相当于服务端,访问云平台的终端相当于客户端。客户端可以向基于区块链的云平台发送查询识别信息,区块链中的任一节点可以接收查询识别信息并进行数据查询处理。或者,由辅助节点接收查询识别信息并转发至目标区块链节点进行数据查询处理。
在本发明的一个可选实施例中,所述查询识别信息可以包括:存储数据标识和客户端标识,或者,所述查询识别信息包括:存储数据标识。
其中,存储数据标识可以是按照设定规则为客户端制定的用于标识客户端和对应的待存储数据的字符串,或者,存储数据标识可以只用于标识待存储数据。其中,设定规则可以是数字、字母或符号等按照规则进行排列,例如,设定规则可以是前3位字符编号用于标识客户端信息,后三位数字编号用于标识待存储数据信息,本发明实施例并不对设定规则的具体内容进行限定。客户端标识可以是用于唯一标识客户端的信息,例如,客户端的MAC(Media Access Control,媒体访问控制)地址或IMEI(International MobileEquipment Identity,国际移动设备识别码)等均可以作为客户端标识。
在本发明实施例中,可选的,查询识别信息可以包括存储数据标识和客户端标识,或者,查询识别信息可以只包括存储数据标识。当查询识别信息同时包括存储数据标识和客户端标识时,可以将客户端标识用于标识客户端,存储数据标识可以只用于标识待存储数据。当查询识别信息只包括存储数据标识时,存储数据标识需要同时标识客户端和对应的待存储数据信息,以实现客户端和待存储数据的对应存储。示例性的,当查询识别信息只包括存储数据标识时,存储数据标识的前3位信息用于标识客户端,后3位信息用于标识待存储数据。
S120、根据本机存储的存储处理数据,获取与所述查询识别信息匹配的至少一条浏览数据反馈给所述客户端。
其中,区块链节点根据接收到的待存储数据生成对应的浏览数据,并对待存储数据进行加密生成加密数据,根据加密数据、浏览数据以及客户端发送的查询识别信息中的全部或部分最终生成存储处理数据。具体的,存储处理数据可以包括加密数据,即根据加密数据、浏览数据以及客户端发送的查询识别信息生成存储处理数据,或者,存储处理数据还可以不包括加密数据,如仅包括浏览数据以及客户端发送的查询识别信息。浏览数据可以是区块链节点根据待存储数据生成的,用于对待存储数据简单概括的数据。
在本发明实施例中,区块链节点接收到查询识别信息后,可以在本地存储的存储处理数据中查找与查询识别信息匹配的浏览数据并反馈给客户端。示例性的,区块链节点可以根据查询识别信息在本地查找该查询识别信息对应存储的所有存储处理数据,并将所有存储处理数据中包括的所有浏览数据以列表的形式反馈给客户端。
S130、接收所述客户端针对所述浏览数据反馈的针对目标浏览数据的数据获取请求。
其中,目标浏览数据可以是用户所要获取的目标存储数据对应的浏览数据。目标浏览数据对应的数据获取请求可以是客户端向区块链节点发送的,用于获取目标存储数据的请求。
在本发明实施例中,当客户端将浏览数据进行展示时,用户可以通过浏览浏览数据以确定需要获取的目标存储数据,并选中目标存储数据对应的目标浏览数据,从而形成数据获取请求并发送至区块链节点。
S140、根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,所述节点属性包括:全网节点属性或者轻节点属性。
其中,目标存储数据可以是客户端需要获取的待存储数据对应的加密数据。
需要说明的是,在本发明实施例中,基于区块链的云平台中的区块链节点可以划分为两种类型:一种是全网节点,其具备较大的存储空间和可用流量,例如大型存储服务器或工作站等节点,可以用于存储完整的存储处理数据;另外一种是轻节点,例如PC(Personal Computer,个人计算机)或智能终端(手机或平板电脑等),其具备较小存储空间和可用流量,需要对存储处理数据进行处理后再进行存储。相应的,全网节点具备全网节点属性,轻节点具备轻节点属性。区块链节点在对目标浏览数据的数据获取请求进行处理时,需要依据本机的节点属性进行不同的数据获取操作,这是因为不同节点属性的节点可以采用不同的存储方式来存储数据,从而充分利用节点的存储空间。由此可见,本发明实施例通过区块链技术实现云存储和云查询,可以利用区块链技术的不可修改特性保证数据存储的安全性,以防止存储数据的篡改,从而避免用户在查询数据时出现访问出错的问题。同时,区块链节点根据本机的节点属性对存储处理数据进行存储,可以提高云平台的存储利用率,并为普通的终端节点加入区块链云平台提供了可行性和便利性。
在本发明的一个可选实施例中,所述方法由所述区块链网络中与所述客户端满足设定距离条件的目标区块链节点执行;
其中,所述目标区块链节点由所述辅助节点根据内置的智能合约确定,所述辅助节点用于接收所述客户端发送的查询识别信息;或
所述目标区块链节点由所述客户端通过本地域名解析得到的网络地址确定。
其中,设定距离条件可以是距离客户端最近。
在本发明实施例中,可以由距离客户端最近的目标区块链节点对客户端发送的查询识别信息进行处理。具体的,可以通过两种方式确定距离客户端最近的目标区块链节点:其一,首先由区块链中首先接收到查询识别信息的任意节点作为辅助节点,由该辅助节点根据内置的智能合约对客户端的网络地址进行分析,以为其确定距离最近的区块链节点作为目标区块链节点,并将查询识别信息转发给目标区块链节点。其二,可以直接由客户端对本地域名进行解析以得到本地的网络地址,具体的,可以通过本地浏览器获取网络地址并解析,根据解析得到的网络地址确定距离最近的区块链节点作为目标区块链节点。其中,网络地址可以是IP地址。
在本发明的一个可选实施例中,任意类型设备节点通过云平台加入规则成为所述区块链节点;其中,所述云平台加入规则包括:所述任意类型设备节点根据自身的节点性能信息主动选择所述节点属性,或,所述任意类型设备节点将自身的节点性能信息发送给任一区块链节点,以使接收到所述节点性能信息的区块链节点根据所述节点性能信息为所述任意类型设备节点指定所述节点属性。
需要说明的是,为了丰富基于区块链的云平台的节点功能,在本发明实施例中,可选的,任意类型设备节点均可以通过云平台加入规则成为基于区块链的云平台中的区块链节点。所谓任意类型设备,包括但不限于大型服务器、工作站或者多种类型的个人终端等。任何可以存储数据的设备均可以通过云平台加入规则成为区块链节点,本发明实施例并不对加入云平台的设备节点类型进行限定。其中,云平台加入规则可以是预先制定的,用于为任意类型设备节点加入基于区块链的云平台时的参考规则。示例性的,云平台加入规则可以是:存储容量大于等于500G且可用流量大于等于10G的设备节点可以成为全网节点,存储容量小于500G且可用流量小于10G的设备节点可以成为轻节点。
相应的,当一个设备节点请求加入基于区块链的云平台时,设备节点可以根据云平台加入规则确定其在区块链中的节点属性。可选的,设备节点可以接收区块链中任意节点发送的云平台加入规则,根据云平台加入规则以及自身的节点性能信息主动选择节点属性。其中,节点性能信息包括但不限于存储容量和可用流量等。示例性的,设备节点请求加入基于区块链的云平台时,如果由设备节点主动选择节点属性,则可以接收区块链网络中任意节点发送的云平台加入规则,并根据云平台加入规则以及自身的存储容量和可用流量等性能信息选择成为全网节点或轻节点。如果由区块链节点为设备节点选择节点属性,则设备节点可以将自身的存储容量和可用流量等性能信息发送给区块链网络中的任意节点,并由接收到性能信息的区块链节点根据自身存储的云平台加入规则和性能信息为设备节点选择节点属性,并将节点属性反馈给设备节点。
本发明实施例通过接收客户端或辅助节点发送的查询识别信息,根据本机存储的存储处理数据获取与查询识别信息匹配至少一条浏览数据反馈给客户端;接收客户端针对浏览数据反馈的针对目标浏览数据的数据获取请求,并根据本机的节点属性获取与目标浏览数据匹配的目标存储数据发送至客户端,解决现有云存储技术提供云查询服务时存在的访问出错问题,通过区块链技术实现非中心化的分布式的云平台,以区块链技术的不可篡改特性保证数据存储的安全性,从而保证云数据查询的可靠性。
实施例二
图2是本发明实施例二提供的一种基于区块链的云查询方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端的具体实现方式,以及,在从满足设定距离条件的全网节点属性的目标节点处获取所述加密数据并发送至所述客户端之后的具体操作。相应的,如图2所示,本实施例的方法可以包括:
S210、接收客户端或辅助节点发送的查询识别信息。
S220、根据本机存储的存储处理数据,获取与所述查询识别信息匹配至少一条浏览数据反馈给所述客户端。
S230、接收所述客户端针对所述浏览数据反馈的针对目标浏览数据的数据获取请求。
S240、根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,所述节点属性包括:全网节点属性或者轻节点属性。
在本发明的一个可选实施例中,所述存储处理数据包括第一存储处理数据或第二存储处理数据;其中,所述第一存储处理数据包括对待存储数据进行加密后得到的加密数据、与所述待存储数据对应的浏览数据以及与所述待存储数据对应的查询识别信息;所述第二存储处理数据包括所述待存储数据对应的浏览数据以及与所述待存储数据对应的查询识别信息。
在本发明实施例中,在进行云查询之前,基于区块链的云平台中的区块链节点需要将接收到的待存储数据进行存储处理形成存储处理数据后才可进行后续的查询操作。具体的,根据不同的节点属性,存储处理数据可以包括第一存储处理数据或第二存储处理数据。其中,第一存储处理数据可以包括对待存储数据进行加密后得到的加密数据、与待存储数据对应的浏览数据以及与待存储数据对应的查询识别信息;第二存储处理数据可以包括待存储数据对应的浏览数据以及与待存储数据对应的查询识别信息。第一存储处理数据可以存储在全网节点的本地区块链中,第二存储处理数据可以存储在轻节点本地区块链中。其中,浏览数据可以包括待存储数据的大小、内容概要或上传时间等,具体可以根据实际需求进行设定,本发明实施例对此并不进行限制。对待存储数据进行加密所使用的加密算法可以采用现有加密算法的任意一种,如非对称加密算法等,本发明实施例对此并不进行限制。区块链节点对待存储数据进行加密,可以保证待存储数据在区块链网络的传输过程中的安全性。
相应的,S240具体可以包括以下步骤:
S241、根据本机的全网节点属性,直接将本地区块链中存储的所述第一存储处理数据中所述目标浏览数据匹配的加密数据作为所述目标存储数据发送至所述客户端。
具体的,如果目标区块链节点为全网节点,则该目标区块链节点的本地区块链中存储的是第一存储处理数据。由于第一存储处理数据中包括待存储数据对应的加密数据,因此目标区块链节点可以直接将第一存储处理数据中与目标浏览数据匹配的加密数据作为目标存储数据发送至客户端。客户端接收到目标存储数据后,可以利用本地存储的私钥对目标存储数据进行解密即可得到对应原始的待存储数据。
S242、根据本机的轻节点属性,如果确定本地缓存中存在所述目标浏览数据匹配的加密数据,则直接将本地缓存中存储的所述加密数据作为所述目标存储数据发送至所述客户端;否则,从满足设定距离条件的全网节点属性的目标节点处获取所述加密数据作为所述目标存储数据并发送至所述客户端。
其中,设定距离条件可以是距离区块链节点最近。
相应的,如果目标区块链节点为轻节点,则可以首先查询本地缓存中是否存在目标浏览数据匹配的加密数据,如果存在,则直接从本地缓存中存储的加密数据作为目标存储数据发送至客户端;否则,目标区块链节点可以查找距离最近的全网节点作为目标节点,并从目标节点处获取目标浏览数据匹配的加密数据作为目标存储数据并发送至客户端。在从目标节点处获取目标浏览数据匹配的加密数据作为目标存储数据并发送至客户端后,执行步骤S243。
S243、如果本机满足设定存储条件,则将获取的所述目标存储数据存储在本地缓存中。
其中,设定存储条件可以是根据轻节点的性能以及客户端的访问行为所制定的存储条件。例如,设定存储条件可以是本地缓存不小于1G,其中,本地缓存中的数据不加入区块链,并能够进行更新。
在本发明实施例中,如果目标区块链节点为轻节点且本地缓存中不存在目标存储数据,则目标区块链节点从距离最近的全网节点中获取到目标存储数据后,在确定本机满足设定存储条件时,可以将目标存储数据存储在本地缓存中。
在本发明的一个可选实施例中,所述设定存储条件可以包括:所述目标存储数据在设定时间范围内的访问频率达到设定阈值,且所述目标存储数据的大小不超过本地缓存容量的大小。
其中,设定时间范围可以根据实际需求设定的时间范围,如一周或10天等。设定阈值同样也可以是根据实际需求设定的阈值,如3次或5次等,本发明实施例并不对设定时间范围和设定阈值的具体数值进行限定。
在本发明实施例中,可选的,设定存储条件可以是目标存储数据在设定时间范围内的访问频率达到设定阈值,例如,目标存储数据在一周内的访问频率达到3次,同时,目标存储数据的大小不能超过本地缓存容量的大小,避免本地缓存无法存储目标存储数据。
在本发明的一个可选实施例中,所述全网节点属性的目标节点由所述目标区块链节点内置的智能合约确定。
在本发明实施例中,如果执行基于区块链的云查询方法的目标区块链节点为轻节点,则目标区块链节点在确定全网节点属性的目标节点时,可以根据内置的智能合约来确定。
在本发明的一个可选实施例中,所述智能合约用于统计各所述区块链节点提供的存储总量以及流量总量,以根据所述存储总量以及流量总量对所述区块链节点进行奖励。
需要说明的是,在本发明实施例中,可以利用内置在区块链节点中的智能合约对基于区块链的云平台中各个节点实施激励机制。具体的,可以通过智能合约统计各区块链节点提供的存储总量以及流量总量,以根据存储总量以及流量总量对区块链节点进行奖励。
在一个具体的例子中,基于区块链的云平台中的区块链节点内置的智能合约统计各个区块链节点贡献的存储总量和流量总量,并根据节点贡献的存储总量和流量总量对节点进行代币奖励。具体地,智能合约记录并统计一定时期内各个区块链节点所贡献的存储总量和上行流量总量,根据存储总量和上行流量总量的加权计算节点最终的贡献值,并根据贡献值对节点进行代币奖励。例如存储总量和上行流量总量的加权比为0.8:0.2,全网节点A在一周内贡献了10G存储和20G上行流量,则全网节点A的贡献值为10*0.8+20*0.2=12,可以对节点A奖励12个代币;轻节点H在一周内贡献了1G存储和25G上行流量,则轻节点H的贡献值为1*0.8+25*0.2=5.8,对节点H奖励5.8个代币。
在本发明的一个可选实施例中,任意类型设备节点通过云平台加入规则成为所述区块链节点;其中,所述云平台加入规则包括:所述任意类型设备节点根据自身的节点性能信息主动选择所述节点属性,或,所述任意类型设备节点将自身的节点性能信息发送给任一区块链节点,以使接收到所述节点性能信息的区块链节点根据所述节点性能信息为所述任意类型设备节点指定所述节点属性。
需要说明的是,为了丰富基于区块链的云平台的节点功能,在本发明实施例中,可选的,任意类型设备节点均可以通过云平台加入规则成为基于区块链的云平台中的区块链节点。所谓任意类型设备,包括但不限于大型服务器、工作站或者多种类型的个人终端等。任何可以存储数据的设备均可以通过云平台加入规则成为区块链节点,本发明实施例并不对加入云平台的设备节点类型进行限定。其中,云平台加入规则可以是预先制定的,用于为任意类型设备节点加入基于区块链的云平台时的参考规则。示例性的,云平台加入规则可以是:存储容量大于等于500G且可用流量大于等于10G的设备节点可以成为全网节点,存储容量小于500G且可用流量小于10G的设备节点可以成为轻节点。
相应的,当一个设备节点请求加入基于区块链的云平台时,设备节点可以根据云平台加入规则确定其在区块链中的节点属性。可选的,设备节点可以接收区块链中任意节点发送的云平台加入规则,根据云平台加入规则以及自身的节点性能信息主动选择节点属性。其中,节点性能信息包括但不限于存储容量和可用流量等。示例性的,设备节点请求加入基于区块链的云平台时,如果由设备节点主动选择节点属性,则可以接收区块链网络中任意节点发送的云平台加入规则,并根据云平台加入规则以及自身的存储容量和可用流量等性能信息选择称为全网节点或轻节点。如果由区块链节点为设备节点选择节点属性,则设备节点可以将自身的存储容量和可用流量等性能信息发送给区块链网络中的任意节点,并由接收到性能信息的区块链节点根据自身存储的云平台加入规则和性能信息为设备节点选择节点属性,并将节点属性反馈给设备节点。
在本发明的一个可选实施例中,所述查询识别信息可以包括:存储数据标识和客户端标识,或者,所述查询识别信息可以包括:存储数据标识。
其中,存储数据标识可以是按照设定规则为客户端制定的用于标识客户端和对应的待存储数据的字符串,或者,存储数据标识可以只用于标识待存储数据。其中,设定规则可以是字母、数字或符号等按照规则进行排列,例如,设定规则可以是前3位字符编号用于标识客户端信息,后三位数字编号用于标识待存储数据信息,本发明实施例并不对设定规则的具体内容进行限定。客户端标识可以是用于唯一标识客户端的信息,例如,客户端的MAC(Media Access Control,媒体访问控制)地址或IMEI(International MobileEquipment Identity,国际移动设备识别码)等均可以作为客户端标识。
在本发明实施例中,可选的,查询识别信息可以包括存储数据标识和客户端标识,或者,查询识别信息可以只包括存储数据标识。当查询识别信息同时包括存储数据标识和客户端标识时,可以将客户端标识用于标识客户端,存储数据标识可以只用于标识待存储数据。当查询识别信息只包括存储数据标识时,存储数据标识需要同时标识客户端和对应的待存储数据信息,以实现客户端和待存储数据的对应存储。示例性的,当查询识别信息只包括存储数据标识时,存储数据标识的前3位信息用于标识客户端,后3位信息用于标识待存储数据。
需要说明的是,图2仅是一种实现方式的示意图,S241和S242-S243之间并没有先后顺序关系,可以先实施S241,再实施S242-S243,也可以先S242-S243,再实施S241。
在一个具体的例子中,假设基于区块链的云平台中一共有十个节点A-J,该十个节点分布在不同的地理位置,共同组成基于区块链的云平台,该云平台对外提供云存储服务,且各区块链节点间为P2P(peer-to-peer,点对点传输)关系,每个区块链节点拥有自己的存储空间,例如区块链节点A-G为大容量存储服务器或工作站,属于全网节点,全网节点存储空间和可用流量大。区块链节点H-J为个人终端,属于轻节点,轻节点存储空间和可用流量相对较小,例如PC、手机或平板电脑。该基于区块链的云平台发行自己的代币(其中,代币可以是区块链网络中流行的各种数字货币)。客户端可以通过浏览器或云平台访问APP完成与基于区块链的云平台之间的互操作。示例性的,客户端Z可以预先购买一定数额的平台代币,以使用区块链平台的云服务。即,客户端Z可以通过浏览器、云平台访问APP或第三方交易平台支付一定的代币,例如支付一个代币,来享受基于区块链的云平台提供的云服务以存储数据。
具体地,客户端Z在发送待存储数据之前可以先针对待存储数据生成对应的查询识别信息。其中,查询识别信息可以包括存储数据标识和客户端标识,或者只包括存储数据标识。然后,客户端Z将待存储数据和对应的查询识别信息统一打包后上传到基于区块链的云平台中的任意节点接收。通常地,可以由地理位置距离客户端Z最近的区块链节点接收并处理待存储数据和对应的查询识别信息。例如,客户想上传10张图片,客户预先对10张图片进行编辑(包括图片命名和内容描述等)。客户所使用的客户端Z的终端标识为终端的MAC地址或IMEI,在终端标识后连接数字序列字符串组成查询识别信息。客户对10张图片编辑完成后,想要将10张图片上传至基于区块链的云平台中。此时,客户端Z将10张图片作为待存储数据,并据此生成对应的查询识别信息,假设此处查询识别信息为ZZ-001,其中,ZZ可以是客户端标识。客户端Z将上述10张图片作为待存储数据和查询识别信息ZZ-001打包通过浏览器或云平台访问APP上传到基于区块链的云平台。如果区块链节点A作为目标区块链节点接收到10张图片的待存储数据和查询识别信息ZZ-001,则根据10张图片生成对应的浏览数据,包括每张图片的大小、概要(包括图片名称和图片描述)、封面信息(在展示的时候封面为哪张图片)和具体的上传时间等,并利用客户端Z的公钥对10张图片进行加密生成加密数据。最后,区块链节点A将加密数据、对应浏览数据和查询识别信息作为存储处理数据在区块链中进行传输。可选的,可以采用广播的方式进行传输。区块链网络中的其他节点B-J在接收到存储处理数据后,根据本机的节点属性判断此时是否存储全部存储处理数据。如果是全网节点A-G,则判断结果为可存储全部数据,直接将存储处理数据作为第一存储处理数据写入本地区块链中;如果是轻节点H-J,则判断结果为不存储全部数据,于是删除存储处理数据中的加密数据生成第二存储处理数据,仅将包括浏览数据和查询识别信息的第二存储处理数据写入本地区块链即分布式账本中。
相应的,数据存储完成后,客户端Z通过浏览器或云平台访问APP向基于区块链的云平台提交查询识别信息,与客户端满足距离最近的目标区块链节点可以负责处理客户端的查询识别信息。目标区块链节点接收客户端的查询识别信息后在自己的本地区块链或本地缓存中提取带有查询识别信息对应的全部数据(全网节点的全部数据为第一存储处理数据,轻节点的全部数据为第二存储处理数据),例如查询识别信息ZZ-001中10张图片对应的全部数据,并将全部数据中的浏览数据反馈给客户端进行显示,例如显示ZZ-001中10张图片的大小、概要(包括图片名称和图片描述)、封面信息(封面图)和具体的上传时间等。客户可以通过客户端显示的浏览数据触发某个编号对应数据的数据获取请求,例如通过点击封面图标触发获取ZZ-001对应的10张图片。
目标区块链节点的节点属性不同,则处理数据获取请求的过程也不同。如果目标区块链节点为全网节点,例如目标区块链节点为节点A,则该节点直接从本地区块链中存储的第一存储处理数据中取出加密数据,即加密后的10张图片返回给客户端。客户端利用存储的私钥进行解密,解密后向客户呈现相应的原始待存储数据即10张图片,用户还可以继续选择下载数据到客户端本地进行存储。
如果目标区块链节点为轻节点,例如目标区块链节点为节点H,则该节点从自己的本地缓存中查找是否存在查询识别信息对应的加密数据。如果存在,则从本地缓存中提取对应的加密数据返回给客户端。客户端利用存储的私钥进行解密,解密后向客户呈现相应的原始待存储数据,用户还可以继续选择下载数据到客户端本地进行存储。如果不存在,则从离该轻节点最近的全网节点获取查询识别信息对应的加密数据返回给客户端,并在满足设定存储条件时将获取的加密数据存储在自己的本地缓存中。客户端利用存储的私钥进行解密,解密后向客户呈现相应的原始待存储数据,用户还可以继续选择下载数据到客户端。
其中,设定存储条件为加密数据在一定时期内的访问频率达到设定阈值,例如一周内的访问次数达到3次,并且加密数据的大小不超过该轻节点的缓存容量大小。例如ZZ-001对应的加密数据一周内的访问次数达到4次,其大小为300M。如果节点H的缓存容量大小为1G(假设节点H为手机,其自身的存储容量为1G),此时300M不超过1G,满足设定存储条件。如果节点H的缓存中没有存储其他数据,则在满足设定存储条件时直接将该300M的图片数据存入缓存中。如果节点H的缓存中已经存有800M的其他数据,则节点H可以按照时间顺序删除缓存中的部分数据,例如删除最旧的数据,或者,通过用户筛选删除不必要的数据,直到可用的存储空间大于等于300M。如果ZZ-001对应的加密数据是视频数据,假设该视频数据大小为2G,则此时2G超过1G,不满足设定存储条件,此时节点H不存储ZZ-001对应的加密数据,后续接收到对该加密数据的数据获取请求时,仍然从离该轻节点H最近的全网节点获取ZZ-001对应的加密数据返回给客户端。
也即,轻节点在客户端上传待存储数据时并不存储对应的加密数据,仅在客户端获取数据且满足设定存储条件时才将加密数据存储在本地缓存中,并对本地缓存中数据进行更新以保留最新或重要数据。由此可见,这种数据存储方式能够根据自身较小存储空间的条件灵活存储用户需要访问的高频数据,保证区块链中的各类节点都能提供高效的数据查询和获取服务。
采用上述技术方案,通过根据本机的全网节点属性或者轻节点属性,采用不同的目标存储数据获取方式以获取目标存储数据,解决现有云存储技术提供云查询服务时存在的访问出错问题,通过区块链技术实现非中心化的分布式的云平台,以区块链技术的不可篡改特性保证数据存储的安全性,从而保证云数据查询的可靠性,并充分利用不同节点的存储空间,从而提高基于区块链的云平台的存储利用率。
实施例三
图3是本发明实施例三提供的一种基于区块链的云查询方法的流程图,本实施例可适用于通过基于区块链的云平台查询数据的情况,该方法可以由基于区块链的云查询装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在计算机设备中,该计算机设备可以是具备区块链节点功能的设备。相应的,如图3所示,该方法包括如下操作:
S310、接收轻节点属性的节点发送的目标存储数据获取请求;其中,所述目标存储数据获取请求中包括与对待存储数据进行加密后得到的加密数据匹配的查询识别信息和/或目标浏览数据;其中,所述待存储数据和对应的查询识别信息由客户端上传。
其中,目标存储数据可以是客户端需要查询的待存储数据对应的加密数据,相应的,目标存储数据获取请求是用于获取目标存储数据的请求。待存储数据可以是文本、图片或视频等数据,是客户端发送至基于区块链的云平台中的,用于云平台进行加密后存储的数据,任何可以用于存储的数据均可以作为待存储数据,本发明实施例对此并不进行限制。对待存储数据进行加密所使用的加密算法可以采用现有加密算法的任意一种,如非对称加密算法等,本发明实施例对此并不进行限制。区块链节点对待存储数据进行加密,可以保证待存储数据在区块链网络的传输过程中的安全性。查询识别信息可以是客户端发送的,与基于区块链的云平台中区块链节点中待存储数据一一对应的,用于对待存储数据进行身份标识的信息。
在本发明实施例中,当执行基于区块链的云查询方法的目标区块链节点为轻节点时,如果轻节点的本地缓存中没有存储目标存储数据,则目标区块链节点需要查找距离最近的全网节点作为目标节点,并向目标节点发送目标存储数据获取请求,以从目标节点处获取目标存储数据并发送至客户端。
S320、根据所述查询识别信息和/或目标浏览数据从本地区块链中查找所述加密数据,并将所述加密数据作为所述目标存储数据发送给所述轻节点属性的节点。
相应的,目标节点接收到目标存储数据获取请求后,可以根据目标存储数据获取请求中包括的查询识别信息和/或目标浏览数据从本地区块链中查找匹配的加密数据,并将查找到的加密数据作为目标存储数据发送给轻节点属性的目标区块链节点,以使目标区块链节点将目标存储数据发送至客户端,并由目标区块链节点在满足设定存条件时对目标存储数据进行存储。
在本发明的一个可选实施例中,所述区块链节点包括内置的智能合约,所述智能合约还用于统计各区块链节点提供的存储总量以及流量总量,以根据所述存储总量以及流量总量对所述区块链节点进行奖励。
需要说明的是,在本发明实施例中,可以利用内置在区块链节点中的智能合约对基于区块链的云平台中各个节点实施激励机制。具体的,可以通过智能合约统计各区块链节点提供的存储总量以及流量总量,以根据存储总量以及流量总量对区块链节点进行奖励。
在本发明的一个可选实施例中,任意类型设备节点通过云平台加入规则成为所述区块链节点;其中,所述云平台加入规则包括:所述任意类型设备节点根据自身的节点性能信息主动选择所述节点属性,或,所述任意类型设备节点将自身的节点性能信息发送给任一区块链节点,以使接收到所述节点性能信息的区块链节点根据所述节点性能信息为所述任意类型设备节点指定所述节点属性。
需要说明的是,为了丰富基于区块链的云平台的节点功能,在本发明实施例中,可选的,任意类型设备节点均可以通过云平台加入规则成为基于区块链的云平台中的区块链节点。所谓任意类型设备,包括但不限于大型服务器、工作站或者多种类型的个人终端等。任何可以存储数据的设备均可以通过云平台加入规则成为区块链节点,本发明实施例并不对加入云平台的设备节点类型进行限定。其中,云平台加入规则可以是预先制定的,用于为任意类型设备节点加入基于区块链的云平台时的参考规则。示例性的,云平台加入规则可以是:存储容量大于等于500G且可用流量大于等于10G的设备节点可以成为全网节点,存储容量小于500G且可用流量小于10G的设备节点可以成为轻节点。
相应的,当一个设备节点请求加入基于区块链的云平台时,设备节点可以根据云平台加入规则确定其在区块链中的节点属性。可选的,设备节点可以接收区块链中任意节点发送的云平台加入规则,根据云平台加入规则以及自身的节点性能信息主动选择节点属性。其中,节点性能信息包括但不限于存储容量和可用流量等。示例性的,设备节点请求加入基于区块链的云平台时,如果由设备节点主动选择节点属性,则可以接收区块链网络中任意节点发送的云平台加入规则,并根据云平台加入规则以及自身的存储容量和可用流量等性能信息选择称为全网节点或轻节点。如果由区块链节点为设备节点选择节点属性,则设备节点可以将自身的存储容量和可用流量等性能信息发送给区块链网络中的任意节点,并由接收到性能信息的区块链节点根据自身存储的云平台加入规则和性能信息为设备节点选择节点属性,并将节点属性反馈给设备节点。
在本发明的一个可选实施例中,所述查询识别信息可以包括:存储数据标识和客户端标识,或者,所述查询识别信息可以包括:存储数据标识。
其中,存储数据标识可以是按照设定规则为客户端制定的用于标识客户端和对应的待存储数据的字符串,或者,存储数据标识可以只用于标识待存储数据。其中,设定规则可以是字母、数字或符号等按照规则进行排列,例如,设定规则可以是前3位字符编号用于标识客户端信息,后三位数字编号用于标识待存储数据信息,本发明实施例并不对设定规则的具体内容进行限定。客户端标识可以是用于唯一标识客户端的信息,例如,客户端的MAC(Media Access Control,媒体访问控制)地址或IMEI(International MobileEquipment Identity,国际移动设备识别码)等均可以作为客户端标识。
在本发明实施例中,可选的,查询识别信息可以包括存储数据标识和客户端标识,或者,查询识别信息可以只包括存储数据标识。当查询识别信息同时包括存储数据标识和客户端标识时,可以将客户端标识用于标识客户端,存储数据标识可以只用于标识待存储数据。当查询识别信息只包括存储数据标识时,存储数据标识需要同时标识客户端和对应的待存储数据信息,以实现客户端和待存储数据的对应存储。示例性的,当查询识别信息只包括存储数据标识时,存储数据标识的前3位信息用于标识客户端,后3位信息用于标识待存储数据。
本发明实施例通过接收轻节点属性的节点发送的目标存储数据获取请求,根据目标存储数据获取请求中包括的查询识别信息从本地区块链中查找加密数据,并将加密数据作为目标存储数据发送给轻节点属性的节点,从而解决轻节点因存储容量问题无法提供目标存储数据的问题,通过区块链技术实现非中心化的分布式的云平台,以区块链技术的不可篡改特性保证数据存储的安全性,从而保证云数据查询的可靠性。同时可充分利用不同节点的存储空间,从而提高基于区块链的云平台的存储利用率。
实施例四
图4是本发明实施例四提供的一种基于区块链的云查询装置的示意图,所述装置配置于区块链节点,如图4所示,所述装置包括:信息获取模块410、信息反馈模块420、第一请求接收模块430以及数据获取模块440,其中:
信息获取模块410,用于接收客户端或辅助节点发送的查询识别信息;
信息反馈模块420,用于根据本机存储的存储处理数据,获取与所述查询识别信息匹配至少一条浏览数据反馈给所述客户端;
第一请求接收模块430,用于接收所述客户端针对所述浏览数据反馈的针对目标浏览数据的数据获取请求;
数据获取模块440,用于根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,所述节点属性包括:全网节点属性或者轻节点属性。
本发明实施例通过接收客户端或辅助节点发送的查询识别信息,根据本机存储的存储处理数据获取与查询识别信息匹配至少一条浏览数据反馈给客户端;接收客户端针对浏览数据反馈的针对目标浏览数据的数据获取请求,并根据本机的节点属性获取与目标浏览数据匹配的目标存储数据发送至客户端,解决现有云存储技术提供云查询服务时存在的访问出错问题,通过区块链技术实现非中心化的分布式的云平台,以区块链技术的不可篡改特性保证数据存储的安全性,从而保证云数据查询的可靠性。
可选的,所述装置可配置于所述区块链网络中与所述客户端满足设定距离条件的目标区块链节点;
其中,所述目标区块链节点由所述辅助节点根据内置的智能合约确定,所述辅助节点用于接收所述客户端发送的查询识别信息;或
所述目标区块链节点由所述客户端通过本地域名解析得到的网络地址确定。
可选的,所述存储处理数据包括第一存储处理数据或第二存储处理数据;其中,所述第一存储处理数据包括对待存储数据进行加密后得到的加密数据、与所述待存储数据对应的浏览数据以及与所述待存储数据对应的查询识别信息;所述第二存储处理数据包括所述待存储数据对应的浏览数据以及与所述待存储数据对应的查询识别信息。
可选的,数据获取模块440,用于根据本机的全网节点属性,直接将本地区块链中存储的所述第一存储处理数据中所述目标浏览数据匹配的加密数据作为所述目标存储数据发送至所述客户端;或者,根据本机的轻节点属性,如果确定本地缓存中存在所述目标浏览数据匹配的加密数据,则直接将本地缓存中存储的所述加密数据作为所述目标存储数据发送至所述客户端;否则,从满足设定距离条件的全网节点属性的目标节点处获取所述加密数据作为所述目标存储数据并发送至所述客户端。
可选的,所述装置还包括:数据存储模块,用于如果本机满足设定存储条件,则将获取的所述目标存储数据存储在本地缓存中。
可选的,所述设定存储条件包括:所述目标存储数据在设定时间范围内的访问频率达到设定阈值,且所述目标存储数据的大小不超过本地缓存容量的大小。
可选的,所述全网节点属性的目标节点由所述目标区块链节点内置的智能合约确定。
可选的,所述查询识别信息包括:存储数据标识和客户端标识,或者
所述查询识别信息包括:存储数据标识。
可选的,任意类型设备节点通过云平台加入规则成为所述区块链节点;
其中,所述云平台加入规则包括:所述任意类型设备节点根据自身的节点性能信息主动选择所述节点属性,或
所述任意类型设备节点将自身的节点性能信息发送给任一区块链节点,以使接收到所述节点性能信息的区块链节点根据所述节点性能信息为所述任意类型设备节点指定所述节点属性。
可选的,所述智能合约用于统计各所述区块链节点提供的存储总量以及流量总量,以根据所述存储总量以及流量总量对所述区块链节点进行奖励。
上述基于区块链的云查询装置可执行本发明实施例一及实施例二所提供的基于区块链的云查询方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的基于区块链的云查询方法。
实施例五
图5是本发明实施例五提供的一种基于区块链的云查询装置的示意图,所述装置配置于区块链节点,如图5所示,所述装置包括:第二请求接收模块510以及数据发送模块520,其中:
第二请求接收模块510,用于接收轻节点属性的节点发送的目标存储数据获取请求;其中,所述目标存储数据获取请求中包括与对待存储数据进行加密后得到的加密数据匹配的查询识别信息和/或目标浏览数据;其中,所述待存储数据和对应的查询识别信息由客户端上传;
数据发送模块520,用于根据所述查询识别信息从本地区块链中查找所述加密数据,并将所述加密数据作为所述目标存储数据发送给所述轻节点属性的节点。
本发明实施例通过接收轻节点属性的节点发送的目标存储数据获取请求,根据目标存储数据获取请求中包括的查询识别信息从本地区块链中查找加密数据,并将加密数据作为目标存储数据发送给轻节点属性的节点,从而解决轻节点因存储容量问题无法提供目标存储数据的问题,通过区块链技术实现非中心化的分布式的云平台,以区块链技术的不可篡改特性保证数据存储的安全性,从而保证云数据查询的可靠性。同时可充分利用不同节点的存储空间,从而提高基于区块链的云平台的存储利用率。
可选的,所述区块链节点包括内置的智能合约,所述智能合约还用于统计各区块链节点提供的存储总量以及流量总量,以根据所述存储总量以及流量总量对所述区块链节点进行奖励。
可选的,所述查询识别信息包括:存储数据标识和客户端标识,或者
所述查询识别信息包括:存储数据标识。
可选的,任意类型设备节点通过云平台加入规则成为所述区块链节点;
其中,所述云平台加入规则包括:所述任意类型设备节点根据自身的节点性能信息主动选择所述节点属性,或
所述任意类型设备节点将自身的节点性能信息发送给任一区块链节点,以使接收到所述节点性能信息的区块链节点根据所述节点性能信息为所述任意类型设备节点指定所述节点属性。
上述基于区块链的云查询装置可执行本发明实施例三所提供的基于区块链的云查询方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的基于区块链的云查询方法。
实施例六
图6为本发明实施例六提供的一种计算机设备的结构示意图。图6示出了适于用来实现本发明实施方式的计算机设备612的框图。图6显示的计算机设备612仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。计算机设备612典型的是承担区块链系统节点功能的计算设备。
如图6所示,计算机设备612以通用计算设备的形式表现。计算机设备612的组件可以包括但不限于:一个或者多个处理器616,存储装置628,连接不同系统组件(包括存储装置628和处理器616)的总线618。
总线618表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备612典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备612访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置628可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)630和/或高速缓存存储器632。计算机设备612可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统634可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线618相连。存储装置628可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块626的程序636,可以存储在例如存储装置628中,这样的程序模块626包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块626通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备612也可以与一个或多个外部设备614(例如键盘、指向设备、摄像头、显示器624等)通信,还可与一个或者多个使得用户能与该计算机设备612交互的设备通信,和/或与使得该计算机设备612能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口622进行。并且,计算机设备612还可以通过网络适配器620与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器620通过总线618与计算机设备612的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备612使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of IndependentDisks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器616通过运行存储在存储装置628中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的基于区块链的云查询方法。也即,所述处理单元执行所述程序时实现:接收客户端或辅助节点发送的查询识别信息;根据本机存储的存储处理数据,获取与所述查询识别信息匹配至少一条浏览数据反馈给所述客户端;接收所述客户端针对所述浏览数据反馈的针对目标浏览数据的数据获取请求;根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,所述节点属性包括:全网节点属性或者轻节点属性。又例如,所述处理单元执行所述程序时实现:接收轻节点属性的节点发送的目标存储数据获取请求;其中,所述目标存储数据获取请求中包括与对待存储数据进行加密后得到的加密数据匹配的查询识别信息和/或目标浏览数据;其中,所述待存储数据和对应的查询识别信息由客户端上传;根据所述查询识别信息和/或目标浏览数据从本地区块链中查找所述加密数据,并将所述加密数据作为所述目标存储数据发送给所述轻节点属性的节点。
实施例七
本发明实施例七还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的基于区块链的云查询方法。例如,所述计算机程序实现:接收客户端或辅助节点发送的查询识别信息;根据本机存储的存储处理数据,获取与所述查询识别信息匹配至少一条浏览数据反馈给所述客户端;接收所述客户端针对所述浏览数据反馈的针对目标浏览数据的数据获取请求;根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,所述节点属性包括:全网节点属性或者轻节点属性。又例如,所述计算机程序实现:接收轻节点属性的节点发送的目标存储数据获取请求;其中,所述目标存储数据获取请求中包括与对待存储数据进行加密后得到的加密数据匹配的查询识别信息和/或目标浏览数据;其中,所述待存储数据和对应的查询识别信息由客户端上传;根据所述查询识别信息和/或目标浏览数据从本地区块链中查找所述加密数据,并将所述加密数据作为所述目标存储数据发送给所述轻节点属性的节点。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable ReadOnly Memory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (18)
1.一种基于区块链的云查询方法,应用于区块链节点,其特征在于,包括:
接收客户端或辅助节点发送的查询识别信息;
根据本机存储的存储处理数据,获取与所述查询识别信息匹配的至少一条浏览数据反馈给所述客户端;
接收所述客户端针对所述浏览数据反馈的针对目标浏览数据的数据获取请求;
根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,所述节点属性包括:全网节点属性或者轻节点属性;
其中,所述根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,包括:
若本机的节点属性是全网节点,则直接将本地区块链中存储的第一存储处理数据中所述目标浏览数据匹配的加密数据作为所述目标存储数据发送至所述客户端;
若本机的节点属性是轻节点,则如果确定本地缓存中存在所述目标浏览数据匹配的加密数据,则直接将本地缓存中存储的所述加密数据作为所述目标存储数据发送至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述方法由所述区块链网络中与所述客户端满足设定距离条件的目标区块链节点执行;
其中,所述目标区块链节点由所述辅助节点根据内置的智能合约确定,所述辅助节点用于接收所述客户端发送的查询识别信息;或
所述目标区块链节点由所述客户端通过本地域名解析得到的网络地址确定。
3.根据权利要求1所述的方法,其特征在于,所述存储处理数据包括第一存储处理数据或第二存储处理数据;其中,所述第一存储处理数据包括对待存储数据进行加密后得到的加密数据、与所述待存储数据对应的浏览数据以及与所述待存储数据对应的查询识别信息;所述第二存储处理数据包括所述待存储数据对应的浏览数据以及与所述待存储数据对应的查询识别信息。
4.根据权利要求1所述的方法,其特征在于,所述根据本机的节点属性,获取与所述目标浏览数据匹配的目标存储数据发送至所述客户端,还包括:如果确定本地缓存中不存在所述目标浏览数据匹配的加密数据,则从满足设定距离条件的全网节点属性的目标节点处获取所述加密数据作为所述目标存储数据并发送至所述客户端。
5.根据权利要求4所述的方法,其特征在于,在从满足设定距离条件的全网节点属性的目标节点处获取所述加密数据并发送至所述客户端之后,还包括:
如果本机满足设定存储条件,则将获取的所述目标存储数据存储在本地缓存中。
6.根据权利要求5所述的方法,其特征在于,所述设定存储条件包括:
所述目标存储数据在设定时间范围内的访问频率达到设定阈值,且所述目标存储数据的大小不超过本地缓存容量的大小。
7.根据权利要求1所述的方法,其特征在于,所述全网节点属性的目标节点由目标区块链节点内置的智能合约确定。
8.根据权利要求1-7任一项所述的方法,其特征在于,
所述查询识别信息包括:存储数据标识和客户端标识,或者
所述查询识别信息包括:存储数据标识。
9.根据权利要求1-7任一项所述的方法,其特征在于,任意类型设备节点通过云平台加入规则成为所述区块链节点;
其中,所述云平台加入规则包括:所述任意类型设备节点根据自身的节点性能信息主动选择所述节点属性,或
所述任意类型设备节点将自身的节点性能信息发送给任一区块链节点,以使接收到所述节点性能信息的区块链节点根据所述节点性能信息为所述任意类型设备节点指定所述节点属性。
10.根据权利要求2或7所述的方法,其特征在于,所述智能合约用于统计各所述区块链节点提供的存储总量以及流量总量,以根据所述存储总量以及流量总量对所述区块链节点进行奖励。
11.一种基于区块链的云查询方法,应用于区块链节点,其特征在于,包括:
接收轻节点属性的节点发送的目标存储数据获取请求,如果轻节点的本地缓存中没有存储目标存储数据,则目标区块链节点需要查找距离最近的全网节点作为目标节点,并向目标节点发送目标存储数据获取请求;其中,所述目标存储数据获取请求中包括与对待存储数据进行加密后得到的加密数据匹配的查询识别信息和/或目标浏览数据;其中,所述待存储数据和对应的查询识别信息由客户端上传;
根据所述查询识别信息和/或目标浏览数据从本地区块链中查找所述加密数据,并将所述加密数据作为所述目标存储数据发送给所述轻节点属性的节点。
12.根据权利要求11所述的方法,其特征在于,所述区块链节点包括内置的智能合约,所述智能合约还用于统计各区块链节点提供的存储总量以及流量总量,以根据所述存储总量以及流量总量对所述区块链节点进行奖励。
13.根据权利要求11或12所述的方法,其特征在于,
所述查询识别信息包括:存储数据标识和客户端标识,或者
所述查询识别信息包括:存储数据标识。
14.根据权利要求11或12所述的方法,其特征在于,任意类型设备节点通过云平台加入规则成为所述区块链节点;
其中,所述云平台加入规则包括:所述任意类型设备节点根据自身的节点性能信息主动选择所述节点属性,或
所述任意类型设备节点将自身的节点性能信息发送给任一区块链节点,以使接收到所述节点性能信息的区块链节点根据所述节点性能信息为所述任意类型设备节点指定所述节点属性。
15.一种基于区块链的云查询装置,配置于区块链节点,其特征在于,包括:
信息获取模块,用于接收客户端或辅助节点发送的查询识别信息;
信息反馈模块,用于根据本机存储的存储处理数据,获取与所述查询识别信息匹配的至少一条浏览数据反馈给所述客户端;
第一请求接收模块,用于接收所述客户端针对所述浏览数据反馈的针对目标浏览数据的数据获取请求;
数据获取模块,用于:
若本机的节点属性是全网节点,则直接将本地区块链中存储的第一存储处理数据中所述目标浏览数据匹配的加密数据作为目标存储数据发送至所述客户端;
若本机的节点属性是轻节点,则如果确定本地缓存中存在所述目标浏览数据匹配的加密数据,则直接将本地缓存中存储的所述加密数据作为所述目标存储数据发送至所述客户端。
16.一种基于区块链的云查询装置,配置于区块链节点,其特征在于,包括:
第二请求接收模块,用于接收轻节点属性的节点发送的目标存储数据获取请求,如果轻节点的本地缓存中没有存储目标存储数据,则目标区块链节点需要查找距离最近的全网节点作为目标节点,并向目标节点发送目标存储数据获取请求;其中,所述目标存储数据获取请求中包括与对待存储数据进行加密后得到的加密数据匹配的查询识别信息和/或目标浏览数据;其中,所述待存储数据和对应的查询识别信息由客户端上传;
数据发送模块,用于根据所述查询识别信息和/或目标浏览数据从本地区块链中查找所述加密数据,并将所述加密数据作为所述目标存储数据发送给所述轻节点属性的节点。
17.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10或11-14中任一所述的基于区块链的云查询方法。
18.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10或11-14中任一所述的基于区块链的云查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811214269.4A CN109522462B (zh) | 2018-10-18 | 2018-10-18 | 一种基于区块链的云查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811214269.4A CN109522462B (zh) | 2018-10-18 | 2018-10-18 | 一种基于区块链的云查询方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109522462A CN109522462A (zh) | 2019-03-26 |
CN109522462B true CN109522462B (zh) | 2021-06-04 |
Family
ID=65770633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811214269.4A Active CN109522462B (zh) | 2018-10-18 | 2018-10-18 | 一种基于区块链的云查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522462B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471987B (zh) * | 2019-08-09 | 2023-02-21 | 全链通有限公司 | 数据存储方法、设备及计算机可读存储介质 |
CN111654673B (zh) * | 2020-06-01 | 2021-11-23 | 杭州海康威视系统技术有限公司 | 视频封面的更新方法、装置及存储介质 |
CN112182029B (zh) * | 2020-09-30 | 2022-09-16 | 杭州复杂美科技有限公司 | 数据查询方法、设备和存储介质 |
CN112214519B (zh) * | 2020-11-10 | 2022-03-04 | 支付宝(杭州)信息技术有限公司 | 一种数据查询方法、装置、设备及可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106716421A (zh) * | 2016-12-30 | 2017-05-24 | 深圳前海达闼云端智能科技有限公司 | 数据查询方法、装置及节点设备 |
CN107079059A (zh) * | 2016-12-21 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 区块链存储方法、装置及节点设备 |
CN107426170A (zh) * | 2017-05-24 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
CN107862215A (zh) * | 2017-09-29 | 2018-03-30 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、数据查询方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9569771B2 (en) * | 2011-04-29 | 2017-02-14 | Stephen Lesavich | Method and system for storage and retrieval of blockchain blocks using galois fields |
CN106354994B (zh) * | 2016-08-22 | 2019-01-18 | 布比(北京)网络技术有限公司 | 处理医疗数据的方法及系统 |
-
2018
- 2018-10-18 CN CN201811214269.4A patent/CN109522462B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107079059A (zh) * | 2016-12-21 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 区块链存储方法、装置及节点设备 |
CN106716421A (zh) * | 2016-12-30 | 2017-05-24 | 深圳前海达闼云端智能科技有限公司 | 数据查询方法、装置及节点设备 |
CN107426170A (zh) * | 2017-05-24 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
CN107862215A (zh) * | 2017-09-29 | 2018-03-30 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、数据查询方法及装置 |
Non-Patent Citations (2)
Title |
---|
"区块链技术综述";沈鑫 等;《网络与信息安全学报》;20161115(第11期);第11-20页 * |
"基于DCPN的区块链小额实时交易策略";佘维 等;《工程科学与技术》;20180711(第4期);第135-143页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109522462A (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522330B (zh) | 基于区块链的云平台数据处理方法、装置、设备及介质 | |
CN109521956B (zh) | 一种基于区块链的云存储方法、装置、设备及存储介质 | |
CN109325870B (zh) | 共享隐私数据的方法和系统 | |
CN109522462B (zh) | 一种基于区块链的云查询方法、装置、设备及存储介质 | |
US20200159955A1 (en) | Data Privacy Opt In/Out Solution | |
US10326715B2 (en) | System and method for updating information in an instant messaging application | |
US10880823B2 (en) | Method and device method and device for obtaining access information of shared wireless access point | |
US20130124672A1 (en) | System and Method for Delivering Media Assets in a Cloud Environment | |
CN109145201B (zh) | 一种基于区块链的信息管理方法、装置、设备及存储介质 | |
KR101623742B1 (ko) | 파일 연관 메시지 공유 방법 및 메시지 공유 시스템 | |
CN113261024A (zh) | 用于利用区块链技术路由到网状网络内容的方法 | |
US10581804B2 (en) | End-to-end caching of secure content via trusted elements | |
CN110365587B (zh) | 设备间通信方法、装置、设备和存储介质 | |
WO2014176896A1 (en) | System and method for updating information in an instant messaging application | |
JP2017201776A (ja) | 不均一ネットワークにまたがるコンテンツ配送 | |
CN110311855B (zh) | 用户消息处理方法、装置、电子设备及存储介质 | |
WO2017088293A1 (zh) | 一种用于提供无线接入点的接入信息的方法与设备 | |
US20160357875A1 (en) | Techniques for promoting and viewing social content written by nearby people | |
WO2018032705A1 (zh) | 用于提供无线接入点信息包的方法与设备 | |
CN116743785A (zh) | 基于雾计算的云网数据存储方法、装置、设备及介质 | |
CN106156048B (zh) | 提供短统一资源定位符服务的方法和装置及通信系统 | |
US20230388120A1 (en) | Client-Side Device Bloom Filter Mapping | |
CN115587860A (zh) | 业务处理方法、装置、存储介质及电子设备 | |
CN106060155B (zh) | P2p资源共享的方法及装置 | |
US20140136647A1 (en) | Router and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |