一种应用于区块链的数据存储与获取方法及装置制造方法及图纸

技术编号:24683326 阅读:25 留言:0更新日期:2020-06-27 07:57
本发明专利技术公开了一种应用于区块链的数据存储与获取方法及装置,其中方法为:目标节点在区块数据共识成功之后,若确定所述目标节点不为存储所述区块数据中区块体数据的节点,则存储所述区块数据中的区块头数据但不存储所述区块数据中的区块体数据;所述目标节点为区块链网络中任一节点;所述区块数据包括所述区块体数据和所述区块头数据;其中,所述区块链网络中存储所述区块体数据的节点为所述区块链网络中的部分节点。

A data storage and acquisition method and device applied to blockchain

【技术实现步骤摘要】
一种应用于区块链的数据存储与获取方法及装置
本专利技术涉及区块链领域,尤其涉及一种应用于区块链的数据存储方法及装置。
技术介绍
由于区块链有不可篡改、一致等特性,区块链技术越来越多地应用在了各种领域。因此,区块链的存储读写性能对区块链应用服务质量至关重要。传统的区块链网络中,对于节点来说,每次新生成的区块都要存储在节点中,一旦区块链网络运行过久,节点中存储的区块数据量过大,进而导致整个区块链网络的存储读写性能较差,成为整个区块链网络运行性能的瓶颈。显然,区块链网络运行过久导致整个区块链网络的存储读写性能较差,是一个亟待解决的问题。
技术实现思路
本申请提供一种应用于区块链的数据存储方法及装置,解决了现有技术中区块链网络运行过久导致整个区块链网络的存储读写性能较差的问题。第一方面,本申请提供一种应用于区块链的数据存储方法,包括:目标节点在区块数据共识成功之后,若确定所述目标节点不为存储所述区块数据中区块体数据的节点,则存储所述区块数据中的区块头数据但不存储所述区块数据中的区块体数据;所述目标节点为区块链网络中任一节点;所述区块数据包括所述区块体数据和所述区块头数据;其中,所述区块链网络中存储所述区块体数据的节点为所述区块链网络中的部分节点。上述方法中,目标节点在区块数据共识成功之后,并不是直接将区块体数据和区块头数据全存在目标节点中,而是先确定所述目标节点是否为存储所述区块数据中区块体数据,若不为存储所述区块体数据的节点,便只存储所述区块数据中的所述区块头数据,从而不需要存储区块数据的所有数据,另外,由于所述区块链网络中存储所述区块体数据的节点为所述区块链网络中的部分节点,因此区块链网络中必然有节点不存储区块的区块体数据,从而降低了区块链网络的整体数据存储量,减缓了整个区块链网络的存储读写性能降低的速度。一种可选实施方式中,所述确定所述目标节点不为存储所述区块数据中区块体数据,包括:所述目标节点将所述区块数据的数据标识作为所述节点选择策略的输入,根据所述节点选择策略确定区块链网络中的存储所述区块体数据的节点集合;所述目标节点若确定所述目标节点不在所述节点集合中,则确定所述目标节点不为存储所述区块数据中区块体数据。上述方法中,所述目标节点将数据标识作为所述节点选择策略的输入,根据所述节点选择策略确定节点集合,进而在确定所述目标节点不在所述节点集合时,确定所述目标节点不为存储所述区块数据中区块体数据的节点,从而在不需要与外界进行数据交互的情况下,给出了一种确定区块链网络中的存储所述区块体数据的节点的方法。一种可选实施方式中,所述节点选择策略包括所述区块链网络中存储所述区块体数据的节点数目;所述节点数目的数目范围是由所述区块链网络的共识算法确定的;若所述共识算法为实用拜占庭容错PBFT共识算法,则所述数目范围是其中,M为所述区块链网络中节点总数目,表示下取整运算;或者,若所述共识算法为工作证明POW共识算法,则所述数目范围是上述方法中,在不同共识算法下,所述区块链网络中按一定节点数目以上的节点存储所述区块体数据,能够使得所述目标节点的节点集合中至少有一个节点存储的所述区块体数据是有效数据,在PBFT共识算法下,以上即范围内的节点存储所述区块体数据,保证在至少有一个节点存储的所述区块体数据是有效数据,在POW共识算法下,以上即范围内的节点存储所述区块体数据,保证在至少有一个节点存储的所述区块体数据是有效数据,因此不同共识算法下,在上述范围内的节点存储所述区块体数据,既能保证数据存储的正确性,又能节约数据的存储空间。一种可选实施方式中,若所述共识算法为PBFT共识算法,则所述节点数目为或者,若所述共识算法为POW共识算法,则所述节点数目为上述方式下,使得在不同共识算法下,保证数据存储的正确性的基础上,最大程度地节约数据的存储空间。一种可选实施方式中,所述节点选择策略为基于所述节点数目的一致性节点选择算法;所述目标节点将所述区块数据的数据标识作为所述节点选择策略的输入,根据所述节点选择策略确定区块链网络中的存储所述区块体数据的节点集合,包括:所述目标节点将所述数据标识作为所述一致性节点选择算法的输入,将按照所述一致性节点选择算法在所述区块链网络中选择的所述节点数目的节点,作为所述目标节点的节点集合;所述一致性节点选择算法在所述区块链网络中每个节点都执行,使得所述区块链网络中每个节点根据所述节点选择策略确定的节点集合均一致。上述方式下,所述节点选择策略为基于所述节点数目的一致性节点选择算法;由于所述一致性节点选择算法在所述区块链网络中每个节点都执行,使得所述区块链网络中每个节点根据所述节点选择策略确定的节点集合均一致,因此,能够保证区块链网络中区块存储数据在各节点中的存储信息统一。第二方面,本申请提供一种应用于区块链的数据获取方法,包括:目标节点获取查询请求;所述查询请求用于获取待查询区块;所述待查询区块数据包括区块体数据和区块头数据;所述目标节点若确定所述目标节点中未存储所述区块体数据,则确定所述区块链网络中存储所述区块体数据的节点;其中,所述区块链网络中存储所述区块体数据的节点为所述区块链网络中的部分节点;所述目标节点为区块链网络中任一节点;所述目标节点向所述区块链网络中存储所述区块体数据的节点发送获取请求,从而获取从所述节点返回的所述区块体数据。上述方法中,目标节点获取查询请求后,若确定所述目标节点中未存储所述区块体数据,则确定所述区块链网络中存储所述区块体数据的节点,并发送获取请求,从而获取从所述节点返回的所述区块体数据,因此提供了一种在所述区块链网络中只有部分节点存储所述区块体数据时的区块体数据获取方法。一种可选实施方式中,所述目标节点向所述区块链网络中存储所述区块体数据的节点发送获取请求之后,还包括:所述目标节点获取所述节点返回的待定区块体数据;所述目标节点根据所述待定区块体数据,确定待定区块头数据的哈希值;若所述目标节点确定所述待定区块头的哈希值与所述区块头数据的哈希值一致,则确定从所述节点获取返回的所述待定区块体数据为所述区块体数据,从而从所述节点获取返回的所述区块体数据。第三方面,本申请提供一种应用于区块链的数据存储装置,包括:确定模块,用于在区块数据共识成功之后,确定目标节点是否为存储所述区块数据中区块体数据的节点;存储模块,若所述确定模块确定所述目标节点不为存储所述区块数据中区块体数据的节点,则存储所述区块数据中的区块头数据但不存储所述区块数据中的区块体数据;所述目标节点为区块链网络中任一节点;所述区块数据包括所述区块体数据和所述区块头数据;其中,所述区块链网络中存储所述区块体数据的节点为所述区块链网络中的部分节点。一种可选实施方式中,所述确定模块具体用于:将所述区块数据的数据标识作为所述节点选择策略的输入,根据所述节点选择策略确定区块链网络中的存储所述区块体数据的节点集合;若确定所述目标节点不在所述节点集合中,则确定所述目标节点不为存储所述区块数据中区块体数据的节点。一种可选实施方式中,所述本文档来自技高网...

【技术保护点】
1.一种应用于区块链的数据存储方法,其特征在于,包括:/n目标节点在区块数据共识成功之后,若确定所述目标节点不为存储所述区块数据中区块体数据的节点,则存储所述区块数据中的区块头数据但不存储所述区块数据中的区块体数据;所述目标节点为区块链网络中任一节点;所述区块数据包括所述区块体数据和所述区块头数据;其中,所述区块链网络中存储所述区块体数据的节点为所述区块链网络中的部分节点。/n

【技术特征摘要】
1.一种应用于区块链的数据存储方法,其特征在于,包括:
目标节点在区块数据共识成功之后,若确定所述目标节点不为存储所述区块数据中区块体数据的节点,则存储所述区块数据中的区块头数据但不存储所述区块数据中的区块体数据;所述目标节点为区块链网络中任一节点;所述区块数据包括所述区块体数据和所述区块头数据;其中,所述区块链网络中存储所述区块体数据的节点为所述区块链网络中的部分节点。


2.如权利要求1所述的方法,其特征在于,所述确定所述目标节点不为存储所述区块数据中区块体数据,包括:
所述目标节点将所述区块数据的数据标识作为所述节点选择策略的输入,根据所述节点选择策略确定区块链网络中的存储所述区块体数据的节点集合;
所述目标节点若确定所述目标节点不在所述节点集合中,则确定所述目标节点不为存储所述区块数据中区块体数据的节点。


3.如权利要求2所述的方法,其特征在于,所述节点选择策略包括所述区块链网络中存储所述区块体数据的节点数目;所述节点数目的数目范围是由所述区块链网络的共识算法确定的;
若所述共识算法为实用拜占庭容错PBFT共识算法,则所述数目范围是其中,M为所述区块链网络中节点总数目,表示下取整运算;
或者,若所述共识算法为工作证明POW共识算法,则所述数目范围是


4.如权利要求3所述的方法,其特征在于,若所述共识算法为PBFT共识算法,则所述节点数目为或者,若所述共识算法为POW共识算法,则所述节点数目为


5.如权利要求3或4所述的方法,其特征在于,所述节点选择策略为基于所述节点数目的一致性节点选择算法;所述目标节点将所述区块数据的数据标识作为所述节点选择策略的输入,根据所述节点选择策略确定区块链网络中的存储所述区块体数据的节点集合,包括:
所述目标节点将所述数据标识作为所述一致性节点选择算法的输入,将按照所述一致性节点选择算法在所述区块链网络中选择的所述节点数目的节点,作为所述目标节点的节点集合;所述一致性节点选择算法在所述区块链网络中每个节点都执行,使得所述区块链网络中每个节点根据所述节点选择策略确定的节点集合均一致。


6.一种应用于区块链的数据获取方法,其特征在于,包括:
目标节点获取查询请求;所述查询请求用于获取待查询区...

【专利技术属性】
技术研发人员:郭洪昌吴锋海刘胜徐加明刘大双张生辉
申请(专利权)人:联动优势北京数字科技有限公司
类型:发明
国别省市:北京;11

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

1