手把手教你搭建IPFS私有網(wǎng)絡(luò)與使用(附IPFS API參考文檔)
在聯(lián)盟鏈的場景下,IPFS 作為去中心化存儲的首選方案,本文將介紹如何使用go-ipfs搭建一個私有網(wǎng)絡(luò)并進行簡單使用。
我的環(huán)境
由于資源限制,我這里使用docker來搭建一個兩個節(jié)點的 IPFS 私有網(wǎng)絡(luò)。如果有條件可以直接在多臺機器或者多個虛擬機上安裝。
開始搭建
1、生成 swarm.key
swarm.key 是一個共享密鑰,只有擁有相同密鑰的節(jié)點才能互相通信,組成一個私鑰網(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é)點 1 目錄。
- /Users/sixdays/tmp/ipfs/node2 是我 ipfs 節(jié)點 2 目錄。
2、啟動節(jié)點
運行節(jié)點 1 和節(jié)點 2
// 運行節(jié)點 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 // 運行節(jié)點 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é)點 bootstrap
docker exec ipfs_node_1 ipfs bootstrap rm all docker exec ipfs_node_2 ipfs bootstrap rm all
查看節(jié)點 id
docker exec ipfs_node_1 ipfs id docker exec ipfs_node_2 ipfs id
這里,我節(jié)點 1 的 Id 是 :
12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
節(jié)點 1 的 address 是:
/ip4/172.17.0.3/tcp/4001/p2p/12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
節(jié)點 2 的 Id 是
12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
節(jié)點 2 的 address 是
/ip4/172.17.0.4/tcp/4001/p2p/12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
節(jié)點的 address 我用的是 docker 給分配的 ip 地址。
添加節(jié)點 id
在節(jié)點 1 中添加節(jié)點 2 地址
docker exec ipfs_node_1 ipfs bootstrap add /ip4/172.17.0.4/tcp/4001/p2p/12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
在節(jié)點 2 中添加節(jié)點 1 地址
docker exec ipfs_node_1 ipfs bootstrap add /ip4/172.17.0.3/tcp/4001/p2p/12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
至此,我們 2 個節(jié)點的 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)我們主機目錄為 /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)文章,希望大家以后多多支持腳本之家!
你可能感興趣的文章
-
Mynt是什么?如何在Monad測試網(wǎng)上挖礦Mynt?
Mynt是一個去中心化的穩(wěn)定幣協(xié)議,允許用戶通過存入ETH或MON(Monad 的原生代幣)作為抵押品,鑄造與美元掛鉤的穩(wěn)定幣USDm,通過與 Mynt 進行測試網(wǎng)互動,用戶可能有機會獲…
2025-06-06 -
如何在加密貨幣交易中應(yīng)用Black-Litterman模型?
Black-Litterman模型由Fischer Black和Robert Litterman于1991年在高盛開發(fā),Black-Litterman模型是加密貨幣交易和投資的強大工具,為最優(yōu)投資組合配置提供了穩(wěn)健的框架,那…
2025-06-06 -
加密貨幣交易中的諧波形態(tài):八種常用的諧波形態(tài)指南
諧波形態(tài)是依靠斐波那契比率來預(yù)示價格趨勢潛在反轉(zhuǎn)的高級圖表形態(tài),諧波形態(tài)精確且數(shù)學(xué)定義明確,使其成為重視市場預(yù)測結(jié)構(gòu)化方法的交易者的最愛,在本指南中,我們將探討諧…
2025-06-06 -
區(qū)塊鏈的多層結(jié)構(gòu)都有那些?L1 與 L2 有什么區(qū)別?新手完整指南
區(qū)塊鏈的多層結(jié)構(gòu)都有那些?區(qū)塊鏈層:完整指南區(qū)塊鏈被稱為革命性的,但其潛力的本質(zhì)在于其多層架構(gòu),這些層決定了信息在分布式網(wǎng)絡(luò)中的傳遞、驗證、記錄和訪問方式,從硬件…
2025-06-06 -
什么是空投挖礦?如何在2025年進行空投挖礦?
空投挖礦是指積極尋求并參與由各種加密貨幣初創(chuàng)公司或項目的創(chuàng)始人和創(chuàng)始人組織的空投活動,很多新手投資者還不了解什么是空投挖礦?如何在2025年進行空投挖礦?下文將為大…
2025-06-06 -
什么是時空證明PoSt?有什么優(yōu)勢?有哪些值得關(guān)注的項目?
Proof-of-Space-Time(PoST)是什么?Proof-of-Space-Time(PoST)有什么優(yōu)勢?時空證明PoSt有哪些值得關(guān)注的項目?下面腳本之家小編給大家詳細介紹下時空證明PoSt是什么吧…
2025-06-06 -
Solana是什么?它如何運作?與其他鏈有何不同?
Solana 是一個高性能公鏈,以其速度快、費用低和可擴展性而聞名,它于 2020 年上線,支持智能合約、去中心化應(yīng)用 (dApp) 和數(shù)字資產(chǎn)——與以太坊類似,但速度更快、成本更低…
2025-06-05 -
SUI上排名前五的空投項目有哪些?SUI 上5大最佳空投項目
Sui近期在DEX日交易量上超越了Base,表明盡管發(fā)生了短暫震動網(wǎng)絡(luò)的安全事件,但用戶參與度依然強勁,即使在受到協(xié)議層漏洞影響后,生態(tài)系統(tǒng)仍展現(xiàn)出非凡的韌性——用戶并未…
2025-06-05 -
InfoFi與注意力經(jīng)濟平臺Kaito是什么?Kaito新手使用教學(xué)
KAITO是AI驅(qū)動的Web3一站式資訊平臺,KAITO是Kaito生態(tài)關(guān)鍵代幣,生態(tài)主要交易媒介、能質(zhì)押、能參與項目Launchpad、能分配獎勵,就像是注意力版本的$BNB代幣之于BNB生態(tài),下…
2025-06-05 -
什么是InfoFi?有哪些InfoFi項目值得關(guān)注?如何利用InfoFi賺錢
一個新的金融前沿正在形成——信息、注意力和數(shù)字信號成為寶貴的資產(chǎn),在本文中,我們探討了什么是InfoFi,有哪些InfoFi項目值得關(guān)注以及個人在這個新的信息驅(qū)動型經(jīng)濟中如…
2025-06-05