CN112231394B - 一种面向区块链分片存储策略的区块数据分配方法 - Google Patents
一种面向区块链分片存储策略的区块数据分配方法 Download PDFInfo
- Publication number
- CN112231394B CN112231394B CN202010951830.8A CN202010951830A CN112231394B CN 112231394 B CN112231394 B CN 112231394B CN 202010951830 A CN202010951830 A CN 202010951830A CN 112231394 B CN112231394 B CN 112231394B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- nodes
- consensus unit
- distribution
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向区块链分片存储策略的区块数据分配方法。具体针对基于共识单元存储策略提出的最佳区块分配方案;本发明包括以下步骤:1、基于节点的存储容限和访问分布,建立共识单元;2、建立优化模型;3、根据上一步的分配情况计算出共识单元的剩余存储空间,并计算经过分配后共识单元中节点查询i区块需要产生的最小通信花费Ci;再利用贪心算法,得到局部最佳分配;4、重新计算剩余空间,重复第三步,直到共识单元中所有节点的剩余存储空间不够存储任何一个区块。本发明充分利用了共识单元的存储空间,将区块同时分配给多个节点,并考虑实际情况,引入节点访问各区块的概率分布。
Description
技术领域
本发明属于互联网领域,涉及一种面向区块链分片存储策略的区块数据分配方法,具体是针对基于共识单元存储策略提出的最佳区块分配方案。
背景技术
目前,比特币可以说是最成功的区块链应用,它在没有任何集中的组织运营和管理已经运行了近十年;区块链作为比特币的底层技术,自然引起了广泛的关注;区块链由一系列存储某个时间段的交易数据的区块组成,为了实现去中心化,保护数据的安全性,区块链系统中的每个节点存储着整个区块链数据的一个副本,并且以设定的时间间隔将一个新块(包含最新交易数据)同步到链上,因此区块链也被称为分布式仅追加帐本;因此随着时间的流逝,每个节点都将面临严峻的存储挑战。在这里我们基于一种共识单元存储的策略,它将若干节点组织到一个单元中,将整条链的所有区块分配给单元中的节点,让它们共同维护区块链数据,以减少每个节点的存储压力;这里我们提出一种启发式算法GAPG来解决该分配问题,使分配后整个共识单元中每个节点由于查询未存储的区块而产生的通信成本最小;依据各个节点自身存储能力和访问各区块的概率分布,先将一份完整的区块链数据分配存储到节点中;随后,针对共识单元中的剩余存储空间,利用贪心算法得到局部最佳分配,完成部分区块的再分配,直到共识单元中所有节点的剩余存储空间不足以存储任何一个区块。
现有技术文献中,在《2019IEEE 39th International Conference onDistributed Computing Systems,pp.1317-1326,July,2019》上发表的题为“Jidar:AJigsaw-like Data Reduction Approach Without Trust Assumptions for BitcoinSystem(Jidar:一种适用于比特币系统的无需信任假设的类拼图的数据缩减方法)”中;提出如果某些节点想要获取系统中的所有区块数据,它们可以向其他节点询问数据并将所有片段合并为完整的区块数据。但是,方案中需要激励机制来鼓励用户发送数据;另外在在《2019IEEE International Conference on Blockchain,pp.124-131,July,2019》上发表的题为“Blockchain Dividing Based on Node Community Clustering in IntelligentManufacturing CPS(智能制造CPS中基于节点社区聚类的区块链划分)”中,提出了一种基于节点社区聚类的区块链划分策略,是一种在智能制造信息物理系统(CPS)中将节点分为不同组的方法;根据策略将节点添加到不同的组中,每组中的节点维护相同的数据;对于数据同步,同一组内的节点仅需要同步已加入该组的节点的数据,因此策略产生的交叉链接通信数据更少,减轻了系统中的网络压力;但是,方案中缺少对区块数据分配到各组中的方法介绍。
发明内容
针对上述问题,本发明基于共识单元存储的策略,提出了一种启发式算法GAPG来解决该分配问题;为确保共识单元拥有所有的区块数据,先将一份完整的区块链数据分配存储到节点中,这个过程借助二分图的完美匹配完成。接着,计算剩余的节点存储空间,利用贪心算法完成部分区块的再分配,使每个单元在能确保数据的完整性同时,最小化总查询通信成本。
本发明的技术方案是:一种面向区块链分片存储策略的区块数据分配方法,具体步骤包括如下:
步骤(1.1)、基于节点的存储容限和访问分布,建立共识单元;
步骤(1.2)、建立优化模型;
步骤(1.3)、根据上一步的分配情况计算出共识单元的剩余存储空间,并计算经过分配后共识单元中节点查询i区块需要产生的最小通信花费Ci;再利用贪心算法,得到局部最佳分配;
步骤(1.4)、重新计算剩余空间,重复步骤(1.3),直到共识单元中所有节点的剩余存储空间不够存储任何一个区块。
进一步的,在步骤(1.1)中,所述的建立共识单元是:让共识单元中的每个节点存储所有的区块头信息,当一个节点查询获取一个新的区块时,节点通过区块头中的默克尔哈希值验证获取的区块是否有效;接着比较共识单元用来存储数据的空间与区块链的总数据量大小,当存储数据的空间小于区块链的总数据量时,重新划分组建共识单元。
进一步的,在所述步骤(1.2)中,建立优化模型的操作步骤方法如下;将拥有n个区块的区块链不重复地分配到一个节点个数为m的共识单元中,模型的目标函数和约束条件表示如下:
其中,i表示区块的序号,j、k表示节点的序号,si表示第i个区块的数据大小,lj表示第j个节点存储容限,矩阵C共识单元中节点间相互访问的通信成本,ACRj表示节点j查询各区块的概率分布,表示j节点查询i区块的概率,xij表示分配结果,xij=1表示将i区块分配给j节点,xij=0则相反;
先求解该步优化问题的松弛解,使xij取值范围取到0-1之间,而不是仅能取0和1,求解得到分数可行解x′ij;构建二分图,图的左侧顶点表示区块集合,图的右侧顶点表示节点槽集合,每个槽的大小为1,将得到的分数可行解作为权值映射到二分图的各个边上;最后求解二分图的完美匹配,得到的最终权值集合就是优化模型中的整数解xij。
进一步的,在所述步骤(1.3)中,定义权重函数如下:
进一步的,在所述步骤(1.4)中,重新计算剩余空间的操作方法如下:重复步骤(1.3)的操作,直到共识单元中所有节点的剩余存储空间不够存储任何一个区块。
所述的求解二分图的完美匹配具体过程是:
根据权值对二分图的边进行分类,称权值大小处于(0,1)区间中的边为不饱和边,称权值为0或者1的边为饱和边;在不增加目标值的情况下,将所有的不饱和边转换成饱和边后,每个左侧顶点(表示区块集合)都通过权重为1的唯一边映射到右侧顶点(表示节点集合)上,这是一种单射映射,也就证明了这是左侧的完美匹配;考虑两种情况:
存在不饱和边的循环时,对不饱和的边进行0,1交替编号,通过对1编号的不饱和边权重增加值极小的常数(本发明中取10-10),并对编号为0的不饱和边的权值减少同样的值;只要这个常数足够小,就不会与约束条件冲突;由于目标函数是线性的,向使目标值不增加方向依次对相邻两边迭代,直到有一个编号为1的边权值等于1或有一个编号为0的边权值等于0为止。
不存在不饱和边的循环时,选择一个起点或者终点是顶点的最长路径,并用0和1对该路径上的边交替编号。沿着路径方向依次对1编号的不饱和边权重增加值极小的常数,并对编号为0的不饱和边的权值减少该常数。直到有一个编号为1的边权值等于1或有一个编号为0的边权值等于0为止。
本发明的有益效果是:本发明充分利用了共识单元的存储空间,将区块同时分配给多个节点,并考虑实际情况,引入节点访问各区块的概率分布。
附图说明
图1是本发明的流程示意图;
图2是本发明的系统模型图;
图3是本发明中不同节点规模下总查询成本示意图;
图4是本发明中不同区块数目下总查询成本示意图。
具体实施方式
为了更清楚地说明本发明的技术方案,下面结合附图对本发明的技术方案做进一步的详细说明:
如图1所述;一种面向区块链分片存储策略的区块数据分配方法,具体步骤包括如下:
步骤(1.1)、基于节点的存储容限和访问分布,建立共识单元;
步骤(1.2)、建立优化模型;
步骤(1.3)、根据上一步的分配情况计算出共识单元的剩余存储空间,并计算经过分配后共识单元中节点查询i区块需要产生的最小通信花费Ci;再利用贪心算法,得到局部最佳分配;
步骤(1.4)、重新计算剩余空间,重复步骤(1.3),直到共识单元中所有节点的剩余存储空间不够存储任何一个区块。
进一步的,在步骤(1.1)中,所述的建立共识单元是:让共识单元中的每个节点存储所有的区块头信息,当一个节点查询获取一个新的区块时,节点通过区块头中的默克尔哈希值验证获取的区块是否有效;接着比较共识单元用来存储数据的空间与区块链的总数据量大小,当存储数据的空间小于区块链的总数据量时,重新划分组建共识单元。
进一步的,在所述步骤(1.2)中,建立优化模型的操作步骤方法如下;将拥有n个区块的区块链不重复地分配到一个节点个数为m的共识单元中,模型的目标函数和约束条件表示如下:
其中,i表示区块的序号,j、k表示节点的序号,si表示第i个区块的数据大小,lj表示第j个节点存储容限,矩阵C共识单元中节点间相互访问的通信成本,ACRj表示节点j查询各区块的概率分布,表示j节点查询i区块的概率,xij表示分配结果,xij=1表示将i区块分配给j节点,xij=0则相反;
先求解该步优化问题的松弛解,使xij取值范围取到0-1之间,而不是仅能取0和1,求解得到分数可行解x′ij;构建二分图,图的左侧顶点表示区块集合,图的右侧顶点表示节点槽集合,每个槽的大小为1,将得到的分数可行解作为权值映射到二分图的各个边上;最后求解二分图的完美匹配,得到的最终权值集合就是优化模型中的整数解xij。
进一步的,在所述步骤(1.3)中,定义权重函数如下:
进一步的,在所述步骤(1.4)中,重新计算剩余空间的操作方法如下:重复步骤(1.3)的操作,直到共识单元中所有节点的剩余存储空间不够存储任何一个区块。
实施例
如图2所述,本实施例用于区块链中基于共识单元存储策略中的区块数据分配。通过改变共识单元节点数目,区块总数模拟不同的场景情况;节点数目默认值为20,区块总数的默认值为500,各节点存储容限服从均值为1000MB的正态分布,各区块大小服从均值为1MB的正态分布,通信花费服从均值为4s/MB的分布;以默认值为例,具体包括步骤如下:
第一步:验证共识单元的节点容限是否足够存储完整的区块链的数据,即判断下式是否成立:
满足条件,进行第二步;不满足条件,重新生成数据,直到满足条件;
第二步:将500个区块不重复地分配到20个节点中,建立模型,这是一个线性纯0-1整数规划问题;先求解该步优化问题的对应的松弛解x′ij;构建二分图,图的左侧顶点表示区块集合,图的右侧顶点表示节点槽集合,每个槽的大小为1,将得到的分数可行解作为权值映射到二分图的各个边上。求解二分图的完美匹配,得到的最终权值集合就是优化模型中的整数解xij;
第三步:根据上一步的分配情况计算出共识单元的剩余存储空间,计算所有的权值f(i,j)。比较后取出权重值最小的对应的下标j*,计算通信花费差值取的值最大的i*,令重复上述过程,直到共识单元中所有节点的剩余存储空间不够存储任何一个区块。
图3展示了节点个数变化时,采用三种算法进行分配后总查询成本对比图。可以看出本发明更适用于节点数目多的场景。图4可以看出,在区块总数变化时,对比只采用贪心算法的方案,本发明产生的总查询成本更少。
本实施例的优点:充分利用了共识单元可用的存储空间,将区块同时分配给多个节点,并考虑实际情况,引入节点访问各区块的概率分布;同时通过该方案进一步降低由于分片存储而产生的总查询通信成本。
Claims (3)
1.一种面向区块链分片存储策略的区块数据分配方法,其特征在于,具体步骤包括如下:
步骤(1.1)、基于节点的存储容限和访问分布,建立共识单元;
步骤(1.2)、建立优化模型;
其操作步骤方法如下;将拥有n个区块的区块链不重复地分配到一个节点个数为m的共识单元中,模型的目标函数和约束条件表示如下:
其中,i表示区块的序号,j、k表示节点的序号,si表示第i个区块的数据大小,lj表示第j个节点存储容限,矩阵C为共识单元中各节点间相互访问的通信成本矩阵,ACPj表示节点j查询各区块的概率分布,表示k节点查询i区块的概率,xij表示分配结果,xij=1表示将i区块分配给j节点,xij=0则i区块未分配给j节点;
先求解该步优化问题的松弛解,使xij取值范围取到0-1之间,求解得到分数可行解x′ij;构建二分图,图的左侧顶点表示区块集合,图的右侧顶点表示节点槽集合,每个槽的大小为1,将得到的分数可行解作为权值映射到二分图的各个边上;最后求解二分图的完美匹配,得到的最终权值集合就是优化模型中的整数解xij;
步骤(1.3)、根据上一步的分配情况计算出共识单元的剩余存储空间,并计算经过分配后共识单元中节点查询i区块需要产生的最小通信花费Ci;再利用贪心算法,得到局部最佳分配;
步骤(1.4)、重新计算剩余空间,重复步骤(1.3),直到共识单元中所有节点的剩余存储空间不够存储任何一个区块。
2.根据权利要求1所述的一种面向区块链分片存储策略的区块数据分配方法,其特征在于,在步骤(1.1)中,所述的建立共识单元是:让共识单元中的每个节点存储所有的区块头信息,当一个节点查询获取一个新的区块时,节点通过区块头中的默克尔哈希值验证获取的区块是否有效;接着比较共识单元用来存储数据的空间与区块链的总数据量大小,当存储数据的空间小于区块链的总数据量时,重新划分组建共识单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010951830.8A CN112231394B (zh) | 2020-09-11 | 2020-09-11 | 一种面向区块链分片存储策略的区块数据分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010951830.8A CN112231394B (zh) | 2020-09-11 | 2020-09-11 | 一种面向区块链分片存储策略的区块数据分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231394A CN112231394A (zh) | 2021-01-15 |
CN112231394B true CN112231394B (zh) | 2022-10-14 |
Family
ID=74117132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010951830.8A Active CN112231394B (zh) | 2020-09-11 | 2020-09-11 | 一种面向区块链分片存储策略的区块数据分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231394B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934374A (zh) * | 2021-09-28 | 2022-01-14 | 北京理工大学 | 一种基于遗传算法的区块链多副本分配和存储方法 |
CN115248811B (zh) * | 2021-12-10 | 2023-05-12 | 长沙理工大学 | 一种可扩展的协作式区块链区块存储方法以及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109413175A (zh) * | 2018-10-19 | 2019-03-01 | 北京奇艺世纪科技有限公司 | 一种信息处理方法、装置及电子设备 |
CN109871366A (zh) * | 2019-01-17 | 2019-06-11 | 华东师范大学 | 一种基于纠删码的区块链分片存储与查询方法 |
CN110705773A (zh) * | 2019-09-26 | 2020-01-17 | 郑珂威 | 一种利用区块链共识算力实现优化运算的系统 |
-
2020
- 2020-09-11 CN CN202010951830.8A patent/CN112231394B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109413175A (zh) * | 2018-10-19 | 2019-03-01 | 北京奇艺世纪科技有限公司 | 一种信息处理方法、装置及电子设备 |
CN109871366A (zh) * | 2019-01-17 | 2019-06-11 | 华东师范大学 | 一种基于纠删码的区块链分片存储与查询方法 |
CN110705773A (zh) * | 2019-09-26 | 2020-01-17 | 郑珂威 | 一种利用区块链共识算力实现优化运算的系统 |
Non-Patent Citations (1)
Title |
---|
OptChain: Optimal Transactions Placement for Scalable Blockchain Sharding;Lan N. Nguyen, Truc D. T. Nguyen等;《2019 IEEE 39th International Conference on Distributed Computing Systems (ICDCS)》;20190710;第525-535页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112231394A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110602148B (zh) | 一种区块的状态树的生成和链上数据验证的方法及装置 | |
CN112231394B (zh) | 一种面向区块链分片存储策略的区块数据分配方法 | |
US8271545B2 (en) | Database partitioning by virtual partitions | |
US20040162953A1 (en) | Storage apparatus and area allocation method | |
Kumar et al. | Cost and availability tradeoffs in replicated data concurrency control | |
CN111788791A (zh) | 计算机实现的投票过程和系统 | |
CN110781524A (zh) | 一种混合云存储中数据的完整性验证方法 | |
CN110046164A (zh) | 索引独立布谷过滤器、一致性布谷过滤器及操作方法 | |
Karimi Adl et al. | A new ant colony optimization based algorithm for data allocation problem in distributed databases | |
CN105511801A (zh) | 数据存储的方法和装置 | |
CN113553375B (zh) | 一种面向图式区块链的分片存储装置及方法 | |
US7020782B2 (en) | Size-dependent hashing for credit card verification and other applications | |
WO2017118335A1 (zh) | 一种映射方法和设备 | |
Deng et al. | Approximating knapsack and partition via dense subset sums | |
CN113934374A (zh) | 一种基于遗传算法的区块链多副本分配和存储方法 | |
CN117407921A (zh) | 基于必连和勿连约束的差分隐私直方图发布方法及系统 | |
CN116303772A (zh) | 一种面向联盟链账本数据的节点协作存储方法及系统 | |
CN116016540A (zh) | 一种基于物联网设备的区块链网络节点群可容错协助存储机制 | |
CN115878729A (zh) | 一种基于联盟链的节点区块存储分配优化方法及系统 | |
Torshiz et al. | Enhanced schemes for data fragmentation, allocation, and replication in Distributed Database Systems | |
CN114140115A (zh) | 区块链交易池的分片方法、系统、存储介质和计算机系统 | |
CN112748850A (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
Kumar et al. | Optimizing and evaluating algorithms for replicated data concurrency control | |
US10169250B2 (en) | Method and apparatus method and apparatus for controlling access to a hash-based disk | |
CN117880300A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |