最近在琢磨 IPFS(星际文件系统)。但仍然有些概念和逻辑问题求解

2021-01-07 14:05:39 +08:00
 kop1989
1 、根据我的了解,IPFS 是不是一个基于区块链技术实现的类似 BT 系统?(文件分发 /共享系统)只不过他文件的分发机制除了主动获取(通过 CID )之外,还有节点的被动做种,以及主动挖矿?

2 、经过我的远程测试,发现新文件端到端的传输文件能力很差。是不是使用姿势有问题?( A 端上传,且 pin,B 端搜索 CID 下载,要么等待时间巨长,要么失败)

3 、下载后的文件是缺失后缀的,文件名是 hash 名。

4 、假设 ipfs 的参与人员密度足够大,突破了某个阈值。是不是就相当于我们全员(包括使用节点和挖矿节点)在靠硬盘+带宽维护一个无限容量的云空间?目前有机制保障空间的利用效率么?(既不会被恶意人士上传垃圾文件轰炸)
3683 次点击
所在节点    IPFS
12 条回复
codehz
2021-01-07 14:11:23 +08:00
你就当是升级版 BT 协议就好了
Darkside
2021-01-07 14:19:23 +08:00
4:ipfs 的本地缓存有空间限制的,默认好像是 10 G,超过的会被 gc 清掉,只有你自己 pin 住的不会被 gc
xarthur
2021-01-09 11:03:59 +08:00
IPFS 分成两个部分。
底层的是 IPFS 协议,上层的是 filecoin (也就是所谓的激励层)
1. IPFS 本身没有区块链,filecoin 才用到区块链技术。底层的 IPFS 其实确实是个 BT 系统,但是他们的库( libp2p)做的比较好,相比起 BT 系统好像有改进,具体的区别要去看 IPFS 的白皮书
2. 「新文件端到端的传输文件能力很差」,是个,这个是分布式系统的问题,所以如果是端到端传输, 建议互相添加对方的节点,或者建立私有的 IPFS swarm (翻译成用户池?)
3 「 3 、下载后的文件是缺失后缀的,文件名是 hash 名。」这个解决方案很简单,把文件放到一个文件夹里,然后分享文件夹的 CID,这样里面的文件就有文件名和后缀了。
4 「硬盘+带宽维护一个无限容量的云空间?」理论上上来说是这样,但是 一. IPFS 是有缓存大小的限制的,默认 10 个 G,你可以在它的配置文件里修改这个大小。二. 你需要下载了某个东西才会有缓存,如果你不 pin 的话,这个缓存最后会消失的,此外 IPFS 不保证文件一定不会消失(没有人缓存了,或者缓存的人不在线,就消失了)
5.「目前有机制保障空间的利用效率么? 」文件通过 Hash 比较之后只会存一份。
xarthur
2021-01-09 11:04:19 +08:00
确实是个类 BT 系统
xarthur
2021-01-09 11:07:04 +08:00
另外你通过 CID 获取文件的过程,和在 BT 里面通过磁力获取文件的过程是类似的(都是通过 DHT 网络)。
如果想了解这个过程不如看看回形针出的一期视频:
<amp-youtube data-videoid="jp0bF9Qu2Jw" layout="responsive" width="480" height="270"></amp-youtube>
xarthur
2021-01-09 11:09:08 +08:00
《不要在问我什么是 BT 种子》
顺便这里面介绍的算法是 Kademlia 算法,其实 DHT 网络可以用的算法还有很多,只是 BT 用了 Kademlia 而已。
SaltyLeo
2021-01-12 14:05:34 +08:00
首先没有什么无限储存这种东西的,看起来的无限制储存不过是大公司在买单罢了。

1 、DHT 不是什么新的技术,IPFS 只是一种新的实现。没有被动做种的说法,主动挖矿是 Filecoin 的问题了。
2 、文件传输能力取决于 A 的出口和 B 的入口最小值。
3 、3 楼的方法就可以解决。
4 、如果不考虑费用确实可以维护一个巨大的云空间,但很蛋疼就是了。

我最近在捣鼓一个基于 IPFS 的网盘系统,大体思路就是滥用网关,我只能说这么多了~
kop1989
2021-01-12 14:13:37 +08:00
@SaltyLeo #7 也就是说,我光 24 小时挂机 IPFS 的客户端,是无法达到自动帮别人加速的目的的?(除非别人通过 CID 等操作主动获取文件的过程中恰巧命中了我当前已下载的缓存?)而帮别人加速只能考虑 Filecoin 挖矿?
SaltyLeo
2021-01-12 17:34:25 +08:00
@kop1989 据我自己测试,24 小时挂机不缓存任何资源的节点,唯一的作用就是维护 DHT 网络,也就是请求方请求 hash 的时候协助查询。

帮别人加速可以 pin 住别人分享的 hash 即可。
mushokumunou
2021-04-19 23:18:00 +08:00
@SaltyLeo ipfs 有个问题,它得每 12 个小时告诉网络自己拥有文件的 cid,这个推送请求当数据量一大,就会变得异常缓慢,有什么思路可以解决吗?
bluekz
2021-07-28 17:44:17 +08:00
@kop1989
@xarthur
请教下,filecoin 读取文件现在是收费的吗?我看文档是说有“读取矿工”这个角色的,但是又未找到任何有关“读取数据”的矿工报价。
xarthur
2021-07-28 22:46:44 +08:00
@bluekz 我记得需要的,这部分费用是给检索矿工的。

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

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

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

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

© 2021 V2EX