一种数据存取的方法、系统及装置与流程

文档序号:11654789阅读:178来源:国知局
一种数据存取的方法、系统及装置与流程
本申请涉及信息
技术领域
,尤其涉及一种数据存取的方法、系统及装置。
背景技术
:随着信息技术的发展,以及数字化办公的广泛流行,各行各业每天都要产生大量的需要存储的数据。于是,数据存储技术成为人们关注的热点之一。现有数据存储技术的通用解决方法是采用数据库技术实现数据存储,即,通过一个数据库管理中心,管理一个或者多个存储数据的设备,并通过该数据库管理中心管理数据的增查改删(create、retrieve、update、delete,crud)操作。随着现有数据存储技术的不断进步,逐渐发展完善出分布式数据库技术等新的数据存储技术,使得数据存储无论是在存储速度、数据占用空间方面,还是在数据管理的便利性等方面,都有着大幅度提高,不断满足着人们对数据存储的需求。但是,在现有技术中,不同企业或单位使用的数据库通常独立运行,并由各自的数据库管理中心分别管理,当需要获取多个企业或单位分别存储的数据时,就需要分别从不同的数据库获取对应的数据,导致数据获取过程比较复杂。此外,由于考虑导数据安全的问题,通常并不是每一个企业或单位的数据库都可公开访问,这导致难以通过网络顺利获取相关数据。而且,通常在获取数据时,需要先在有资质的部门证明自己的身份(或者获取数字证书),才能到该企业或单位通过已经证明的身份信息(或者该数字证书),获取到的数据,这进一步导致获取数据的困难程度变大。技术实现要素:本申请实施例提供一种数据存储以及查询的方法、装置及系统,用于解决现有数据存储技术中因数据存储于相互独立的不同数据库导致的获取多个数据库中数据的操作复杂、效率低的问题。本申请实施例采用下述技术方案:一种数据存储的方法,包括:确定数据存储指令,其中,所述数据存储指令中携带有身份标识和待存储数据;根据所述身份标识,确定所述身份标识对应的区块链以及所述身份标识对应的密钥对;根据所述密钥对,将所述待存储数据存储在所述区块链中。一种数据查询的方法,包括:确定数据查询指令,其中,所述数据查询指令中携带有身份标识;根据所述身份标识,确定所述身份标识对应的区块链以及所述身份标识对应的私钥;根据所述私钥,将所述区块链中的数据解密后进行查询。一种数据存取的系统,包括若干存储设备、若干查询设备以及若干区块链存储节点,其中:所述区块链存储节点,用于存储身份标识对应的区块链;所述存储设备,确定数据存储指令,根据所述数据存储指令中携带的身份标识,确定所述身份标识对应区块链以及所述身份标识对应的密钥对,根据所述密钥对,将待存储数据存储在所述区块链存储节点中与所述身份标识对应的区块链中;所述查询设备,确定数据查询指令,根据所述数据查询指令中携带的身份标识,确定所述身份标识对应区块链以及所述身份标识对应的私钥,通过所述私钥解密所述区块链节点中的数据,并进行查询。一种数据存储的装置,包括:第一确定模块,确定数据存储指令,其中,所述数据存储指令中携带有身份标识和待存储数据;第二确定模块,根据所述身份标识,确定所述身份标识对应的区块链以及所述身份标识对应的密钥对;存储模块,根据所述密钥对,将所述待存储数据存储在所述区块链中。一种数据查询的装置,所述装置包含振动马达以及传感器,包括:第一确定模块,确定数据查询指令,其中,所述数据查询指令中携带有身份标识;第二确定模块,根据所述身份标识,确定所述身份标识对应的区块链以及所述身份标识对应的私钥;查询模块,根据所述私钥,将所述区块链中的数据解密后进行查询。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:在数据存储时,先确定数据存储指令,之后根据该数据存储指令中携带的身份标识,确定与该身份标识对应的区块链以及密钥对,最后根据该密钥对,将待存储数据存储在该区块链中,在数据查询时,先确定数据查询指令,之后根据该数据查询指令对应的身份标识,确定与该身份标识对应的区块链以及私钥,最后根据该私钥,将该区块链中的数据解密后查询。可见通过本申请实施例提供的方法,使得存取对应该身份标识的数据时,无需访问多个数据库,仅需通过访问该身份标识对应的该区块链即可,并且只有通过该密钥对才可进行数据存储,使得在保证数据安全的同时,简化了操作的复杂性,提高了数据存取的效率。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例提供的数据存储的过程;图2为本申请实施例提供的一种数据查询的过程;图3为本申请实施例提供的数据存取系统的结构示意图;图4为本申请实施例提供的另一种数据存取系统的结构示意图;图5为本申请实施例提供的一种数据存储的装置的结构示意图;图6为本申请实施例提供的另一种数据查询的装置的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。由于本申请涉及到区块链技术,在详细介绍本申请的实施例之前,先对区块链的概念进行适当说明。“区块链”之区块是组成区块链的基本单元,该区块可以包括两部分:一是区块头部,二是区块体。区块头部至少可以包括三方面的信息,即本区块的识别信息(比如hash值),本区块的上一区块的识别信息,以及时间戳等。正是由于一个区块包含上一个区块的识别信息,使得多个区块可以形成链条,进而构成区块链。区块链具有诸多良好而优秀的特性,比如,去中心化:由于使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务均等,系统中的数据块由整个系统中具有维护功能的节点来共同维护;自治性:区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用;信息不可篡改:一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高等。以下结合附图,详细说明本申请各实施例提供的技术方案。图1为本申请实施例提供的数据存储的过程,具体包括以下步骤:s101:确定数据存储指令。通常,在数据存储的过程中,执行数据存储的设备,可以根据数据存储指令,将待存储数据存储在指定的存储设备中,比如,在数据库中存储数据时,执行数据存储的设备可以根据接收到的数据存储指令,将数据存储在数据库所在设备中。这里的设备可以是单独的一台设备,也可以是由多台设备组成的系统,该设备可以是手机、个人电脑、平板电脑、服务器等设备,也可以是其他设备,本申请对此不作具体限定。由于本申请实施例后续还将提供数据查询的方法以及装置,为便于描述(而非处于限制的目的),后续将执行数据存储过程的设备,均称为存储终端。具体的,由于该存储终端可用于执行数据存储的过程,所以可由该存储终端确定数据存储指令。对于数据存储指令的来源,可以是由该存储终端生成的,也可以是由该存储终端接收的,具体该数据存储指令如何而来,本申请并对此不做限定,只要该存储终端可以确定该数据存储指令即可。对于数据存储指令的内容,本申请实施例中可以使其携带身份标识以及待存储数据。也就是说,该存储终端在确定该数据存储指令时,可以确定该数据存储指令携带的身份标识,以及该数据存储指令需要对其进行存储操作的待存储数据。其中,该身份标识可以是公民的身份证号、账号标识、邮箱标识等,只要该身份标识是全局唯一的标识即可,本申请对此不作具体限定,当然,为了方便后续描述,以下以身份标识为公民的身份证号为例进行说明。s102:根据所述身份标识,确定所述身份标识对应的区块链以及所述身份标识对应的密钥对。在本申请实施例中,当该存储终端确定该数据存储指令之后,由于该存储终端还可以确定该数据存储指令携带的身份标识以及待存储数据,所以该存储终端还可根据该身份标识确定,与该身份标识对应的区块链以及与该身份标识对应的密钥对。并在后续数据存储过程中,将在步骤s101中确定的该待存储数据存储在该区块链中。在本申请实施例中,“身份标识对应的区块链”表明了身份标识与区块链之间的关系。在实际应用过程中,身份标识按照其性质可以表现为至少两种类型:主体区分型身份标识和事务区分型身份标识,不同类型的身份标识可能对应的区块链不同。对于前者,不同的主体(比如,自然人a、自然人b),可能具有与之对应的不同的区块链,对于后者,不同的事务(比如,购买图书的报名事务、聚集活动事务),可能具有与之对应的不同区块链。下面针对身份标识及对应的区块链分别举例说明:假定现在要利用区块链技术来进行个人档案存储。个人档案通常包括多种信息,这些信息来自于不同的政府部门或相关机构进行的记录,比如:对于自然a,其档案信息中可以包括公安机关对a的户籍进行记录形成的户籍信息,民政部门对a的婚姻状况进行记录形成的婚姻状态信息,人民银行对a的个人贷款进行记录形成贷款信息,雇主对a的个人雇佣关系进行记录形成雇佣信息。这些信息在不同时期形成,利用区块链技术可以均将其存储到一个区块链中,由此,这个区块链便是专属于(对应于)自然人a的区块链。同理,对于自然b,可以具有存储b的个人档案的区块链,以此类推,还可以具有其它以自然人的身份不同形成的海量区块链。这样,在由多个区块链存储节点形成的网络中,由于可能同时存在多个区块链,为了将一个主体新产生的个人档案信息写入到先前已存在的该主体的区块链中,便需要先根据该主体的身份标识确定(找到)其对应的区块链。该类身份标识其性质便是主体区分性身份标识。假定现在要利用区块链技术在微信群中进行购买图书报名事务。第一个发起购买图书a报名活动的人,将序号和姓名发到微信群中(1、姓名1),第二个也想要购买图书a的人在该信息后面添加自己的信息后发到微信群中,即(1、姓名1;2、姓名2),以此类推。这一整体过程形成购买图书a的一个区块链(区块链a)。但是,在该微信群中,可能同时还存在是否购买图书b的报名活动(或者其它事务,比如,组织饭局等),第一个发起购买图书b的人,将序号和姓名发到微信群中,以此类推,形成一个购买图书b的一个区块链(区块链b)。在一个微信群中同时存在两个及以上的区块链的情况下,需要向链条中添加信息的人便要找到对应的区块链,比如,购买图书a的人需要找到区块链a,购买图书b的人需要找到区块链b。这样,在由多个区块链存储节点(类似于微信群的群成员所在的设备)形成的网络中,由于可能同时存在多个区块链,为了将一个事务产生的事务更新信息写入到先前已存在的该事务的区块链中,便需要先根据该事务的身份标识确定(找到)其对应的区块链。该类身份标识其性质便是事务区分性身份标识。在本申请实施例中,该身份标识对应的区块链可以是联盟区块链,即,不是任一终端都具有对该区块链进行数据存储操作的权限,而只有指定的终端才具有对该区块链进行数据存储的操作权限,以此保证数据存储时该区块链中的数据安全性以及数据的真实性,当然,在本申请的另外实施例中,该区块链还可以是公有链、私有链等性质。需要说明的是,这里的指定的终端在实际过程中如何确定,与区块链的性质等因素有关,本申请并不做具体限定。比如,在如本申请上述实施例中,区块链为联盟区块链,那么该指定终端可以由该联盟确定。在此基础上,本申请上述实施例中,执行步骤s101、步骤s102以及后续的数据存储过程的存储终端,则可以是该指定的终端,即,有权限对该区块链进行数据存储的终端)。在本申请实施例中,存储终端可根据步骤s101中确定的该身份标识,以及预先存储的身份标识、密钥对以及区块链的对应关系,判断区块链存储节点中是否存在与该身份标识对应的区块链,如果区块链存储节点有多个,则可以通过在至少一个该区块链存储节点中进行查找确定身份标识对应的区块链。这里身份标识与区块链之间的对应关系可以存储在存储终端,也可以存储在区块链存储节点所形成的网络中的各个节点中,甚至还可以存储在第三方设备上,实务中,具体存在何处,可以依据读取的便捷性、读取速度、安全性等角度进行考虑。比如,将身份标识与区块链之间的对应关系存储在存储终端本地,可能更便于读写。同样的道理,对于身份标识与密钥对之间的对应关系,也可以根据实际情况选择存储地点。此外,还需要说明的是:这里的区块链存储节点与该存储终端可以是同一设备,也可以是不同的设备,本申请不做具体限定。为了保证数据的安全性,通常在区块链技术中,可以存在多个区块链存储节点,这样,区块链则可以保存在多个区块链存储节点中,当有一个区块链存储节点出现故障(如,宕机、数据丢失等情况)时,可由其他没有出现故障的任一区块链存储节点继续工作,并可以根据没有出现故障的区块链存储节点中存储的数据(即,该区块链中存储的数据),修复出现故障的区块链存储节点。在进行身份标识是否存在对应的区块链的判断之后,如果存在与身份标识对应的区块链,则可以进一步确定与该身份标识对应的密钥对;如果不存在与身份标识对应的区块链,则生成与该身份标识对应的区块链以及与该身份标识对应的密钥对。具体而言:当该区块链存在时,由于在本申请中,该存储终端可以是指定的存储终端,所以该存储终端中还可以预先存储有该身份标识对应的密钥对,则该存储终端可以确定与该身份标识对应的区块链以及与该身份标识对应的密钥对。其中,确定的该区块链中存储有与该身份标识对应的加密数据包,而该密钥对可用于解密以及加密与该身份标识对应的加密数据包,该存储终端确定该区块链以及该密钥对便可以继续后续的数据存储过程。需要说明的是,当与该身份标识对应的区块链存在时,该存储终端在确定该密钥对时,也可以向其他指定设备发送获取该身份标识对应的密钥对的请求,其中,该请求中可携带有该存储终端的标识,以使得其他指定设备确定该存储终端也同样属于指定设备,具有获取该密钥对的权限,并返回该密钥对使得该存储终端获得该密钥对。需要说明的是,该存储终端在确定该密钥对时,也可根据实际应用的需要而采用不同的方法,本申请对此并不做具体限定。当不存在与该身份标识对应的区块链时,该存储终端可以生成与该身份标识对应的区块链以及与该身份标识对应的密钥对,其中,该生成的区块链用于存储与该身份标识对应的数据,并且为了保证数据安全,该数据可以是经过打包加密操作之后的加密数据包,即,该区块链中可以存储与该身份标识对应的加密数据包,则该密钥对可用于使指定设备对该区块链中的数据进行存储,即,该密钥对可用于解密以及加密与该身份标识对应的加密数据包,使该指定设备可在该区块链中存储数据。s103:根据所述密钥对,将所述待存储数据存储在所述区块链中。在本申请实施例中,当该存储终端确定与该身份标识对应的区块链以及与该身份标识对应的密钥对之后,该存储终端便可将该数据存储指令中携带的待存储数据存储在该区块链中,以完成数据存储过程。具体地,由于在步骤s102中,存储终端确定区块链以及密钥对的情况存在差异,下面也针对两种情形分别予以说明:情形一:当该存储终端经过判断确定,与该身份标识对应的区块链存在时,则该存储终端可先从该区块链存储节点中,调用该区块链中与该身份标识对应的加密数据包,之后该存储终端便可根据该密钥对中的私钥,对该加密数据包进行解密,以获得该加密数据包中与该身份标识对应的所有数据,然后,该存储终端可以根据该待存储数据更新该所有数据得到与该身份标识对应的更新数据,最后,该存储终端可通过该密钥对中的公钥,将该更新数据进行加密,作为更新加密数据包,并在为该更新加密数据包添加时间戳后,存储在该区块链中,将存储有该更新加密数据包和时间戳的该区块链存储到区块链存储节点中。其中,上述与该身份标识对应的所有数据在更新得到更新数据时,该更新数据便成为与该身份标识对应的所有数据。需要说明的是,由于本申请中采用区块链技术,所以当存储该区块链至该区块链存储节点时,该区块链存储节点可以将该区块链广播之其他区块链存储节点中,以使得所有区块链存储节点中存储的该区块链一致。情形二:当该存储终端经过判断确定,与该身份标识对应的区块链不存在时,该存储终端可生成与该身份标识对应的区块链以及与该身份标识对应的密钥对,其中,该存储终端首先可根据该身份标识,生成该身份标识对应的初始数据,之后再根据该待存储数据,更新该初始数据,作为更新数据,然后生成该身份标识对应的该密钥对,并使用该密钥对的公钥对该更新数据进行加密,作为该身份标识对应的加密数据包,最后,生成该身份标识对应的该区块链,并将该加密数据包存储在该区块链中,并将存储有该更新加密数据包的该区块链存储到区块链存储节点中。其中,该身份标识的初始数据具体包括何种数据本申请并不做具体限定,可根据实际使用时的需要进行确定。另外,在本申请中,该待存储数据存储在该区块链中生成时间最晚的数据块中,具体的,当确定该区块链之后,该存储终端可根据该区块链中各数据块的生成时间,确定生成时间最晚的数据块,并且,由于一个数据块中可存储有与该身份标识对应的多个加密数据包,所以在本申请中该存储终端还可根据各加密数据包携带的时间戳,确定存储时间最晚的加密数据包,作为该身份标识对应的加密数据包。进一步地,由于该存储终端在存储该待存储数据时,时间该身份标识对应的加密数据包调用后,进行更新的,所以该存储终端在该区块链中存储的加密数据包中可以包含该身份标识对应的所有数据,即,每一次更新后的加密数据包中均包含了该身份标识对应的所有数据,使得在根据时间戳调用该加密数据包时,调用该加密数据包的设备可以得到该身份标识对应的所有数据,而无需再调用其他数据。更进一步地,当该存储终端生成该身份标识对应的密钥对时,该存储终端还可以将该密钥对以及该身份标识发送至各预设的设备,其中该预设的设备。具体的,该存储终端可根据预先设置的各设备的地址,将该密钥对以及该身份标识,发送至各设备,其中,该预设的各设备可以是各指定设备,即,拥有对该身份标识对应的区块链进行数据存储的权限的设备。需要说明的是,在本申请中,该区块链存储于该区块链存储节点中,其中,任一该区块链存储节点可以是一台设备或者多台设备组成的系统,并用于存储该区块链。该区块链中存储有该身份标识对应的加密数据包,不同的区块链存储节点中均可存储有该区块链,并且不同区块链存储节点中的该区块链一致,该区块链与该区块链存储节点不是同一概念,需要区别理解。通过如图1所示的数据存储的方法,将该待存储数据存储于该身份标识对应的区块链中,使得该身份标识对应的所有数据均可存储与该数据链中,避免了该身份标识对应的数据存储与不同设备时,需要反复调用数据的步骤,提高了数据存储以及数据查询的效率。同时,通过联盟区块链的技术方法,使得只有指定的存储终端具有对该身份标识对应的数据进行存储的权限,并且,基于区块链技术的特点,对该身份标识对应的数据的任何操作均会记录在该区块链中,使得该身份标识对应的数据的安全性的到保证,同时提供了对追溯该身份标识对应的数据的变化的可能性。另外,由于该存储终端可以在步骤s102中确定该身份标识对应的密钥对,使得该存储终端可以对调用的该身份标识对应的加密数据包进行解密,并得到该身份标识对应的所有数据,并且,之后该存储终端还需要根据该密钥对该更新数据进行加密,才可将该身份标识对应的加密数据包存储在该区块链中,使得只有拥有该身份标识对应的密钥对的存储终端才可以对该区块链中的数据进行存储,并且,在本申请中,只有该指定的设备才可以获得该密钥对,保证了该区块链中数据的安全性。进一步地,在本申请中,为了保证该区块链中存储数据的安全性,该存储终端在调用该区块链中的数据时,可仅调用该区块链中的加密数据包,并确定只有通过该密钥对中的私钥进行加密后的数据才是可信的、安全的。更进一步地,由于在本申请中,该身份标识对应的所有数据均可存储于该身份标识对应的区块链中,而在该联盟区块链中,不同的指定设备可以用于对该身份标识对应的不同数据的存储操作,例如,该身份标识可对应有基础数据(如,用户属性、用户类型等),也可对应有账户数据(如,账户余额、账户类型等),也可对应有操作习惯信息(如,历史行为数据等),可见,该基础数据可由负责该身份标识对应的基础信息的设备进行维护(如,用户中心),该账户数据可由负责记账的设备进行维护,而该操作习惯数据可由广告推送设备进行维护,也就是说,在本申请中,不同的设备可维护该身份标识对应的不同类型的数据。具体的,可为该联盟区块链中的不同指定设备分配不同的密钥对,其中,不同的密钥对均有相同的私钥,用于对该身份标识对应的加密数据包进行解密,但是,不同的密钥对拥有不同的公钥,并且不同的公钥仅能对指定类型的数据进行加密,使得拥有不同密钥对的设备仅可对指定类型的数据进行存储操作。其中,该密钥对的配置可由工作人员确定,具体如何配置,本申请对此不再赘述,只要通过该密钥对使得,不同的设备具有对不同类型的数据进行数据加密的权限即可。例如,设备a、设备b以及设备c,分别拥有不同的密钥对x、y、z,切密钥对x、y、z可对身份标识a对应的所有数据中的x、y、z类型的数据进行加密,如表1所示。设备密钥对数据类型设备a密钥对xx类型数据设备b密钥对yy类型数据设备c密钥对zz类型数据表1其中该x、y、z类型的数据包含了该身份标识a对应的所有数据,则通过不同的密钥对,使得该设备a、b、c,仅可对该身份标识a对应的一部分数据进行存储,提高了数据存储时的安全性,减少了对该身份标识对应数据的误操作的几率。需要说明的是,本申请实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤s101和步骤s102的执行主体可以为设备1,步骤s103的执行主体可以为设备2;又比如,步骤s101的执行主体可以为设备1,步骤s102和步骤s103的执行主体可以为设备2;等等。基于图1所示的数据存储过程,本申请实施例还对应提供一种数据查询的方法,如图2所示。图2为本申请实施例提供的一种数据查询的过程,具体包括以下步骤:s201:确定数据查询指令。在本申请实施例中,可由终端确定数据查询指令,并继续后续的数据查询过程,其中该终端可以是手机、平板电脑、个人电脑、服务器等设备,并且该终端可以是单独的一台设备,也可以是有多台设备组成的系统,本申请对此不做具体限定。具体的,该数据查询指令中可携带有身份标识,用于后续确定查询数据的时的区块链。其中,该数据查询指令可由该终端生成并确定,当然,在本申请实施例中,该终端也可接收该数据查询指令并确定该数据查询指令,本申请并不限定该数据查询指令是如何生成的,只要该终端可以确定该数据查询指令即可。需要说明的是,在本申请中,图2所示的数据查询过程中的执行主体(即,终端)与图1所示的数据存储过程中的执行主体可以不相同,为了以示区别,后续描述中以查询终端表示执行数据查询过程的终端,以存储终端表示执行数据存储过程的终端。s202:根据所述身份标识,确定所述身份标识对应的区块链以及所述身份标识对应的私钥。在本申请实施例中,由于该查询终端仅需查询该身份标识对应的数据,所以,该查询终端可以根据该身份标识,确定该身份标识对应的区块链以及该身份标识对应的私钥。具体的,在本申请实施例中,该查询终端可根据该预先存储的该身份标识与该密钥对的私钥的对应关系,确定该私钥。或者,当该查询终端中没有预先存储该身份标识对应的私钥时,该查询终端还可以向图1中所述的该指定终端(即,上述的存储终端)发送获取私钥的请求,并接收返回的该私钥。其中,该获取私钥的请求中可携带有该查询终端的设备标识以及该身份标识,以便该存储终端可根据该身份标识确定密钥对中的私钥,并通过该设备标识确定将该私钥返回该查询设备。另外,由于该身份标识对应的数据均存储在该身份标识对应的区块链中,所以在本申请中,该查询终端还可以根据该身份标识,通过该区块链存储节点,确定该身份标识对应的区块链,以便继续后续的数据查询操作。具体的,该查询终端可根据该身份标识,在该区块链存储节点中,查找与该身份标识对应的区块链,并确定该区块链,当然,若在该区块链存储节点中没有查找到与该身份标识对应的区块链时,则该查询终端可抛出错误,并显示查询错误的信息。s203:根据所述私钥,将所述区块链中的数据解密后进行查询。在本申请实施例中,当该查询终端确定该私钥后,便可根据确定的该身份标识对应的区块链以及该私钥,对数据进行查询。具体的,该查询终端可先从区块链存储节点中,确定该区块链中与该身份标识对应的各加密数据包,并根据各加密数据包存储的时间先后顺序(即,根据各加密数据包携带的时间戳的时间先后顺序),确定最近存储的加密数据包,作为与该身份标识对应的加密数据包,调取该身份标识对应的加密数据包后,根据该私钥,将该加密数据包进行解密,以得到该身份标识对应的所有数据,最后根据该数据查询指令对该所有数据进行数据查询。其中,由于该查询终端仅拥有该身份标识对应的私钥,使得该查询终端仅能对该身份标识对应的加密数据包进行解密,而无法加密,则该查询终端无法在对该身份标识对应的数据进行更新后,存储于该区块链中,保证了该区块链中存储数据的安全性。另外,该终端在从该区块链存储节点中,确定与该身份标识对应的各加密数据包时,可先确定该区块链中各数据块的生成时间,并从生成时间最晚的数据块中确定各加密数据包,即,确定该区块链中生成时间最晚的数据块中存储各加密数据包,并继续后续的操作。需要说明的是,本申请实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤s201和步骤s202的执行主体可以为设备1,步骤s203的执行主体可以为设备2;又比如,步骤s201的执行主体可以为设备1,步骤s202和步骤s203的执行主体可以为设备2;等等。基于图1所示的数据存储过程以及图2所示的数据查询过程,在本申请实施例中还对应提供一种数据存取的系统,如图3所示。图3为本申请实施例提供的数据存取系统的结构示意图,在该数据存取系统中包含:若干存储设备、若干查询设备以及若干区块链存储节点,其中:该区块链存储节点,用于存储身份标识对应的区块链;该存储设备(即,本申请实施例图1中所述的存储终端),确定数据存储指令,根据该数据存储指令中携带的身份标识,确定该身份标识对应区块链以及该身份标识对应的密钥对,根据该密钥对,将待存储数据存储在该区块链存储节点中与该身份标识对应的区块链中。该查询设备(即,本申请实施例图2中所述的查询终端),确定数据查询指令,根据该数据查询指令中携带的身份标识,确定该身份标识对应区块链以及该身份标识对应的私钥,通过该私钥解密该区块链节点中的数据,并进行查询。其中,当该数据存取系统中的任一存储设备,生成该身份标识对应的区块链时,生成该身份标识的该存储设备,可将该身份标识以及该身份标识对应的密钥对发送至指定的其他存储设备。并且,生成该身份标识的该存储设备可仅在一个区块链存储节点中生成该区块链,则该区块链存储节点,可向该数据存取系统中的其他区块链存储节点广播该区块链,以使得该数据存取系统中的所有区块链存储节点中的数据保持一致。另外,该数据查询设备在确定该身份标识对应的私钥时,可向任一该存储设备发送获取该私钥的请求,以获得该私钥,并进行后续的数据查询操作。进一步地,该数据存取系统中的不同存储设备中,预先存储的该身份标识对应的密钥对可以不完全相同,并且,不同的密钥对可用于对不同类型的数据进行加密。更进一步地,由于在该数据存取系统中,任一设备均可获得该身份标识对应的加密数据包,并且进行解密获取该身份标识对应的数据,所以为了保证该区块链中数据的安全性以及可信度,只有该存储设备(即,该联盟区块链指定的设备)可以对该身份标识对应的数据进行加密,所以在该数据存取系统中,该区块链存储节点中存储的加密数据才是可信的数据,于是,该数据查询设备以及该存储设备在通过该区块链存储节点获取该身份标识对应的数据是,可以仅获取该区块链存储节点中的加密数据包。另外,由于该数据存取系统中存在多个区块链存储节点,于是,为了方便存储数据的一致性,在各区块链存储节点中可以仅有一个区块链存储节点用于使各存储设备以及各数据查询设备进行访问,其他区块链存储节点可以是备用节点,并当该区块链存储节点无法正常工作时,选择任一的备用区块链存储节点继续工作,并通过任一的备用区块链存储节点恢复该无法正常工作的区块链存储节点。当然,如何启用该备用区块链存储节点,如何确定正在工作的区块链存储节点无法正常工作,可以根据实际应用时的情况由工作人员进行设置,本申请对此不做具体限定,并且,由于防止主设备停止工作时,业务无法正常执行,而使用备用设备接替住设备的技术方案已经相当成熟,所以本申请也就不再赘述。进一步地,在该数据存取系统中,该区块链存储节点与该存储设备可以是同一个,即,每一个区块链存储节点也是存储设备,或者当在该数据存取系统中,该区块链存储节点的数量与该存储设备的数量不一致时,全部区块链存储节点中的部分区块链存储节点也是存储设备,而剩余的区块链存储节点则仅是区块链存储节点,或者,全部存储设备中的部分存储设备也是区块链存储节点,而剩余的存储设备则仅是存储设备。通过本申请实施例图3提供的数据存取系统,可见,由于不同的存储设备可以对该身份标识对应的不同类型的数据进行存储,并且该身份标识对应的数据均存储与该身份标识对应的区块链中,并且,该区块链存储节点是任一数据查询设备均可访问并调用数据的,所以使得通过本申请的数据存取系统可以有效地避免由于数据存储在多台设备中导致的效率低,操作复杂的问题。另外,在本申请的另一实施例中,该身份标识可以是公民的身份证号,该存储设备可以是政府机关、政府单位等具有公信力的单位的数据存储设备,该数据查询设备可以是社会中任一需要进行数据查询的设备,如图4所示。则,在本申请中,该数据存取的可如图4所示。该区块链存储节点可以是由政府提供的数据存储节点,而与该公民身份证号相对应的所有数据则可以是该公民的档案数据、信用数据、银行账户数据等等,当然,任何与该公民相关的数据,均可以写入该公民身份证号对应的区块链中。进一步地,不同的政府机关、政府单位等具有公信力的单位的数据存储设备,可用于对该公民身份证好对应的区块链中的不同类型的数据进行存储操作,例如,公安局可对该公民的犯罪记录、户口信息等进行数据存储操作,而民政部门可对该公民的婚姻状况进行数据存储操作,银行可对该公民的账户数据、信用数据进行数据存储操作等等,具体的过程可如步骤s102以及图1中所述的通过不同的密钥对实现。更进一步地,该数据查询设备可以是该公民持有的设备,也可以是其他公私单位的数据查询设备,例如,签证审批部门,可以通过向上述政府机关、政府单位发送调用私钥的请求,获取与该公民的身份证对应的私钥,来查询该公民的信息,或者是用人单位,通过向上述政府机关、政府单位发送调用私钥的请求,获取与该公民的身份证对应的私钥,来查询该公民的信息等等。另外,在本申请的另一实施例中,该存储设备可以是多个具有联盟关系的公司或者单位分别对应的存储设备,例如,租车公司、银行、交通管理局等分别对应的存储设备,该查询设备可以是司机持有的终端或者交通警察持有的终端。则,由于该公民对应的所有数据均可存储于该区块链中,则无需建立特别的查询系统,而通过如图4所述的数据存取系统,可以方便对路上的车辆以及司机进行排查。基于图1所示的数据存储过程,本申请实施例还对应提供一种数据存储的装置,如图5所示。图5为本申请实施例提供的一种数据存储的装置的结构示意图,包括:第一确定模块301,确定数据存储指令,其中,所述数据存储指令中携带有身份标识和待存储数据;第二确定模块302,根据所述身份标识,确定所述身份标识对应的区块链以及所述身份标识对应的密钥对;存储模块303,根据所述密钥对,将所述待存储数据存储在所述区块链中。所述存储模块303,将所述待存储数据存储在所述区块链中生成时间最晚的数据块中。所述第二确定模块302,根据预先存储的所述身份标识、所述密钥对以及所述区块链的对应关系,判断区块链存储节点是否存在与所述身份标识对应的区块链,若是,则在区块链存储节点中,确定与所述身份标识对应的区块链以及与所述身份标识对应的密钥对,若否,则生成与所述身份标识对应的区块链以及与所述身份标识对应的密钥对。当所述第二确定模块302确定存在与所述身份标识对应的区块链时,所述存储模块303,从区块链存储节点中,调用所述区块链中与所述身份标识对应的加密数据包,通过所述密钥对的私钥,对所述加密数据包进行解密,获得所述加密数据包中与所述身份标识对应的所有数据,根据所述待存储数据更新所述加密数据包中与所述身份标识对应的所有数据,以获得更新数据,通过所述密钥对的公钥,对所述更新数据进行加密,作为更新加密数据包,为所述更新加密数据包添加时间戳,并存储在所述区块链中,将存储有所述更新加密数据包和时间戳的所述区块链存储到区块链存储节点中。当所述第二确定模块302确定存在与所述身份标识对应的区块链时,所述存储模块303,根据所述身份标识,生成所述身份标识对应的初始数据,根据所述待存储数据,更新所述初始数据,作为更新数据,生成所述身份标识对应的所述密钥对,并使用所述密钥对的公钥对所述更新数据进行加密,作为所述身份标识对应的加密数据包,生成所述身份标识对应的所述区块链,并将所述加密数据包存储在所述区块链中,将存储有所述更新加密数据包和时间戳的所述区块链存储到区块链存储节点中。所述第二确定模块302,将生成所述身份标识对应的所述密钥对以及所述身份标识发送至各预设的设备。具体的,上述如图5所示的数据存储的装置可以位于终端中,所述终端可以是手机、平板电脑等设备,或者该数据存储的装置可以位于服务器中,该服务器可以是单独的一台设备,或由多台设备组成的系统,即,分布式服务器。。基于图2所示的数据查询过程,本申请实施例还对应提供一种数据查询的装置,如图6所示。图6为本申请实施例提供的另一种数据查询的装置的结构示意图,包括:第一确定模块401,确定数据查询指令,其中,所述数据查询指令中携带有身份标识;第二确定模块402,根据所述身份标识,确定所述身份标识对应的区块链以及所述身份标识对应的私钥;查询模块403,根据所述私钥,将所述区块链中的数据解密后进行查询。所述第二确定模块402,根据所述预先存储的所述身份标识与所述密钥对的私钥的对应关系,确定所述私钥,或者根据所述身份标识向指定设备发送获取私钥请求,并接收返回的所述私钥。所述查询模块403,从区块链存储节点中,确定所述区块链中与所述身份标识对应的各加密数据包,根据各加密数据包存储的时间先后顺序,确定最近存储的加密数据包,作为与所述身份标识对应的加密数据包,根据所述私钥,将所述加密数据包进行解密后查询。具体的,上述如图6所示的数据查询的装置可以位于终端中,所述终端可以是手机、平板电脑等设备,或者该数据存储的装置可以位于服务器中,该服务器可以是单独的一台设备,或由多台设备组成的系统,即,分布式服务器。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1