多版本文件的去中心化存储系统、方法、设备及存储介质与流程

文档序号:36069914发布日期:2023-11-17 23:03阅读:28来源:国知局
多版本文件的去中心化存储系统

本技术属于网络存储,具体涉及一种多版本文件的去中心化存储系统、方法、设备及存储介质。


背景技术:

1、去中心化存储网络(decentralized storage network,dsn)是新兴技术,可以聚合独立存储提供者提供的免费存储空间,并自协调提供数据存储和检索服务。与传统存储网络相比,dsn在区块链系统上运行,作为激励层工作。区块链奖励为客户提供可靠存储的验证节点,从而建立了一个开放的可管理存储市场。此外,区块链可以作为状态机复制协议,确保文件存储在拜占庭节点之间的一致性。

2、在dsn中支持多版本文件的存储是必要的,因为文件通常是动态更改或编辑的,且用户需要不时地查询不同版本的文件。由于当前dsn上的文件是不可编辑的,所以用户必须上传文件的所有版本,而这也导致了内容的高度冗余。即使有些dsn已经在支持目录级重复内容的删除方面做出了努力,但也无法避免更细粒度即文件级别的冗余。例如,filecoin利用merkle dag实现目录级去重,其中包括文件、文件块和目录在内的对象根据它们的嵌套关系组织成merkle dag的结构,以消除不同目录之间的重复对象,但不同文件版本之间的冗余仍然是不可避免的。缺少文件级去重会导致存储空间和带宽的浪费。然而,实现文件级去重具有挑战性。由于在文件上应用了加密和混淆,因此在dsn中不同版本文件之间的相关性是隐含的,使得找到重复内容并建立多个版本文件之间的关系非常困难。另外,传统的版本控制系统通常采用基于有向无环图(directed acyclic graph,dag)版本图来描述多个版本之间的派生关系并帮助建立文件索引。但是,这样的图应该由一个集中的服务器维护,例如github。在当前的dsn中,中心化服务器是不可用的,而区块链数据库仅仅是把文件信息以序列化交易的方式保存,而未考虑文件版本间的派生关系。因此,每个用户不得不本地维护一个单独的数据库来保存额外的元数据(例如版本图),以便于进行文件操作,如创建、修改、合并和分叉等,这种缺陷阻碍了区块链为许多数据密集型应用提供服务,因为它占用了大量的存储空间,而在许多情况下又无法直接回答文件查询。

3、总而言之,当前的dsn只实现了目录级去重,不同版本文件的重复内容仍然被冗余存储,缺少文件级去重导致存储和带宽的浪费;缺乏对文件版本之间完整派生关系的描述,使这些系统无法提供有效的文件索引。


技术实现思路

1、本发明的目的在于提出一种可以实现文件级去重和高效文件索引的去中心化存储网络系统。在存储多版本文件时,利用增量机制来实现文件级去重,即利用增量生成算法实现一个编辑脚本,该脚本通过计算增量能够将文件从其先前版本转换为当前版本;存储增量能够实现细粒度的文件级去重,并节省存储空间。此外,采用双层dag区块链账本,能够根据派生关系组织交易。在这个账本的帮助下,人们可以在不建立额外数据库的情况下记录文件之间的派生关系。此外,与链式账本相比,基于dag的账本可以提供更高的并发性,能够同时处理查询。

2、其技术方案为:

3、一种多版本文件的去中心化存储系统,包括客户端、验证节点和区块链;

4、客户端负责发送文件存储、检索或下载请求,并通过向验证节点支付代币来获得文件存储和文件获取的服务;

5、验证节点通过向客户端提供文件存储或文件获取的服务来赚取代币;

6、区块链是双层dag结构,其中一层支持文件创建、更新、合并、分叉操作,另一层保证账本的一致性,两层共享同一组区块。

7、优选的,客户端将新文件版本与前一版文件版本进行比较来计算文件增量,并将文本增量发送至验证节点进行存储。

8、优选的,所述验证节点包括存储验证节点和检索验证节点;存储验证节点根据不同需求选择性进行以下处理:

9、存储验证节点在文件存储过程中,负责处理客户端发送的文件存储的请求,将接收到的初始文件v0或文件增量进行存储,或在存储空间进行文件版本分支合并或文件版本分叉操作,并定时生成存储证明存储到区块链上;或,

10、存储验证节点在文件获取过程中,负责处理客户端发送的下载请求,将其存储空间存储的初始文件或文件增量发送给客户端;

11、检索验证节点负责在文件获取过程中,根据客户端发送的检索请求,以广度优先搜索的方式在区块链中获取恢复文件所需的初始文件及文件增量的标识符列表,并发送给客户端。

12、优选的,客户端在文件存储、更新、获取过程中分别发送不同的请求,并在请求被处理后生成对应交易发送到区块链;客户端在文件存储过程中根据不同需求发送文件存储请求:

13、当有存储初始文件的需求时,发送文件创建请求,并将初始文件上传给存储验证节点;或

14、当有文件更新的需求时,发送文件更新请求,将新文件版本与前一版的文件版本进行比较来计算文件增量,并将文件增量上传给存储验证节点;

15、或

16、当有文件版本分支合并或文件版本分叉需求时,发送文件版本合并或文件版本分叉请求,无需附加其他内容;或

17、客户端在文件获取过程中负责向检索验证节点、存储验证节点分别发送所需文件版本的检索请求和下载请求,从检索验证节点获得恢复文件所需的初始文件及文件增量的标识符列表后,根据列表从存储验证节点处下载初始文件和文件增量,并负责根据下载的初始文件和文件增量恢复该文件版本。

18、优选的,区块链可以表示为g=(v,el,eu),其中el和eu分别是区块链下层和上层的边集合,v是上下两层共享的顶点集合;每个顶点代表一个交易,交易类型为创建交易、更新交易、合并交易或分叉交易,不同顶点对应于特定的文件版本,包含初始文件或文件增量的标识符cid。

19、优选的,区块链下层边集el中的每条边表示所连接的两个顶点分别对应的文件版本之间的更新、合并或分叉的派生关系;区块链上层边集eu是通过修改dag-rider共识算法来构建的,每个验证节点每轮广播一笔交易,即创建一个顶点,每个顶点引用前一轮中至少2f+1个顶点,其中f是可以容忍的最大拜占庭节点数。

20、优选的,区块链的构造过程为:

21、在任何一轮中,通过共识后的交易首先根据文件版本的派生关系指向其所依赖的已确认的交易,此时构造的边包括在区块链下层边集el中;然后将传入的交易按照共识算法指向上一轮中其他已确认的交易,此时构造的边包括在区块链上层边集eu中。

22、一种多版本文件的去中心化存储方法,包括以下四个步骤:创建、更新、检索、下载和恢复;

23、创建:客户端将初始文件存储到存储验证节点处并发送文件创建交易到区块链;

24、更新:客户端计算新文件版本相较于前一版文件版本的文件增量,存储到存储验证节点处,并发送文件更新交易到区块链;

25、检索:检索验证节点在区块链中检索并获取恢复文件所需的文件标识符列表;

26、下载和恢复:客户端根据文件标识符列表到对应的存储验证节点处下载相应的文件片段并恢复文件。

27、优选的,创建步骤如下:

28、s11.客户端计算初始文件v0的唯一标识符cidv0,即将初始文件v0切块并哈希,再将块的哈希拼接后进行哈希计算得到标识符cidv0;

29、s12.客户端从系统中选定一个存储验证节点,并将包含cidv0的文件创建请求<create,cidv0>发送给存储验证节点;

30、s13.存储验证节点处理客户端发送的文件创建请求,同时接收客户端发送的初始文件v0并进行存储;

31、s14.初始文件v0传输完成后,客户端发送创建交易<create,cidv0>到区块链,接收到该交易的验证节点将交易进行广播,通过共识后按照区块链构造过程将该交易添加到区块链中;

32、s15.存储验证节点定时为初始文件v0生成存储证明并发送到区块链,以支持其他节点对文件的完整性和可靠性的验证。

33、优选的,更新步骤如下:

34、s21.客户端使用增量机制计算文件版本v与初始文件v0的文件增量δ,并计算文件增量δ的标识符cidδ;其中若δ≥v,则按照创建文件的步骤存储文件版本v;若δ<v,则按照创建文件的步骤存储δ;

35、s22.客户端从系统中选定一个存储验证节点,并将包含cidδ的文件更新请求<update,v0,cidδ>发送给存储验证节点,意为在初始文件v0的基础上进行更新;

36、s23.存储验证节点处理客户端发送的文件更新请求,同时接收客户端发送的文件增量δ并进行存储;

37、s24.文件增量δ传输完成后,客户端发送更新交易<update,v0,cidδ>到区块链,接收到该交易的验证节点将交易进行广播,通过共识后按照区块链构造过程将该交易添加到区块链中;

38、s25.存储验证节点定时为文件增量δ生成存储证明并发送到区块链。

39、优选的,检索步骤如下:

40、s31.客户端向检索验证节点发送包含v的检索请求<retrieve,v>以恢复文件版本v;

41、s32.检索验证节点接收到检索请求后,首先在区块链中找到文件版本v对应的交易,然后调用取回函数retrieve(v)获取恢复文件版本v所需的所有文件和增量的标识符列表;

42、s33.检索验证节点将获取的标识符列表发送给客户端,标识符列表包含恢复文件所需的初始文件和文件增量的标识符,如cidv0和cidδ;

43、s34.客户端获得标识符列表后,发送检索记录<retrieve,v>到区块链。

44、优选的,下载和恢复步骤如下:

45、s41.客户端根据标识符列表向对应的存储验证节点分别发送下载请求,如<download,cidv0>和<download,cidδ>;

46、s42.存储验证节点收到客户端的下载请求后向客户端发送所存储的文件片段,即初始文件或文件增量;

47、s43.客户端将所需文件下载完成后,将下载记录<download,cidv0>和<download,cidδ>发送到区块链;

48、s44.客户端调用恢复函数recover(versions),利用下载的文件片段最终恢复文件。

49、一种电子设备,包括至少一个处理器,以及与所述处理器通信连接的存储器;其中,所述存储器存储有可被至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能执行权利要求8-12任一项所述的存储方法。

50、一种计算机存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求8-12任一项所述的存储方法。

51、与现有技术相比,本技术的有益效果为:

52、(1)支持多版本文件级去重的dsn。引入增量生成方法来计算并存储相邻版本之间的增量,而不是存储整个新版本,显著减少了文件动态更改造成的存储成本和带宽使用。

53、(2)为了支持文件索引,采用双层dag区块链结构,下层支持创建、更新、合并和分叉等操作,而上层则确保分类帐的一致性。这种结构为文件索引节省了额外的存储空间。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1