基于IPFS的去中心化数据库解决方法技术

技术编号:38368687 阅读:9 留言:0更新日期:2023-08-05 17:33
本发明专利技术公开了基于IPFS的去中心化数据库解决方法,该方法包括以下步骤:基于IPFS去中心化文件系统,抽象一层Table数据的逻辑目录结构的表示格式;基于IPFS的功能及有向无环图,对Table数据的逻辑目录结构的元信息进行表示,并得到Table数据的有向无环图元信息;获取Table数据的有向无环图元信息之后,每个节点保留Table数据的逻辑目录结构的有向无环图元信息;若一个节点的数据更新,则该节点的有向无环图的变更同步到其他节点。本发明专利技术解决了现有技术方案的缺点,具有不容易达到单点容量瓶颈、扩展性很好、存储成本低、同步性能好的优点。点。点。

【技术实现步骤摘要】
基于IPFS的去中心化数据库解决方法


[0001]本专利技术涉及文件存储领域,具体来说,涉及基于IPFS的去中心化数据库解决方法。

技术介绍

[0002]IPFS是一个去中心化的文件存储系统,是Web3技术栈中比较重要的一环,很多Dapp去中心化应用的文件存储层,但是中间一般还需要有一个去中心化的数据库来充当业务数据的CRUD[CRUD是指在做计算处理时的增加(Create)、读取(Read)、更新(Update)和删除(Delete)几个单词的首字母简写]。这和传统Web2是一样的分层方式。
[0003]在Web3中,基于IPFS构建的现有去中心化数据库方案有OrbitDB、AvonDB和ThreadDB。这些现有技术的存储数据架构,可以理解为在去中心化网络中每个节点都有一个完整的数据副本copy,每个节点都可以进行CRUD,并且将这些数据更新通过IPFS的PubSub协议(类似gossip的p2p协议)同步到其他节点,其他节点收到更新数据请求后,会将更新数据合并到本节点的副本中。最终达到每个节点的副本数据的一致性。基本数据架构如图13

14。图13可以看到,每个节点都是有完整数据的一个副本,并且多个节点发生更新的时候,会互相同步到其他节点,图14可以看到最终同步完成后,每个节点都保持了最新的完整数据副本。
[0004]基于IPFS的现有方案是每个节点保存了一个副本,在写入更新的时候通过PubSub协议进行去中心化网络数据传播同步。这个方案有如下几个缺点:
[0005]1)存储容量存在单点瓶颈:因为每个节点都保存了完整的数据副本,所以数据量特别大的时候,很快会达到单节点的存储瓶颈。而且很多IPFS节点可能并不是一个服务器的形式,有可能服务器的性能、规格差异比较大,对于一些节点规格不高的情况下,影响很大。
[0006]2)扩展性差:每当新加入一个节点,都需要完整拷贝一遍完整的数据副本到本地,性能低下。且新加入的节点可能规格比较小,这个时候扩展起来更慢。
[0007]3)存储成本高:相同的数据被存储了N份,这个N就是加入到这个表格的P2P网络节点个数。例如一个10个节点的P2P网络创建一个有10G大小的testtable01,那么整个网络将存在10*10G的数据分布在每个节点上,严重浪费存储空间。
[0008]4)同步性能差:每次插入一批数据的时候,需要把这批数据也同步到所有节点上,带宽浪费也比较严重。例如一个10个节点的P2P网络有一张testtable01表,插入1w行数据时,这1w行数据会分别分发数据到另外9个节点上,总的网络流通大概为1w*10次=10w行数据,对于网络的消耗也不可忽视。并且随着同步的数据量变大,其同步时间也必然随着数据量的增大而有所变慢。
[0009]针对相关技术中的问题,目前尚未提出有效的解决方案。

技术实现思路

[0010]针对相关技术中的问题,本专利技术提出基于IPFS的去中心化数据库解决方法,以克
服现有相关技术所存在的上述技术问题。
[0011]为此,本专利技术采用的具体技术方案如下:
[0012]基于IPFS的去中心化数据库解决方法,该方法包括以下步骤:
[0013]S1、基于IPFS去中心化文件系统,抽象一层Table数据的逻辑目录结构的表示格式;
[0014]S2、基于IPFS的功能及有向无环图,对Table数据的逻辑目录结构的元信息进行表示,并得到Table数据的有向无环图元信息;
[0015]S3、获取Table数据的有向无环图元信息之后,每个节点保留Table数据的逻辑目录结构的有向无环图元信息;
[0016]S4、若一个节点的数据更新,则该节点的有向无环图的变更同步到其他节点。
[0017]进一步的,所述Table数据的逻辑目录结构中的逻辑文件对象被拆分为若干Block并存储在IPFS去中心化文件系统上。
[0018]进一步的,所述IPFS以key

value的形式存储数据,其中key与内容相关联,且若key相同,则data内容相同,同时在data内容保存其他key值,并形成一个链或者一个有向无环图。
[0019]进一步的,所述获取Table数据的有向无环图元信息之后,每个节点保留Table数据的逻辑目录结构的有向无环图元信息包括以下步骤:
[0020]处理数据时,对数据目录的有向无环图元信息进行管理,且使有向无环图的树最底下的节点指向一个文件节点;
[0021]将文件切分为若干block分散存储在基于IPFS去中心化文件系统上;
[0022]使P2P的每个节点保存部分的Table数据的逻辑目录有向无环图元信息。
[0023]进一步的,所述有向无环图获取后,且一张表插入数据之前,每个节点均有一张表的当前状态下的数据目录有向无环图1信息,且获取有向无环图1的tableDirCid,并得到所有的子目录节点地址,同时查到这个表的所有逻辑目录下的各种子目录与子文件内容。
[0024]进一步的,所述有向无环图获取后,若发生一张表插入更新数据并同步时,各个节点保持有向无环图2元信息。
[0025]进一步的,所述若一个节点的数据更新,则该节点的有向无环图的变更同步到其他节点包括以下步骤:
[0026]在插入数据前,当前Table在所有节点的元数据均为有向无环图1;
[0027]用户向节点1插入数据成功后,节点1的有向无环图1更新为有向无环图2;
[0028]节点1向基于IPFS的整个P2P网络的其他节点发出同步变更信息,且消息事件为有向无环图1更新为有向无环图2;
[0029]每个节点接收有向无环图更新消息后,将本地的有向无环图1同步变更为有向无环图2,使整个P2P网络达到一致性状态。
[0030]进一步的,所述节点的有向无环图的变更同步到其他节点时,有向无环图所表示的数据存储在基于IPFS去中心化文件系统中。
[0031]进一步的,所述将本地的有向无环图1同步变更为有向无环图2时,若出现冲突则根据具体情况进行解决。
[0032]进一步的,所述若出现冲突则根据具体情况进行解决包括以下步骤:
[0033]若节点的当前内容标识符等于旧内容标识符,则将当前内容标识符更新为旧内容标识符;
[0034]若当前内容标识符、旧内容标识符及新内容标识符均不相等,且旧内容标识符及新内容标识符均位于历史内容标识符列表中,则忽略;
[0035]若当前内容标识符等于新内容标识符,则忽略;
[0036]若当前内容标识符、旧内容标识符及新内容标识符均不相等,且旧内容标识符及新内容标识符均不位于历史内容标识符列表中,则将当前内容标识符更新为新内容标识符。
[0037]本专利技术的有益效果为:
[0038](1)本专利技术基于IPFS上设计的表逻辑元数据目录,使用有向无环图来表示它,并设计了表的CURD过程的更新、合并策略,解决本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于IPFS的去中心化数据库解决方法,其特征在于,该方法包括以下步骤:S1、基于IPFS去中心化文件系统,抽象一层Table数据的逻辑目录结构的表示格式;S2、基于IPFS的功能及有向无环图,对Table数据的逻辑目录结构的元信息进行表示,并得到Table数据的有向无环图元信息;S3、获取Table数据的有向无环图元信息之后,每个节点保留Table数据的逻辑目录结构的有向无环图元信息;S4、若一个节点的数据更新,则该节点的有向无环图的变更同步到其他节点。2.根据权利要求1所述的基于IPFS的去中心化数据库解决方法,其特征在于,所述Table数据的逻辑目录结构中的逻辑文件对象被拆分为若干Block并存储在IPFS去中心化文件系统上。3.根据权利要求2所述的基于IPFS的去中心化数据库解决方法,其特征在于,所述IPFS以key

value的形式存储数据,其中key与内容相关联,且若key相同,则data内容相同,同时在data内容保存其他key值,并形成一个链或者一个有向无环图。4.根据权利要求3所述的基于IPFS的去中心化数据库解决方法,其特征在于,所述获取Table数据的有向无环图元信息之后,每个节点保留Table数据的逻辑目录结构的有向无环图元信息包括以下步骤:处理数据时,对数据目录的有向无环图元信息进行管理,且使有向无环图的树最底下的节点指向一个文件节点;将文件切分为若干block分散存储在基于IPFS去中心化文件系统上;使P2P的每个节点保存部分的Table数据的逻辑目录有向无环图元信息。5.根据权利要求4所述的基于IPFS的去中心化数据库解决方法,其特征在于,所述有向无环图获取后,且一张表插入数据之前,每个节点均有一张表的当前状态下的数据目录有向无环图1信息,且获取有向无环图1的tableDirCid,并得到所有的子目录节点地址,同...

【专利技术属性】
技术研发人员:韦振源王刚
申请(专利权)人:上海恩毕可施科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1