阅“正在开发一个去中心化的个人 NAS 共享存储网络”后自己想法

129 天前
 fiveyuanpork
https://v2ex.com/t/1138045
看到该贴后我也想到自己最近也有类似的想法,发表出来大家头脑风暴一下 @i690531336

中心化管理的共享磁盘带宽的网盘,起因还是影音点播的时候,一下阿里网盘,一下夸克,注册麻烦且锁带宽也需要商业消费开会员,这也正常毕竟人家服务器带宽不是免费的,且成本高昂,那基于互联网共享的精神我们能否构建一款我能可不出马尼,无锁带宽锁容量的网盘呢,答案是 分布式点对点文件分享也就是 bt 网络, 那围绕这个原理设计一款能避开 bt 网络的缺点,融合各种优点的共享网盘:

用户注册开通网盘,需要将本机 xx 大小的磁盘共享出来, 例如共享 100G ,则自己网盘的容量为 100G ,程序将接管这 100G 的空间,自动与中心化服务器通信将分配到的文件块填充这 100G 的空间,但有这 100G 的空间并不代表你可以在外网进行下载,还需要统计你这个节点的上传流量,你上传了 50G 的上传量则可在外网下载 50G 大小的不限速流量,可累计然后消耗减除。应用层面目前商业网盘有的功能都具备,分享链接,目录列表

- 这不是盗版资源分发网络吗? 和 BT ,PT 网盘有什么区别?
我这有中心化的管理也就是有后台分配文件,夸克、百度网盘怎么审核可参考一样的审核制度,跟 PT 站类似考核上传流量,但是 PT 站由站长管理,准入门槛和规则复杂且考核严格,共享网盘只关注你共享的磁盘和累计的上传量,至于你是否发布资源,是否持续在线都不会影响你的账号。

- 跟 IPFS 有什么区别?
共享网盘不是跟 IPFS 完全的去中心化一样,对网络中的文件后台有算法根据热度进行调度分配来保证终端用户的下载速度,对于冷文件也会至少保证一个节点可访问,不会死种和长延时寻找复活文件

- 如果我先共享了 100G 的空间,全部上传了,又下线关闭节点,不就白嫖你空间了。
首先你上传完成,确实文件已经在网络上,如果是热点文件则对整体网络空间无影响因为别人也需要,如果是你个人文件那确实白嫖空间了,但是下线节点也就无法累计上传流量,你也无法在外网进行下载到你的个人文件,过多一段时间始终无人访问且节点丢失的个人文件将会进行压缩归档,但绝不会删除。

- 如果我先共享了 100G 的空间,全部上传了,但是又缩减到 30G 的空间,是不是也能白嫖空间。
如上回答,100G 减小到 30G ,对已上传的文件不会有影响,但是没可用空间,无法上传新文件。

- 我电脑没这么大空间共享,我也不想上传什么东西到网盘里,但是又想流畅在线看别人分享的网盘视频
最小可以共享 1G 空间,设置高热点上传的规则,这样即使小空间也能跑大流量,来满足你观看视频的下行流量的需求。

- 用户节点不稳定,经常下线,不会影响网络吗
肯定会影响的,这个难点问题,前期会自己出服务器资源当缓存,后续会从算法层面优化,多副本冗余,稳定节点奖励,超级节点分成这方面去构建更稳定的共享网络

- 对家庭宽带压力是不是很大
可设置上传速度和每日上传量限制,因为只考核累计上传流量,这些都不会影响你的下载速度,一般我们家用影音需求不算 24 小时播放的话,一天 30G 内的流量应该够用了,但请用户考虑自己的家宽运营商的限制,合理范围内上传。
4262 次点击
所在节点    NAS
52 条回复
wheat0r
129 天前
相对于 BT ,更像 eMule
OneLiteCore
129 天前
只要还需要审核的话这玩意基本就没什么搞头了,而且没有正常的商业化手段保不齐最后又是一个 Alist
OneLiteCore
129 天前
我记得以前在好像在老莱那边看过好像是群晖的产品,就是你有个朋友也有群晖设备,双方各提供比如 10G 给对方用作加密的异地备份。因为数据是经过加密的所以异地备份也不操心被朋友审查。
xuanbg
129 天前
如果说是异地备份的话,确实是个合理的需求。但这个和去中心化没半毛钱的关系。
lan894734188
129 天前
这跟 pcdn 有异曲同工之妙
Kirkcong
129 天前
你忘记考虑冗余了,一个文件上传后不可能只有一副本的,不然要么丢失要么经常下线。

至于有服务器缓存,你就变成了 cdn ,再做一些用户限制,就变成了私有 cdn ,简称:pcdn
totoro625
129 天前
根本矛盾是,出发点是解决网盘限速要求你开会员收费,实际上要付出非常多的时间成本+金钱成本
你付出的成本是,100G 的空间,等量上传流量(限速的)
解决办法是,让别人共享上传带宽,让别人自己考虑运营商限制合理上传给你,试图获取不限速带宽
防止用户下线下的办法是多存几份,存 3 份就代表你实际获得的空间除以 3
lan894734188
129 天前
如果是网盘应用,你还需要考虑分片-hash-热点分发分片-客户端多线程分片下载-客户端 hash 整合等一堆问题
SenLief
129 天前
运营商打击的就是这种的
i690531336
129 天前
握个爪,被 V 友骂惨了,实际上你所说的和我想的基本一致,这里面应该是有一套合理的经济体系,不可能无限制的滥用,贡献得多积分多,用的多也需要消耗积分。
i690531336
129 天前
@lan894734188 其实是一样的,只是在我的设想中没有中间平台赚差价,大家人人为我我为人人,回归共享本质
ingxhe
129 天前
我觉得还不如用网盘。同时网盘支持贡献积分的方式,主要是上传量。积分可以作为购买会员的抵扣。
1.不再担心乱七八糟的上传觉得亏
2.网盘会省掉带宽费
3.使用的人多速度有保障,最后还有网盘兜底
这样谁都不吃亏
i690531336
129 天前
@totoro625 通过合理的积分体系还是有可能实现的,比如上传大量冷门资源会加速积分消耗,反之热门资源则对积分消耗变低,这样存储池内部的资源就会得到最大化的利用,进而实现共享 100 得到 1000 的效果。
i690531336
129 天前
@ingxhe 您说的对,我的想法就是做一个共享网盘,通过共享自己免掉各种杂七杂八的会员费
i690531336
129 天前
开发这个终极目标就是,通过提供自己一部分磁盘空间和带宽,省掉开商业网盘的费用。
kdwnil
129 天前
说了那么多,你们有考虑过运营商的存在吗?
liyafe1997
129 天前
除了跟别人共享空间之外,“去中心化的个人 NAS ”这个 idea 用 Syncthing 就能实现,在多个设备配好以后,事实上你就有了个去中心化的分布式网盘,而且在每个设备上都是本地文件系统本地操作,无需“上传/下载”。

我甚至用它来同步 git 仓库,即我没有 git server ,直接用它来实现去中心化的分布式 git repo
HTravel
129 天前
奇怪了,你们都不知道快播吗?

这种实现很容易,甚至可以说我现在就有:我给自己写的 NAS 代码,其中有个功能就是浏览机器上所有的文件。如果是视频,就显示 IINA 、PotPlayer 等的播放按钮,点击后以 HTTP 协议传输内容到本地播放器播放。也可以直接点击该视频文件本身的链接,此时就是在浏览器中尝试播放,如果浏览器不支持该视频格式,支持转码后在浏览器播放,也支持转码后再调用 IINA 等播放(场景就是外地低码率看家里视频)。

直白的说,如果我们每人都有个动态公网 IP ,或自己申请域名做映射,然后我的代码每人在自家机器上部署一份,不就可以输入任意人的 IP ,然后就能浏览、观看对方任意的视频了嘛。技术实现上就是这么简单,是个人都能轻松做出来。甚至都不需要会写代码,用 python 等自带的建议 Web Server 就能做到,只要支持断点续传即可。或部署个 Apache 就行。

但你们只要敢把这种技术方案分享出来,那就和快播老总一样,牢里见
pieerepeng
129 天前
先看了你的贴,后看了作者的贴,简单分享下自己的看法。

我们都知道 IPFS ,他的架构和 bt 类似,也具有传统 BT 的问题:
1. 对于版权的侵犯(很多人认为这是个 feature )
2. 吸血问题
3. 适合长内容点播,不适合短视频和直播

对于问题 2 ,最大的问题是,没有“全局账本”。
PT (传统)虽然进行了改良,但问题是,只有 peer-peer 之间的账本,全局服务器对每个 peer 的工作量来自于各个 peer 自己上报,实际上是可以 spam 的。
两个帖子里讨论的积分,实际上都要换算成“存储*时间”证明和“流量”证明,前者不存在(不讨论 filecoin 等项目),后者可以认为存在。

如果想做一个严肃的项目,解决了问题 2 之后,就需要考虑问题 3 和问题 1 ,你需要一个切入点。我个人不看好泛 NAS 的场景。

技术细节的话,基于 libtorrent 和 webtorrent 改改就好了,再做个分布式的 track ,我都写过,没啥难的。
bao3
129 天前
我和 19# 的观点一样,文件共享从来不难事,去不去中心化也不是问题。问题是要克服人性,也就是要有记帐奖惩机制。否则没办法解决服务者的付出和吸血者的贪婪。
如果没有这个机制,那么去中心化的结果就自然消亡。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1138175

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX