首页 > 解决方案 > ipfs 文件 ls 似乎无法配置为专用网络

问题描述

当配置为专用网络时,“ipfs 文件 ls”不返回任何内容(尽管许多文件已加载并通过该特定对等方的 webui 可见。当网络是公共的时它确实工作正常。nodejs 客户端 ipfs.files.ls也不返回任何东西。这是由于我的节点配置错误吗?有什么办法吗?谢谢。

标签: ipfs

解决方案


有趣的。我似乎无法重现这种行为,你运行的是什么版本的 IPFS?

以下是我使用 MFS 工作(全新安装)设置专用网络的方法:

初始化 IPFS 存储库

ipfs init

生成群密钥

go get github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
cd ~/go/bin/
./ipfs-swarm-key-gen > ~/.ipfs/swarm.key

删除默认引导程序

ipfs bootstrap rm --all

添加新的引导程序(如果需要)

ipfs bootstrap add <multiaddr>

编辑 systemd 服务以强制执行专用网络(路径可能会有所不同)

Environment="LIBP2P_FORCE_PNET=1"在下面添加[Service]

sudo vim /usr/lib/systemd/user/ipfs.service

启动 IPFS 守护进程

systemctl --user start ipfs

检查 MFS

ipfs files ls /

没有输出,因为我们刚刚初始化

将文件添加到 MFS

echo "Hello world" > hello
ipfs add hello
ipfs files cp /ipfs/QmePw8gVcBMb8x6kAep6aMBAX23hCSk6iZW3i9VKkiFhu1 /hello

再次检查 MFS

ipfs files ls /

正确报告hello

验证专用网络确实正在使用

systemctl --user stop ipfs
mv ~/.ipfs/swarm.key ~/.ipfs/swarm.key.bk
systemctl --user start ipfs
systemctl --user status ipfs

如果正在强制执行专用网络,您应该会看到守护程序无法启动。

将私钥移回

mv ~/.ipfs/swarm.key.bk ~/.ipfs/swarm.key

推荐阅读