本发明属于大数据,具体涉及一种基于区块链的分布式数据存储方法及装置。
背景技术:
1、随着信息技术的发展,数据存储也需要更高的需求。分布式存储在性能方面具有其他存储方式无法比拟的优势,成为当今主流的数据存储方式,被若干大型数据中心采用。然而,数据存储节点不可避免地受到一些因素的影响而失效,导致存储数据丢失。
2、目前区块链技术因其具有去中心化和可追溯的特性,使得数据处理的安全性得到极大的提升,因而,被广泛应用,特别是在金融领域等。但是,在现有技术中,对于区块链节点的安全性导致数据不能有效存储,导致数据存储效率低下。
技术实现思路
1、有鉴于此,本发明的目的在于克服现有技术的不足,提供一种基于区块链的分布式数据存储方法及装置,以解决现有技术中数据存储安全性低的问题。
2、为实现以上目的,本发明采用如下技术方案:一种基于区块链的分布式数据存储方法,包括:
3、将原始数据拆分成多个数据块,并对每个数据块进行标识;
4、基于所述标识计算相应数据块的哈希值,并基于所述哈希值将多个所述数据块存储至区块链节点;
5、在需要获取原始数据时,从区块链节点中获取数据块,并根据哈希值对所述数据块进行汇总,得到原始数据。
6、进一步的,每个哈希值对应一个区块链节点。
7、进一步的,所述基于所述标识计算相应数据块的哈希值,并基于所述哈希值将多个所述数据块存储至区块链节点,包括:
8、对所有哈希值进行汇总,得到哈希值表;
9、根据哈希值表对多个所述数据块进行汇总,并存储至区块链中;
10、所述哈希值表还用于从区块链节点中获取数据块后进行汇总,得到原始数据。
11、进一步的,区块链节点定期对其存储的数据块进行备份,以及定期对存储的数据块进行核验,当确定存储的数据块有误时,将当前已存储的数据块恢复为上一次备份的数据块区。
12、进一步的,所述区块链节点内设有加密节点;
13、所述加密节点用于对接收的数据块进行加密。
14、进一步的,所述加密节点用于对接收的数据块进行加密,包括:
15、接收数据块的数据流,所述数据流由多个单元编码组成,根据所述单元编码组成生成原始数据流编码标签;
16、根据所述编码标签生成加密序列,将所述加密序列对数据块进行加密。
17、进一步的,根据加密序列生成解密序列,所述从区块链节点中获取数据块,包括:
18、利用所述解密序列对已存储数据块进行解密,得到数据流;
19、根据所述数据流确定相应数据块。
20、本申请实施例提供一种基于区块链的分布式数据存储装置,包括:
21、拆分模块,用于将原始数据拆分成多个数据块,并对每个数据块进行标识;
22、存储模块,用于基于所述标识计算相应数据块的哈希值,并基于所述哈希值将多个所述数据块存储至区块链节点;
23、汇总模块,用于在需要获取原始数据时,从区块链节点中获取数据块,并根据哈希值对所述数据块进行汇总,得到原始数据。
24、本申请实施例提供一种区块链节点,包括:
25、至少一个处理器,以及
26、与所述处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一实施例所述的分布式计算方法。
27、本申请实施例提供一种计算机介质,所述计算机介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述任一实施例所述的分布式计算方法。
28、本发明采用以上技术方案,能够达到的有益效果:
29、本申请提供的技术方案是将原始数据拆分成多个数据块,然后对每个数据块进行标识,基于标识计算相应数据块的哈希值,并基于所述哈希值将多个所述数据块存储至区块链节点,在需要获取原始数据时,从区块链节点中获取数据块,并根据哈希值对所述数据块进行汇总,得到原始数据。通过本申请提供的技术方案利用区块链节点存储数据,提供了防篡改机制,在数据存储和访问上也具有显著差异,进一步提高了数据存储和访问的安全性。
1.一种基于区块链的分布式数据存储方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,
3.根据权利要求2所述的方法,其特征在于,所述基于所述标识计算相应数据块的哈希值,并基于所述哈希值将多个所述数据块存储至区块链节点,包括:
4.根据权利要求2所述的方法,其特征在于,
5.根据权利要求1所述的方法,其特征在于,
6.根据权利要求5所述的方法,其特征在于,所述加密节点用于对接收的数据块进行加密,包括:
7.根据权利要求6所述的方法,其特征在于,根据加密序列生成解密序列,所述从区块链节点中获取数据块,包括:
8.一种基于区块链的分布式数据存储装置,其特征在于,包括:
9.一种区块链节点,其特征在于,包括:
10.一种计算机介质,其特征在于,所述计算机介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-7任一项所述的分布式计算方法。