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

任意网络下基于 ipfs 的去中心化文件分享大概思路

  •  
  •   Qds · 7 天前 · 755 次点击
    ipfs 大概就一个去中心的文件存储系统,大概的细节大家可以自行问 ai 来解决这个问题,
    我 ipfs 初始化好了 运行之后,输入 http://127.0.0.1:5001/webui 打开 ipfs 的 webui 地址
    我偶然间发现最新的 ipfs 版本的 webui 页面里面 有个添加链接 大概介绍是下面这样的:

    添加连接
    请输入你想要连接的对等节点地址。
    例子:
    /dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJy.....
    /ip4/IP/udp/4001/quic/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJy.....


    其中我试了 /dnsaddr/bootstrap.libp2p.io/p2p/TARGET_PEER_ID ,这个基本上是可以连接成功的

    旧版本用的是 /p2p-circuit/ipfs/TARGET_PEER_ID 后来的这个功能被移除了改成了 要指定某个中继节点才可以(/p2p/RELAY_PEER_ID/p2p-circuit/p2p/TARGET_PEER_ID ),最新版本突然支持 /dnsaddr/bootstrap.libp2p.io/p2p/TARGET_PEER_ID ,不用指定中继节点了,所以连接成功率大大提升了。

    结果基本上都能添加成功,添加成功建立连接以后,就可以方便的互传文件了

    比如 ipfs add -w 文件地址 获取最后一行的文件 CID 之后 对方发给我
    我就能直接通过这个 CID 和 ipfs get CID 就能够轻松获取对方的文件

    -w 主要是 自动给文件套一层文件夹 以免文件的名字和扩展名被改
    第 1 条附言  ·  6 天前
    目前我用的比较新的版本是 ipfs v0.39.0 版本

    用的基本上是 ipfs 命令:

    ipfs init 和 ipfs daemon 命令和 ipfs.exe 环境变量配置就不多说了,ai 都可以搜到

    A 节点 移动 nat 网络下的 win10 ipfs 已运行 能正常上网


    B 节点 电信 nat 网络下的 win10 ipfs 已运行 能正常上网

    A 电脑操作

    // A 节点添加文件 (一般最后那个就是 CID)
    ipfs add -w 文件地址


    // 里面可以获取 A 节点的 peerId
    ipfs id


    B 电脑操作 (/dnsaddr/bootstrap.libp2p.io/p2p/后面那串就是 A 节点的 peerId )
    // B 节点连接节点 A
    ipfs swarm connect /dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJy.....


    // B 节点获取节点 A 的文件
    ipfs get A 节点存入文件和文件夹的 CID
    7 条回复    2025-12-15 16:07:36 +08:00
    MindMindMax
        1
    MindMindMax  
       7 天前
    早就有这个功能了吧 https://github.com/ipfs/ipfs-webui/issues/1602

    内地很难用,有网络限制。
    NewYear
        2
    NewYear  
       7 天前
    ipns ?
    Qds
        3
    Qds  
    OP
       6 天前
    @MindMindMax #1 现在不难用了,你可以试试最新的版本,基本上国内任意网络打通率很高
    Qds
        4
    Qds  
    OP
       6 天前
    @NewYear #2 不是这个,主要用的是 CID 来获取文件,ipns 简单来讲就是把 你的 CID 发布到一个 peerId 上 (每个节点默认就是这样的), 这个 peerId 只有节点自己才能发布,其他人是不能发布的
    NewYear
        5
    NewYear  
       5 天前
    @Qds #4

    原来如此,我的 ID 别人都访问不到的,最新版 ipfs desktop
    Qds
        6
    Qds  
    OP
       3 天前
    @NewYear #5 一般你如果不是公网服务器(并开放 4001-tcp/udp 8080-tcp 看需求)而 是 nat 网络下面的电脑,别人一般需要中继才能连到你 怎么连接 我已经发过了,一般对方要访问 webui ,里面添加你的地址才可以,http://127.0.0.1:5001/webui 页面里面的 节点菜单下面的,添加连接 /dnsaddr/bootstrap.libp2p.io/p2p/你的 peerId 一般添加成功后 就可以访问到了 不过我还是推荐敲命令 更灵活
    NewYear
        7
    NewYear  
       3 天前
    @Qds

    不错不错
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   995 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:44 · PVG 02:44 · LAX 10:44 · JFK 13:44
    ♥ Do have faith in what you're doing.