【技术实现步骤摘要】
区块链数据存储方法、装置、设备及存储介质
本专利技术实施例涉及区块链
,尤其涉及一种区块链数据存储方法、装置、设备及存储介质。
技术介绍
随着区块链技术的发展,目前区块链技术已经应用越来越广泛。但随着存储数量的越来越多,账本越来越大。单节点的存储限制,已经成为区块链技术中一个非常大的问题。目前,一种区块链数据存储方案是:区块链节点存储所有的交易数据,当区块链节点空间不够无法继续存储时,通过磁盘扩容等方式扩充区块链节点的存储空间;但是,随着交易数据的增加,数据量终究会达到区块链节点的存储上限,导致单一区块链节点的磁盘无法处理。另一种区块链数据存储方案是:区块链节点不存储所有的交易数据,而是存储与当前用户有关的交易数据,或者只存储区块头数据。当一个区块链节点不再存储全量数据,而只是存储区块头数据或者部分交易数据时,为了保证数据的全量,势必有一些区块链节点作为全量节点存储全量数据,这些全量节点仍然会很容易出现存储空间不够的问题。另外,全量数据被少数的全量节点存储,不符合区块链的设计初衷,增加了中心化的风险,导致区块链数据存储的安全性低。
技术实现思路
本专利技术实施例提供一种区块链数据存储方法、装置、设备及存储介质,用以解决现有技术中区块链节点存储空间不够用,以及全量数据被少数的全量节点存储,增加了中心化的风险,导致区块链数据存储的安全性低的问题。本专利技术实施例的第一个方面是提供一种区块链数据存储方法,包括:区块链节点计算交易数据的散列值;所述区块链节点根 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。