手把手教你搭建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私有网络内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
你可能感兴趣的文章
-
币圈新手技术分析攻略:八大技术指标解读加密货币跟市场趋势
作为新手交易者,我们在知道如何利用波动参与市场的同时,最好的做法是结合多个指标,并将技术分析和基本面分析相结合,进行充分的学习和试错交易,以提高交易决策的准确性…
2025-04-22 -
趋势线怎么画、KD值怎么看黄金交叉?如何使用TradingView画趋势线?
TradingView成立于2011 年,是一个用来看K线图的数据分析平台,美股、加密货币、期货、外汇等投资相关的金融投资商品都能在TradingView 当中进行分析,本文将为手把手教大家…
2025-04-22 -
什么是储备证明审计(PoR)?储备证明审计如何运作?
储备证明审计是加密货币交易所使用的密码学验证,用于证明他们持有足够的资产来覆盖客户存款,本文探讨了什么是储备证明审计?储备证明审计如何运作?PoR审计、它们在加密货…
2025-04-22 -
Movernance是什么?一站式质押+治理+发币平台及生态明星项目介绍
作为Movement区块链上首个结合质押+治理+发币三大功能的一站式平台,Movernance 不仅提供灵活的质押方式,还让用户能参与生态治理、支持新项目发行,这篇文章将带你完整…
2025-04-21 -
区块链与Web3之间是什么关系?区块链将如何推动Web3的扩展?
Web3时代,人们有望拥有数字物品,轻松在线交易,并能加强对个人数据的控制,区块链和加密货币生态系统已经打造出适用于Web3的产品,例如,用户可以点对点(C2C)支付,并用加密货币…
2025-04-21 -
2025年必知的所有美国加密货币ETF申请现状与影响
2025年,加密 ETF 扩展至 Solana、XRP、DOGE 等山寨资产,主流资产管理机构竞相提交申请,本文将详细介绍 ETF 申请现状、获批概率与潜在影响,勾勒加密资产迈向传统金融体系…
2025-04-21 -
什么是Recal?Recall项目背景、核心技术、特性介绍及风险分析
Recall 作为一个创新的去中心化平台,通过区块链技术为 AI 代理提供了一个全新的协作和经济激励框架,它解决了传统 AI 系统在数据透明性、信任机制和协作能力方面的挑战,为…
2025-04-21 -
什么是TWAP和VWAP?TWAP与VWAP在加密货币交易中的区别是什么?
本文要为大家介绍的是时间加权平均价格(TWAP)和成交量加权平均价格(VWAP),内容包括TWAP和VWAP详细介绍,TWAP与VWAP在加密货币交易中的区别是什么?如何计算TWAP和VWAP…
2025-04-21 -
auto.fun是什么?有哪些Alpha机会?值得关注项目盘点
ai16z Launchpad平台auto.fun上线,超过15个项目将加入auto.fun的启动,包括FightFi的竞争社交代理、Kryptonite的CZAI代理和Comput3的计算信用代币,首日项目包括Secret的So…
2025-04-20 -
一文盘点九个未发行代币且可以参与积分挖矿的DeFi协议
虽然加密市场看起来枯燥乏味,而且被宏观因素所主导,但还是有一批新兴的、值得尝试的、无代币协议,本文将盘点 9 个可以参与收益挖矿的协议,需要的朋友可以参考下…
2025-04-18