[教程]ipfs for docker搭建实录
前言
很久前就知道ipfs
这个东西,最近打算试试看,打算拿T490
试下
chatgpt 介绍ifps
IPFS是一个创新的分布式文件系统,通过去中心化、内容寻址和点对点网络等技术,提供了可靠、高效的文件传输和存储解决方案,具有潜力改变传统互联网的架构和方式。
chatgpt 介绍docker
Docker是一个强大的容器化平台,通过提供独立、可移植的容器环境,简化了应用程序的构建、部署和管理过程,提高了开发效率和应用程序的可移植性。它已经成为现代应用程序开发和部署的重要工具之一。
搭建实录
确定系统版本
一般来说,没有特别多限制
相关链接
安装docker
这里不多说,可以参考下我之前的文章完整上线一个php+nginx+mysql+redis架构的网站
确定要同步的文件
因为ifps依靠文件系统来同步,docker需要知道那些文件可以映射到容器中,本地建立目录比如:mkdir -p /home/usrname/ifpsfiles/file
,mkdir -p /home/username/ifpsfiles/data/
docker命令
Start a container running ipfs and expose ports 4001 (P2P TCP/QUIC transports), 5001 (RPC API) and 8080 (Gateway):
启动容器,如果本地没有镜像,会自动拉取hub上的,开放端口4001(用于p2p传输),5001(用于api接口),8280(网关)
看到一串代码,代表启动成功了。
[ya@ya-PC ~]$ docker run -d --name ipfs_host -v /home/username/ifpsfiles/data/:/export -v /home/usrname/ifpsfiles/file:/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8280:8080 -p 127.0.0.1:5001:5001 ipfs/kubo:latest
Unable to find image 'ipfs/kubo:latest' locally
latest: Pulling from ipfs/kubo
b2d221698d1d: Pull complete
361c95a9f2c8: Pull complete
b294bc7b3de5: Pull complete
8bcd9c141fe1: Pull complete
970d28aee2ab: Pull complete
fa7ceb11e44c: Pull complete
b635a16a6d9a: Pull complete
15903a5399cf: Pull complete
9d85f0a4e0b3: Pull complete
4f4fb700ef54: Pull complete
ee13aab5e171: Pull complete
f79a8969d998: Pull complete
30c781c480a2: Pull complete
6b61adb00adf: Pull complete
46a8dcf5ffd9: Pull complete
b0bad31497e6: Pull complete
Digest: sha256:19891b091ff9e2500c1761b09b133d8a9ddd68b68c10bad25da5f3f2b2775487
Status: Downloaded newer image for ipfs/kubo:latest
c72b02e50672274a4de27edb673dc8637ebff31252f1d290dd4a087e153a8943
查看log
看到Daemon is ready
代表启动成功
[ya@ya-PC ~]$ docker logs -f ipfs_host
Changing user to ipfs
ipfs version 0.20.0
generating ED25519 keypair...done
peer identity: 12D3KooWDooJXwUAs4GMQ7VaB6zZy2DHmGNRHyJoLpGgCwKgruCc
initializing IPFS node at /data/ipfs
Initializing daemon...
Kubo version: 0.20.0-b8c4725
Repo version: 13
System version: amd64/linux
Golang version: go1.19.1
Computed default go-libp2p Resource Manager limits based on:
- 'Swarm.ResourceMgr.MaxMemory': "8.3 GB"
- 'Swarm.ResourceMgr.MaxFileDescriptors': 536870908
Theses can be inspected with 'ipfs swarm resources'.
2023/06/08 10:09:23 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Receive-Buffer-Size for details. Swarm listening on /ip4/127.0.0.1/tcp/4001 Swarm listening on /ip4/127.0.0.1/udp/4001/quic Swarm listening on /ip4/127.0.0.1/udp/4001/quic-v1 Swarm listening on /ip4/127.0.0.1/udp/4001/quic-v1/webtransport/certhash/uEiBTP_YZ-V6ywKtFuCDtXi_IbkTLXTMqXyaCLcv5h7IZbQ/certhash/uEiBiDMqsg1MZpYaTTFsGf9fwW47-QsqzzPOI9NJlrUbIFw Swarm listening on /ip4/172.17.0.2/tcp/4001 Swarm listening on /ip4/172.17.0.2/udp/4001/quic Swarm listening on /ip4/172.17.0.2/udp/4001/quic-v1 Swarm listening on /ip4/172.17.0.2/udp/4001/quic-v1/webtransport/certhash/uEiBTP_YZ-V6ywKtFuCDtXi_IbkTLXTMqXyaCLcv5h7IZbQ/certhash/uEiBiDMqsg1MZpYaTTFsGf9fwW47-QsqzzPOI9NJlrUbIFw Swarm listening on /p2p-circuit Swarm announcing /ip4/127.0.0.1/tcp/4001 Swarm announcing /ip4/127.0.0.1/udp/4001/quic Swarm announcing /ip4/127.0.0.1/udp/4001/quic-v1 Swarm announcing /ip4/127.0.0.1/udp/4001/quic-v1/webtransport/certhash/uEiBTP_YZ-V6ywKtFuCDtXi_IbkTLXTMqXyaCLcv5h7IZbQ/certhash/uEiBiDMqsg1MZpYaTTFsGf9fwW47-QsqzzPOI9NJlrUbIFw Swarm announcing /ip4/172.17.0.2/tcp/4001 Swarm announcing /ip4/172.17.0.2/udp/4001/quic Swarm announcing /ip4/172.17.0.2/udp/4001/quic-v1 Swarm announcing /ip4/172.17.0.2/udp/4001/quic-v1/webtransport/certhash/uEiBTP_YZ-V6ywKtFuCDtXi_IbkTLXTMqXyaCLcv5h7IZbQ/certhash/uEiBiDMqsg1MZpYaTTFsGf9fwW47-QsqzzPOI9NJlrUbIFw RPC API server listening on /ip4/0.0.0.0/tcp/5001 WebUI: http://0.0.0.0:5001/webui Gateway server listening on /ip4/0.0.0.0/tcp/8080 Daemon is ready
web访问界面
访问:http://127.0.0.1:5001/webui
上传文件
界面上选择上传即可
分享文件
比如我传了一个文件为:
https://ipfs.io/ipfs/QmVEzYp3Xq4nAQdkgjpmVs1zaotJmz6dMVd1rSqZh7monc?filename=3tb2vrrwfby.jpg
QmVEzYp3Xq4nAQdkgjpmVs1zaotJmz6dMVd1rSqZh7monc
这串代码就是文件的hash,通过这个hash你可以在文件网关中随便找到一个节点下载,比如我经常用的:
https://cloudflare-ipfs.com/ipfs/QmVEzYp3Xq4nAQdkgjpmVs1zaotJmz6dMVd1rSqZh7monc?filename=3tb2vrrwfby.jpg
当然,ipfs.io网关应该是被X了,那么就需要一个万能的网关了,点这里获取:
https://ipfs.github.io/public-gateway-checker/
找到一个可用的网关,改下域名即可下载!
结束语
ifps,无疑是好东西,很多节点,文件传输很快,一般只要几分钟就能全球同步了,这下文件传输又多了一个渠道啦,不过不要不要随意透漏你的网关地址哦。
本文来自:[教程]ipfs for docker搭建实录-小码农,转载请保留本条链接,感谢!
- 本文标签: docker ifps 文件
- 本文链接: https://djc8.cn/archives/tutorial-actual-record-of-ipfs-for-docker-construction.html
- 版权声明: 本文由小码农原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权