IPFS: 私有網路(private network)的搭建與使用

買賣虛擬貨幣

原文來自於微信公眾號:IPFS指南(ipfs_guide) 

已獲公眾號允許轉載授權




我對IPFS一直很感興趣,本身也有一點持倉,所以希望借這篇文章計劃搭建IPFS網路的可以瞭解一下,希望系統學習的可以關注這個公眾號。

以下是原文:

好久沒有寫文章了,最近ipfs終於更新了新版本0.4.14。大家可以測試起來。

之前就有不少朋友問題來過,ipfs是否支援私有網路?

答案是:支援


今天小編就帶大家來看看ipfs的私有網路是如何搭建、使用的?

小編有意測試一下私有網路的資料傳輸情況,畢竟ipfs也更新了新的版本。所以使用了一個本地節點(小編的Mac筆記本)和3個亞馬遜的aws節點。

如果還不知道如何安裝IPFS節點的朋友,參照這篇文章《如何在IPFS裡面上傳一張照片》裡面的內容。

一 環境準備

A:本地節點(Mac)

    IP: 動態IP

    ipfs 節點ID:QmTrRNgt6M9syRq8ZqM4o92Fgh6avK8v862n2QZLyDPywY

B:亞馬遜AWS

    IP:13.230.162.124

    ipfs節點:QmRQH6TCCq1zpmjdPKg2m7BrbVvkJ4UwnNHWD6ANLqrdws

C: 亞馬遜AWS

    IP:13.231.247.2

    ipfs 節點:QmTTEkgUpZJypqw2fXKagxFxxhvoNsqfs5YJ9zHLBoEE29

D: 亞馬遜AWS

    IP:13.114.30.87

    ipfs節點:Qmc2AH2MkZtwa11LcpHGE8zW4noQrn6xue7VcZCMNYTpuP

二 共享金鑰

私有網路所有的節點必須共享同一個金鑰,注意不要忘記這一點。

首先我們使用金鑰建立工具,建立一個金鑰。

下載地址:https://github.com/Kubuxu/go-ipfs-swarm-key-gen

該工具的安裝下載使用go。不會安裝的朋友自行Google,本文不在講解。

go get -u github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen

然後建立金鑰:

ipfs-swarm-key-gen > ~/.ipfs/swarm.key

注意:小編建立完金鑰放在了自己的ipfs預設配置資料夾下面(~/.ipfs/)

三 上傳金鑰到B,C,D的節點上面

小編直接使用了scp上傳到了其他三臺亞馬遜的伺服器上面:

scp -i ss-server.pem ~/.ipfs/swarm.key [email protected]:~/.ipfs/

scp -i ss-server.pem ~/.ipfs/swarm.key [email protected]:~/.ipfs/

scp -i ss-server.pem ~/.ipfs/swarm.key [email protected]:~/.ipfs/


由於小編的亞馬遜伺服器ipfs節點初始化的時候都是採用的預設設定(ipfs init)

所以把金鑰放到 ~/.ipfs/ 這個資料夾下面就可以了。


四 新增啟動節點

ipfs init後的預設啟動節點是連線ipfs公網的節點,如果要連線私有網路

在每一個節點執行下面的操作,刪除掉所有的預設啟動節點。

ipfs bootstrap rm —all

然後新增一個自己的預設節點(私有網路中的一個節點),預設節點可以是A,B,C,D中的任何一個。

我們選取了D節點作為啟動節點,在A,B,C節點執行下面的操作,把D節點的地址新增到A,B,C節點裡面。

ipfs bootstrap add/ip4/13.114.30.87/tcp/4001/ipfs/Qmc2AH2MkZtwa11LcpHGE8zW4noQrn6xue7VcZCMNYTpuP

五 啟動並檢視各個節點

A節點:


B節點:


C節點:


D節點:


我們發現四個節點相互連結在了一起,這就是我們私有ipfs網路。小編測試的過程中發現四個節點的連結非常的快速,即便是本地節點(北京的家庭網路)和東京區域的AWS網路之間的連線也非常的快,IPFS的網路連通性依然還是這麼優秀。


下面我在私有網路裡面做一些簡單的測試:

我們在本地節點A上面資料:

tt-3:Downloads tt$ ipfs add Brave-0.20.42.dmg

added QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg Brave-0.20.42.dmg

在其他幾個節點下載資料:

ubuntu@ip-172-31-26-222:~/ipfs$ ipfs get QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg

Saving file(s) to QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg

 149.80 MB / 149.80 MB [=======================================] 100.00% 2m58

ubuntu@ip-172-31-18-30:~$ ipfs get QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg

Saving file(s) to QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg

 149.80 MB / 149.80 MB [=======================================] 100.00% 2m58s

ubuntu@ip-172-31-16-152:~$ ipfs get QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg

Saving file(s) to QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg

 149.80 MB / 149.80 MB [=========================================] 100.00% 2s


從上面的測試可以看出來,小編首先在本地節點(Mac)上面add了檔案 QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg。

然後在亞馬遜的機子(位於日本東京區域)進行檔案下載。150M的檔案在前兩個節點上面下載使用了 2分58秒。而在第三個節點上下載僅僅使用了2秒。


如果配合上之前《IPFS家族二》介紹的ipfs-cluster,更方便的管理這些私有網路的叢集資料。對於一些大型企業內部的資料分發和加速會有很好的應用。 

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;