手把手教你搭建IPFS私有网络与使用(附IPFS API参考文档)
在联盟链的场景下,IPFS 作为去中心化存储的首选方案,本文将介绍如何使用go-ipfs搭建一个私有网络并进行简单使用。
我的环境
由于资源限制,我这里使用docker来搭建一个两个节点的 IPFS 私有网络。如果有条件可以直接在多台机器或者多个虚拟机上安装。
开始搭建
1、生成 swarm.key
swarm.key 是一个共享密钥,只有拥有相同密钥的节点才能互相通信,组成一个私钥网络。swarm.key 可以使用 工具 生成,工具的安装命令是:
go get -u github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
安装完成后,生成 swarm.key,命令是:
ipfs-swarm-key-gen > /Users/sixdays/tmp/ipfs/swarm.key
其中
- /Users/sixdays/tmp/ipfs/ 目录是我 ipfs 目录。
- /Users/sixdays/tmp/ipfs/node1 是我 ipfs 节点 1 目录。
- /Users/sixdays/tmp/ipfs/node2 是我 ipfs 节点 2 目录。
2、启动节点
运行节点 1 和节点 2
// 运行节点 1 docker run -d --name ipfs_node_1 -e IPFS_SWARM_KEY_FILE=/Users/sixdays/tmp/ipfs/swarm.key -v /Users/sixdays/tmp/ipfs/node1/staging:/export -v /Users/sixdays/tmp/ipfs/node1/data:/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/go-ipfs:latest // 运行节点 2 docker run -d --name ipfs_node_2 -e IPFS_SWARM_KEY_FILE=/Users/sixdays/tmp/ipfs/swarm.key -v /Users/sixdays/tmp/ipfs/node2/staging:/export -v /Users/sixdays/tmp/ipfs/node2/data:/data/ipfs -p 4002:4001 -p 4002:4001/udp -p 127.0.0.1:8081:8080 -p 127.0.0.1:5002:5001 ipfs/go-ipfs:latest
清除所有缺省启动节点 bootstrap
docker exec ipfs_node_1 ipfs bootstrap rm all docker exec ipfs_node_2 ipfs bootstrap rm all
查看节点 id
docker exec ipfs_node_1 ipfs id docker exec ipfs_node_2 ipfs id
这里,我节点 1 的 Id 是 :
12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
节点 1 的 address 是:
/ip4/172.17.0.3/tcp/4001/p2p/12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
节点 2 的 Id 是
12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
节点 2 的 address 是
/ip4/172.17.0.4/tcp/4001/p2p/12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
节点的 address 我用的是 docker 给分配的 ip 地址。
添加节点 id
在节点 1 中添加节点 2 地址
docker exec ipfs_node_1 ipfs bootstrap add /ip4/172.17.0.4/tcp/4001/p2p/12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
在节点 2 中添加节点 1 地址
docker exec ipfs_node_1 ipfs bootstrap add /ip4/172.17.0.3/tcp/4001/p2p/12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
至此,我们 2 个节点的 IPFS 私有网络已搭建完成。
用一下
使用命令
docker exec ipfs_node_1 ipfs -h
可以看到 IPFS 的基础命令。
添加文件 add
$ docker exec ipfs_node_1 ipfs add /data/ipfs/swarm.key added QmRitSEMhFJtNhLYtwGRJvhDrTTT4gQLjuLepZjo9C8a2X swarm.key
其中 :
- /data/ipfs/swarm.key 为 ipfs_node_1 容器的目录。
- QmRitSEMhFJtNhLYtwGRJvhDrTTT4gQLjuLepZjo9C8a2X 为文件 hash
查看文件 cat
$ docker exec ipfs_node_2 ipfs cat QmRitSEMhFJtNhLYtwGRJvhDrTTT4gQLjuLepZjo9C8a2X /key/swarm/psk/1.0.0/ /base16/ 5b9941085678c502b44cc98e2614dd648cb801115dcb6acee8e83d9bf8cf454c
可以看到我们可以在 node2 中查看到 node1 上传的文件内容。
下载文件 get
$ docker exec ipfs_node_2 ipfs get QmRitSEMhFJtNhLYtwGRJvhDrTTT4gQLjuLepZjo9C8a2X -o /data/ipfs/test.key Saving file(s) to /data/ipfs/test.key 95 B / 95 B 100.00% 0s
其中 -o 表示输出目录,docker 容器中的 /data/ipfs 对应我们主机目录为 /Users/sixdays/tmp/ipfs/node2/data
查看文件列表 ls
$ docker exec ipfs_node_2 ipfs pin ls QmQ5vhrL7uv6tuoN9KeVBwd4PwfQkXdVVmDLUZuTNxqgvm indirect QmU5k7ter3RdjZXu3sHghsga1UQtrztnQxmTL22nPnsu3g indirect QmYCvbfNbCwFR45HiNP45rwJgvatpiW38D961L5qAhUM5Y indirect QmejvEPop4D7YUadeGqYWmZxHhLc4JBUCzJJHWMzdcMe2y indirect QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB indirect QmQGiYLVAdSHJQKYFRTJZMG4BXBHqKperaZtyKGmCRLmsF indirect QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc recursive QmQy6xmJhrcC5QLboAcGFcAE1tC8CrwDVkrHdEYJkLscrQ indirect QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn recursive
其中 recursive 表示文件夹,indirect 表示文件
参考:IPFS API参考文档
到此这篇关于手把手教你搭建IPFS私有网络与使用(附IPFS API参考文档)的文章就介绍到这了,更多相关搭建IPFS私有网络内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
你可能感兴趣的文章
-
什么是加密货币挖矿?通俗讲解其运作原理、内核类型与收益现状
本文介绍了加密货币挖矿的原理,矿工利用算力解决难题以验证交易、发行新币并保障区块链安全,文章通俗讲解了哈希运算、挖矿难度等流程,分析了ASIC、矿池等类型,并结合比特…
2026-06-10 -
什么是权益证明PoS?详解区块链PoS共识机制原理与特点
本文介绍了区块链权益证明 PoS 共识机制,讲解了共识机制的基本概念、PoS 的运作原理、核心优势与安全特性,同时分析其现存隐患,还列举了 PoA、DPoS 等其他主流共识机制,…
2026-06-10 -
什么是燃烧证明PoB?一文看懂它的工作原理、优缺点与应用
本文介绍了区块链中的“燃烧证明(PoB)”共识机制,它是除PoW和PoS之外的一种新型环保算法,其内核是让矿工通过永久销毁(烧毁)代币来换取虚拟挖矿能力,从而参与区块验证…
2026-06-10 -
DeFi安全分析:为何锁定流动性无法阻止730万美元的漏洞利用
长期以来,锁定流动性一直是去中心化金融领域最令人安心的安全指标之一,然而,最近一起造成730万美元损失的安全漏洞迫使人们对DeFi安全进行更深入的分析,下面小编为大家详…
2026-06-10 -
什么是Sonic链?一文详解
Sonic链是由原Fantom团队打造、接替Fantom Opera的高性能EVM兼容Layer1公链,并非Layer2扩容方案,是当下热门的Web3区块链基础设施,该公链沿用DAG有向无环图结构与aBFT异步…
2026-06-10 -
2026下半年最有可能持续成长的10大加密赛道
大多数山寨币永远无法重回2021年的历史高点,大多数新项目TGE后会长期在发行价下方震荡,资本比以往任何时候都更苛刻,有些赛道会持续复利成长,有些则会逐渐被市场遗忘,以…
2026-06-09 -
代币市场现状分析:两大特质决定未来代币长期持有价值
代币收益行情受内部代币解锁、价值捕获机制缺失等多因素制约,解锁事件频繁导致市场抛压,治理型代币缺乏收益分配,机构投资者逐渐接手长期持仓,推动市场走向更健康状态,本文…
2026-06-09 -
2026世界杯倒计时!Polymarket预测市场热门预测主题盘点
这篇文章主要为大家介绍了Polymarket在世界杯预测市场中的表现、热门预测主题及市场机制解析,强调了其预测的的高可信度和独特性,需要的朋友可以参考下…
2026-06-08 -
Ondo Perps教学:链上20x杠杆玩代币化美股,开户评测一次看
Ondo Perps 是 Ondo Finance 在 2026 年 6 月 9 日上线的代币化美股永续合约交易所,直接把美股、指数、商品搬上链做成永续合约,本文就给大家介绍了Ondo Perps详细教学,需…
2026-06-08 -
什么是加密货币中的分叉?硬分叉和软分叉有什么不同?
本文介绍了加密货币硬分叉与软分叉的内核概念,硬分叉是对协议的重大升级,新旧版本不兼容,常会产生新币;软分叉则是温和升级,新旧版本依然兼容,通过定义与案例,带大家轻…
2026-06-06










