一种区块链存储容量优化方法及系统技术方案

技术编号:28429955 阅读:23 留言:0更新日期:2021-05-11 18:39
本发明专利技术提供一种区块链存储容量优化方法及系统,涉及区块链技术领域,包括预设区块链网络的分片数N;将散列函数的值域对应分片数N平均划分为N个区间;对区块链网络中所有节点的公钥均进行散列函数计算,得到散列值;根据散列值将所有节点对应分配到不同分片;各分片内运行片内共识机制选取锚节点加入区块链网络的主链;将区块链账本以区块为单位分割成多个区块;各分片内锚节点均将每个区块分发给多个节点进行存储。本发明专利技术通过将区块链的全体节点划分为若干个独立自治的分片,使位于同一分片内的全体节点共同存储完整区块链账本的若干数量的副本,降低区块链系统对单节点存储能力的需求,进而实现区块链存储容量的优化。

【技术实现步骤摘要】
一种区块链存储容量优化方法及系统
本专利技术涉及区块链
,尤其是涉及一种区块链存储容量优化方法及系统。
技术介绍
在传统的区块链技术中,加入区块链网络的每一个节点都需要存储区块链账本的完整副本。这种设计虽然保证了区块链账本存储的去中心化和健壮性,但由于内容相同的、完整的区块链账本必须在所有节点上被重复地存储,一方面对每个区块链节点的存储能力提出了较高的要求,另一方面也造成了存储上较高的冗余度和存储空间的浪费。因此,需要设计对区块链系统存储容量进行优化,在保证安全性的前提下,降低区块链系统账本存储的冗余度和对节点存储能力的要求。现有的区块链系统存储容量优化方法,一种采用副本分配策略,将区块链账本的副本分块存储在节点上,并由POR链记录账本副本的存储位置;另一种采用账本修剪策略,将待删除的区块链的信息写入参数区块,使用参数区块形成的优化链对区块链进行修剪。这些方法多引入了POR链、优化链等额外的数据结构,不仅增大了区块链系统架构的复杂性,也削弱了区块链账本的安全性和可信度。针对上述区块链系统账本存储容量优化的需求以及现有区块链存储容量优化方法的不足,本专利技术提出了一种基于网络分片和账本分割的区块链存储容量优化方法,在保证区块链账本安全可信的前提下,降低区块链系统对单节点存储能力的需求,减小区块链账本存储所消耗的空间,实现区块链存储容量的优化。
技术实现思路
针对上述问题,本专利技术提出了一种区块链存储容量优化方法及系统,对区块链的全体节点划分为若干个独立自治分片,使位于同一分片内的全体节点共同存储完整区块链账本的若干数量的副本,降低区块链系统对单节点存储能力的需求,实现区块链存储容量的优化。为实现上述目的,本专利技术提供了一种区块链存储容量优化方法,包括:预设区块链网络的分片数N;将散列函数的值域对应所述分片数N平均划分为N个区间;对所述区块链网络中所有节点的公钥均进行散列函数计算,得到散列值;根据散列值所属的所述区间,将所有所述节点对应分配到不同分片;各所述分片内运行片内共识机制选取锚节点加入区块链网络的主链;将区块链账本以区块为单位分割成多个区块;各所述分片内锚节点均将每个所述区块分发给多个节点进行存储。作为本专利技术的进一步改进,初始状态下,各分片内首个被分配来的节点作为当前分片的锚节点;区块链运行过程中,分片内以共识轮为周期运行共识机制选举出新的锚节点代替原锚节点。作为本专利技术的进一步改进,区块链采用了Bootnode节点发现机制,在所述节点中选择一个Bootnode节点记录散列函数的值域的各区间对应的分片;Bootnode节点根据节点的散列值,将节点分配到对应的分片。作为本专利技术的进一步改进,各分片内均根据改进的一致性哈希算法,将每个区块分发给多个节点进行存储,实现分片内区块链账本的分布式存储。作为本专利技术的进一步改进,所述分片内对新旧区块的存储节点数进行动态控制,越新的区块存储的节点数越多。本专利技术还提供了一种基于如上所述区块链存储容量优化方法的系统,包括主链,所述主链包括多个分片,每个所述分片包括一个锚节点和多个节点,所有锚节点中包括一个记账节点;所述主链,用于:运行主链共识机制,在所有所述锚节点中选举出一个记账节点;支持区块链的上层DApp应用;所述记账节点,用于:将各锚节点提交的分片内的交易信息,打包成主链新区块;将主链新区块广播给各锚节点;所述分片,用于:运行片内共识机制,选举锚节点;将区块链账本分割成多个区块;所述锚节点,用于:将每个所述区块分发给多个节点进行存储;汇总分片内各节点发起的区块链交易信息,提交记账节点;接收记账节点广播的主链新区块及新的主链区块头信息,广播新的主链区块头信息给所有节点,并将主链新区块分配给多个节点进行存储;所述节点,用于:共同维护分片内共识机制;每个节点存储主链区块头信息和一个区块,同一分片内所有节点共同存储整个区块链账本;读取区块内数据;发起区块链交易,并发送锚节点。作为本专利技术的进一步改进,多个所述分片相互独立,各分片内多个节点也相互独立。作为本专利技术的进一步改进,所述锚节点将主链新区块分配给多个节点进行存储,包括:根据改进的一致性哈希算法确定分片内存储该主链新区块的节点的起始编号;对应分片内对新区块的存储节点数,将主链新区块分发给从所述起始编号起的多个节点存储。作为本专利技术的进一步改进,所述主链区块头信息包括该区块的哈希值;所述节点发起区块链交易时通过所述区块头信息查询分片内保存所需区块的节点。作为本专利技术的进一步改进,所述保存所需区块的节点有多个;所述节点向存储所需区块的起始节点发送请求信息;若起始节点存储了该区块,则起始节点向发送请求的节点返回该区块信息;若起始节点未返回该区块信息,则向起始节点的后一节点发送请求信息,直至查询成功。与现有技术相比,本专利技术的有益效果为:本专利技术通过将区块链的全体节点划分为若干个独立自治的分片,使位于同一分片内的全体节点共同存储完整区块链账本的若干数量的副本,降低区块链系统对单节点存储能力的需求;每个分片通过独立的共识机制选举锚节点,被选出的锚节点将代表该分片加入到主链中,向主链提交分片内的交易内容并参与主链的共识,保证区块链账本安全可信,进而实现区块链存储容量的优化。本专利技术中区块链采用了Bootnode节点发现机制,对于新加入的节点进行分片操作,使区块链操作更加完善;本专利技术根据区块链账本中的历史交易时间记录被查询的频次不同,使用一致性哈希算法对区块保存副本数进行改进,使得容易被频繁查询的较新交易记录的区块存储副本书更多,进一步优化了区块链账本的存储效率。本专利技术相较于传统区块链存储方法,通过对区块链节点进行分片、对区块链账本进行分割,降低了对节点的存储要求,使得更多低存储能力的节点能够加入安全可信的区块链网络,有效拓宽了区块链的应用场景,具有广阔的应用前景。附图说明图1为本专利技术一种实施例公开的区块链存储容量优化方法流程图;图2为本专利技术一种实施例公开的区块链存储容量优化系统示意图;图3为本专利技术一种实施例公开的新的节点加入区块链网络流程图;图4为本专利技术一种实施例公开的区块链内节点发生交易时,区块链完整运行流程图;图5为本专利技术一种实施例公开的区块链内节点发生交易时,节点处理流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属本文档来自技高网...

【技术保护点】
1.一种区块链存储容量优化方法,其特征在于,包括:/n预设区块链网络的分片数N;/n将散列函数的值域对应所述分片数N平均划分为N个区间;/n对所述区块链网络中所有节点的公钥均进行散列函数计算,得到散列值;/n根据散列值所属的所述区间,将所有所述节点对应分配到不同分片;/n各所述分片内运行片内共识机制选取锚节点加入区块链网络的主链;/n将区块链账本以区块为单位分割成多个区块;/n各所述分片内锚节点均将每个所述区块分发给多个节点进行存储。/n

【技术特征摘要】
1.一种区块链存储容量优化方法,其特征在于,包括:
预设区块链网络的分片数N;
将散列函数的值域对应所述分片数N平均划分为N个区间;
对所述区块链网络中所有节点的公钥均进行散列函数计算,得到散列值;
根据散列值所属的所述区间,将所有所述节点对应分配到不同分片;
各所述分片内运行片内共识机制选取锚节点加入区块链网络的主链;
将区块链账本以区块为单位分割成多个区块;
各所述分片内锚节点均将每个所述区块分发给多个节点进行存储。


2.根据权利要求1所述的优化方法,其特征在于:
初始状态下,各分片内首个被分配来的节点作为当前分片的锚节点;
区块链运行过程中,分片内以共识轮为周期运行共识机制选举出新的锚节点代替原锚节点。


3.根据权利要求1所述的优化方法,其特征在于:
采用了Bootnode节点发现机制,在所述节点中选择一个Bootnode节点记录散列函数的值域的各区间对应的分片;
Bootnode节点根据节点的散列值,将节点分配到对应的分片。


4.根据权利要求1所述的优化方法,其特征在于:各分片内均根据改进的一致性哈希算法,将每个区块分发给多个节点进行存储,实现分片内区块链账本的分布式存储。


5.根据权利要求1所述的优化方法,其特征在于:所述分片内对新旧区块的存储节点数进行动态控制,越新的区块存储的节点数越多。


6.一种基于权利要求1~5所述的区块链存储容量优化方法的系统,其特征在于,包括主链,所述主链包括多个分片,每个所述分片包括一个锚节点和多个节点,所有锚节点中包括一个记账节点;
所述主链,用于:
运行主链共识机制,在所有所述锚节点中选举出一个记账节点;
支持区块链的上层DApp应用;

【专利技术属性】
技术研发人员:何泾沙宋洪宇朱娜斐薛瑞昕王雅静杜伟东
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京;11

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

1