V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kop1989
V2EX  ›  IPFS

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

  •  
  •   kop1989 · 2021-01-07 14:05:39 +08:00 · 3615 次点击
    这是一个创建于 1176 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1 、根据我的了解,IPFS 是不是一个基于区块链技术实现的类似 BT 系统?(文件分发 /共享系统)只不过他文件的分发机制除了主动获取(通过 CID )之外,还有节点的被动做种,以及主动挖矿?

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

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

    4 、假设 ipfs 的参与人员密度足够大,突破了某个阈值。是不是就相当于我们全员(包括使用节点和挖矿节点)在靠硬盘+带宽维护一个无限容量的云空间?目前有机制保障空间的利用效率么?(既不会被恶意人士上传垃圾文件轰炸)
    12 条回复    2021-07-28 22:46:44 +08:00
    codehz
        1
    codehz  
       2021-01-07 14:11:23 +08:00   ❤️ 1
    你就当是升级版 BT 协议就好了
    Darkside
        2
    Darkside  
       2021-01-07 14:19:23 +08:00   ❤️ 1
    4:ipfs 的本地缓存有空间限制的,默认好像是 10 G,超过的会被 gc 清掉,只有你自己 pin 住的不会被 gc
    xarthur
        3
    xarthur  
       2021-01-09 11:03:59 +08:00   ❤️ 2
    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
        4
    xarthur  
       2021-01-09 11:04:19 +08:00
    确实是个类 BT 系统
    xarthur
        5
    xarthur  
       2021-01-09 11:07:04 +08:00
    另外你通过 CID 获取文件的过程,和在 BT 里面通过磁力获取文件的过程是类似的(都是通过 DHT 网络)。
    如果想了解这个过程不如看看回形针出的一期视频:
    xarthur
        6
    xarthur  
       2021-01-09 11:09:08 +08:00
    《不要在问我什么是 BT 种子》
    顺便这里面介绍的算法是 Kademlia 算法,其实 DHT 网络可以用的算法还有很多,只是 BT 用了 Kademlia 而已。
    SaltyLeo
        7
    SaltyLeo  
       2021-01-12 14:05:34 +08:00   ❤️ 1
    首先没有什么无限储存这种东西的,看起来的无限制储存不过是大公司在买单罢了。

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

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

    帮别人加速可以 pin 住别人分享的 hash 即可。
    mushokumunou
        10
    mushokumunou  
       2021-04-19 23:18:00 +08:00
    @SaltyLeo ipfs 有个问题,它得每 12 个小时告诉网络自己拥有文件的 cid,这个推送请求当数据量一大,就会变得异常缓慢,有什么思路可以解决吗?
    bluekz
        11
    bluekz  
       2021-07-28 17:44:17 +08:00
    @kop1989
    @xarthur
    请教下,filecoin 读取文件现在是收费的吗?我看文档是说有“读取矿工”这个角色的,但是又未找到任何有关“读取数据”的矿工报价。
    xarthur
        12
    xarthur  
       2021-07-28 22:46:44 +08:00 via iPhone   ❤️ 1
    @bluekz 我记得需要的,这部分费用是给检索矿工的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1181 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:06 · PVG 07:06 · LAX 16:06 · JFK 19:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.