一种基于喷泉码的联盟链存储系统

文档序号:31173890发布日期:2022-08-17 09:50阅读:76来源:国知局
一种基于喷泉码的联盟链存储系统

1.本发明涉及喷泉码技术领域,更具体地说,特别涉及一种基于喷泉码的联盟链存储系统。


背景技术:

2.随着互联网的发展和广泛应用,域名系统dns(domain name system)已成为一种关键的基础设施,必须满足安全性和效率的要求。现有dns系统由于其拓扑树形结构和根服务器的集中管理,存在单点故障和滥用权力等问题,极易受到网络攻击。为了解决这一问题,设计了一种新的基于区块链的dns系统。每个dns服务器都需要保存所有的块,因为genesis块可以防止数据篡改,保证数据的安全性,并且有更好的访问性能。blockstack引入了虚拟区块链和链下存储的概念。它将域名的运行记录保存到区块链中,以确保数据的不可抵赖性和可追溯性。同时,通过虚拟的区块链将实域名状态信息映射并存储到第三方存储空间。握手协议采用改进的平文件默克尔树结构,减少了数据查询开销,并在区块链共识协议中集成了公平竞价机制,用于建立分散的根域名服务管理系统。dnsledger是 cnnic在consortium区块链的基础上提出的一种先进的dns系统。为了从现有的dns 系统过渡到新的dns系统,该解决方案遵循dns分级管理机制,分别实现了根域名链和tld链。
3.分布式dns系统在访问和存储性能方面面临着新的挑战。由于区块链采用全复制的存储方式,随着数据和服务器节点规模的增加,系统的总体存储开销将会激增,不利于系统的管理和维护。因此,设计了一些将擦除码与去中心化共识协议相结合的机制,以减少全复制存储机制带来的冗余存储开销,确保分布式节点能够达成共识。rs-paxos和 craft将擦除码机制与paxos、raft等共识算法相结合,实现了低存储开销的去中心化私有系统。bbt-store是一个适合于拜占庭环境的擦除码存储引擎,以减少分散系统的存储开销。
4.一方面,在实际应用场景中,不同域名的访问频率存在显著差异,这可能会导致 dns服务器集群的负载严重倾斜。另一方面,由于突发事件,dns系统的流量急剧增加,会导致dns服务在短时间内降级甚至崩溃,从而导致系统瓶颈。现有的基于 erasure码的分布式编码存储方案存储开销低,无法适应异构的动态dns业务场景。根据数据热度调整动态编码模式,降低了高热度数据的访问时延。
5.lt码是经典的喷泉码,与传统纠删码相比没有比特率,这意味着可以生成任意数量的代码块。相应地,码率r=k/n不再有意义。lt码可以从k个原始数据块中生成任意数量的编码数据块,通过异或(xor)运算组合生成n个编码块,{{c_i},1≤i≤n}。数据读取只需要任意m个编码数据块即可恢复原始数据。lt编码过程如图1所示。
6.联盟链是一个高度去中心化的半开放分布式系统。会员需要获得许可才能访问。联盟链可以根据应用场景确定对公众的开放程度,其网络由成员机构共同维护。因此,适用于域名系统下多个成员机构对动态数据的存储、管理、授权、监控和审计。目前, hyperledger项目是一个比较成熟的联盟链。联盟链企业需要实名认证,加入联盟链的组织需要权威认证来证明其身份。认证完成后,联盟链上的其他公司将允许该机构或节点进入
并获得通信和投票权。与传统的中心化技术架构相比,联盟链中的金融机构可以更好地解决企业间的效率、信任等合作问题。
7.目前联盟链系统主要是基于节点存储整个区块链的方式,最终会导致存储资源不足,变相增加了联盟链的进入门槛。因此,可扩展性问题成为联盟链的主要关注点之一,因为它对于大规模应用至关重要。对于不断增加的存储问题,有两种常用的解决方案。一种解决方案是使用轻节点,轻节点只存储区块头而不是完整的数据,导致轻节点无法独立工作。另一种方法是通过删除旧事务来回收磁盘空间。此方法会影响数据完整性。近来,编码技术的使用陆续被提出。然而,它们的编码和解码的复杂性通常被忽略,而没有考虑区块链系统中节点的异构性。因此,考虑到节点的异构性和数据访问的普及性,在降低存储开销的基础上动态调整编码复杂度至关重要,为此,有必要开发一种基于喷泉码的联盟链存储系统。


技术实现要素:

8.本发明的目的在于提供一种基于喷泉码的联盟链存储系统,以克服现有技术所存在的缺陷。
9.为了达到上述目的,本发明采用的技术方案如下:
10.一种基于喷泉码的联盟链存储系统,包括:
11.客户端,用于发送注册、更新和取消的交易请求;
12.交易池,用于存储所有的注册、更新和取消的交易请求,待交易验证后打包成区块链上链;
13.数据编码模块,用于将每两块使用一个编码数据块进行数据编码,编码后的数据块具有热量信息,通过优化生成矩阵以对不同程度的数据块采用不同的编码策略,并将编码后的数据块分发到多个节点进行存储;
14.分布式存储节点,用于存储编码后的数据块,在数据重构时进行数据解码操作,存储节点在计算的同时向修复端或客户端进行数据传输,单个存储节点解码后,剩余的 tanner图用于存储节点之间的内部传输,所有的解码操作均在存储节点之间完成,为每个编码后的数据块建立热数据存储链表,所述热数据存储链表接收数据块文件作为重新编码的输入并标记数据块的热值,所述热数据存储链表根据流行度对编码后的数据块进行排序,当查询一条域名数据时该域名数据的流行度增加,所述域名数据所在的数据块的流行度对应增加。
15.进一步地,所述交易池内还包括验证模块,所述验证模块用于对交易请求进行验证。
16.进一步地,所述热数据存储链表内,超过设定期间无新查询请求且数据热寿命值过期的冷却块从热数据存储链表中移除。
17.与现有技术相比,本发明的优点在于:本发明提供的一种基于喷泉码的联盟链存储系统,将喷泉码解决方案与热感知机制相结合,数据访问和修复传输的成本降到最低,以确保请求效率。在编码阶段,通过优化生成矩阵,可以对不同程度的数据块采用不同的编码策略。基于热感知机制,访问频率越高的数据块编码程度越小。因此,编码模式下的度值与解码速度成反比。解码过程利用空闲时间计算不同的解码路径,并根据节点的繁忙程度、路径长度和网络质量综合选择最优的解码路径,提高解码速度。在修复过程中,元数据信息生
成不同的传输拓扑模式,并提前优化生成矩阵。根据修复时数据块的热度,重新调整被修复节点的数据块,保证整个存储系统的可解码性。以达到随着数据块的热量变化而不断调整数据块在系统中的比例的目的。通过设置数据热度矩阵、分析不同解码策略、修复和添加热数据块,本实施例可以更好地平衡编解码效率、热访问和节点修复。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是现有技术中喷泉码的编码过程图。
20.图2是本发明基于喷泉码的联盟链存储系统的原理图。
21.图3是传统的数据解码操作流程图。
22.图4是本发明的流水线解码原理图。
23.图5是本发明具体实验的存储开销结果图。
24.图6是本发明lt编码与hotlt编码时间对比图。
25.图7是本发明lt编码与hotlt访问时间对比图。
具体实施方式
26.下面结合附图对本发明的优选实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
27.参阅图2所示,本实施例公开了一种基于喷泉码的联盟链存储系统,包括:
28.客户端,用于发送注册、更新和取消的交易请求;
29.交易池,用于存储所有的注册、更新和取消的交易请求,待交易验证后打包成区块链上链;
30.数据编码模块,用于将每两块使用一个编码数据块进行数据编码,编码后的数据块具有热量信息,通过优化生成矩阵以对不同程度的数据块采用不同的编码策略,并将编码后的数据块分发到多个节点进行存储;
31.分布式存储节点,用于存储编码后的数据块,在数据重构时进行数据解码操作,存储节点在计算的同时向修复端或客户端进行数据传输,单个存储节点解码后,剩余的 tanner图用于存储节点之间的内部传输,所有的解码操作均在存储节点之间完成,为每个编码后的数据块建立热数据存储链表,所述热数据存储链表接收数据块文件作为重新编码的输入并标记数据块的热值,所述热数据存储链表根据流行度对编码后的数据块进行排序,当查询一条域名数据时该域名数据的流行度增加,所述域名数据所在的数据块的流行度对应增加。
32.在本实施例中,编码后的数据块分发到多个节点进行存储,在数据重构时进行数据解码操作。传统的解决方案是在修复节点接收到一定数量的相邻节点的编码数据后进行解码。图3显示了该方案的缺点的网络瓶颈。因此,本实施例采用局部解码方法进行数据恢复。
33.域名系统中联盟链上的节点可能分布在世界的每一个角落。传统的解码方式将进一步放大数据传输瓶颈。因此,本实施例提出了一种流水线式动态解码策略,以充分利用存储节点的计算资源发起多线程操作,如图4所示。本实施例充分发挥各节点和委托的计算能力计算到存储节点的工作。lt解码本身并不复杂,所以存储节点可以做一些简单的工作。假设客户端和修复端都需要原始数据,存储节点存储编码后的数据。以下是单个组织内的数据分析。存储节点在计算的同时向修复端或客户端进行数据传输。单个存储节点解码后,剩余的tanner图用于存储节点之间的内部传输。为了减少远程传输的开销,所有的解码工作都在存储节点之间完成。
34.但是,由于编码复杂度不同,数据的查询性能对读取速度有一定的影响,并且数据的热度随时间变化。因此,面对热差异数据,系统无法提供快速的数据检索和合理的负载均衡能力。因此,增加了数据访问热度与编码复杂度负相关的策略。
35.传统的处理热数据感知和查询的措施是使用数据冷热分离机制。对于域名系统,可以将热门的域名数据转移到额外的热点数据存储系统中,避免在索引和区块链庞大的检索空间中重复搜索目标数据。在数据流行度感知条件下,域名数据的访问包括数据冷热转换的过程。存储空间中的域名数据被查询请求加热,数据记录被传输到热数据存储系统。一段时间后,数据查询量长期为零,这批冷却的数据将移出热数据存储系统。本实施例提出数据热感知修复和优化机制,为数据块建立热数据存储链表。当查询一条域名数据时,该数据的流行度增加,其相关域名也会被认为在短时间内被访问。因此,域名数据所在的整个数据块的流行度也会增加。
36.热数据存储链表接收数据块文件作为重新编码的输入,并标记数据块的热值。长期无新查询请求且数据热寿命值过期的冷却块将从链表中移除。编码窗口是编码块的集合,用作编码数据的集合。对于每个编码窗口,hotlt(根据数据访问的热度然后进行编码)编码修复首先随机读取k个不参与编码的数据块,并为其生成k个值。与lt喷泉码机制不同的是,hotlt交换值,使编码窗口中最热的数据块的度数为1,低热数据块得到更高的值,即更复杂的编码策略。度数1确保可以直接访问高热数据。赋值完成后,对编码窗口中的数据块集合进行编码,然后分发到分布式存储节点的热点数据块存储空间。下表1表示了本实施例中hotlt的输入和输出情况。
37.表1
[0038][0039][0040]
在数据恢复过程中,hotlt动态恢复编码方案考虑了数据的热点分布,调整了原有的度分布方案。在数据恢复过程中,动态调整数据,无需额外开销。
[0041]
下面通过实验来对本实施例作进一步说明
[0042]
虚拟机上的联盟区块链,并在创建虚拟机时分配不同的硬盘空间和cpu内核。通过这种方式,它模拟了具有不同资源的区块链节点。每个虚拟机都安装了linux环境, ubuntu 20.04操作系统,安装了docker。此外,hyperledger caliper[23]用于测试该工具进行实验。服务器配备intel(r)xeon(r)cpu e5-2620 v3@2.40ghz 2.40ghz,40g dram。
[0043]
为了评估hotlt的性能,研究了编码时间、存储开销和访问时间。在实验中,设置了流行度数据在不同访问数据中的百分比。定义随机读取流行度数据的比例为0,当总访问流行度为h_i=1时,比例定义为100%。
[0044]
分析了全拷贝状态的存储开销和hotlt的存储开销。随着节点的增加,hotlt的存储开销增长缓慢,全量副本增长更快,如图5所示。
[0045]
从图6的分析可以看出,当在编码过程中动态添加热块时,由于获取和搜索当前热块数据是否为当前热块数据,编码时间增加了少量时间。重构节点中的数据内容。总体时间基本一致,平均时间基本一致。在编码时间基本不变的情况下,本实施例进一步对热数据的读取时间进行实验分析。
[0046]
从图7的分析可以看出,读取热点数据的比例越高,hotlt方案的优势越明显,而lt代码基本保持不变。当热点数据达到100%时,hotlt基本接近直读时间。因此,在编码过程
中添加的少量时间对于读取开销是可以接受的。
[0047]
本发明优化了域名系统联盟链的存储成本。联盟链的存储系统通常采用全拷贝的方式,随着时间的推移,导致存储成本呈爆发式增长。这增加了许多中小企业加入联盟的隐性壁垒,进而再次演化为以行业为中心的模式。因此,发明提出了一种名为hotlt的新存储解决方案,使用分布式存储系统编码方案来减少联盟链的存储开销并增强可扩展性。其次,在解码过程中采用了在存储节点进行解码的方法,以减少数据传输总量。最后进一步划分数据访问频率,对访问频率高的数据进行低复杂度编码。与传统lt编码的编码时间相比,随着访问热点数据比例的增加,平均访问速度逐渐接近直读速度。
[0048]
虽然结合附图描述了本发明的实施方式,但是专利所有者可以在所附权利要求的范围之内做出各种变形或修改,只要不超过本发明的权利要求所描述的保护范围,都应当在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1