基于DHT的区块链存储扩展方法、电子设备及存储介质技术

技术编号:33860110 阅读:20 留言:0更新日期:2022-06-18 10:49
本申请公开了一种基于DHT的区块链存储扩展方法、电子设备及存储介质,该方法包括:当目标节点集群收到新区块时,从新区块的区块头中得到新区块的哈希值;以新区块的哈希值作为新区块的区块ID;将区块ID值的最后预设数量位,分别与目标节点集群中各区块链节点的节点ID值的最后预设数量位进行末位最小异或运算,确定异或距离最小的目标区块链节点为存储新区块的存储位置;将新区块存储到目标区块链节点。本申请根据节点的ID值将区块链节点分为若干集群,每个节点集群存储一份完整的区块链数据,在新区块产生时,在集群中分配一个节点存储,减小了区块链节点的存储压力,降低区块链系统的存储消耗,同时不会影响区块链系统的去中心化特性。中心化特性。中心化特性。

【技术实现步骤摘要】
基于DHT的区块链存储扩展方法、电子设备及存储介质


[0001]本申请涉及区块链
,具体涉及一种基于DHT的区块链存储扩展方法、电子设备及存储介质。

技术介绍

[0002]目前区块链技术以其匿名、可追溯、不可篡改、去中心化等特性在金融、农产品流通、智能电网和工业互联网等领域有着广泛的应用前景与实用价值。区块链网络的去中心化特性依赖于特定的协议。
[0003]DHT(Distributed Hash Table)技术,中文名为分布式哈希表,是一种对分布式资源进行组织、管理与发现服务的技术。采用DHT技术的网络中每一个节点均负责一小部分路由和储存一部分数据,在没有中性化服务器场景中使用特定的查找机制在各节点接力协助下最终获取到特定的存储资源。相应地, DHT技术也可以将特定的资源通过某种映射机制存储的对应的网络节点上。 DHT技术有很多P2P协议实现,著名的有CAN,Chord,Pastry,Tapestry, Kademlia。
[0004]为了实现去中心化和防篡改的目的,区块链采取了在每个网络节点上都存储一份完整的区块链数据的存储策略,这种存储策略带来的优势是每个节点都可以很方便地对交易或新生成的区块进行独立验证,防止恶意节点对区块链数据进行篡改,然而随着区块链数据的急剧增长,这种存储策略的缺点日渐显现出来。
[0005]以比特币为例:比特币每秒平均交易不到3.5笔,即使按照这个速度,节点平均每天也需要消耗近160MB的存储空间,大约60GB/年。截至2021年5 月5日,比特币一共产生了683015个区块,平均区块大小为1.3MB,整个区块链大小已经超过300GB。为了达到最高的安全性和信任度,节点需要浪费超过300GB的存储空间来记录大量无关的交易数据,而整个区块链系统需要使用近9 000PB的空间来存储300GB的有效数据,而且随着区块和节点数量不断的增多,存储消耗将持续增加,因此解决区块链的存储问题日渐紧迫。
[0006]为了解决这个问题,需要一个与完整节点行为相同的方案,验证和中继事务,减少存储大小。有一些方案,比如像SPV(简单支付验证)这样的轻量级节点,以减少存储大小。然而,这些方案是轻量级节点依赖于完整节点,最终会削弱区块链的去中心化特性。

技术实现思路

[0007]本申请实施例提供一种基于DHT的区块链存储扩展方法、电子设备及存储介质,减小了区块链节点的存储压力,降低了区块链系统的存储消耗,同时不会影响区块链系统的去中心化特性。
[0008]一方面,本申请提供一种基于DHT的区块链存储扩展方法,应用于区块链系统,所述区块链系统中包括多个区块链节点,所述多个区块链节点分为若干节点集群,每个节点集群存储一份完整的区块链数据,所述基于DHT的区块链存储扩展方法包括:
[0009]当目标节点集群收到新区块时,从所述新区块的区块头中得到新区块的哈希值;
[0010]以所述新区块的哈希值作为所述新区块的区块ID,所述区块ID以二进制数表示;
[0011]将所述区块ID值的最后预设数量位,分别与所述目标节点集群中各区块链节点的节点ID值的最后预设数量位进行末位最小异或运算,确定异或距离最小的目标区块链节点为存储所述新区块的存储位置;
[0012]将所述新区块存储到所述目标区块链节点。
[0013]在本申请一些实施方案中,在当目标节点集群收到新区块时,从所述新区块的区块头中得到新区块的哈希值之前,所述方法还包括:
[0014]将所述多个区块链节点划分为若干节点集群。
[0015]在本申请一些实施方案中,所述多个区块链节点采用Kademlia树的方式组织,每个区块链节点都设有对应唯一的节点ID,每个区块链节点的节点ID遵循 Kademlia协议,每个区块链节点在Kademlia协议树上的位置是基于区块链节点的节点ID得到的,每个区块链的节点ID是基于预设的节点标识信息得到的,区块链节点的节点ID以二进制数表示。
[0016]在本申请一些实施方案中,所述方法还包括:
[0017]当目标节点集群收到新区块链节点的加入请求时,获取所述新区块链节点的节点标识信息;
[0018]基于所述节点标识信息,确定所述新区块链节点的节点ID;
[0019]按照Kademlia协议,在Kademlia协议树上确定所述新区块链节点在所述目标节点集群中的节点位置;
[0020]基于所述节点位置,在所述目标节点集群中加入所述新区块链节点。
[0021]在本申请一些实施方案中,在所述将所述新区块存储到所述目标区块链节点之后,所述方法还包括:
[0022]在所述目标区块链节点的前后确定所述新区块的若干备份节点;
[0023]在所述若干备份节点分别存储所述新区块,以对所述新区块进行备份。
[0024]在本申请一些实施方案中,所述方法还包括:
[0025]检测所述目标节点集群中各区块链节点的存储压力是否达到预设阈值;
[0026]若是,将所述目标节点集群与所述目标节点集群的相邻节点集群,进行合并重组,得到合并节点集群。
[0027]在本申请一些实施方案中,所述将所述目标节点集群与所述目标节点集群的相邻节点集群,进行合并重组,得到合并节点集群,包括:
[0028]将所述目标节点集群与所述目标节点集群的相邻节点集群中的节点合并成一个更大集群,得到合并节点集群;
[0029]对所述合并节点集群中各区块链节点中保存的同样区块数据进行去重。
[0030]另一方面,本申请提供一种DHT的区块链存储扩展装置,应用于区块链系统,所述区块链系统中包括多个区块链节点,所述多个区块链节点分为若干节点集群,每个节点集群存储一份完整的区块链数据,所述基于DHT的区块链存储扩展装置包括:
[0031]获取模块,用于当目标节点集群收到新区块时,从所述新区块的区块头中得到新区块的哈希值,以所述新区块的哈希值作为所述新区块的区块ID,所述区块ID以二进制数表示;
[0032]确定模块,用于将所述区块ID值的最后预设数量位,分别与所述目标节点集群中
各区块链节点的节点ID值的最后预设数量位进行末位最小异或运算,确定异或距离最小的目标区块链节点为存储所述新区块的存储位置;
[0033]存储模块,用于将所述新区块存储到所述目标区块链节点。
[0034]在本申请一些实施方案中,所述装置还包括集群划分模块,所述集群划分模块具体用于:
[0035]在当目标节点集群收到新区块时,从所述新区块的区块头中得到新区块的哈希值之前,将所述多个区块链节点划分为若干节点集群。
[0036]在本申请一些实施方案中,所述多个区块链节点采用Kademlia树的方式组织,每个区块链节点都设有对应唯一的节点ID,每个区块链节点的节点ID遵循 Kademlia协议,每个区块链节点在Kademlia协议树上的位置是基于区块链节点的节点ID得到的,每个区块链的节点ID是本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于DHT的区块链存储扩展方法,其特征在于,应用于区块链系统,所述区块链系统中包括多个区块链节点,所述多个区块链节点分为若干节点集群,每个节点集群存储一份完整的区块链数据,所述基于DHT的区块链存储扩展方法包括:当目标节点集群收到新区块时,从所述新区块的区块头中得到新区块的哈希值;以所述新区块的哈希值作为所述新区块的区块ID,所述区块ID以二进制数表示;将所述区块ID值的最后预设数量位,分别与所述目标节点集群中各区块链节点的节点ID值的最后预设数量位进行末位最小异或运算,确定异或距离最小的目标区块链节点为存储所述新区块的存储位置;将所述新区块存储到所述目标区块链节点。2.根据权利要求1所述的基于DHT的区块链存储扩展方法,其特征在于,在当目标节点集群收到新区块时,从所述新区块的区块头中得到新区块的哈希值之前,所述方法还包括:将所述多个区块链节点划分为若干节点集群。3.根据权利要求2所述的基于DHT的区块链存储扩展方法,其特征在于,所述多个区块链节点采用Kademlia树的方式组织,每个区块链节点都设有对应唯一的节点ID,每个区块链节点的节点ID遵循Kademlia协议,每个区块链节点在Kademlia协议树上的位置是基于区块链节点的节点ID得到的,每个区块链的节点ID是基于预设的节点标识信息得到的,区块链节点的节点ID以二进制数表示。4.根据权利要求3所述的基于DHT的区块链存储扩展方法,其特征在于,所述方法还包括:当目标节点集群收到新区块链节点的加入请求时,获取所述新区块链节点的节点标识信息;基于所述节点标识信息,确定所述新区块链节点的节点ID;按照Kademlia协议,在Kademlia协议树上确定所述新区块链节点在所述目标节点集群中的节点位置;基于所述节点位置,在所述目标节点集群中加入所述新区块链节点。5.根据权利要求1所述的基于DHT的区块链存储扩展方法,其特征在于,在所述将所述新区块存储到所述目标区块链节点之后,所述方法还包括:在所述目标区块链节点的前后确...

【专利技术属性】
技术研发人员:李志平刘红炎陈剑聂凡杰张波
申请(专利权)人:中国信息通信研究院
类型:发明
国别省市:

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

1