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

那个 p2p 图床是怎么实现的?

  •  
  •   lengyihan · 2017-11-26 09:48:55 +08:00 via Android · 8947 次点击
    这是一个创建于 2336 天前的主题,其中的信息可能已经有所发展或是发生改变。

    他说上传到全球的 p2p 网络了,p2p 网络是什么东西? p2p 不是点对点的吗,要别人下你的图片才会多一个节点吧。他这啥意思啊?

    9 条回复    2018-01-02 13:45:58 +08:00
    mckelvin
        1
    mckelvin  
       2017-11-26 10:20:38 +08:00
    我不知道你在说什么 P2P 网络,我猜想你说的是 https://ipfs.io 你可以把他理解为 BT. 只不过是面向 HTTP 协议的。只要越来越多的人访问( BT 下载)这个文件,它那里就会存一份,之后有人要访问,就会从已经存了这个文件的人那里下载。所以网络上只要有一个人还在线,这个文件就一直是可访问的。比如 https://ipfs.io/ipfs/QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o 这个地址,可以访问到 IPFS 网络上编号为 QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o 的数据(这个编号是基于文件内容哈希算的)。就算如果有一天 ipfs.io 这个网站被强行关闭了。你也可以本地启动一个 IPFS 服务器连上 P2P 网络,这样你就可以在本地访问 http://localhost/ipfs/QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o/ 你也可以做个反向代理,让网络上更多的人访问到这个文件。

    前段时间加泰罗尼亚独立的事情,西班牙把他们的网站墙了,加泰罗尼亚政府用了 IPFS 技术让更多的加泰罗尼亚人访问到他们的网站。https://news.ycombinator.com/item?id=15367531
    czheo
        2
    czheo  
       2017-11-26 10:32:11 +08:00
    这里有个误区:你不通过其他节点访问这个文件,文件也只是在你上传的网站上面存了一份而已。根本没有持久性可言,网站硬盘不够了把文件删了也就没了。ipfs 充其量只能当 cdn。
    lengyihan
        3
    lengyihan  
    OP
       2017-11-26 11:09:54 +08:00 via Android
    @mckelvin 说得不是 ipfs.io ,说的是 https://img9.top 。前不久 v 友发的。
    lengyihan
        4
    lengyihan  
    OP
       2017-11-26 11:11:01 +08:00 via Android
    Loyalsoldier
        5
    Loyalsoldier  
       2017-11-26 11:23:56 +08:00
    @lengyihan img9.top 就是用 IPFS 来做的。

    其实我想说的是,只有一个节点活着肯定是不够的,因为这个唯一的节点它本地的硬盘肯定不可能装满 IPFS 上所有的内容。

    这跟比特币的区块链最不一样的地方在于,比特币区块链的文件相对来说很小,可以在单机内完全存储完,但是 IPFS 这种意图做内容分发,甚至是大量内容分发的工具,它最终会面临网络内存储的内容过多,而单机硬盘无法全部装载。

    那么这种情况下,只有少数节点活着,是不能保证整个系统的所有内容都存在的……毕竟不能保证少数节点能存储所有内容。

    这是我的理解,不知道是否完全正确,各位大佬下面补充吧。
    onsale
        6
    onsale  
       2017-11-26 12:12:30 +08:00 via Android
    打开那个网页就是创建了一个 ipfs 节点
    https://wsss.herokuapp.com/ipfs/quickupload.html


    为了兼容现有互联网会存在 http public gateway
    https://wsss.herokuapp.com/ipfs/public-gateway-checker/

    up↔(P2P)↔Gateway↔(HTTP)↔down
    takato
        7
    takato  
       2017-12-09 22:27:50 +08:00
    @Loyalsoldier 一个节点不一定要存储整个 IPFS 的所有内容。其实可以从磁盘阵列 RAID 10 里面得到一些启发,只要保证全网存在一定数量的文件副本即可,这些文件副本甚至可以只是一个文件的一部分。

    不过这并不代表 IPFS 的实现原理,只是说明这个存储方案的可行性。
    jisibencom
        8
    jisibencom  
       2018-01-02 09:13:34 +08:00
    @onsale 你好,这个是怎么实现的啊,怎么部署到自己的 VPS 上呢,IPFS 装了
    onsale
        9
    onsale  
       2018-01-02 13:45:58 +08:00 via Android   ❤️ 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3860 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 10:16 · PVG 18:16 · LAX 03:16 · JFK 06:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.