一种基于联盟链的节点区块存储分配优化方法及系统
文献发布时间:2023-06-19 19:07:35
技术领域
本发明涉及区块链数据存储领域,更具体地,涉及一种基于联盟链的节点区块存储分配优化方法及系统。
背景技术
联盟区块链是由P2P网络、密码学、共识机制和智能合约等技术综合组成的一个分布式数据存储系统。区块链按照时间顺序将数据打包到区块,由区块组成链式结构,每个区块都有前一个块的时间戳和加密链接,以防止相关区块的内容被修改,具有不可篡改、可追溯、开放性与匿名性等特点。联盟区块链系统由多个节点构成,节点将为整个系统提供存储资源和算力支持。
在区块链技术的发展和应用过程中,面临着低吞吐率、难以扩展的问题,限制了区块链技术在真实场景的应用。存储可扩展性是限制联盟区块链应用落地的主要瓶颈之一。区块链因其高冗余存储,即每个节点存储一份完整的数据,每个节点都需要同步完整的最新账本,这给区块链系统带来了性能问题和巨大的存储压力。存储可扩展性与节点存储的区块数据量有关,如果没有足够的存储空间,节点将无法加入到区块链网络中作为全节点来验证新事务。因此,如何综合利用联盟区块链系统的各项资源,在有限的计算步骤内使联盟区块链的区块存储分配机制达到近似最优,降低区块链节点对于存储资源的依赖性是提高联盟区块链存储可扩展性的一大挑战。
发明内容
本发明针对现有技术中存在的技术问题,提供一种基于联盟链的节点区块存储分配优化方法及系统。
根据本发明的第一方面,提供了一种基于联盟链的节点区块存储分配优化方法,所述联盟链包括处于同一地理位置的多个节点组成的节点集群,所述方法包括:
确定需要存储于所述节点集群的活跃区块;
根据联盟区块链的存储资源要求和数据访问要求建立优化目标函数和约束条件;
基于遗传算法对优化目标函数进行求解,得到近似最优的节点集群的区块分配方案。
在上述技术方案的基础上,本发明还可以作出如下改进。
可选的,所述确定需要存储于所述节点集群的活跃区块,包括:
计算固定时间内节点集群中的每一个区块的查询频率参数和创建时间参数,根据每一个区块的查询频率参数和创建时间参数,确定需要存储于所述节点集群的活跃区块,将不活跃区块存储于云数据库中。
可选的,所述根据每一个区块的查询频率参数和创建时间参数,确定需要存储于所述节点集群的活跃区块,包括:
基于公式
基于公式
计算每一个区块的查询频率参数和创建时间参数之和f
可选的,所述根据联盟区块链的存储资源要求和数据访问要求建立优化目标函数和约束条件,包括:
基于节点集群内的区块访问成本项和存储平衡项,建立优化目标函数;
基于每个节点的存储资源、节点集群的存储空间使用率、区块的备份数量和区块的完整性,建立优化目标函数的约束条件。
可选的,所述基于节点集群内的区块访问成本项和存储平衡项,建立优化目标函数,包括:
所述基于每个节点的存储资源、节点集群的存储空间使用率、区块的备份数量和区块的完整性,建立优化目标函数的约束条件,包括:
其中,x
可选的,所述基于遗传算法对优化目标函数进行求解,得到近似最优的节点集群的区块分配方案,包括:
S1,按照最低备份数量要求
S2,初始解集中的分配方案依次作为父体,再从初始解集随机选择一个作为母体,随机选择m/2个区块作为交叉点,m为待分配区块总数量,交换父体和母体各节点在交叉点的存储状态,同时改变随机选择的一个节点的一个区块存储状态,得到两个新的子个体;
S3,验证新生成所有的子个体是否满足约束条件(2)-(5),将满足条件的子个体和原始个体组成新种群,计算新种群中所有个体的优化目标函数值和适应度函数,根据适应度函数按概率选择设定数量的个体作为新解集;
S4,基于新解集重复步骤S2和S3,直到循环次数满足条件或目标函数值在最近E代的变化量低于设定阈值,E为设定值,获取最终解集,为近似最优的节点集群的区块分配方案。
根据本发明的第二方面,提供一种基于联盟链的节点区块存储分配优化系统,所述联盟链包括处于同一地理位置的多个节点组成的节点集群,所述节点集群中包括一个主节点,负责区块共识和区块分配,所述主节点包括:
确定模块,用于确定需要存储于所述节点集群的活跃区块;
建立模块,用于根据联盟区块链的存储资源要求和数据访问要求建立优化目标函数和约束条件;
求解模块,用于基于遗传算法对优化目标函数进行求解,得到近似最优的节点集群的区块分配方案。
可选的,所述建立模块,用于根据联盟区块链的存储资源要求和数据访问要求建立优化目标函数和约束条件,包括:
基于节点集群内的区块访问成本项和存储平衡项,建立优化目标函数;
基于每个节点的存储资源、节点集群的存储空间使用率、区块的备份数量和区块的完整性,建立优化目标函数的约束条件。
根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机管理类程序时实现基于联盟链的节点区块存储分配优化方法的步骤。
根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现基于联盟链的节点区块存储分配优化方法的步骤。
本发明提供的一种基于联盟链的节点区块存储分配优化方法及系统,通过节点集群模式降低节点的区块存储冗余度,结合云数据库扩展节点集群的存储能力,缓解当区块数量增多时联盟区块链节点的存储压力,同时考虑节点集群中区块查询时延和节点存储空间使用率,为部分活跃区块提供更多的备份,通过遗传算法解决分配活跃区块到节点集群中各个节点的NP-Hard问题,在实现平衡节点存储空间使用率同时使系统整体区块查询区块时延最优。
附图说明
图1为本发明提供的一种基于联盟链的节点区块存储分配优化方法流程图;
图2为本发明提供的节点区块存储分配优化方法运行结果图;
图3为本发明提供的一种基于联盟链的节点区块存储分配优化系统的结构示意图;
图4为本发明提供的一种可能的电子设备的硬件结构示意图;
图5为本发明提供的一种可能的计算机可读存储介质的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,这种结合不受步骤先后次序和/或结构组成模式的约束,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
基于背景技术的缺陷,在联盟区块链节点存储空间有限的情况下,通过使节点组成节点集群,共同存储多副本区块,将访问频率低、生成时间早的不活跃区块转移至云数据库存储,提高联盟区块链的存储可扩展性;且考虑节点集群中的区块查询时延和节点存储平衡度,使用遗传算法对节点集群中节点需要存储的区块分配方案进行优化,提高联盟区块链系统的性能。
图1为本发明提供的一种基于联盟链的节点区块存储分配方法流程图,如图1所示,联盟链包括处于同一地理位置的多个节点组成的节点集群,所述方法包括:
S1,确定需要存储于所述节点集群的活跃区块。
可理解的是,本发明中的联盟链包括云数据库和节点集群,每个节点的存储空间是固定的,节点将存储所有的区块头以验证区块;区块的大小和具体存储的事务数量有关,区块大小不固定。随着区块链系统中的事务越来越多,单个节点将没有足够的存储资源保存从创世区块以来的所有区块。因此,由联盟区块链中处于同一地理位置范围内的不少于3个节点构成节点集群,由节点集群中的节点相互协作共同存储区块,联盟区块链的节点将被划分为多个节点集群。云数据库是具有丰富存储资源的远程服务器,将存储访问频率低以及创建时间很早的区块列为不活跃区块,并存储于云数据库,区块在云数据库中也存在多个备份。活跃区块将由节点集群共同存储和维护。节点集群中的节点相互共享信息,由其中一个主节点计算近似最优的区块分配方案。
在本发明中,结合云数据库和节点集群对所有的区块进行存储,其中,将不活跃区块存储于数据库中,将活跃区块存储于节点集群中。
其中,节点集群中的主节点计算固定时间内节点集群中的每一个区块的查询频率参数和创建时间参数,根据每一个区块的查询频率参数和创建时间参数,确定需要存储于所述节点集群的活跃区块,将不活跃区块存储于云数据库中。
具体的,基于公式
其中,在选择活跃区块时存储资源限定为
S2,根据联盟区块链的存储资源要求和数据访问要求建立优化目标函数和约束条件。
可理解的,上述步骤S1从所有的区块中筛选出需要存储于节点集群的活跃区块,存储分配方案为将活跃区块照备份数量、节点存储平衡度和区块访问时延要求分配给节点集群中的各个节点。
其中,所述根据联盟区块链的存储资源要求和数据访问要求建立优化目标函数和约束条件,包括:基于节点集群内的区块访问成本项和存储平衡项,建立优化目标函数;基于每个节点的存储资源、节点集群的存储空间使用率、区块的备份数量和区块的完整性,建立优化目标函数的约束条件。
可理解的是,本发明中建立的区块存储分配方案的优化目标函数和约束条件包括:
其中,x
公式(1)为优化目标函数,包括节点集群内的区块访问成本项
仿真实验模拟将130个区块体存储于10个节点集群,其中区块大小的平均值为8,满足正态分布,区块访问频率为[0,1],区块生成时间参数在区间(0,1];不同节点具有不同的存储能力,节点的存储能力在区间[200,700],节点集群存储资源总和为5300。节点之间的通信成本在[0,4]之间。需要将节点集群中区块总存储空间优化至60%内。
首先由主节点计算固定时间范围内节点集群中的区块查询频率、区块创建时间,根据节点集群的存储资源要求选择不活跃区块,并将节点集群中不活跃区块存储于云数据库。然后将剩余的活跃区块按照备份数量、节点存储平衡度和区块访问时延要求分配给节点集群中的各个节点,通过遗传算法求解得到最终近似最优分配方案。
S3,基于遗传算法对优化目标函数进行求解,得到近似最优的节点集群的区块分配方案。
可理解的是,步骤S2建立了资源分配过程中的优化目标函数和约束条件,采用遗传算法对优化目标函数进行求解,得到近似最优的区块分配方案。
遗传算法具体步骤包括:
S1,按照备份数量要求依次为每个区块挑选不少于3个节点作为存储该区块,验证生成的分配方案是否满足约束条件(2)-(5),若满足约束条件则作为一种可行分配方案。生成10种可行分配方案作为初始解集,即种群的个体数量为10。
可行解如下表1所示:
表1
S2,初始解集中的分配方案依次作为父体,从初始解集随机选择一个作为母体。对于每一个父体,随机选择m/2个区块作为交叉点,将父体和母体在交叉点的区块存储状态互换,同时随机选择一个节点的一个区块改变其存储状态,可以得到两个新的子个体。
S3,验证新的子个体是否满足约束条件(2)-(5),若满足条件则加入种群,反之则舍弃该个体。种群中包括原始个体和新加入种群的子代个体,个体数量大于等于10,计算种群中所有个体的优化目标值和适应度函数,根据适应度函数按概率选择选择其中10个个体作为新的解集。
S4,重复步骤S2和S3,直到循环次数满足条件或目标函数值在最近10代的变化量低于设定阈值,得到近似最优的区块存储分配方案。
得到近似最优的区块存储分配结果后,由主节点将分配结果转发到节点集群中各个节点,各节点调整存储在本节点区块,同时更新区块存储位置。
最终得到的分配方案如下表2所示:
表2
图2为基于联盟链的节点区块存储分配优化方法运行结果,其中横坐标为迭代次数,纵坐标为优化目标值。
图3为本发明实施例提供的一种基于联盟链的节点区块存储分配优化系统结构图,所述联盟链包括处于同一地理位置的多个节点组成的节点集群,所述节点集群中包括一个主节点,负责区块共识和区块分配,所述主节点包括:
确定模块31,用于确定需要存储于所述节点集群的活跃区块;
建立模块32,用于根据联盟区块链的存储资源要求和数据访问要求建立优化目标函数和约束条件;
求解模块33,用于基于遗传算法对优化目标函数进行求解,得到近似最优的节点集群的区块分配方案。
其中,所述建立模块32,用于根据联盟区块链的存储资源要求和数据访问要求建立优化目标函数和约束条件,包括:基于节点集群内的区块访问成本项和存储平衡项,建立优化目标函数;基于每个节点的存储资源、节点集群的存储空间使用率、区块的备份数量和区块的完整性,建立优化目标函数的约束条件。
可以理解的是,本发明提供的一种基于联盟链的节点区块存储分配系统与前述各实施例提供的基于联盟链的节点区块存储分配方法相对应,基于联盟链的节点区块存储分配系统的相关技术特征可参考基于联盟链的节点区块存储分配方法的相关技术特征,在此不再赘述。
请参阅图4,图4为本发明实施例提供的电子设备的实施例示意图。如图4所示,本发明实施例提了一种电子设备400,包括存储器410、处理器420及存储在存储器410上并可在处理器420上运行的计算机程序411,处理器420执行计算机程序411时实现基于联盟链的节点区块存储分配优化方法的步骤。
请参阅图5,图5为本发明提供的一种计算机可读存储介质的实施例示意图。如图5所示,本实施例提供了一种计算机可读存储介质500,其上存储有计算机程序511,该计算机程序511被处理器执行时实现基于联盟链的节点区块存储分配优化方法的步骤。
本发明实施例提供的一种基于联盟链的节点区块存储分配优化方法及系统,通过节点集群模式降低节点的区块存储冗余度,结合云数据库扩展节点集群的存储能力,缓解当区块数量增多时联盟区块链节点的存储压力,同时考虑节点集群中区块查询时延和节点存储空间使用率,为部分活跃区块提供更多的备份,通过遗传算法解决分配活跃区块到节点集群中各个节点的NP-Hard问题,在实现平衡节点存储空间使用率同时使系统整体区块查询区块时延最优。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
- 一种文件管理方法、系统及区块链节点设备和存储介质
- 一种供需匹配方法、系统及区块链节点设备和存储介质
- 区块链的数据存储方法、装置、区块链节点及存储介质
- 基于区块链的竞赛仲裁方法、系统、核心节点及存储介质
- 基于联盟区块链的多节点存储系统及方法
- 一种基于节点分组的联盟链区块存储方法