CN117407467A - 结合布隆过滤器与dht的区块链编码存储系统 - Google Patents
结合布隆过滤器与dht的区块链编码存储系统 Download PDFInfo
- Publication number
- CN117407467A CN117407467A CN202311723834.0A CN202311723834A CN117407467A CN 117407467 A CN117407467 A CN 117407467A CN 202311723834 A CN202311723834 A CN 202311723834A CN 117407467 A CN117407467 A CN 117407467A
- Authority
- CN
- China
- Prior art keywords
- block
- node
- data
- query
- nodes
- 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.)
- Granted
Links
- 230000007246 mechanism Effects 0.000 claims abstract description 19
- 238000005516 engineering process Methods 0.000 claims abstract description 18
- 238000011084 recovery Methods 0.000 claims description 23
- 238000013500 data storage Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 7
- 238000012790 confirmation Methods 0.000 claims description 5
- 230000002085 persistent effect Effects 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 16
- 230000000875 corresponding effect Effects 0.000 description 11
- 230000001419 dependent effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种结合布隆过滤器与DHT的区块链编码存储系统,属于区块链领域,包括:节点划分模块,用于基于DHT技术对区块链网络中的记账节点进行划分,并由划分的节点存储区块数据;区块分配模块,与所述节点划分模块连接,用于基于布隆过滤器进行区块分配,并由接收到区块的节点存储对应的区块数据;区块编码模块,与所述区块分配模块连接,用于预设编码数量,并当集群中的区块数量满足所述预设编码数量时,进行区块编码以及区块存储;数据查询模块,与所述区块编码模块连接,用于当节点发起区块查询请求时,基于混合查询机制依次进行区块查询,直至获得查询结果。本发明能够提升区块链网络的效率和安全性,保证集群灵活性和扩展性。
Description
技术领域
本发明属于区块链技术领域,特别是涉及一种结合布隆过滤器与DHT的区块链编码存储系统。
背景技术
由于区块链技术凭借去中心化、不可篡改等特性,使其应用在医疗数据隐私保护、金融、物联网等领域。但是,由于区块链技术的特性和工作原理,导致了存储资源的巨大消耗,同时网络中节点面临巨大的存储负载,存储资源有限的节点将被迫退出区块链网路,损坏区块链系统的安全性和去中心化。因此区块链存储扩容问题的解决对于推进区块链技术的发展和实现其应用场景的扩展有着重要意义。
目前很多学者对区块链存储扩容问题作了深入的研究,并提出不同的扩容方法:
Li等人提出一种基于集群内完整性的多节点协同存储策略ICIStrategy。在ICIStrategy中,采用动态聚类算法将所有参与者分成几个集群。每个集群都需要保存网络中的所有数据,而集群中的单个节点不需要存储所有数据,集群内的节点协作存储网络中的所有数据,从而减轻了参与者的存储压力。但是该方案的对于数据的安全性和完整性需求较高的场景可能不够理想,由于ICIStrategy允许集群内节点不维护数据的完整性,这可能会对那些对数据安全性和完整性有严格要求的应用场景造成挑战。
Zheng等人提出一个关于分片联盟区块链的系统研究模型Meepo。该方案采用“cross-epoch”和“cross-call”的方式提高跨分片的效率。由于是跨分片的处理方式,在节点间通信和共识机制上增加了额外的负担,可能导致性能下降。
Kim等人提出了一种选择性的压缩方案,使用检查点链来防止压缩结果的累积。该方案中大量的区块只需使用少量的更新检查点来验证,并允许区块链节点减少区块链账本的存储容量。但是该方案中的检查点链在本身积累一定数量的检查点后需要进行更新过程,这会带来一定的计算和管理成本。
因此,为了提高存储效率,优化数据管理,亟需提出一种结合布隆过滤器与DHT的区块链编码存储系统。
发明内容
本发明的目的是提供一种结合布隆过滤器与DHT的区块链编码存储系统,降低节点存储空间的使用量,并能够保证系统的安全性和可靠性,从而提高区块链系统在各个领域的广泛应用,以解决上述现有技术存在的问题。
为实现上述目的,本发明提供了一种结合布隆过滤器与DHT的区块链编码存储系统,包括:
节点划分模块,用于基于DHT技术对区块链网络中的记账节点进行划分,并由划分的节点存储区块数据;
区块分配模块,与所述节点划分模块连接,用于基于布隆过滤器进行区块分配,并由接收到区块的节点存储对应的区块数据;
区块编码模块,与所述区块分配模块连接,用于预设编码数量,并当集群中的区块数量满足所述预设编码数量时,进行区块编码以及区块存储;
数据查询模块,与所述区块编码模块连接,用于当节点发起区块查询请求时,基于混合查询机制依次进行区块查询,直至获得查询结果。
可选地,所述节点划分模块包括节点划分单元和数据存储单元;
所述节点划分单元用于基于DHT技术将区块链网络中的记账节点划分为若干个集群,每个集群包括若干个节点;所述数据存储单元用于基于集群中的若干个节点存储与自身相关联的区块的全部数据,以及与自身无关联的区块的区块头数据。
可选地,所述区块分配模块包括区块分配单元,所述区块分配单元用于扫描区块体中的全部交易数据,获取交易数据对应的账户地址,并调用节点账户地址查询接口,查询当前交易数据对应的账户地址是否是区块链网络中的节点账户地址;若查询结果为是,则对查询到的第一个存在且活跃的节点账户地址进行区块分配,并停止查询操作;若查询结果为不是,则对全部交易数据涉及的账户地址与区块链网络中的节点账户地址进行比对,并从存在且活跃的节点账户地址中随机选择一个地址进行区块分配。
可选地,所述区块分配模块还包括节点确认单元,所述节点确认单元用于当区块链网络中的节点接收到区块后,基于布隆过滤器中的若干个哈希函数对本地账户地址进行若干次哈希运算,若获得的运算结果对应的布隆过滤器位数组中存储的值全为1,则由接收到区块的节点存储对应区块的全部数据,并告知所在集群的其他节点存储区块数据,由其他集群的节点存储对应区块的区块头数据。
可选地,所述区块编码模块包括区块编码单元,所述区块编码单元用于预设编码数量,当单个集群中缓存的区块数量达到所述预设编码数量时,集群将触发局部恢复码编码机制,对预设编码数量的区块进行编码。
可选地,所述区块编码模块还包括区块存储单元,所述区块存储单元用于将编码后的区块及原始区块依次分配给当前集群中的其他节点进行存储,当其他节点接收到待存储的区块后,对区块进行持久化存储,并清空当前缓存区块。
可选地,所述数据查询模块包括数据查询单元,所述数据查询单元用于当节点发起区块查询请求时,依次进行节点扫描本地区块查询、master节点缓存查询、全网广播查询以及区块解码恢复,直至获得查询结果。
可选地,所述数据查询模块还包括节点检查单元,所述节点检查单元用于当无法获得查询结果时,区块链网络发起节点状态检查机制,若发现失效节点,则由失效节点所在集群启动局部恢复码解码机制恢复所述失效节点,并将失效节点存储的区块数据重新分配给所在集群中的其他节点上,重新进行数据查询。
可选地,所述数据查询模块还包括故障恢复单元,所述故障恢复单元用于出现节点故障时,基于局部恢复码解码机制恢复故障节点存储的区块数据。
本发明的技术效果为:
本发明创造性的提出了结合DHT技术和LRC编码存储技术,实现区块链交易数据的分片和编码存储,有效降低节点的存储负载。LRC编码存储能保证集群中数据的完整性和安全性。采用布隆过滤器技术来确定区块的存储位置,使区块存储具备随机性和动态性。在不造成额外存储开销的同时,本发明能够提升区块链网络的效率和安全性,保证集群的灵活性和扩展性。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本发明实施例中的集群划分示意图;
图2为本发明实施例中的区块链头部构造的布隆过滤器结构示意图;
图3为本发明实施例中的区块编码存储结构示意图;
图4为本发明实施例中的区块数据查询流程图;
图5为本发明实施例中的LRC解码恢复数据示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一
如图1所示,本实施例中提供一种结合布隆过滤器与DHT的区块链编码存储系统,包括四个模块:
第一个模块是节点划分模块,用于基于DHT技术对区块链网络中的记账节点进行划分,并由划分的节点存储区块数据。所述节点划分模块包括节点划分单元和数据存储单元;所述节点划分单元用于基于DHT技术将区块链网络中的记账节点划分为若干个集群,每个集群包括若干个节点;所述数据存储单元用于基于集群中的若干个节点存储与自身相关联的区块的全部数据,以及与自身无关联的区块的区块头数据。
作为具体的实施例,通过DHT技术(Distributed Hash Table)将区块链网络中的记账节点进行划分,记账节点划分为c个集群,每个集群由z个节点组成,集群中的节点只需要存储与自己相关联的部分区块的全部数据(1/c),对于与自身无关联关系的区块,节点则丢弃区块体中的交易数据,只存储区块头数据,保证节点具备交易验证功能。以18个节点,划分为2个集群,每个集群9个节点为例,如图1所示。网路中的节点组成一棵二叉树,树中全部叶子节点构成完整的区块链网络。按照叶子节点在二叉树中的排列顺序,从左到右一次划分为集群。如果节点数量不能被z整除,则最后一个集群的节点数量小于z,该集群中每个节点需要存储集群的全部数据,直至新节点加入集群,使节点数量达到z个后,集群中的数据依次根据编码条件进行编码,实现动态重组。
第二个模块是区块分配模块,与所述节点划分模块连接,用于基于布隆过滤器进行区块分配,并由接收到区块的节点存储对应的区块数据。
所述区块分配模块包括区块分配单元,所述区块分配单元通过布隆过滤器来进行区块分配,将区块链网络中产生的区块分配到不同的集群中进行编码,并将原始块和编码块分别存储在集群中的不同节点上。通过扫描区块体中的全部交易数据,获取交易数据涉及的账户地址,并调用节点账户地址查询接口,查询当前交易涉及的账户地址是否是网络中节点的地址,为降低系统的消耗,系统获取到第一个存在且活跃的节点账户地址,系统停止查询操作,考虑交易账户与节点账户存在不关联问题,若系统在对全部交易数据涉及的账户地址与节点账户地址比对后,未发现存在且活跃的节点,系统将在活跃的节点账户地址中随机选择一个地址。对筛选出的账户地址运用布隆过滤器的m个哈希函数进行哈希运算,将运算结果作为布隆过滤器位数组下标位置,并把对应位置的数组值全部置为“1”。完成布隆过滤器构造后,系统将对区块进行全网广播存储。以n=16,m=5为例,区块头中布隆过滤器设计如图2所示。
所述区块分配模块还包括节点确认单元,所述节点确认单元用于当区块链网络中节点收到区块后,首先使用布隆过滤器中的m个哈希函数,对本地账户地址进行m次hash运算,并查询运算结果对应的布隆过滤器位数组中存储的值是否全为1,如果全为1,则表明该节点需要存储本次广播的区块的全部数据,节点在确认存储区块后,并告知所在集群的其他节点存储区块。其他集群的节点在确认不需要存储当前区块时,只需要存储区块头数据,丢弃区块体中的交易数据,以此保证节点有效降低存储负载,同时仍具备交易验证的功能。
布隆过滤器的构造算法设计具体过程如下:
输入:当前需要打包的区块B
① 扫描区块体交易数据,将交易涉及的账户地址构造集合AccountList;
② 定义临时值 accountTemp;
③ while(AccountList存在数据){
④ 拿到账户地址,在账户地址数据库中进行查询;
⑤ if(查询到地址信息){
⑥ accountTemp = 当前地址;
⑦ break;
⑧ }
⑨ }
⑩ if(accountTemp为空){
accountTemp = 随机获取一个存在节点地址;
}
采用m个哈希函数,对accountTemp进行哈希运算;
将运算结果与布隆过滤器数组长度取模运算,并将对应位置置为1;
输出:区块头部构造布隆过滤器的区块Bb。
第三个模块是区块编码模块,与所述区块分配模块连接,用于预设编码数量,并当集群中的区块数量满足所述预设编码数量时,进行区块编码以及区块存储。
所述区块编码模块包括区块编码单元,所述区块编码单元基于局部恢复码的区块编码存储,本发明在DBDSM模型的基础上,选用局部恢复码(LRC),对分配到集群中的区块,进行编码后,分别存储在集群中的不同节点上。区块链网络开始运行时,区块的产生过程是同步的,而LRC编码机制是对多个区块进行编码后存储,如果仅对一个区块编码存储,则失去了编码的意义。因此,本实施例将对LRC编码设定统一的编码条件,当单个集群中缓存区块数量达到r个,集群中将触发LRC编码过程,对r个区块进行编码,将编码后的区块及原始区块依次分配给集群中的节点进行存储。
所述区块编码模块还包括区块存储单元,所述区块存储单元用于当节点收到需要存储的区块后,对区块进行持久化存储,并清空当前缓存区块。若集群中的缓存区块数量未达到设定的编码条件,编码机制将不会触发,一直处于阻塞状态。
编码过程如下:以r=6为例。集群中的节点在确认存储区块后,首先在本地进行缓存,并判断缓存中区块的数量,若缓存区块数量已达到6个,则无需广播当前区块到集群中其他节点进行缓存,当前节点直接对缓存中的区块进行编码,并在完成编码后,依次分配给集群内节点进行存储。具体编码过程如图3所示。
第四个模块是数据查询模块,与所述区块编码模块连接,用于当节点发起区块查询请求时,基于混合查询机制依次进行区块查询,直至获得查询结果。
所述数据查询模块包括数据查询单元,所述数据查询单元包括区块链系统进行数据查询的区块请求机制,本实施例在数据查询方面参考DBDSM模型的混合查询机制,在此基础上完善区块查询的整体流程。区块请求过程最主要分为四个部分:节点扫描本地区块查询、master节点缓存查询、全网广播查询、区块解码恢复。节点发起区块查询请求时,依次进行尝试,直至得到查询结果。区块查询的详细过程如图4所示。本实施例的数据查询机制在部分节点失效的状态下,依旧能保证数据的完整性。
所述数据查询模块还包括节点检查单元,所述节点检查单元用于当网络中发起区块查询请求后,无法请求到对应的区块数据,区块链网络就会发起节点状态检查机制,若发现失效节点,失效节点所在集群将启动LRC解码恢复区块过程。将失效节点存储的数据全部恢复后,重新分配后存储在集群中的节点上。并返回正在查询的区块数据。
所述数据查询模块还包括故障恢复单元,所述故障恢复单元用于当系统出现节点故障时,就需要进行LRC解码恢复故障节点存储的区块数据。假设B5区块所在节点发生故障,此时节点00100请求B5区块时无法直接得到B5区块,需要通过LRC解码恢复B5区块,因为节点00100本地存储了B4区块,因此只要随机请求节点00111、节点01001或节点00010中的两个节点,即可成功恢复B5区块。若B1、B3区块所在节点发生故障,则需要通过节点00001的区块B2、节点01000局部编码块Ld1和节点00010的全局编码块Gd三个部分恢复出区块B1和B3,如果三个节点中任意节点故障,则无法恢复数据。LRC解码恢复数据详细过程如图5所示。
目前,区块链平台主要分为公有链和联盟链。与公有链相比,联盟链具有更广泛的应用场景,以及更高的吞吐量。并且在使用分片技术实现时,不需要担心出现多分片共识问题。因此,本实施例基于联盟链进行存储扩容方案设计,并从节点存储消耗、数据查询效率和系统的可靠性这三个方面进行评估。
首先通过从节点存储消耗方面,Fabric中影响区块链存储的主要有两类数据,一类是世界状态,另一类账本数据,也就是交易数据的集合。由于节点完整存储世界状态数据,因此,当区块链网络产生的区块链交易数据(Bt)少于区块链世界状态数据(Bs)时,节点的存储负载主要取决于Bs数据的大小。不断模拟世界状态进行交易,当网络中产生大量的Bt数据时,此时节点存储负载主要取决于Bt数据。本实施例中节点只需存储部分经LRC编码处理后的交易数据,大大降低了节点的存储压力。随着交易数据不断增加,相比于Fabric,节点存储量减少到25%,本实施例虽对区块进行编码后存储,但编码过程属于异步处理过程,与Fabric相比,区块存储过程的时间消耗可忽略不计。
将本实施例与Fabric、LEA、DBDSM等已有的存储模型做对比,当区块链网络中产生的交易数较少时,本实施例对节点存储负载有轻微的影响。随着交易数目的增加,特别是交易数目达到20000时,对节点存储负载产生显著影响。因此,本实施例具备良好的存储扩展。
数据查询效率方面。区块数据恢复延时受节点数量的影响。BCSSM采用LRC编码区块,将一组区块分成不同小组,首先对每个小组进行局部编码,生成局部校验块,然后对整组数据进行编码,生成全局校验块。因此,在进行数据恢复时,通常只需要获取一个小组内的数据,就能成功恢复数据,此时数据恢复延时接近500ms,对数据查询效率影响不大。当数据丢失严重时,需要通过集群中全部在线节点进行数据恢复,会造成较大的网络延时,但出现概率极低。因此,本实施例能够保证数据的查询效率。
系统的可靠性方面。本发明借助LRC编码技术实现区块链存储容量扩展,势必对系统可靠性产生影响。因此,基于分布式系统可靠性计算公式,得出本方案系统可靠性关系为:
在上式中,u表示系统的可靠性,k表示原始区块数目,g表示LRC编码后产生的校验块数目,a表示节点的可靠度。系统可靠性主要取决于校验快数目g和节点可靠度a。在计算过程中,分别取a的值为0.7、0.8和0.9,当a确定时,从0开始,依次增加g,从而计算得出系统可靠性u。
通过实验发现,LRC编码存储时系统可靠性与校验块的数量呈正相关。当校验块的数量为1时,如果两个节点发生故障,数据就会丢失。随着校验块数量的增加,系统的可靠性也急剧增加。但系统的可靠性也受到节点可靠度的影响。当节点可靠度为0.7时,系统可靠性受校验块数目的影响较大,只有当校验块数目达到8时,系统可靠性才达到90%。当节点可靠度取0.9时,系统可靠性明显受校验块数目影响较小。当校验块数量为4时,系统可靠性已达99.9%。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (9)
1.一种结合布隆过滤器与DHT的区块链编码存储系统,其特征在于,包括:
节点划分模块,用于基于DHT技术对区块链网络中的记账节点进行划分,并由划分的节点存储区块数据;
区块分配模块,与所述节点划分模块连接,用于基于布隆过滤器进行区块分配,并由接收到区块的节点存储对应的区块数据;
区块编码模块,与所述区块分配模块连接,用于预设编码数量,并当集群中的区块数量满足所述预设编码数量时,进行区块编码以及区块存储;
数据查询模块,与所述区块编码模块连接,用于当节点发起区块查询请求时,基于混合查询机制依次进行区块查询,直至获得查询结果。
2.根据权利要求1所述的结合布隆过滤器与DHT的区块链编码存储系统,其特征在于,
所述节点划分模块包括节点划分单元和数据存储单元;
所述节点划分单元用于基于DHT技术将区块链网络中的记账节点划分为若干个集群,每个集群包括若干个节点;所述数据存储单元用于基于集群中的若干个节点存储与自身相关联的区块的全部数据,以及与自身无关联的区块的区块头数据。
3.根据权利要求1所述的结合布隆过滤器与DHT的区块链编码存储系统,其特征在于,
所述区块分配模块包括区块分配单元,所述区块分配单元用于扫描区块体中的全部交易数据,获取交易数据对应的账户地址,并调用节点账户地址查询接口,查询当前交易数据对应的账户地址是否是区块链网络中的节点账户地址;若查询结果为是,则对查询到的第一个存在且活跃的节点账户地址进行区块分配,并停止查询操作;若查询结果为不是,则对全部交易数据涉及的账户地址与区块链网络中的节点账户地址进行比对,并从存在且活跃的节点账户地址中随机选择一个地址进行区块分配。
4.根据权利要求3所述的结合布隆过滤器与DHT的区块链编码存储系统,其特征在于,
所述区块分配模块还包括节点确认单元,所述节点确认单元用于当区块链网络中的节点接收到区块后,基于布隆过滤器中的若干个哈希函数对本地账户地址进行若干次哈希运算,若获得的运算结果对应的布隆过滤器位数组中存储的值全为1,则由接收到区块的节点存储对应区块的全部数据,并告知所在集群的其他节点存储区块数据,由其他集群的节点存储对应区块的区块头数据。
5.根据权利要求1所述的结合布隆过滤器与DHT的区块链编码存储系统,其特征在于,
所述区块编码模块包括区块编码单元,所述区块编码单元用于预设编码数量,当单个集群中缓存的区块数量达到所述预设编码数量时,集群将触发局部恢复码编码机制,对预设编码数量的区块进行编码。
6.根据权利要求5所述的结合布隆过滤器与DHT的区块链编码存储系统,其特征在于,
所述区块编码模块还包括区块存储单元,所述区块存储单元用于将编码后的区块及原始区块依次分配给当前集群中的其他节点进行存储,当其他节点接收到待存储的区块后,对区块进行持久化存储,并清空当前缓存区块。
7.根据权利要求1所述的结合布隆过滤器与DHT的区块链编码存储系统,其特征在于,
所述数据查询模块包括数据查询单元,所述数据查询单元用于当节点发起区块查询请求时,依次进行节点扫描本地区块查询、master节点缓存查询、全网广播查询以及区块解码恢复,直至获得查询结果。
8.根据权利要求7所述的结合布隆过滤器与DHT的区块链编码存储系统,其特征在于,
所述数据查询模块还包括节点检查单元,所述节点检查单元用于当无法获得查询结果时,区块链网络发起节点状态检查机制,若发现失效节点,则由失效节点所在集群启动局部恢复码解码机制恢复所述失效节点,并将失效节点存储的区块数据重新分配给所在集群中的其他节点上,重新进行数据查询。
9.根据权利要求8所述的结合布隆过滤器与DHT的区块链编码存储系统,其特征在于,
所述数据查询模块还包括故障恢复单元,所述故障恢复单元用于出现节点故障时,基于局部恢复码解码机制恢复故障节点存储的区块数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311723834.0A CN117407467B (zh) | 2023-12-15 | 2023-12-15 | 结合布隆过滤器与dht的区块链编码存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311723834.0A CN117407467B (zh) | 2023-12-15 | 2023-12-15 | 结合布隆过滤器与dht的区块链编码存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117407467A true CN117407467A (zh) | 2024-01-16 |
CN117407467B CN117407467B (zh) | 2024-03-22 |
Family
ID=89491193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311723834.0A Active CN117407467B (zh) | 2023-12-15 | 2023-12-15 | 结合布隆过滤器与dht的区块链编码存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117407467B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256662A (zh) * | 2020-10-22 | 2021-01-22 | 安徽农业大学 | 农产品信息区块链的存储与溯源方法、装置、设备及存储介质 |
CN114881654A (zh) * | 2022-05-18 | 2022-08-09 | 天津大学 | 一种基于基数估计方法的高效区块链交易查询技术 |
CN116628083A (zh) * | 2023-04-27 | 2023-08-22 | 中国人民解放军战略支援部队信息工程大学 | 区块链交易数据扩容存储方法及系统 |
US20230334036A1 (en) * | 2017-07-24 | 2023-10-19 | nChain Holdings Limited | Computer-implemented system and method for managing a large distributed memory pool in a blockchain network |
-
2023
- 2023-12-15 CN CN202311723834.0A patent/CN117407467B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230334036A1 (en) * | 2017-07-24 | 2023-10-19 | nChain Holdings Limited | Computer-implemented system and method for managing a large distributed memory pool in a blockchain network |
CN112256662A (zh) * | 2020-10-22 | 2021-01-22 | 安徽农业大学 | 农产品信息区块链的存储与溯源方法、装置、设备及存储介质 |
CN114881654A (zh) * | 2022-05-18 | 2022-08-09 | 天津大学 | 一种基于基数估计方法的高效区块链交易查询技术 |
CN116628083A (zh) * | 2023-04-27 | 2023-08-22 | 中国人民解放军战略支援部队信息工程大学 | 区块链交易数据扩容存储方法及系统 |
Non-Patent Citations (3)
Title |
---|
JINDONG ZHAO ET AL.: "DHT-Based Blockchain Dual-Sharding Storage Extension Mechanism", APPLIED SCIENCES, 26 September 2022 (2022-09-26), pages 1 - 17 * |
SALIM, R.P. ET AL.: "A Framework for Integrating the Distributed Hash Table (DHT) with an Enhanced Bloom\'s Filter in MANET", INTERNATIONAL JOURNAL OF ADVANCED COMPUTER SCIENCE AND APPLICATIONS, 31 December 2022 (2022-12-31), pages 440 - 448 * |
刘敖迪;杜学绘;王娜;李少卓;: "区块链技术及其在信息安全领域的研究进展", 软件学报, no. 07, 27 April 2018 (2018-04-27), pages 270 - 293 * |
Also Published As
Publication number | Publication date |
---|---|
CN117407467B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110493148B (zh) | 一种区块处理、区块共识和区块同步方法及装置 | |
CN111061769B (zh) | 一种区块链系统的共识方法及相关设备 | |
US5423037A (en) | Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
US20160006463A1 (en) | The construction of mbr (minimum bandwidth regenerating) codes and a method to repair the storage nodes | |
CN109359223A (zh) | 基于纠删码实现的区块链账本分布式存储技术 | |
CN104008152A (zh) | 支持海量数据访问的分布式文件系统的架构方法 | |
Pernas et al. | Non-homogeneous two-rack model for distributed storage systems | |
CN106708653B (zh) | 一种基于纠删码与多副本的混合税务大数据安全保护方法 | |
CN112835743A (zh) | 分布式账本数据存储优化方法、装置、电子设备及介质 | |
CN106021468A (zh) | 分布式缓存和本地缓存的更新方法和系统 | |
CN113655969B (zh) | 一种基于流式分布式存储系统的数据均衡存储方法 | |
CN102053802A (zh) | 网络独立冗余磁盘阵列系统 | |
CN114594911A (zh) | 基于链下纠删码分布式存储的区块链数据存储系统及方法 | |
CN113821373B (zh) | 提高磁盘地址转换速度的方法、系统、设备和存储介质 | |
CN117407467B (zh) | 结合布隆过滤器与dht的区块链编码存储系统 | |
CN103297547B (zh) | 使用基于dht的p2p系统构建云存储辅助系统的方法 | |
CN116707759B (zh) | 一种面向数据流通高并发场景的轻量级联盟链共识方法 | |
CN113225395A (zh) | 一种多数据中心环境下的数据分布策略及数据修复算法 | |
CN114791788B (zh) | 一种基于区块链的数据存储方法及装置 | |
Wang et al. | A data lightweight scheme for parallel proof of vote consensus | |
CN106911793B (zh) | I/o优化的分布式存储数据修复方法 | |
CN113064768B (zh) | 在区块链系统中切换分片节点的方法和装置 | |
CN109960588B (zh) | 一种针对异构内存集群的读请求调度方法及系统 | |
CN114338725A (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 |