有没有这样一种云盘

基于P2P,分布式,去中心化存储。

每个用户都要提供一定的本地磁盘空间,供缓存数据。

云盘的大小取决于共享本地磁盘的大小和在线时间。

存在云盘里的内容被分为很多分,存在不同用户的硬盘缓存中,存在一定比例冗余数据,以保证就算某个用户不上线,也可以获取到完整的内容。

对使用者来说就是把一定的本地磁盘变成了网络空间,好处是就算本地磁盘损坏,网络空间的内容也还存在。

相对于中心化存储的云盘的好处是:存储内容不会被和谐,或遇到某个云盘倒闭的情况。强加密(可以做到无人知道你存储的内容)等等。

坏处:要经常在线,要一定缓存空间。

感觉这种P2P网络很好用,如果有分享功能的话,感觉会超过BT,电骡之类的网络。

Maelstrom 就是你描述的东西。

现在可能比较现实的是 BT sync

以前有一个叫walaha的,后来这个项目关闭了。

暂时未发现. 从需求看,实现难度太大.

你的想法是基于p2p的协议, 类似电骡的运行方式,达到同步盘的效果. 但是忽略了用户的需求.

用户对云盘的需求核心是什么呢:

  1. 数据安全性
  2. 数据空间的节省.
  3. 网络间传输流量的节省.

貌似你的想法都能实现这3个核心需求, 但是反而不能达到效果.

数据安全性, 云盘的数据有可能非常私密,用过BT或者电骡的人都知道, 往往有些文件经常卡在99%再也找不到了. 为啥, 因为数据随着用户群的庞大,有可能非常巨大. 所以国内云盘所谓的秒传,都是只存储一份文件. p2p式分布式存储, 由于没有服务器的统筹, 就很难实现.

所以不论是安全性和节省空间都不现实. 那么差异增量这类节省流量的操作更无从谈起.

保证云盘数据的安全性, 小众以前介绍过一款软件,可以实现云盘的私有化部署, 只要你自己的服务器足够多,理论上,也是安全的.

楼上说得不错。这种方式的效率的确不是太高。但是我觉得

1.数据安全性,完全是可以保证的。因为会把一个文件强制散列成多份,保存在不同的用户那边。比如说一个文件,备份十份,分别保存在100个用户的电脑上,这样的话,就算其中五十个人不上线,也能保证可以获取到足够的源。所以卡在99%的问题估计不会出现,而且这个系统应该是个动态的,可以自我监控网络中的数据,如果发现哪个文件的备份量少于某个阀值的时候,会自动增加备份到其他用户的电脑上,用来保证备份率。(这个功能完全基于P2P网络,无需中央服务器统筹,类似于perfect dark。这个功能完爆emule。。。)所以,除非出现大规模的集中下线,数据安全应该不是问题。

2.空间。如果用来存电影等公共资源的话,空间可能会省得比较多,可能只需要二三十分之一的空间(甚至更少)就可以备份一部电影。用来存个人资源可能会耗费比较多的空间,但是搭配公共资源,也许可以达到缓存和容量1比1的比例。但是对用户而言,这个多次备份的网络空间明显要安全得多,不用怕哪天硬盘会坏掉。

3.流量的节省。这个的确是个大问题,因为这个系统是完全基于数据的流动,流量会爆!不过对现在国内的一些包月宽带而言,应该不是问题,虽然上传的速率很低,但是当上传的人(用户)多的时候,速度应该在可以接受范围之内。

4.同步盘。这个网络的确不是设计用来同步的,说是备份可能更贴切一点。用来备份暂时用不上又不能完全删除的内容。当然也可以设计用来分享一些东西。

其实,当然是自己买硬盘,用来备份最方便,不过成本但是比较高的,而且损坏率完全不可控,硬盘这种东西,说坏就坏。。。所以,备份到这种网络,也算是一种选择。

关于空间占用。公共资源其实很容易算,只要hash一下,如果发现存储网络中已经存在这个hash值就不用重新上传了。另外关于空间占用,设想是这样的,缓存的数据空间大小取决于你想要的网络空间大小。如果你只想存100M的东西,那可能只需要你付出100左右的缓存空间就够了。毕竟不能让每个人都为别人的大文件买单。(当然这是基于大数量用户的基础上,只有几个人的话,怎么也实现不了。)
关于资源消耗,计算算法可以调整。流量没办法。

想法还是不错的, 但是有多少人会觉得100M放在自己硬盘不安全, 放在别人硬盘更安全, 这个需要转变用户思路.

而且很多用户如果注重数据安全性, 那么一定是本地一份copy, 云端一份. 那么, 在楼主的想法下, 用户注定要用200M的空间换取100M的安全性. 如果数据是100G呢? 如果这100G是私有独占资源呢? 当然了,你会说, 多数资源都是公共资源, 那么公共资源还有多高的安全性需求呢?

类似的想法,我记得有个p2p类型的网站, 只要你建立过一个网页, 就会分布式存储, 理论上永不丢失. 这是因为网页的文件尺寸并不大的原因.

对于我自己来说, 安全性的保障,我更愿意是家里一份copy, 单位一份copy. 而且需要有版本控制. 增量传输, 才可能符合实际需求.

这才是有一定的安全性. 迅雷以前有个类似的 漏洞, 就是利用hash替换数据. 何况, 涉及到同步和安全性, 必然要有帐号系统, 账号系统难道也不需要服务器? 那么有了服务器,数据还会安全吗?

关于容量和缓存比例,这个的确需要实际算法来计算,不实际操作也说不出个所以然出来。1:1只是设想,也许实际上会有所不同。

关于安全性需求,天朝现在可能还不明显,在11区,因为上传一些影视资源被抓的人比比皆是。天朝也许现在不会,但随着版权意识增强,将来也会到达这个地步。但是,这个网络系统并不是用来鼓励盗版分享,所以并不希望加入分享功能,只想专注于存储。

说到账号系统,其实有账号不一定要有中央服务器,比如说比特币。。。

比特币没有帐号,只有地址,所以比特币涉及到的欺诈安全性并不好.

也许有一天会有类似的软件出现. 不过从来都是道高一尺魔高一丈, 兲朝对这类软件的封杀力度一直很强.

关于封杀,其实这种软件完全可以做到伪装成正常的流量,再加上P2P,封杀很难。

另外,发现国外一个P2P的网盘,只不过并不是完全去中心化,还保留有中央服务器来处理账号系统,而且,缓存和容量比竟然占到2:1,真是坑爹。(虽然我觉得这是出于要卖容量的结果)

有兴趣的可以去参观一下:https://www.symform.com/

本质上这种算法还是热门资源收益最大。而个人资料和冷门资源相当于用的人少(对个人资料而言就是只有1个人用到),资源浪费最大。

额,话说,难道是我描述水平太烂,站主推荐的完全不是我描述的这个。

首先,它要是一个云盘,用来备份分享管理文件。

另外Maelstrom这货,感觉完全用不起来,上次想用它来科学上网,结果完全不行。

这种完全的分布式可能还要好些年…至少是等 Maelstrom 这类发展并普及起来以后,自然会有数据储存。

Perfect Dark 如果是开放协议的话,应该会有感兴趣的人去开发的。

但我觉得短时间内不现实

看来还是太理想化了。。。

而且去中心化,对大公司来说又没吸引力,只能靠民间组织了。。。

BT Sync其实也是功能有差异。

因为要sync的话,还是需要源数据拥有者在线。

其实最符合我描述一部分的是日本P2P工具Perfect Dark(不得不说,11区为了逃避版权问题,这个软件的设计理念已经远远超过了同时期的BT,emule等。就算放到现在也很牛,相比而下,欧美那个据说牛叉无比的Maidsafe距离成品还遥遥无期。)当然它只有共享下载功能,不太适合做私人云盘。

我记得很多年前有类似的网络空间的,不过怎么也找不到了,估计已经倒闭了。。。

关于perfect Dark介绍请看:http://blog.skeeterhouse.com/9213.html

这种分散的备份主要的问题在于空间的浪费吧···就算只备份十份对于整个这个备份网络来说就额外需要十倍存储空间,BT和电驴能运行起来是因为那些活跃的客户端上的文件是他们自己需要的,如果莫名的让你硬盘多出来一堆大体积文件而且你自己还不知道里面是什么,你自己也用不了这些文件,估计不会有谁愿意的吧。

说到空间占用和安全性,上次没详细谈.
举个例子.

假如用户3人, 当然这个量有点小.假设嘛.

A的文件有1G
B的文件有10G
C的文件有100M

那么目前三人, 就需要每个人存储11.1G的文件. 才能保障安全性. 空间占用就不用说了. 大约谁也不乐意这么用网盘.

有人说, 如果人数足够多呢? 假如1万用户, 按照多数人用网盘的习惯, 那么有可能平均每个用户最少10G空间. 这个空间再如何散列, 也要分摊到用户身上. 用过磁盘阵列的都明白, 要保障安全性, 空间必然要浪费.

哪个人存了2G电影,还要下载8G浪费空间呢?

用户基数再大, 如果不能用算法算出所谓的影视公共资源, 也是白搭.

而且如果文件强制散列, 又没有服务器, 那就还需要分布式计算才能. 对于用户的资源占用也是负担.

那么问题就来了. 用户越少, 空间占用越多, 用户越多, 资源消耗越大(需要上传数据,需要分布式计算散列数据,需要大量的流量来传递).

即使为了安全性, 也不如假设私有云更安全.
这对用户来说, 得不偿失啊.

1 个赞