一种基于区块链的分布式存储网络的制作方法

文档序号:17773627发布日期:2019-05-28 19:45阅读:231来源:国知局
一种基于区块链的分布式存储网络的制作方法

本发明涉及网络通信领域,特别是涉及一种基于区块链的分布式存储网络。



背景技术:

互联网的本质是人和信息的连接,无论是中心化应用还是去中心化应用均是如此,离开数据,互联网无法工作,整个互联网本身就是依靠数据进行相互操作的过程。

截止目前,http是已经部署的分布式文件系统中最成功的案例。它和浏览器的组合是互联网数据传输和展示最佳的搭档。然而,它也面临四大弊端:(1)极易受到攻击,防范攻击成本高。随着web服务变得越来越中心化,用户非常依赖于少数服务供应商。http是一个脆弱的、高度中心化的、低效的、过度依赖于骨干网的协议。中心化的服务器极易成为攻击的目标。当前,为了维护服务器正常运转,服务商不得不使用各类昂贵的安防方案,防范攻击成本越来越高。这已经成为http几乎无法克服的问题。

(2)数据存储成本高。经过十多年互联网的飞速发展,互联网数据存储量每年呈现指数级数增长。2011年全球数据总量已经达到0.7zb(1zb等于1万亿gb),2015年全球的数据总量为8.6zb,2016年这个数字是16.1zb。到2025年,全球数据预计将增长至惊人的163zb,相当于2016年所产生16.1zb数据的十倍。如果我们预计存储4000gb(4tb)的数据,aws简单存储服务(s3)的报价是对于第一个tb每gb收取0.03美金,对于接下来的49tb收取每gb0.0295美金的费用。这将花费每个月118.5美金的开销用于磁盘空间。数据量高速增长,但存储的价格依旧高昂,这就导致在服务器-客户端架构在今后的成本会成为严峻的挑战。

(3)数据的中心化带来泄露风险。服务提供商们在为用户提供各类方便的服务的同时,他们存储了大量的用户隐私数据。这也意味着一旦数据中心产生大规模数据泄漏,这将是一场数字核爆。对于个人,用户信息泄露,则用户账号面临被盗风险,个人隐私及财产安全难以保障。对于企业,信息泄露事件会导致其在公众中的威望和信任度下降,会直接使客户改变原有选择倾向,可能会使企业失去一大批已有的或者潜在的客户。这并不是危言耸听,几乎每一年里,重大数据库泄漏事件都会发生。2018年5月,推特被爆安全漏洞,恐泄漏3.3亿用户密码;2017年11月,五角大楼意外泄漏美国自2009年起收录的18亿条用户信息;2016年linkedin超1.67亿个账户在黑市被公开销售;2015年,机锋网被曝泄2300万用户信息。有兴趣的同学,可以尝试在公开密码泄漏数据库中查询,是否自己的常用信息或常用密码被暴露,但毫不知情。

(4)大规模数据存储,传输和维护难。现在逐步进入大数据时代,目前http协议将会承受远超当前的压力。如何存储和分发pb级别的大数据;如何处理高清晰度的媒体流数据;如何对大规模数据做修改和版本迭代;如何避免重要的文件被意外丢失,等等。这些问题都是阻碍http在后续发展的几座大山。

现在,已经引入了区块链技术,其虽然可以去中心化,然而,今天的去中心化应用缺乏数据落地的能力,现在区块链技术只是一个去中心化的分布式账本(ledger),是一个简单的交易记录的线性表,能够存储的数据只有交易双方的地址以及交易金额,其他数据均无法存储。在没有数据的情况下,区块链的实际使用场景受到了很大的限制。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于区块链的分布式存储网络,用于解决现有技术中数据存储的高成本、高风险、维护难以及存储数据非常有限等的问题。

为实现上述目的及其他相关目的,本发明提供一种基于区块链的分布式存储网络,包括:身份层,用于对所述存储网络中的当前节点进行身份生成或身份验证;网络层,用于令所述当前节点与所述存储网络中的其他节点进行网络通信;路由层,用于对所述存储网路中的所述当前节点或所述其他节点进行定位;交换层,用于实现所述当前节点与所述其他节点间的数据交换;对象层,用于生成所述当前节点与所述其他节点进行数据交换时的数据连接结构;文件层,用于生成所述交换的数据的文件版本;命名层,用于生成对应所述当前节点的网络域名。

于本发明一具体实施例中,所述分布式存储网络还用以将待交换的数据文件分为若干个256kb的数据块,每个所述数据块均生成对应各自的数据块哈希值,且根据所述数据块哈希值生成对应所述数据文件的文件哈希值。

于本发明一具体实施例中,所述身份层根据kademlia算法生成对应所述存储网络中的当前节点的身份。

于本发明一具体实施例中,所述交换层通过比特流协议实现所述当前节点与所述其他节点间的数据交换。

于本发明一具体实施例中,所述命名层根据sfs文件系统生成对应所述当前节点的网络域名。

于本发明一具体实施例中,所述对象层根据merkledag结构生成所述当前节点与所述其他节点进行数据交换时的数据连接结构。

于本发明一具体实施例中,所述文件层根据git版本控制系统生成所述交换的数据的文件版本。

于本发明一具体实施例中,所述分布式存储网络还用以将所述分布式存储网络中的节点的节点行为记录到区块链中。

于本发明一具体实施例中,所述节点行为至少包括以下中的一种:节点向网络中添加文件、节点在网络中检索文件和节点从网络中下载文件。

如上所述,本发明的基于区块链的分布式存储网络,包括:身份层,用于对所述存储网络中的当前节点进行身份生成或身份验证;网络层,用于令所述当前节点与所述存储网络中的其他节点进行网络通信;路由层,用于对所述存储网路中的所述当前节点或所述其他节点进行定位;交换层,用于实现所述当前节点与所述其他节点间的数据交换;对象层,用于生成所述当前节点与所述其他节点进行数据交换时的数据连接结构;文件层,用于生成所述交换的数据的文件版本;命名层,用于生成对应所述当前节点的网络域名。本发明的基于区块链的分布式存储网络有效的实现了文件的分布式存储,数据存储的成本低、风险低且较易维护。

附图说明

图1显示为本发明的基于区块链的分布式存储网络在一具体实施例中的组成示意图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

请参阅图1,显示为本发明的基于区块链的分布式存储网络在一具体实施例中的组成示意图。所述基于区块链的分布式存储网络包括如图1所示的身份层、网络层、路由层、交换层、对象层、文件层以及命名层。其中,所述身份层用于对所述存储网络中的当前节点进行身份生成或身份验证;在一些实施例中,所述身份层根据kademlia算法生成对应所述存储网络中的当前节点的身份。其中,kademlia算法是一种分布式存储及路由的算法。kademlia将网络设计为具有160层的二叉树,树最末端的每个叶子看作为节点,节点在树中的位置由同样是160bit的节点id决定。每个bit的两种可能值(0或1),决定了节点在书中属于左边还是右边的子树,160下来,每个节点id便都有一个确定的位置;kad网络中每个节点都有一个160bit的id值作为标志符,key也是一个160bit的标志符,每一个加入kad网络的节点都会被分配一个160bit的节点id(nodeid),这个id值是随机产生的。同时<key,value>对的数据就存放在id值距离key值最近的若干个节点上。

所述网络层用于令所述当前节点与所述存储网络中的其他节点进行网络通信;例如,所述网络层支持任意传输协议以及overlay网络(覆盖网络)。

所述路由层用于对所述存储网路中的所述当前节点或所述其他节点进行定位;例如所述路由层通过分布式松散哈希表,定位节点和存储对象所需要的的信息。

所述交换层用于实现所述当前节点与所述其他节点间的数据交换;在一些实施例中,所述交换层通过比特流协议实现所述当前节点与所述其他节点间的数据交换。举例,所述交换层例如通过bittorrent(比特流协议)和bitswap(比特交换)保证网络的稳定,且激励交换数据行为。

所述对象层用于生成所述当前节点与所述其他节点进行数据交换时的数据连接结构;所述对象层根据merkledag(有向无环图)结构生成所述当前节点与所述其他节点进行数据交换时的数据连接结构。举例merkle有向无环图和ipld内容寻址的不可篡改、去冗余的对象链接。其中,ipld为是内容可寻址web的数据模型。它允许我们将所有散列连接的数据结构视为统一信息空间的子集,将所有将数据与散列连接的数据模型统一为ipld实例。ipld数据模型定义了一种简单的,适用于所有merkle-dags,基于json的结构。同时也定义了一系列编码的格式结构。

所述文件层用于生成所述交换的数据的文件版本;在一些实施例中,所述文件层根据git版本控制系统生成所述交换的数据的文件版本。例如,所述文件层通过类似git的版本控制系统进行版本的控制。版本控制系统为随时间变化的文件建模和有效分发不同版本提供了设施。流行的版本控制系统git提供了强大的默克尔有向无环图(merkledag)对象模型,它以分布式友好的方式控制文件系统树的变更。git的特点包括:

1.不可变的对象表示文件(blob)、目录(tree)和更改(commit).

2.对象通过内容的加密哈希进行内容寻址。

3.与其他对象的链接是嵌入的,形成了一个merkledag。这提供了许多有用的完整性和工作流属性。

4.大多数版本元数据(分支、标签等)都只是指针引用,因此创建和更新的代价非常小。

5.版本变更只是更新引用或者添加对象。

6.分发版本变更给其他用户只是简单的传输对象和更新远程引用。

所述命名层用于生成对应所述当前节点的网络域名。在一些实施例中,所述命名层根据sfs(self-certifyingfilesystem,自认证系统)文件系统生成对应所述当前节点的网络域名。sfs引入了文件自认证技术,sfs文件系统中,用户可以验证服务器提供的公钥,协商共享秘密,并保证所有的通信。所有sfs实例都共享一个全局命名空间,其中的名称分配是加密的,而不是由任何集中主体设置的。

在一些实施例中,所述分布式存储网络还用以将待交换的数据文件分为若干个256kb的数据块,每个所述数据块均生成对应各自的数据块哈希值,且根据所述数据块哈希值生成对应所述数据文件的文件哈希值。且应用分布式哈希表存储所述哈希值,分布式哈希表(dht)被广泛用于协调和维护点对点系统的元数据。其中,merkledag树的作用就是文件最底层的256kb数据块每两个小哈希组合计算生成一个再上层的哈希,整个文件块以最后获取的一个哈希来表示。分布式哈希表(dht)被广泛用于协调和维护点对点系统的元数据。在路由层通过dht可以实现:大规模网络的高效查询:平均查询[log2(n)]节点。(例如,对于10,000,000个节点的网络为20跳);低协调开销:它优化了发送给其他节点的控制消息的数量;通过选择长期在线节点来抵抗各种攻击;在包括gnutella和bittorrent在内的对等应用中广泛使用,形成了超过2000万个节点的网络。

且,核心数据结构是merkledag(merkle有向无环图)。对一个数据文件,分布式存储网络会将其分为256kb的数据块,每个数据块生成自己的hash,再利用多重哈希来唯一识别一个数据块的内容,它以分布式友好的方式控制文件系统树的变更。

在一些实施例中,所述分布式存储网络还用以将所述分布式存储网络中的节点的节点行为记录到区块链中。其中,所述节点行为至少包括以下中的一种:节点向网络中添加文件、节点在网络中检索文件和节点从网络中下载文件。

所述身份层、网络层、路由层、交换层、对象层、文件层以及命名层不只是简单的组合。这些部分并不是孤立的,它们相辅相成,相互利用各自的属性构成整个网络架构。简而言之,身份层负责节点身份信息的生成和验证,网络层负责与其他节点间的网络通信,路由层负责特定节点和对象的定位,交换层负责激励分布式节点间的数据交换,对象层负责数据连接结构,文件层负责文件版本控制,命名层负责构建自我验证的可变命名系统。

综上所述,本发明的基于区块链的分布式存储网络,包括:身份层,用于对所述存储网络中的当前节点进行身份生成或身份验证;网络层,用于令所述当前节点与所述存储网络中的其他节点进行网络通信;路由层,用于对所述存储网路中的所述当前节点或所述其他节点进行定位;交换层,用于实现所述当前节点与所述其他节点间的数据交换;对象层,用于生成所述当前节点与所述其他节点进行数据交换时的数据连接结构;文件层,用于生成所述交换的数据的文件版本;命名层,用于生成对应所述当前节点的网络域名。本发明的基于区块链的分布式存储网络有效的实现了文件的分布式存储,数据存储的成本低、风险低且较易维护。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

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