数据存储方法、装置、设备及存储介质与流程

文档序号:23305959发布日期:2020-12-15 11:36阅读:80来源:国知局
数据存储方法、装置、设备及存储介质与流程

本发明涉及节点存储领域,尤其涉及一种数据存储方法、装置、设备及存储介质。



背景技术:

在区块链技术出现时,各种类型的区块链技术正在不断涌现。因为区块链技术内在的特征,各种交易记录需要50%以上的区块链确认后才能将交易记录存储至新的区块链。当公链过长时,就会影响数据存储速度,根据这缺点,目前已经出现了区块链技术的分支技术超级账本(hyperledgerfabric)技术。

但是,超级账本(hyperledgerfabric)技术仍然无法实现分立存储的情况,而传统的云存储方案可以实现分立存储,但是无法保证数据安全。目前存储技术实现的存储方式也不够灵活,无法根据需求灵活存储在区块链与云端数据库中,目前需要解决区块链技术无法分立存储和灵活存储的问题。



技术实现要素:

本发明的主要目的在于解决区块链技术无法同时实现分立存储和灵活存储的技术问题。

本发明第一方面提供了一种数据存储方法,包括步骤:

接收基于星际文件系统的数据存储请求,其中,所述数据存储请求包括:目标数据和所述目标数据对应的存储地址、存储参数、存储方式;

根据预置矩阵生成算法,解析所述存储方式和所述存储参数,生成数据加密矩阵;

访问所述存储地址并提取所述目标数据,以及根据所述数据加密矩阵,将所述目标数据写入所述存储方式对应的存储系统中,生成数据存储矩阵;

将所述数据存储矩阵写入基于超级账本协议的区块链系统中。

可选的,在本发明第一方面的第一种实现方式中,在所述接收基于星际文件系统的数据存储请求之前,还包括:

接收初始化数据请求,其中,所述初始化请求包括:客户端节点数、存储安全等级;

根据所述客户端节点数,设置预置星际文件系统中客户端访问的节点总数,并根据所述存储安全等级,设置所述星际文件系统中的数据备份数量;

当新增客户端访问时,分配匹配的私有密钥至所述新增客户端与所述星际文件系统中。

可选的,在本发明第一方面的第二种实现方式中,所述根据预置矩阵生成算法,解析所述存储方式和所述存储参数,生成数据加密矩阵包括:

读取所述存储方式对应的方式总数,并根据所述方式总数,构造出初始加密零矩阵;

根据所述存储参数,修改所述初始加密零矩阵中的元素,生成数据加密矩阵。

可选的,在本发明第一方面的第三种实现方式中,所述根据所述数据加密矩阵,将所述目标数据写入所述存储方式对应的存储系统中,生成数据存储矩阵包括:

根据所述数据加密矩阵,将所述目标数据写入所述存储方式对应的存储系统中,接收所有所述存储系统的反馈数据;

将所有所述反馈数据和所述数据加密矩阵进行组合处理,生成存储数据矩阵。

可选的,在本发明第一方面的第四种实现方式中,所述存储方式包括:星际文件系统存储、私有云系统存储、公有云系统存储,所述根据所述数据加密矩阵,将所述目标数据写入所述存储方式对应的存储系统中,接收所有所述存储系统的反馈数据包括:

当存储方式为所述星际文件系统存储时,接收所述星际文件系统反馈的哈希值;

当存储方式为所述私有云系统存储时,接收所述私有云系统反馈的私有云参考值;

当存储方式为所述公有云系统存储时,接收所述公有云系统反馈的公有云参考值。

可选的,在本发明第一方面的第五种实现方式中,在所述将所述数据存储矩阵写入基于超级账本协议的区块链系统中之后,还包括:

查询所述区块链系统中的存储记录,从所述存储记录中抓取出所述数据存储矩阵;

根据所述数据存储矩阵,从所述数据存储矩阵对应的存储系统中解析数据,得到目标数据。

可选的,在本发明第一方面的第六种实现方式中,所述根据所述数据存储矩阵,从所述数据存储矩阵对应的存储系统中解析数据,得到目标数据包括:

读取所述数据存储矩阵中同一元素的数据标签和加密参数,

根据所述数据标签,抓取所述同一元素对应存储系统中的存储数据,以及判断所述存储数据对应的加密参数是否设置为加密;

若设置为加密,则根据预置解密算法,对所述存储数据进行解密处理,得到目标数据;

若设置不为加密,则将所述存储数据确定为目标数据。

本发明第二方面提供了一种数据存储装置,包括:

接收模块,用于接收基于星际文件系统的数据存储请求,其中,所述数据存储请求包括:目标数据和所述目标数据对应的存储地址、存储参数、存储方式;

解析模块,用于根据预置矩阵生成算法,解析所述存储方式和所述存储参数,生成数据加密矩阵;

第一存储模块,用于访问所述存储地址并提取所述目标数据,以及根据所述数据加密矩阵,将所述目标数据写入所述存储方式对应的存储系统中,生成数据存储矩阵;

第二存储模块,用于将所述数据存储矩阵写入基于超级账本协议的区块链系统中。

本发明第三方面提供了一种数据存储设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据存储设备执行上述的数据存储方法。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的数据存储方法。

附图说明

图1为本发明实施例中数据存储方法的第一个实施例示意图;

图2为本发明实施例中数据存储方法的第二个实施例示意图;

图3为本发明实施例中数据存储方法的第三个实施例示意图;

图4为本发明实施例中数据存储装置的一个实施例示意图;

图5为本发明实施例中数据存储装置的另一个实施例示意图;

图6为本发明实施例中数据存储设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种数据存储方法、装置、设备及存储介质。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中数据存储方法的第一个实施例包括:

101、接收基于星际文件系统的数据存储请求,其中,数据存储请求包括:目标数据和目标数据对应的存储地址、存储参数、存储方式;

在本实施例中,星际文件系统(interplanetaryfilesystem)为分布式文件系统,数据存储请求的目标数据是存储在星际文件系统(interplanetaryfilesystem)中存储。在接收星际文件系统的数据存储请求,会读取数据存储的安全等级m,根据安全等级的平方m2生成备份数量。

102、根据预置矩阵生成算法,解析存储方式和存储参数,生成数据加密矩阵;

在本实施例中,读取存储方式的数量为n,则共有n个元素,并初始化这n个元素为0,即a1=a2=a3=a4=…=an=0。根据这个n种加密的情况,例如a1、a2、a3、a4等四个加密方式需要加密,则令a1=a2=a3=a4=1,得到数据加密矩阵为(1,1,1,1,0,0,…,0)。在另一个具体实施例中,系统中存在三种存储方式:ipfs、私有服务器、云存储平台。ipfs(interplanetaryfilesystem)系统需要加密,私有服务器无需加密,云存储需要加密,则该数据加密矩阵就为(1,0,1)。

103、访问存储地址并提取目标数据,以及根据数据加密矩阵,将目标数据写入存储方式对应的存储系统中,生成数据存储矩阵;

在本实施例中,数据加密矩阵就为(1,0,1),则数据以加密方式存储进ipfs(interplanetaryfilesystem)系统,则系统将数据通过加密模块进行加密,然后根据ipfs(interplanetaryfilesystem)系统确立的备份数(在上例中为9)存储进ipfs(interplanetaryfilesystem)系统,记录下ipfs(interplanetaryfilesystem)系统返回的哈希值;将数据原文存储进私有服务器,记录下数据在服务器中的位置;将数据通过加密模块存储进云存储平台,记录下数据存储的位置。三种存储方式将得到的ipfs(interplanetaryfilesystem)系统返回哈希值,私有服务返回的位置值以及云存储平台返回的位置值,构造数据存储矩阵如下:((dataid,ipfs,ipfs哈希值,1),(dataid,私有服务器,服务器返回参考值,0),(dataid,云存储平台,云存储平台返回参考值,1))。其中,数列中的1表示数据被加密存储,0表示数据明文(非加密)存储。

104、将数据存储矩阵写入基于超级账本协议的区块链系统中。

在本实施例中,将这三个数据存储矩阵((dataid,ipfs,ipfs哈希值,1),(dataid,私有服务器,服务器返回参考值,0),(dataid,云存储平台,云存储平台返回参考值,1)),写入到超级账本(hyperledgerfabric)技术的区块链系统的区块链上。如果需要读取数据,则需要先从超级账本(hyperledgerfabric)的区块链中读取数据存储矩阵,根据数据存储矩阵读取目标数据。

本发明实施例中,通过对星际文件系统(interplanetaryfilesystem)的存储数据进行调整,生成多系统的加密存储数据,并将多系统的数据存储矩阵写入到超级账本(hyperledgerfabric)区块链中,同时实现了区块链技术的分立存储和灵活存储,能更广泛的应用区块链存储技术。

请参阅图2,本发明实施例中数据存储方法的第二个实施例包括:

201、接收初始化数据请求,其中,初始化请求包括:客户端节点数、存储安全等级;

在本实施例中,初始化请求中ipfs(interplanetaryfilesystem)系统的连接终端数量即客户端节点数为50个,存储安全等级为8。

202、根据客户端节点数,设置预置星际文件系统中客户端访问的节点总数,并根据存储安全等级,设置星际文件系统中的数据备份数量;

在本实施例中,如果客户端访问的数量为59个,则根据客户端节点数为50个,需要阻挡9个客户端的访问。存储安全等级为8,则在星际文件系统(interplanetaryfilesystem)中数据备份数量为64。

203、当新增客户端访问时,分配匹配的私有密钥至新增客户端与星际文件系统中;

在本实施例中,获得新的客户端进行访问,则将客户端的物理ip地址与私有密钥进行组合匹配生成存储文件,存储在际文件系统(interplanetaryfilesystem)中,并将私有密钥发送给客户端,当需访问时,要进行密钥数据匹配,当匹配成功则进行数据传输。

204、接收基于星际文件系统的数据存储请求,其中,数据存储请求包括:目标数据和目标数据对应的存储地址、存储参数、存储方式;

本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。

205、读取存储方式对应的方式总数,并根据方式总数,构造出初始加密零矩阵;

在本实施例中,存储方式的方式总数为3,则根据方式总数3构造出1*3的加密零矩阵,即为(0,0,0)。

206、根据存储参数,修改初始加密零矩阵中的元素,生成数据加密矩阵;

在本实施例中,存储参数中ipfs(interplanetaryfilesystem)系统需要加密、私有服务器无需加密,云存储需要加密,则调整(0,0,0)的数据,得到数据加密矩阵(1,0,1)。

207、访问存储地址并提取目标数据;

本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。

208、存储方式包括:星际文件系统存储、私有云系统存储、公有云系统存储,当存储方式为星际文件系统存储时,接收星际文件系统反馈的哈希值;

在本实施例中,如果存储方式为ipfs(interplanetaryfilesystem)系统,则将目标数据存储在ipfs(interplanetaryfilesystem)系统后,得到返回的哈希值。

209、当存储方式为私有云系统存储时,接收私有云系统反馈的私有云参考值;

在本实施例中,如果存储方式为私有云系统,则将目标数据存储在私有云系统后,得到私有云系统反馈类似于{230s992}的私有云参考值。

210、当存储方式为公有云系统存储时,接收公有云系统反馈的公有云参考值;

在本实施例中,如果存储方式为私有云系统,则将目标数据存储在公有云系统后,得到公有云系统反馈类似于{xdad25.33:ff}的公有云参考值

211、将所有反馈数据和数据加密矩阵进行组合处理,生成存储数据矩阵;

在本实施例中,组合生成存储数据矩阵为((dataid,ipfs,ipfs哈希值,1),(dataid,私有服务器,服务器返回参考值,0),(dataid,云存储平台,云存储平台返回参考值,1))。

212、将数据存储矩阵写入基于超级账本协议的区块链系统中。

本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。

发明实施例中,通过对星际文件系统(interplanetaryfilesystem)的存储数据进行调整,生成多系统的加密存储数据,并将多系统的数据存储矩阵写入到超级账本(hyperledgerfabric)区块链中,同时实现了区块链技术的分立存储和灵活存储,能更广泛的应用区块链存储技术。

请参阅图3,本发明实施例中数据存储方法的第三个实施例包括:

301、接收基于星际文件系统的数据存储请求,其中,数据存储请求包括:目标数据和目标数据对应的存储地址、存储参数、存储方式;

本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。

302、根据预置矩阵生成算法,解析存储方式和存储参数,生成数据加密矩阵;

本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。

303、访问存储地址并提取目标数据,以及根据数据加密矩阵,将目标数据写入存储方式对应的存储系统中,生成数据存储矩阵;

本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。

304、将数据存储矩阵写入基于超级账本协议的区块链系统中;

本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。

305、查询区块链系统中的存储记录,从存储记录中抓取出数据存储矩阵;

在本实施例中,超级账本(hyperledgerfabric)协议的区块链系统的从存储记录列表中,根据数据存储矩阵的特征码{ddas2455}抓取出数据存储矩阵(dataid,ipfs,ipfs哈希值,1),(dataid,私有服务器,服务器返回参考值,0),(dataid,云存储平台,云存储平台返回参考值,1)。

306、读取数据存储矩阵中同一元素的数据标签和加密参数;

在本实施例中,读取(dataid,ipfs,ipfs哈希值,1)的数据标签为ipfs,加密参数为1,是加密的数据。

307、根据数据标签,抓取同一元素对应存储系统中的存储数据,以及判断存储数据对应的加密参数是否设置为加密;

在本实施例中,根据ipfs的数据标签抓取ipfs系统存储的数据,判断加密参数是否为1。

308、若设置为加密,则根据预置解密算法,对存储数据进行解密处理,得到目标数据;

在本实施例中,查询到ipfs系统存储的数据为加密数据,则调取预置的解密算法对加密数据进行解密,得到目标数据。

309、若设置不为加密,则将存储数据确定为目标数据。

在本实施例中,(dataid,私有服务器,服务器返回参考值,0)为私有云服务器储存的数据,且该数据并不加密,因此直接提取该数据作为目标数据。

发明实施例中,通过对星际文件系统(interplanetaryfilesystem)的存储数据进行调整,生成多系统的加密存储数据,并将多系统的数据存储矩阵写入到超级账本(hyperledgerfabric)区块链中,同时实现了区块链技术的分立存储和灵活存储,能更广泛的应用区块链存储技术。

上面对本发明实施例中数据存储方法进行了描述,下面对本发明实施例中数据存储装置进行描述,请参阅图4,本发明实施例中数据存储装置一个实施例包括:

接收模块401,用于接收基于星际文件系统的数据存储请求,其中,所述数据存储请求包括:目标数据和所述目标数据对应的存储地址、存储参数、存储方式;

解析模块402,用于根据预置矩阵生成算法,解析所述存储方式和所述存储参数,生成数据加密矩阵;

第一存储模块403,用于访问所述存储地址并提取所述目标数据,以及根据所述数据加密矩阵,将所述目标数据写入所述存储方式对应的存储系统中,生成数据存储矩阵;

第二存储模块404,用于将所述数据存储矩阵写入基于超级账本协议的区块链系统中。

发明实施例中,通过对星际文件系统(interplanetaryfilesystem)的存储数据进行调整,生成多系统的加密存储数据,并将多系统的数据存储矩阵写入到超级账本(hyperledgerfabric)区块链中,同时实现了区块链技术的分立存储和灵活存储,能更广泛的应用区块链存储技术。

请参阅图5,本发明实施例中数据存储装置的另一个实施例包括:

接收模块401,用于接收基于星际文件系统的数据存储请求,其中,所述数据存储请求包括:目标数据和所述目标数据对应的存储地址、存储参数、存储方式;

解析模块402,用于根据预置矩阵生成算法,解析所述存储方式和所述存储参数,生成数据加密矩阵;

第一存储模块403,用于访问所述存储地址并提取所述目标数据,以及根据所述数据加密矩阵,将所述目标数据写入所述存储方式对应的存储系统中,生成数据存储矩阵;

第二存储模块404,用于将所述数据存储矩阵写入基于超级账本协议的区块链系统中。

其中,所述数据存储装置还包括初始化模块405,所述初始化模块405,具体用于:

接收初始化数据请求,其中,所述初始化请求包括:节点总数、存储安全等级;

根据所述客户端节点数,设置预置星际文件系统中客户端访问的节点总数,并根据所述存储安全等级,设置所述星际文件系统中的数据备份数量;

当新增客户端访问时,分配匹配的私有密钥至所述新增客户端与所述星际文件系统中。

其中,所述解析模块402具体用于:

读取所述存储方式对应的方式总数,并根据所述方式总数,构造出初始加密零矩阵;

根据所述存储参数,修改所述初始加密零矩阵中的元素,生成数据加密矩阵。

其中,所述解第一存储模块403具体用于:

根据所述数据加密矩阵,将所述目标数据写入所述存储方式对应的存储系统中,接收所有所述存储系统的反馈数据;

将所有所述反馈数据和所述数据加密矩阵进行组合处理,生成存储数据矩阵。

其中,所述解第一存储模块403还可以具体用于:

当存储方式为所述星际文件系统存储时,接收所述星际文件系统反馈的哈希值;

当存储方式为所述私有云系统存储时,接收所述私有云系统反馈的私有云参考值;

当存储方式为所述公有云系统存储时,接收所述公有云系统反馈的公有云参考值。

其中,所述数据存储装置还包括提取模块406,所述提取模块406包括:

查询单元4061,用于查询所述区块链系统中的存储记录,从所述存储记录中抓取出所述数据存储矩阵;

解析单元4062,用于根据所述数据存储矩阵,从所述数据存储矩阵对应的存储系统中解析数据,得到目标数据。

其中,所述解析单元4062具体用于:

读取所述数据存储矩阵中同一元素的数据标签和加密参数,

根据所述数据标签,抓取所述同一元素对应存储系统中的存储数据,以及判断所述存储数据对应的加密参数是否设置为加密;

若设置为加密,则根据预置解密算法,对所述存储数据进行解密处理,得到目标数据;

若设置不为加密,则将所述存储数据确定为目标数据。

发明实施例中,通过对星际文件系统(interplanetaryfilesystem)的存储数据进行调整,生成多系统的加密存储数据,并将多系统的数据存储矩阵写入到超级账本(hyperledgerfabric)区块链中,同时实现了区块链技术的分立存储和灵活存储,能更广泛的应用区块链存储技术。

上面图4和图5从模块化功能实体的角度对本发明实施例中的数据存储装置进行详细描述,下面从硬件处理的角度对本发明实施例中数据存储设备进行详细描述。

图6是本发明实施例提供的一种数据存储设备的结构示意图,该数据存储设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据存储设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在数据存储设备600上执行存储介质630中的一系列指令操作。

基于数据存储设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如windowsserve,macosx,unix,linux,freebsd等等。本领域技术人员可以理解,图6示出的数据存储设备结构并不构成对基于数据存储设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述数据存储方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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