区块链数据存储方法、装置、设备及存储介质制造方法及图纸

技术编号:25707822 阅读:31 留言:0更新日期:2020-09-23 02:54
本发明专利技术实施例提供一种区块链数据存储方法、装置、设备及存储介质。本发明专利技术实施例的方法,在需要存储交易数据时,区块链节点不直接将交易数据存储在本地,而是将区块链数据存储到对应集群的数据节点上,区块链节点本地只需存储交易数据的散列值以及交易数据的散列值与存储节点的存储映射信息,通过交易数据的散列值可以唯一确定实际存储该交易数据的存储节点;区块链节点本身无需存储完整的交易数据,且集群数据节点的容量很大,且可以无限扩展,避免了区块链节点存储空间不够用的情况发生,并且每个区块链节点对应集群均存储区块链数据,可以避免中心化的风险,确保区块链数据的安全性。

【技术实现步骤摘要】
区块链数据存储方法、装置、设备及存储介质
本专利技术实施例涉及区块链
,尤其涉及一种区块链数据存储方法、装置、设备及存储介质。
技术介绍
随着区块链技术的发展,目前区块链技术已经应用越来越广泛。但随着存储数量的越来越多,账本越来越大。单节点的存储限制,已经成为区块链技术中一个非常大的问题。目前,一种区块链数据存储方案是:区块链节点存储所有的交易数据,当区块链节点空间不够无法继续存储时,通过磁盘扩容等方式扩充区块链节点的存储空间;但是,随着交易数据的增加,数据量终究会达到区块链节点的存储上限,导致单一区块链节点的磁盘无法处理。另一种区块链数据存储方案是:区块链节点不存储所有的交易数据,而是存储与当前用户有关的交易数据,或者只存储区块头数据。当一个区块链节点不再存储全量数据,而只是存储区块头数据或者部分交易数据时,为了保证数据的全量,势必有一些区块链节点作为全量节点存储全量数据,这些全量节点仍然会很容易出现存储空间不够的问题。另外,全量数据被少数的全量节点存储,不符合区块链的设计初衷,增加了中心化的风险,导致区块链数据存储的安全性低。
技术实现思路
本专利技术实施例提供一种区块链数据存储方法、装置、设备及存储介质,用以解决现有技术中区块链节点存储空间不够用,以及全量数据被少数的全量节点存储,增加了中心化的风险,导致区块链数据存储的安全性低的问题。本专利技术实施例的第一个方面是提供一种区块链数据存储方法,包括:区块链节点计算交易数据的散列值;所述区块链节点根据所述交易数据及其散列值,确定对应集群中的一个数据节点,作为所述交易数据的存储节点;所述区块链节点将所述交易数据及其散列值发送给所述存储节点,以使所述存储节点存储所述交易数据及其散列值;所述区块链节点存储所述交易数据的散列值、和所述散列值与所述存储节点的存储映射信息。本专利技术实施例的第二个方面是提供一种区块链数据存储方法,包括:数据节点接收区块链节点发送的交易数据及其散列值;所述数据节点根据所述散列值验证所述交易数据;若验证通过,则所述数据节点将所述交易数据与其散列值对应存储。本专利技术实施例的第三个方面是提供一种区块链数据存储装置,包括:散列值计算模块,用于区块链节点计算交易数据的散列值;存储节点匹配模块,用于所述区块链节点根据所述交易数据及其散列值,确定对应集群中的一个数据节点,作为所述交易数据的存储节点;通信模块,用于所述区块链节点将所述交易数据及其散列值发送给所述存储节点,以使所述存储节点存储所述交易数据及其散列值;存储模块,用于所述区块链节点存储所述交易数据的散列值、和所述散列值与所述存储节点的存储映射信息。本专利技术实施例的第四个方面是提供一种区块链数据存储装置,包括:通信模块,用于数据节点接收区块链节点发送的交易数据及其散列值;验证模块,用于所述数据节点根据所述散列值验证所述交易数据;存储模块,用于若验证通过,则所述数据节点将所述交易数据与其散列值对应存储。本专利技术实施例的第五个方面是提供一种区块链节点,包括:存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时实现上述第一个方面所述的方法。本专利技术实施例的第六个方面是提供一种数据节点,包括:存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时实现上述第二个方面所述的方法。本专利技术实施例的第七个方面是提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述第一个方面所述的方法。本专利技术实施例的第八个方面是提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述第二个方面所述的方法。本专利技术实施例提供的区块链数据存储方法、装置、设备及存储介质,本专利技术实施例提供的区块链数据存储方法,在需要存储交易数据时,区块链节点不直接将交易数据存储在本地,而是将区块链数据存储到对应集群的数据节点上,区块链节点本地只需存储交易数据的散列值以及交易数据的散列值与存储节点的存储映射信息,通过交易数据的散列值可以唯一确定实际存储该交易数据的存储节点;区块链节点本身无需存储完整的交易数据,且集群数据节点的容量很大,且可以无限扩展,避免了区块链节点存储空间不够用的情况发生,并且每个区块链节点对应集群均存储区块链数据,可以避免中心化的风险,确保区块链数据的安全性。附图说明图1为本专利技术实施例一提供的区块链数据存储方法流程图;图2为本专利技术实施例二提供的区块链数据存储方法流程图;图3为本专利技术实施例三提供的区块链数据存储方法的总体流程图;图4为本专利技术实施例四提供的另一区块链数据存储方法总体流程图;图5为本专利技术实施例五提供的区块链数据存储装置的结构示意图;图6为本专利技术实施例七提供的区块链数据存储装置的结构示意图;图7为本专利技术实施例九提供的区块链节点的结构示意图;图8为本专利技术实施例九提供的数据节点的结构示意图。通过上述附图,已示出本专利技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本专利技术实施例构思的范围,而是通过参考特定实施例为本领域技术人员说明本专利技术的概念。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术实施例的一些方面相一致的装置和方法的例子。首先对本专利技术实施例所涉及的名词进行解释:遍历(Traversal):是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。然遍历的概念也适合于多元素集合的情况,例如数组等。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本专利技术的实施例进行描述。实施例一图1为本专利技术实施例一提供的区块链数据存储方法流程图。本实施例中的方法应用于区块链节点,区块链节点对应一个包括多个数据节点的集群,该集群用于存储交易数据,区块链节点本地不存储完整的交易数据。如图1所示,该方法具体步骤如下:步骤S101、区块链节点计算交易数据的散列值。本实施例中,在需要存储交易数据时,区块链节点首先根据预先设定的安全散列算法(SecureHashAlgorithm,缩写为SHA)计本文档来自技高网...

【技术保护点】
1.一种区块链数据存储方法,其特征在于,包括:/n区块链节点计算交易数据的散列值;/n所述区块链节点根据所述交易数据及其散列值,确定对应集群中的一个数据节点,作为所述交易数据的存储节点;/n所述区块链节点将所述交易数据及其散列值发送给所述存储节点,以使所述存储节点存储所述交易数据及其散列值;/n所述区块链节点存储所述交易数据的散列值、和所述散列值与所述存储节点的存储映射信息。/n

【技术特征摘要】
1.一种区块链数据存储方法,其特征在于,包括:
区块链节点计算交易数据的散列值;
所述区块链节点根据所述交易数据及其散列值,确定对应集群中的一个数据节点,作为所述交易数据的存储节点;
所述区块链节点将所述交易数据及其散列值发送给所述存储节点,以使所述存储节点存储所述交易数据及其散列值;
所述区块链节点存储所述交易数据的散列值、和所述散列值与所述存储节点的存储映射信息。


2.根据权利要求1所述的方法,其特征在于,所述区块链节点根据所述交易数据及其散列值,确定对应集群中的一个数据节点,作为所述交易数据的存储节点,包括:
所述区块链节点根据所述散列值,查询对应集群中各数据节点的存储关系映射信息,确定所述散列值的匹配节点,以及所述散列值与所述匹配节点的匹配映射信息;
所述区块链节点向所述匹配节点发送存储权限请求,所述存储权限请求至少包括交易数据的大小和所述匹配映射信息,以使所述匹配节点验证是否满足存储条件,并反馈验证结果;
若验证结果为所述匹配节点满足存储条件,则所述区块链节点将所述匹配节点作为所述交易数据的存储节点。


3.根据权利要求2所述的方法,其特征在于,所述区块链节点向所述匹配节点发送存储权限请求,所述存储权限请求至少包括交易数据的大小,以使所述匹配节点验证是否满足存储条件,并反馈验证结果之后,还包括:
若验证结果为所述匹配节点不满足存储条件,则所述区块链节点依次将所述集群中其他数据节点作为目标节点,通过以下步骤判断所述目标节点是否满足所述存储条件:
步骤一、生成与所述目标节点匹配的虚拟映射信息,将所述虚拟映射信息作为所述散列值与所述目标节点的匹配映射信息;
步骤二、所述区块链节点向所述目标节点发送存储权限请求,所述存储权限请求至少包括交易数据的大小和所述虚拟映射信息,以使所述目标节点验证是否满足所述存储条件,并反馈验证结果;
步骤三、若所述目标节点反馈验证结果为所述目标节点不满足所述存储条件,则所述区块链节点将所述集群中的下一个数据节点作为新的目标节点,跳转执行上述步骤一;
步骤四、若所述目标节点反馈验证结果为所述目标节点满足所述存储条件,则所述区块链节点将所述目标节点作为所述存储节点,将所述虚拟映射信息作为所述散列值与所述存储节点的匹配映射信息。


4.根据权利要求1所述的方法,其特征在于,所述区块链节点将所述交易数据及其散列值发送给对应集群中的存储节点,以使所述存储节点存储所述交易数据及其散列值之后,还包括:
接收所述存储节点发送的存储成功消息;
在接收到所述存储节点发送的存储成功消息后,执行存储所述交易数据的散列值、和所述散列值与所述存储节点的存储映射信息的步骤。


5.根据权利要求1-4任一项所述的方法,其特征在于,所述区块链节点存储所述交易数据的散列值、和所述散列值与所述存储节点的存储映射信息之后,还包括:
所述区块链节点根据查询请求确定目标数据的散列值;
所述区块链节点获取所述目标数据的散列值与存储节点的存储映射信息,并确定所述目标数据的存储节点;
所述区块链节点向所述目标数据的存储节点发送获取数据请求,所述获取数据请求包括所述目标数据的散列值,以使所述目标数据的存储节点根据所述目标数据的散列值,将存储的所述目标数据发送给所述区块链节点;
所述区块链节点接收所述目标数据。


6.根据权利要求5所述的方法,其特征在于,所述区块链节点接收所述目标数据之后,还包括:
所述区块链节点根据所述目标数据的散列值,对接收到的目标数据进行验证;
对接收到的目标数据验证通过后,将所述目标数据发送给所述查询请求的请求设备。


7.一种区块链数据存储方法,其特征在于,包括:
数据节点接收区块链节点发送的交易数据及其散列值;
所述数据节点根据所述散列值验证所述交易数据;
若验证通过,则所述数据节点将所述交易数据与其散列值对应存储。


8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述数据节点接收所述区块链节点发送的存储权限请求,所述存储权限请求至少包括所述交易数据的大小,以及所述散列值与所述数据节点的匹配映射信息;
所述数据节点根据所述交易数据的大小,以及所述散列值与所述数据节点的匹配映射信息,验证自身是否满足存储条件,并向所述区块链节点反馈验证结果。


9.根据权利要求8所述的方法,其特征在于,所述数据节点根据所述交易数据的大小,以及所述散列值与所述数据节点的匹配映射信息,验证自身是否满足存储条件,包括:
所述数据节点根据自身的存储关系映射信息,验证所述匹配映射信息是否正确;
所述数据节点根据所述交易数据的大小,验证存储空间是否足够存储所述交易数据;
若所述匹配映射信息正确,且存储空间足够存储所述交易数据,则验证结果为满足所述存储条件;
若所述匹配映射信息不正确,或者存储空间不够存储所述交易数据,则验证结果为不满足所述存储条件。


10.根据权利要求7-9任一项所述的方法,其特征在于,若验证通过,则所述数据节点存储所述交易数据及其散列值之后,还包括:
所述数据节点向所述区块链节点发送存储成功消息。


11.根据权利要求7-9任一项所述的方法,其特征在于,所述若验证通过,则所述数据节点将所述交易数据与其散列值对应存储之后,还包括:
所述数据节点接收所述区块链节点发送的获取数据请求,所述获取数据请求包括目标数据的散列值;
所述数据节点获取已存储的与所述目标数据的散列值对应的交易数据;
所述数据节点根据所述目标数据的散列值,对获取到的交易数据进行验证;
若对获取到的交...

【专利技术属性】
技术研发人员:邵珠光孙海波张伟李宏旭李淑英
申请(专利权)人:北京沃东天骏信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1