CN113934374A - 一种基于遗传算法的区块链多副本分配和存储方法 - Google Patents
一种基于遗传算法的区块链多副本分配和存储方法 Download PDFInfo
- Publication number
- CN113934374A CN113934374A CN202111193595.3A CN202111193595A CN113934374A CN 113934374 A CN113934374 A CN 113934374A CN 202111193595 A CN202111193595 A CN 202111193595A CN 113934374 A CN113934374 A CN 113934374A
- Authority
- CN
- China
- Prior art keywords
- block
- node
- storage
- allocation
- scheme
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000002068 genetic effect Effects 0.000 title claims abstract description 35
- 230000007246 mechanism Effects 0.000 claims abstract description 27
- 238000012216 screening Methods 0.000 claims abstract description 26
- 230000035772 mutation Effects 0.000 claims abstract description 13
- 238000005457 optimization Methods 0.000 claims abstract description 8
- 210000000349 chromosome Anatomy 0.000 claims description 68
- 238000004891 communication Methods 0.000 claims description 40
- 108090000623 proteins and genes Proteins 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 238000012795 verification Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 6
- 238000013467 fragmentation Methods 0.000 description 6
- 238000006062 fragmentation reaction Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Genetics & Genomics (AREA)
- Physiology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开的一种基于遗传算法的区块链多副本分配和存储方法,属于区块链系统技术领域。本发明实现方法为:通过对区块使用多副本机制进行分配和存储,降低区块链中新节点加入的存储空间要求门槛,使得整体区块链系统所需的存储空间减少;且使用基于遗传算法的多副本分配和存储优化算法,在多重资源约束的条件下,为区块链上的所有区块生成最优的分配与存储位置;通过设置精英制度和基于存储节点筛选表的交叉算子和突变算子,遗传算法得到近似最优的分配和存储方案,生成分配方案后由对应的节点负责实际的存储工作,从而降低区块链系统的整体能源损耗;区块链系统会定期地根据全局状态使用遗传优化算法调整区块的分配位置,能够有效提升区块链中区块查询事件的效率。
Description
技术领域
本发明涉及一种基于遗传算法的区块链多副本分配和存储方法,属于区块链系统技术领域。
背景技术
区块链账本具有防篡改的特性,因此区块链账本中存储的数据无法被修改和删除,后续的区块只能逐渐被添加进区块链账本中。然而全副本机制,即每个节点均需存储完整的区块链账本,为节点带来极大的存储空间负担,提高了区块链系统中节点的准入门槛。这种存储问题在联盟链中更突出,因为联盟链通常采用吞吐量较高的实用拜占庭容错协议,生成区块的速度更快,对节点的存储空间要求更高。为了改善区块链系统的可拓展性,从技术实现的角度分为以下几种:闪电网络,侧链技术,分片技术和多副本机制。
闪电网络的核心思想是建立交易方的微支付渠道,将小额的交易与大额交易分开。闪电网络允许两个节点在链上锁定一笔钱开启一个支付通道,然后双方可以在链下,即不用通过将交易传输上链的方式进行快速的即时确认的交易,只要每方交易的总额都小于这个锁定的数值。该技术的优势在于大大降低了手续费和确认时间,其缺陷是通道存在上限,可能会暴露用户的比特币钱包资金状况。
侧链技术的核心思想是由一组验证者,把一条链的最新状态提交给一个主链上的智能合约。这些最新状态的检查点可被桥接合约使用,以支持用户的存款和取款。主链和侧链之间的资产转移必须是原子操作,即要么全发生,要么不发生。该技术的优势在于可以让用户访问大量的新型服务,意味着比特币可以在其他区块链上流通,其缺陷是侧链需要有足够的算力或者其他机制保证侧链的可靠和安全。
分片技术是为了解决以太坊扩容问题而提出的技术方案。区块链分片技术是指将原本的单条区块链进行二次拓展,从而突破单个节点的计算能力限制。分片技术的核心思想是将状态、历史、交易分为多个分区,即分片。状态分片是指某个分片内的交易仅限于该分片的状态。历史分片是指每个分片具有自己的交易历史。交易分片是指不同分片负责存储区块链账本的不同部分,但分片内的节点共同维护分片所拥有的账本。分片技术的优势在于有效提升区块链系统的拓展性,其缺陷是跨分片的交易安全性无法得到有效保障。
多副本机制的核心思想是每个区块仅拥有多个副本,而不是和节点数量等同的副本个数。因此,每个节点仅需存储整个区块链账本中的部分数据,可以有效地降低节点的存储负担,从而提高区块链系统的拓展性。然而多副本机制至少存在以下两个关键性挑战。第一是如何根据当前区块链系统的全局状态,如节点之间的通信代价,每个区块在各个节点的查询频率,区块的大小,节点的存储空间余量,来综合考虑生成当前状态下的最佳区块分配方案。第二是寻找最佳区块分配方案是个计算困难问题,在区块数量和节点数量都呈指数增长时,如何在可接受的时间内生成近似解是一大挑战。
发明内容
本发明公开的一种基于遗传算法的区块链多副本分配和存储方法主要解决的技术问题是:通过对区块使用多副本机制进行分配和存储,降低区块链中新节点加入的存储空间要求门槛,使得整体区块链系统所需的存储空间减少;且使用基于遗传算法的多副本分配和存储优化算法,在多重资源约束的条件下,为区块链上的所有区块生成最优的分配与存储位置;通过设置精英制度和基于存储节点筛选表的交叉算子和突变算子,遗传算法得到近似最优的分配和存储方案,生成分配方案后由对应的节点负责实际的存储工作,从而降低区块链系统的整体能源损耗;区块链系统会定期地根据全局状态使用遗传优化算法调整区块的分配位置,能够有效提升区块链中区块查询事件的效率。
为了达到上述目的,本发明采取如下技术方案。
本发明公开的一种基于遗传算法的区块链多副本分配和存储方法,依托如下定义:
定义1:区块链账本,指用于存储区块数据的基础设施,本质上是集合了点对点传输、共识机制、密码算法的分布式数据库;
定义2:通道,指由共识节点划分和管理的私有广播域,目的是对通道内的信息进行隔离,从而保证交易的隐私性;
定义3:共识节点,是指每个通道的实际管理者,该节点负责对从其他节点收集而来的交易进行共识,形成一致性排序,并将若干笔交易打包成区块发送给领导者节点;
定义4:领导者节点,是指每个组织中通过强制设置或者动态选举的方式产生的管理者,该节点负责将接受到的批量区块发送给组织内的其他节点;
定义5:跟随者节点,是指每个组织中除领导者节点之外的其他节点,该节点负责将区块存储进本地账本中,以供区块查询和验证使用;
定义6:客户端,是指可向任意跟随者节点发起交易提案或者查询区块请求的终端设备;
定义7:区块缓存器,是指每个跟随者节点用于存储最近被查询区块的存储设备,若区块存储在区块缓存器中,跟随者节点可将该区块直接返回至客户端;
定义8:多副本机制,是指区别与传统区块链系统中的全副本机制的一种存储机制,每个区块仅需被区块链系统中的若干个跟随者节点存储。
本发明公开的一种基于遗传算法的区块链多副本分配和存储方法,包括如下步骤:
步骤一:通过对区块使用多副本机制进行分配和存储,建立多副本机制区块链系统分配和存储模型,降低区块链中新节点加入的存储空间要求门槛,使得整体区块链系统所需的存储空间减少。
首先确定区块分配问题中的目标函数,将整个区块链系统内的通信代价设置为目标函数。区块分配问题的最终目的是在多资源约束的条件下得到一个使得总通信代价最小的区块分配和存储方案,目标函数如下所示:
式中,x为区块分配节点向量,y为区块分配集合向量,Q(x,y)为计算整个区块链系统内的通信代价的函数;m为区块的数量,n为节点的数量,r为每个区块的副本个数,K为节点组成大小为r的集合数量;i表示第i个区块,j表示第j个节点,Nk表示第k个集合;pik表示第i个区块被分配到第k个集合时的通信代价;xij的取值仅为0和1,等于1表示第i个区块被分配到第j个节点上,等于0表示不分配;n″表示第k个集合中的节点,n′表示系统内除了n″外的所有节点;cn′n″表示节点n′和n″之间的通信代价,fin′表示第i个区块在第n′个节点上的查询频率,sin′表示第i个区块在第n′个节点上存储所占用的空间。
此外,生成的节点分配和存储方案需要满足以下约束条件。
区块分配约束:xij仅能取布尔值,即0或1。且每个区块分配到r个不重复的节点上。
集合约束:每个区块仅能被分配到一个大小为r的集合上。
存储空间约束:每个节点所存储的区块总大小不超过自身的存储空间上限。
步骤二:基于遗传算法对步骤一建立的多副本机制区块链系统分配和存储模型进行优化,为区块链上的所有区块生成近似最优的分配与存储位置;通过设置精英制度和基于存储节点筛选表的交叉算子和突变算子,遗传算法得到近似最优的分配和存储方案,生成方案后由对应的节点负责实际的存储工作,从而降低区块链系统的总通信代价。
步骤2.1:随机生成初始种群。初始种群由P条染色体组成。每条染色体代表一种区块分配和存储方案,用一个r×m的分配和存储矩阵表示。矩阵中的每一行由m个基因组成。每个基因代表一个区块的分配和存储位置,其取值范围为0到n-1。首先随机为各个节点生成分配和存储位置,并用染色体的方式表示。若生成的方案不满足步骤一中的约束条件,则重复随机选取的步骤,直至满足约束条件为止。
步骤2.2:根据步骤一中定义的计算总通信代价函数Q(x,y)为每条染色体计算其适应度。适应度越小表示该分配和存储方案越好,在步骤2.3中被选中的概率越高。反之,代表生成的分配和存储方案越差,被选中的概率越低。此外,根据适应度值从低到高将染色体排序,前E条染色体设置为精英群体,紧接着的P-E条染色体设置为普通群体,剩余染色体则被淘汰。
步骤2.3:使用Roulette Wheel Selection算法分别从精英群体和普通群体中随机选择一条染色体a和b进行交叉运算。首先根据所有节点的最新存储余量状态生成存储节点筛选表。然后将染色体a作为父染色体,对其上的m个基因依次以预设的概率pc进行选择并传递给后代染色体o1。根据被选中的基因代表的区块分配位置减去存储节点筛选表中的对应节点的存储空间,剩余容量大于0的节点即为筛选成功的节点,其余节点为筛选失败被淘汰。染色体b上剩余的基因将被分配到筛选成功的节点上。交换染色体a和b的角色,按照以上步骤生成另外一条后代染色体o2,并将染色体o1和o2加入下一代的种群中。通过本发明公开的方法能够避免重复的交叉运算,避免陷入无法生成正确的区块分配和存储方案的困境,从而提高区块分配和存储方案的生成效率。
步骤2.4:随机选中当前普通种群里中的一条染色体p1,再随机选中染色体p1中的一个基因m1。根据该染色体代表的存储和分配方案生成步骤2.2中所述的存储节点筛选表,并在表中第(m1的值)项减去该基因代表的第m1个区块所需的存储空间。剩余容量大于0的节点即为可被突变选中的节点,从这些节点中选择一个节点作为第m1个区块的分配位置。通过使用存储节点筛选表,保证突变运算仅需被运行一次,从而提高区块分配和存储方案的生成效率。
步骤2.5:重复步骤2.2至2.4,直至满足以下两个条件的其中一个为止。条件一:循环次数到达预设的最大迭代代数maxIter;条件二:最佳存储和分配方案经过Q代没有变化,即每一代种群中的最佳方案的适应度值差值在10-4内。
步骤2.6:根据上述步骤得到的区块最佳分配和存储方案,将每个基因代表的区块分配到相应的节点上进行存储,使得整个区块链系统的总查询代价最小。
步骤三:在基于遗传算法对步骤一建立的多副本机制区块链系统分配和存储模型进行优化过程中,区块链系统定期地根据全局状态使用遗传优化算法调整区块的分配位置,能够有效提升区块链中区块查询事件的效率。
查询事件的具体执行流程如下:
步骤3.1:客户端向任一跟随者节点发起查询区块b1的请求,假设该跟随者节点为n1。
步骤3.2:若跟随者节点n1的本地账本或区块缓存器中存储了区块b1的副本,则节点n1直接将区块b1返回至客户端。且区块b1在节点n1上的查询频率相应增加,在下一轮中将影响区块b1的分布。
步骤3.3:若跟随者节点n1的本地账本和区块缓存器中都没有存储区块b1,则节点n1通过查询区块存储表找到r个存储位置,再从这r个位置中选择与节点n1的通信代价最小的节点n2,节点n1从节点n2的本地账本中拉取区块b1缓存至区块缓存器中并将区块返回至客户端。当下一次客户端再次向节点n1发起区块b1的查询请求时,节点n1可直接返回区块b1至客户端。且区块b1在节点n1上的查询频率相应增加,在下一轮中将影响区块b1的分布。
为了提高生成更优的区块分配和存储方案的成功率,作为优选,步骤2.2中实行精英制度,即将部分父种群中适应度高的染色体作为父种群的精英直接添加进子种群中,能够确保在每代父种群中表现较好的染色体及其基因可被传递至下一代的种群,从而提高生成更优的区块分配和存储方案的成功率。
为了提高区块分配和存储方案的生成效率,作为优选,步骤2.3和2.4中使用存储节点筛选表,即根据区块链系统中的各节点的存储空间余量以及不需改变的基因生成存储节点筛选表,剩余容量大于0的节点即为可被交叉运算或突变运算选中的节点。通过该方法,能够确保一次成功生成符合步骤一中约束条件的区块分配和存储方案,从而提高区块分配和存储方案的生成效率。
为了进一步降低区块分配和存储方案的总通信代价,作为优选,步骤3中采用区块缓存器,即将每次从其他节点拉取而来的区块缓存至区块区块缓存器中,区块缓存器的读写效率比内存的读写效率高,因此当下一次客户端仍向该节点请求该区块时,节点可直接从区块缓存器中返回该区块至客户端,该查询区块事件的通信代价为0,从而进一步降低区块分配和存储方案的总通信代价。
有益效果:
1.本发明公开的一种基于遗传算法的区块链多副本分配和存储方法,通过对区块使用多副本机制进行分配和存储,降低区块链系统中新节点加入所需的存储空间空间门槛,使得整个区块链系统所需的存储空间减少,降低存储冗余,以相同的容量可以容纳更多数量的区块。
2.本发明公开的一种基于遗传算法的区块链多副本分配和存储方法,通过基于遗传算法的多副本分配和存储优化算法,在多重资源约束的条件下,为区块链上的所有区块生成最优的分配与存储位置。随着区块数量或者节点数量的线性增长,解决该问题的时间复杂度呈指数级增长,因此欲解决的问题属于一个NP困难问题,无法在多项式时间内得到最优解。本发明使用遗传算法寻找最优的区块分配和存储方案,相对比贪心算法和离散粒子群算法,能有效避免陷入局部最优解,总是在全局的范围内寻找方案,迭代速度更快,更具有随机性,获得近似最优解的概率更高。
3.本发明公开的一种基于遗传算法的区块链多副本分配和存储方法,通过使用基于存储节点筛选表的交叉算子和突变算子,能够保证一次直接成功生成符合步骤一中约束条件的区块分配和存储方案,避免不必要的重复运算,从而提高区块分配和存储方案的生成效率。且通过该方法可以缩小近似最优解的搜索空间,提高获得近似最优解的概率。
附图说明
图1为本发明的步骤二中所使用的遗传算法流程图。
图2为本发明的步骤三中区块查询事件的示意图。
具体实施方式
为了更好的说明本发明的目的和优点,下面结合附图和实例对发明内容做进一步说明。
实施例1:
本实施例公开一种基于遗传算法的区块链多副本分配和存储方法,用例中包含了待分配的10个区块和可选的10个节点。每个区块的大小设置为均匀分布,均为1MB,每个节点的存储空间设置为5MB。若使用全副本机制,整个区块链系统总共需要100MB的存储空间,而使用r=3的多副本机制,仅需占用30MB的空间,节省了70%的存储空间。节点之间的通信代价如下表1所示,取值范围为0到99,单位为MB/s,若为0表示两个节点之间不存在直接的通信线路。区块在各节点的查询频率如下表2所示,取值范围为0到99,单位为次/天。为了方便显示,最终计算出的总通信代价均除以10000。
表1节点间通信代价表
节点0 | 节点1 | 节点2 | 节点3 | 节点4 | 节点5 | 节点6 | 节点7 | 节点8 | 节点9 | |
节点0 | 0 | 83 | 16 | 90 | 97 | 41 | 49 | 0 | 32 | 19 |
节点1 | 83 | 0 | 35 | 84 | 10 | 21 | 41 | 12 | 0 | 6 |
节点2 | 16 | 35 | 0 | 60 | 28 | 42 | 81 | 94 | 93 | 5 |
节点3 | 90 | 84 | 60 | 0 | 45 | 39 | 3 | 12 | 72 | 8 |
节点4 | 97 | 10 | 28 | 45 | 0 | 76 | 27 | 37 | 8 | 79 |
节点5 | 41 | 21 | 42 | 39 | 76 | 0 | 76 | 31 | 21 | 61 |
节点6 | 49 | 41 | 81 | 3 | 27 | 76 | 0 | 51 | 41 | 52 |
节点7 | 0 | 12 | 94 | 12 | 37 | 31 | 51 | 0 | 90 | 37 |
节点8 | 32 | 0 | 93 | 72 | 8 | 21 | 41 | 90 | 0 | 12 |
节点9 | 19 | 6 | 5 | 8 | 79 | 61 | 52 | 37 | 12 | 0 |
表2区块查询频率表
如图1所示,本实施例公开一种基于遗传算法的区块链多副本分配和存储方法,具体实现步骤如下:
步骤一:首先确定区块分配问题中的目标函数,将整个区块链系统内的通信代价设置为目标函数。区块分配问题的最终目的是在多资源约束的条件下得到一个使得总通信代价最小的区块分配和存储方案,目标函数如下所示:
式中,x为区块分配节点向量,y为区块分配集合向量,Q(x,y)为计算整个区块链系统内的通信代价的函数;m为区块的数量,n为节点的数量,r为每个区块的副本个数,K为节点组成大小为r的集合数量;i表示第i个区块,j表示第j个节点,Nk表示第k个集合;pik表示第i个区块被分配到第k个集合时的通信代价;xij的取值仅为0和1,等于1表示第i个区块被分配到第j个节点上,等于0表示不分配;n″表示第k个集合中的节点,n′表示系统内除了n″外的所有节点;cn′n″表示节点n′和n″之间的通信代价,fin′表示第i个区块在第n′个节点上的查询频率,sin′表示第i个区块在第n′个节点上存储所占用的空间。
此外,生成的节点分配和存储方案需要满足以下约束条件。
区块分配约束:xij仅能取布尔值,即0或1。且每个区块分配到r个不重复的节点上。
集合约束:每个区块仅能被分配到一个大小为r的集合上。
存储空间约束:每个节点所存储的区块总大小不超过自身的存储空间上限。
步骤二:用于优化区块分配和存储方案的遗传算法流程图如图1所示。
步骤2.1:随机生成初始种群。初始种群由50条染色体组成。每条染色体代表一种区块分配和存储方案,用一个3×10的分配和存储矩阵表示。矩阵中的每一行由10个基因组成。每个基因代表一个区块的分配和存储位置,其取值范围为0到9。首先随机为各个节点生成分配和存储位置,并用染色体的方式表示。若生成的方案不满足步骤一中的约束条件,则重复随机选取的步骤,直至满足约束条件为止。
生成的第一代初始种群中的最佳分配和存储方案如下表3所示。
表3初始种群最佳分配和存储方案
表3中代表的分配和存储方案所需的总通信代价为3.96s。
步骤2.2:根据步骤一中定义的计算总通信代价函数Q(x,y)为每条染色体计算其适应度。适应度越小表示该分配和存储方案越好,在步骤2.3中被选中的概率越高。反之,代表生成的分配和存储方案越差,被选中的概率越低。此外,根据适应度值从低到高将染色体排序,前15条染色体设置为精英群体,紧接着的35条染色体设置为普通群体,剩余染色体则被淘汰。
步骤2.3:使用Roulette Wheel Selection算法分别从精英群体和普通群体中随机选择一条染色体a和b进行交叉运算。假设染色体a所代表的方案如表4所示,染色体b所代表的方案如表5所示。
表4染色体a
表5染色体b
由染色体a和染色体b代表的分配和存储方案可得初始的存储节点筛选表,如下表6所示。
表6初始存储节点筛选表
假设染色体a和染色b中灰色阴影所代表的基因均被选中,此时区块j仍未选择分配方案,则由最新的存储节点筛选表7可知无法直接从染色体b中直接继承区块j的分配方案,因为节点1的剩余容量为0,筛选失败。而节点0,4,5,6,7,8,9均为筛选成功的节点,可从其中随机选择3个作为区块j的分配方案。
表7更新后的存储节点筛选表
最后,交换染色体a和b的角色,按照以上步骤生成另外一条后代染色体。
步骤2.4:随机选中当前普通种群里中的一条染色体,再随机选中该染色体p1中的一个基因m1。根据该染色体代表的存储和分配方案生成步骤2.2中所述的存储节点筛选表,并在表中第(m1的值)项减去该基因代表的第m1个区块的存储体积。剩余容量大于0的节点即为可被突变选中的节点,从这些节点中选择一个节点作为第m1个区块的分配位置。通过使用存储节点筛选表,可以保证突变运算仅需被运行一次,从而提高区块分配和存储方案的生成效率。
步骤2.5:重复步骤2.2至2.4,直至满足以下两个条件的其中一个为止。条件一:循环次数到达预设的最大迭代代数500;条件二:最佳存储和分配方案经过100代没有变化,即每一代种群中的最佳方案的适应度值差值在10-4内。
步骤2.6:根据上述步骤得到的区块最佳分配和存储方案,将每个基因代表的区块分配到相应的节点上进行存储,使得整个区块链系统的总查询代价最小。
最后生成的最佳分配和存储方案如下表8所示,其总通信代价为3.22s,相比第一代生成的方案优化了18.7%,相比使用离散粒子群优化算法减少了18%的通信代价,相比使用贪心算法减少了3.6%的通信代价。相比使用全副本机制,节省了70%的存储空间。
表8最佳分配和存储方案
区块a | 区块b | 区块c | 区块d | 区块e | 区块f | 区块g | 区块h | 区块1 | 区块j | |
副本1 | 9 | 9 | 2 | 9 | 5 | 1 | 1 | 3 | 5 | 1 |
副本2 | 3 | 0 | 4 | 5 | 9 | 0 | 0 | 4 | 6 | 5 |
副本3 | 7 | 7 | 3 | 4 | 0 | 6 | 3 | 2 | 0 | 7 |
步骤三:在基于遗传算法对步骤一建立的多副本机制区块链系统分配和存储模型进行优化过程中,区块链系统定期地根据全局状态使用遗传优化算法调整区块的分配位置,能够有效提升区块链中区块查询事件的效率。查询事件的具体执行流程如下所示,并结合图2说明:
步骤3.1:客户端向任一跟随者节点发起查询区块b1的请求,假设该跟随者节点为n1。
步骤3.2:若跟随者节点n1的本地账本或区块缓存器中存储了区块b1的副本,则节点n1直接将区块b1返回至客户端。且区块b1在节点n1上的查询频率相应增加,在下一轮中将影响区块b1的分布。
步骤3.3:若跟随者节点n1的本地账本和区块缓存器中都没有存储区块b1,则节点n1查询区块存储表找到3个存储位置,再从这3个位置中选择与节点n1的通信代价最小的节点n2,节点n1从节点n2的本地账本中拉取区块b1缓存至区块缓存器中并将区块返回至客户端。当下一次客户端再次向节点n1发起区块b1的查询请求时,节点n1可直接返回区块b1至客户端。且区块b1在节点n1上的查询频率相应增加,在下一轮中将影响区块b1的分布。
以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明的保护范围。
Claims (7)
1.一种基于遗传算法的区块链多副本分配和存储方法,依托如下定义,
定义1:区块链账本,指用于存储区块数据的基础设施,本质上是集合了点对点传输、共识机制、密码算法的分布式数据库;
定义2:通道,指由共识节点划分和管理的私有广播域,目的是对通道内的信息进行隔离,从而保证交易的隐私性;
定义3:共识节点,是指每个通道的实际管理者,该节点负责对从其他节点收集而来的交易进行共识,形成一致性排序,并将若干笔交易打包成区块发送给领导者节点;
定义4:领导者节点,是指每个组织中通过强制设置或者动态选举的方式产生的管理者,该节点负责将接受到的批量区块发送给组织内的其他节点;
定义5:跟随者节点,是指每个组织中除领导者节点之外的其他节点,该节点负责将区块存储进本地账本中,以供区块查询和验证使用;
定义6:客户端,是指可向任意跟随者节点发起交易提案或者查询区块请求的终端设备;
定义7:区块缓存器,是指每个跟随者节点用于存储最近被查询区块的存储设备,若区块存储在区块缓存器中,跟随者节点可将该区块直接返回至客户端;
定义8:多副本机制,是指区别与传统区块链系统中的全副本机制的一种存储机制,每个区块仅需被区块链系统中的若干个跟随者节点存储;
其特征在于:包括如下步骤,
步骤一:通过对区块使用多副本机制进行分配和存储,建立多副本机制区块链系统分配和存储模型,降低区块链中新节点加入的存储空间要求门槛,使得整体区块链系统所需的存储空间减少;
步骤二:基于遗传算法对步骤一建立的多副本机制区块链系统分配和存储模型进行优化,为区块链上的所有区块生成近似最优的分配与存储位置;通过设置精英制度和基于存储节点筛选表的交叉算子和突变算子,遗传算法得到近似最优的分配和存储方案,生成方案后由对应的节点负责实际的存储工作,从而降低区块链系统的总通信代价;
步骤三:在基于遗传算法对步骤一建立的多副本机制区块链系统分配和存储模型进行优化过程中,区块链系统定期地根据全局状态使用遗传优化算法调整区块的分配位置,能够有效提升区块链中区块查询事件的效率。
2.如权利要求1所述的一种基于遗传算法的区块链多副本分配和存储方法,其特征在于:步骤一实现方法为,
首先确定区块分配问题中的目标函数,将整个区块链系统内的总通信代价设置为目标函数;区块分配问题的最终目的是在多资源约束的条件下得到一个使得总通信代价最小的区块分配和存储方案,目标函数如下所示:
式中,x为区块分配节点向量,y为区块分配集合向量,Q(x,y)为计算整个区块链系统内的通信代价的函数;m为区块的数量,n为节点的数量,r为每个区块的副本个数,K为节点组成大小为r的集合数量;i表示第i个区块,j表示第j个节点,Nk表示第k个集合;pik表示第i个区块被分配到第k个集合时的通信代价;xij的取值仅为0和1,等于1表示第i个区块被分配到第j个节点上,等于0表示不分配;n”表示第k个集合中的节点,n'表示系统内除了n”外的所有节点;cn'n”表示节点n'和n”之间的通信代价,fin'表示第i个区块在第n'个节点上的查询频率,sin'表示第i个区块在第n'个节点上存储所占用的空间;
此外,生成的节点分配和存储方案需要满足以下约束条件;
区块分配约束:xij仅能取布尔值,即0或1;且每个区块分配到r个不重复的节点上;
集合约束:每个区块仅能被分配到一个大小为r的集合上;
存储空间约束:每个节点所存储的区块总大小不超过自身的存储空间上限。
3.如权利要求2所述的一种基于遗传算法的区块链多副本分配和存储方法,其特征在于:步骤二实现方法为,
步骤2.1:随机生成初始种群;初始种群由P条染色体组成;每条染色体代表一种区块分配和存储方案,用一个r×m的分配和存储矩阵表示;矩阵中的每一行由m个基因组成;每个基因代表一个区块的分配和存储位置,其取值范围为0到n-1;首先随机为各个节点生成分配和存储位置,并用染色体的方式表示;若生成的方案不满足步骤一中的约束条件,则重复随机选取的步骤,直至满足约束条件为止;
步骤2.2:根据步骤一中定义的计算总通信代价函数Q(x,y)为每条染色体计算其适应度;适应度越小表示该分配和存储方案越好,在步骤2.3中被选中的概率越高;反之,代表生成的分配和存储方案越差,被选中的概率越低;此外,根据适应度值从低到高将染色体排序,前E条染色体设置为精英群体,紧接着的P-E条染色体设置为普通群体,剩余染色体则被淘汰;
步骤2.3:使用Roulette Wheel Selection算法分别从精英群体和普通群体中随机选择一条染色体a和b进行交叉运算;首先根据所有节点的最新存储余量状态生成存储节点筛选表;然后将染色体a作为父染色体,对其上的m个基因依次以预设的概率pc进行选择并传递给后代染色体o1;根据被选中的基因代表的区块分配位置减去存储节点筛选表中的对应节点的存储空间,剩余容量大于0的节点即为筛选成功的节点,其余节点为筛选失败被淘汰;染色体b上剩余的基因将被分配到筛选成功的节点上;交换染色体a和b的角色,按照以上步骤生成另外一条后代染色体o2,并将染色体o1和o2加入下一代的种群中;通过本发明公开的方法能够避免重复的交叉运算,避免陷入无法生成正确的区块分配和存储方案的困境,从而提高区块分配和存储方案的生成效率;
步骤2.4:随机选中当前普通种群里中的一条染色体p1,再随机选中染色体p1中的一个基因m1;根据该染色体代表的存储和分配方案生成步骤2.2中所述的存储节点筛选表,并在表中第(m1的值)项减去该基因代表的第m1个区块所需的存储空间;剩余容量大于0的节点即为可被突变选中的节点,从这些节点中选择一个节点作为第m1个区块的分配位置;通过使用存储节点筛选表,保证突变运算仅需被运行一次,从而提高区块分配和存储方案的生成效率;
步骤2.5:重复步骤2.2至2.4,直至满足以下两个条件的其中一个为止;条件一:循环次数到达预设的最大迭代代数maxIter;条件二:最佳存储和分配方案经过Q代没有变化,即每一代种群中的最佳方案的适应度值差值在10-4内;
步骤2.6:根据上述步骤得到的区块最佳分配和存储方案,将每个基因代表的区块分配到相应的节点上进行存储,使得整个区块链系统的总查询代价最小。
4.如权利要求3所述的一种基于遗传算法的区块链多副本分配和存储方法,其特征在于:步骤三中,
查询事件的具体执行流程如下:
步骤3.1:客户端向任一跟随者节点发起查询区块b1的请求,假设该跟随者节点为n1;
步骤3.2:若跟随者节点n1的本地账本或区块缓存器中存储了区块b1的副本,则节点n1直接将区块b1返回至客户端;且区块b1在节点n1上的查询频率相应增加,在下一轮中将影响区块b1的分布;
步骤3.3:若跟随者节点n1的本地账本和区块缓存器中都没有存储区块b1,则节点n1通过查询区块存储表找到r个存储位置,再从这r个位置中选择与节点n1的通信代价最小的节点n2,节点n1从节点n2的本地账本中拉取区块b1缓存至区块缓存器中并将区块返回至客户端;当下一次客户端再次向节点n1发起区块b1的查询请求时,节点n1可直接返回区块b1至客户端;且区块b1在节点n1上的查询频率相应增加,在下一轮中将影响区块b1的分布。
5.如权利要求4所述的一种基于遗传算法的区块链多副本分配和存储方法,其特征在于:为了提高生成更优的区块分配和存储方案的成功率,步骤2.2中实行精英制度,即将部分父种群中适应度高的染色体作为父种群的精英直接添加进子种群中,能够确保在每代父种群中表现较好的染色体及其基因可被传递至下一代的种群,从而提高生成更优的区块分配和存储方案的成功率。
6.如权利要求4所述的一种基于遗传算法的区块链多副本分配和存储方法,其特征在于:为了提高区块分配和存储方案的生成效率,步骤2.3和2.4中使用存储节点筛选表,即根据区块链系统中的各节点的存储空间余量以及不需改变的基因生成存储节点筛选表,剩余容量大于0的节点即为可被交叉运算或突变运算选中的节点;通过该方法,能够确保一次成功生成符合步骤一中约束条件的区块分配和存储方案,从而提高区块分配和存储方案的生成效率。
7.如权利要求4所述的一种基于遗传算法的区块链多副本分配和存储方法,其特征在于:为了进一步降低区块分配和存储方案的总通信代价,步骤3中采用区块缓存器,即将每次从其他节点拉取而来的区块缓存至区块区块缓存器中,区块缓存器的读写效率比内存的读写效率高,因此当下一次客户端仍向该节点请求该区块时,节点能够直接从区块缓存器中返回该区块至客户端,该查询区块事件的通信代价为0,从而进一步降低区块分配和存储方案的总通信代价。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111142738 | 2021-09-28 | ||
CN2021111427388 | 2021-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113934374A true CN113934374A (zh) | 2022-01-14 |
Family
ID=79278788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111193595.3A Pending CN113934374A (zh) | 2021-09-28 | 2021-10-13 | 一种基于遗传算法的区块链多副本分配和存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113934374A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118737A (zh) * | 2022-08-25 | 2022-09-27 | 南京信息工程大学 | 一种基于节点分组的联盟链区块存储方法 |
CN116610756A (zh) * | 2023-07-17 | 2023-08-18 | 山东浪潮数据库技术有限公司 | 一种分布式数据库自适应副本选择方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611315A (zh) * | 2020-05-25 | 2020-09-01 | 辽宁大学 | 面向金融大数据的多叉树结构区块链集成优化存储方法 |
CN111866085A (zh) * | 2020-06-28 | 2020-10-30 | 北京沃东天骏信息技术有限公司 | 基于区块链的数据存储方法、系统和装置 |
CN112231394A (zh) * | 2020-09-11 | 2021-01-15 | 南京邮电大学 | 一种面向区块链分片存储策略的区块数据分配方法 |
US20210064605A1 (en) * | 2019-09-01 | 2021-03-04 | CereGate GmbH | Data integrity for medical devices using blockchain solutions |
CN112788139A (zh) * | 2021-01-12 | 2021-05-11 | 北京工业大学 | 一种区块链存储容量优化方法及系统 |
-
2021
- 2021-10-13 CN CN202111193595.3A patent/CN113934374A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210064605A1 (en) * | 2019-09-01 | 2021-03-04 | CereGate GmbH | Data integrity for medical devices using blockchain solutions |
CN111611315A (zh) * | 2020-05-25 | 2020-09-01 | 辽宁大学 | 面向金融大数据的多叉树结构区块链集成优化存储方法 |
CN111866085A (zh) * | 2020-06-28 | 2020-10-30 | 北京沃东天骏信息技术有限公司 | 基于区块链的数据存储方法、系统和装置 |
CN112231394A (zh) * | 2020-09-11 | 2021-01-15 | 南京邮电大学 | 一种面向区块链分片存储策略的区块数据分配方法 |
CN112788139A (zh) * | 2021-01-12 | 2021-05-11 | 北京工业大学 | 一种区块链存储容量优化方法及系统 |
Non-Patent Citations (2)
Title |
---|
张亮 等: "区块链技术综述", 计算机工程, no. 05, 18 March 2019 (2019-03-18), pages 7 - 18 * |
江云超 等: "区块链节点存储优化方案", 应用科学学报, no. 01, 30 January 2020 (2020-01-30), pages 123 - 130 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118737A (zh) * | 2022-08-25 | 2022-09-27 | 南京信息工程大学 | 一种基于节点分组的联盟链区块存储方法 |
CN115118737B (zh) * | 2022-08-25 | 2022-11-18 | 南京信息工程大学 | 一种基于节点分组的联盟链区块存储方法 |
CN116610756A (zh) * | 2023-07-17 | 2023-08-18 | 山东浪潮数据库技术有限公司 | 一种分布式数据库自适应副本选择方法及装置 |
CN116610756B (zh) * | 2023-07-17 | 2024-03-08 | 山东浪潮数据库技术有限公司 | 一种分布式数据库自适应副本选择方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108711052B (zh) | 一种基于区块链的信息验证系统 | |
CN113934374A (zh) | 一种基于遗传算法的区块链多副本分配和存储方法 | |
WO2021032138A1 (zh) | 一种基于区块链系统的共识方法、装置及系统 | |
CN111049895B (zh) | 一种基于ism的改进pbft共识方法 | |
CN110427346A (zh) | 一种基于区块链的文件存储系统及其文件存储方法 | |
CN111611315A (zh) | 面向金融大数据的多叉树结构区块链集成优化存储方法 | |
CN111788791A (zh) | 计算机实现的投票过程和系统 | |
Mukherjee et al. | Asymptotically optimal load balancing topologies | |
CN112636905B (zh) | 基于多角色的可扩展共识机制的系统及方法 | |
CN109257179A (zh) | 一种签名生成方法及采用该方法的区块链账户管理方法 | |
CN112561700B (zh) | 区块链中交易数据的验证方法、及区块链系统 | |
CN109447634A (zh) | 一种锁定账户秘钥更新方法及采用该方法的区块链账户管理方法 | |
CN111047439A (zh) | 一种基于区块链的交易处理方法 | |
CN111130790A (zh) | 基于区块链节点网络的共识出块方法 | |
CN112511350A (zh) | 联盟链多级共识方法、设备及存储介质 | |
CN111161078A (zh) | 一种一对多的区块链转账实现方法 | |
CN115664682A (zh) | 基于联盟链主从多链的医疗数据共享的共识方法 | |
CN112231394B (zh) | 一种面向区块链分片存储策略的区块数据分配方法 | |
CN115271718A (zh) | 一种区块链中基于Hub的状态通道交易方法 | |
CN113810507A (zh) | 一种基于ide的区块链可信节点划分方法 | |
Allman et al. | On rank dominance of tie‐breaking rules | |
CN116258609B (zh) | 一种电力系统交易协同方法、装置及存储介质 | |
CN116016540A (zh) | 一种基于物联网设备的区块链网络节点群可容错协助存储机制 | |
CN114461730B (zh) | 基于余数系统的自适应区块数据压缩方法 | |
CN115150246A (zh) | 基于新型嵌套链架构的面向海量实时物联网的上链方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |