手把手教你搭建IPFS私有網(wǎng)絡(luò)與使用(附IPFS API參考文檔)
在聯(lián)盟鏈的場景下,IPFS 作為去中心化存儲的首選方案,本文將介紹如何使用go-ipfs搭建一個(gè)私有網(wǎng)絡(luò)并進(jìn)行簡單使用。
我的環(huán)境
由于資源限制,我這里使用docker來搭建一個(gè)兩個(gè)節(jié)點(diǎn)的 IPFS 私有網(wǎng)絡(luò)。如果有條件可以直接在多臺機(jī)器或者多個(gè)虛擬機(jī)上安裝。
開始搭建
1、生成 swarm.key
swarm.key 是一個(gè)共享密鑰,只有擁有相同密鑰的節(jié)點(diǎn)才能互相通信,組成一個(gè)私鑰網(wǎng)絡(luò)。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 節(jié)點(diǎn) 1 目錄。
- /Users/sixdays/tmp/ipfs/node2 是我 ipfs 節(jié)點(diǎn) 2 目錄。
2、啟動節(jié)點(diǎn)
運(yùn)行節(jié)點(diǎn) 1 和節(jié)點(diǎn) 2
// 運(yùn)行節(jié)點(diǎn) 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 // 運(yùn)行節(jié)點(diǎn) 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
清除所有缺省啟動節(jié)點(diǎn) bootstrap
docker exec ipfs_node_1 ipfs bootstrap rm all docker exec ipfs_node_2 ipfs bootstrap rm all
查看節(jié)點(diǎn) id
docker exec ipfs_node_1 ipfs id docker exec ipfs_node_2 ipfs id
這里,我節(jié)點(diǎn) 1 的 Id 是 :
12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
節(jié)點(diǎn) 1 的 address 是:
/ip4/172.17.0.3/tcp/4001/p2p/12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
節(jié)點(diǎn) 2 的 Id 是
12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
節(jié)點(diǎn) 2 的 address 是
/ip4/172.17.0.4/tcp/4001/p2p/12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
節(jié)點(diǎn)的 address 我用的是 docker 給分配的 ip 地址。
添加節(jié)點(diǎn) id
在節(jié)點(diǎn) 1 中添加節(jié)點(diǎn) 2 地址
docker exec ipfs_node_1 ipfs bootstrap add /ip4/172.17.0.4/tcp/4001/p2p/12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
在節(jié)點(diǎn) 2 中添加節(jié)點(diǎn) 1 地址
docker exec ipfs_node_1 ipfs bootstrap add /ip4/172.17.0.3/tcp/4001/p2p/12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
至此,我們 2 個(gè)節(jié)點(diǎn)的 IPFS 私有網(wǎng)絡(luò)已搭建完成。
用一下
使用命令
docker exec ipfs_node_1 ipfs -h
可以看到 IPFS 的基礎(chǔ)命令。
添加文件 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 上傳的文件內(nèi)容。
下載文件 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 對應(yīng)我們主機(jī)目錄為 /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參考文檔
到此這篇關(guān)于手把手教你搭建IPFS私有網(wǎng)絡(luò)與使用(附IPFS API參考文檔)的文章就介紹到這了,更多相關(guān)搭建IPFS私有網(wǎng)絡(luò)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
你可能感興趣的文章
-
加密貨幣空投有哪些類型?如何安全領(lǐng)取空投代幣?完整指南
隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,空投(Airdrop)已成為加密項(xiàng)推廣的重要式,簡單來說,空投就是免費(fèi)發(fā)放加密貨幣,的是吸引更多戶關(guān)注項(xiàng)目并參與其中,對新來說,空投是種低檻的 …
2025-09-23 -
區(qū)塊瀏覽器怎么用?怎么查看鏈上數(shù)據(jù)和轉(zhuǎn)賬狀態(tài)?
區(qū)塊瀏覽器是一種專門用于查詢和瀏覽區(qū)塊鏈信息的工具,本質(zhì)上是區(qū)塊鏈的 “搜索引擎”, 它能實(shí)時(shí)瀏覽和查詢區(qū)塊鏈上的區(qū)塊高度、交易記錄、地址、代幣等信息,將復(fù)雜的鏈…
2025-09-23 -
2025年如何挖掘萊特幣 (LTC)幣?挖礦教程、收益分析
萊特幣誕生于 2011 年,是比特幣的一個(gè)分叉,旨在成為更輕量、更快速的支付網(wǎng)絡(luò),它采用 Scrypt 算法,這是一種不同于比特幣 SHA-256 的哈希算法,最初的設(shè)計(jì)目的是降低挖礦…
2025-09-23 -
什么是跨鏈橋?市面上有哪些跨鏈橋?一文介紹
什么是跨鏈橋?跨鏈橋在加密貨幣領(lǐng)域發(fā)揮著至關(guān)重要的作用,它實(shí)現(xiàn)了不同區(qū)塊鏈網(wǎng)絡(luò)之間的資產(chǎn)轉(zhuǎn)移,這是必要的,因?yàn)槊總€(gè)區(qū)塊鏈都按照自己的規(guī)則獨(dú)立運(yùn)行,因此無法直接在…
2025-09-23 -
DeFi 3.0是什么?DeFi 3.0 代幣、功能、工作原理介紹
去中心化金融 (DeFi) 已經(jīng)徹底改變了人們對貨幣、借貸和投資的認(rèn)知,從早期簡單的借貸協(xié)議到如今高度復(fù)雜的收益挖礦方法,DeFi 不斷發(fā)展演變,這種演變的最新階段就是人們所…
2025-09-23 -
DePINFi是什么?有哪些分類?DePINFi的趨勢的優(yōu)勢和挑戰(zhàn)介紹
DePINFi 是“去中心化物理基礎(chǔ)設(shè)施網(wǎng)絡(luò)金融”的縮寫,是去中心化物理基礎(chǔ)設(shè)施網(wǎng)絡(luò) (DePIN) 與去中心化金融 (DeFi) 的交匯點(diǎn),下面小編就為大家詳細(xì)介紹一下它吧…
2025-09-22 -
Base生態(tài)核心項(xiàng)目有哪些?一文速覽值得關(guān)注的20個(gè)Base生態(tài)項(xiàng)目
本文將推薦Base生態(tài)中值得關(guān)注的20個(gè)項(xiàng)目,通過梳理這些項(xiàng)目的市場定位和資本表現(xiàn),來判斷Base生態(tài)的真實(shí)厚度,并進(jìn)一步揭示其未來增長的動力來源,這不僅是對Base App轉(zhuǎn)型…
2025-09-22 -
一文盤點(diǎn)Web3 AI的11個(gè)潛力項(xiàng)目:不要錯(cuò)過的造富列車
Web3 AI為普通人提供了參與AI財(cái)富創(chuàng)造的機(jī)會,不同于傳統(tǒng)AI的精英化,以下是我們精選的 Web3 AI領(lǐng)域最具潛力的項(xiàng)目和方向,Web3 AI的造富列車已經(jīng)啟動,現(xiàn)在上車還來得及…
2025-09-22 -
什么是加密貨幣完全稀釋估值FDV?怎么算?為何代幣解鎖可能意味著上漲
什么是加密貨幣完全稀釋估值FDV?為何代幣解鎖可能意味著上漲?FDV 考慮的是代幣的總供應(yīng)量,而流通供應(yīng)量指的是當(dāng)前市場上實(shí)際交易的代幣,理解 FDV 有助于全面評估一個(gè)項(xiàng)…
2025-09-20 -
什么是加密貨幣市值?市值為何重要?如何影響加密貨幣價(jià)格?
市值,通常被稱為“市值”,是一個(gè)反映加密貨幣總價(jià)值的財(cái)務(wù)指標(biāo),它是通過將加密貨幣的當(dāng)前價(jià)格乘以其總流通供應(yīng)量來計(jì)算的,本文深入探討了加密貨幣市值的含義、計(jì)算方法以…
2025-09-19