当前位置:首页 > 区块链技术 > 搭建IPFS私有网络

手把手教你搭建IPFS私有网络与使用(附IPFS API参考文档)

2021-04-08 14:31:50 | 来源:登链社区 | 作者:佚名
这篇文章主要介绍了手把手教你搭建IPFS私有网络与使用,在联盟链的场景下,IPFS 作为去中心化存储的首选方案,本文将介绍如何使用 go-ipfs 搭建一个私有网络并进行简单使用。下面一起来参考下内容吧!

在联盟链的场景下,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私有网络内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

免责声明:本文只为提供市场讯息,所有内容及观点仅供参考,不构成投资建议,不代表本站观点和立场。投资者应自行决策与交易,对投资者交易形成的直接或间接损失,作者及本站将不承担任何责任。!
Tag:IPFS   私有网络   区块链  

你可能感兴趣的文章

币圈快讯

  • 交易员DoctorProfit称8万至8.1万美元为BTC长期做多加仓区间目标9.4万美元

    2026-10-25 15:52
    10月25日,交易员DoctorProfit发文称,尽管比特币此前从8.4万美元回落至8万美元下方时遭部分市场参与者嘲讽,但其数周来一直将8万至8.1万美元视为加仓BTC多单的区间,当前建仓着眼长期走势,而非追求短期4000美元涨幅。DoctorProfit透露,其在6万美元附近建立的现货仓位仍全部持有,下一目标价维持9.4万美元,若BTC再次回落至
  • 野村:存储芯片短缺局面将持续至2028年板块估值已被严重低估

    2026-10-25 15:46
    10月25日,野村证券表示,市场对人工智能投资前景的担忧属于“反应过度”,存储芯片短缺局面将持续至2028年,存储板块估值已被严重低估。
  • 美联储议息周开启美国10月通胀预期升至4.7%

    2026-10-25 15:45
    密歇根大学10月23日终值调查:美国家庭未来一年通胀预期升至4.7%(9月4.6%),长期预期由3.4%升至3.5%,连续两月上行且均创5月以来最高;消费者信心基本持平于48.0(9月48.1),其中现状指数降至46.7、预期指数升至48.8。数据发布于美联储10月27-28日议息会议前夕——其9月16日会议刚将联邦基金目标利率上调25个基点至3.75%-4.00%,重申2%通胀目标。该调查衡量家庭预期,与实际CPI及美联储预测不同;前理事Kugler曾称长期预期是货币政策可信度的有用信号。对加密资产,传导经融资条件、现金回报与投资者持有波动资产意愿:更高通胀预期理论上增强稀缺资产吸引力,但紧缩政策压制投机需求,周三政策声明为关键观察点。
  • 比特币现货ETF两日净流出7.735亿美元链上信号却显积累

    2026-10-25 15:43
    10月22日与23日,比特币现货ETF净流出总计7.735亿美元;同期BTC价格下跌3.45%并延续至周末,当周(10月20-23日)整体净流出。但链上数据呈现分化:分析师CW8900称,比特币1年期巨鲸持仓变化指标接近转正,巨鲸抛压自7月回落,持仓量由-282kBTC升至-39kBTC,不足3个月累计买入243kBTC。AxelAdlerJr.指出,7月1日BTC于59300美元时MVRV百分位触0%,9月底回升至32%后回落至25%,显示市场仍处早期至中期积累阶段;9月22日以来30天交易所净流出为正,可售供给收缩。期货市场30天持仓指数由一周前-0.5升至0.3,买卖趋于均衡。分析称,若转向交易所净流入叠加持仓指数为负,方为进一步看跌的强烈信号。
  • ai16z创始人Shaw称Pump.fun合约逆向工程已完成九成预计今晚收尾

    2026-10-25 15:42
    10月25日,ai16z创始人Shaw发文表示,目前已完成Pump.fun全部合约逆向工程工作的90%,预计将于当晚完成剩余部分。Shaw同时称:"开源一切,否则就会被强制开源。"
  • 查看更多