1. 程式人生 > >IPFS(一)介紹與環境的搭建

IPFS(一)介紹與環境的搭建

IPFS(一)介紹與環境的搭建

1:What is IPFS

星際檔案系統(InterPlanetary File System). IPFS 是一個分散式的web, 點到點超媒體協議. 可以讓我們的網際網路速度更快, 更加安全, 並且更加開放

ps:這是官方的解釋

在我看來IPFS就是一個分散式檔案系統

2:為什麼會有IPFS

眾所周知, 網際網路是建立在HTTP協議上的. HTTP協議是個偉大的發明, 讓我們的網際網路得以快速發展.但是網際網路發展到了今天HTTP逐漸出來了不足.

HTTP的中心化是低效的, 並且成本很高.

使用HTTP協議每次需要從中心化的伺服器下載完整的檔案(網頁, 視訊, 圖片等), 速度慢, 效率低. 如果改用P2P的方式下載, 可以節省近60%的頻寬. P2P將檔案分割為小的塊, 從多個伺服器同時下載, 速度非常快.

Web檔案經常被刪除

回想一下是不是經常你收藏的某個頁面, 在使用的時候瀏覽器返回404(無法找到頁面), http的頁面平均生存週期大約只有100天. Web檔案經常被刪除(由於儲存成本太高), 無法永久儲存. IPFS提供了檔案的歷史版本回溯功能(就像git版本控制工具一樣), 可以很容易的檢視檔案的歷史版本, 資料可以得到永久儲存

中心化限制了web的成長

我們的現有網際網路是一個高度中心化的網路. 網際網路是人類的偉大發明, 也是科技創新的加速器. 各種管制將對這網際網路的功能造成威脅, 例如: 網際網路封鎖, 管制, 監控等等. 這些都源於網際網路的中心化.而分散式的IPFS可以克服這些web的缺點.

現在的網際網路應用高度依賴網際網路主幹網

主幹網受制於諸多因素的影響, 戰爭, 自然災害, 網際網路管制, 中心化伺服器宕機等等, 都可能是我們的網際網路應用中斷服務. IPFS可以是網際網路應用極大的降低網際網路應用對主幹網的依賴.

3:下載最新的IPFS

下載go-ipfs

3.1:官網下載

https://dist.ipfs.io/#go-ipfs

ps:這個網址開啟以後會出現很多的下載選項,我們需要下載對應的go-ipfs,會自動識別對應系統的下載連結

在這裡插入圖片描述

3.2:網盤下載

連結: https://pan.baidu.com/s/1SVe0zEY_x4cduDOAdO2MoQ

提取碼: 7dtz

4:安裝IPFS

1)將下載好的ipfs資料夾移動的建立好的資料夾解壓,進入解壓後的資料夾,目錄結構如下:

在這裡插入圖片描述

2)執行install.sh
在這裡插入圖片描述

  1. 測試安裝是否成功

在這裡插入圖片描述

4)檢視命令幫助

在這裡插入圖片描述

ps:在安裝執行./install.sh之後可能會出現執行ipfs version 或ipfs help 無法找到命令的錯誤,這個時候需要全域性代理翻牆,翻牆後重新執行./install.sh

5:初始化配置資訊與啟動守護程序

1)初始化ipfs

在命令列執行ipfs init

在這裡插入圖片描述

ps:初始化時會預設初始化在你的使用者目錄下新建一個.ipfs

​ 會生成你的節點id:/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv ps:這是這是我生成的id,每個人都是不一樣的

2)檢視安裝資訊
在這裡插入圖片描述

3)啟動守護程序

​ ipfs daemon

在這裡插入圖片描述

這條命令是啟動一條守護程序執行你的ipfs節點

可以通過ipfs swarm peers來檢視連結的節點

6:上傳下載

ipfs提供了兩種方式對檔案進行操作

1)weiui 方式

瀏覽器輸入localhost:5001/webui進入瀏覽器檔案操作頁面這裡不做演示傻瓜式操作

ps:在節點載入頁面特別的耗費資源,電腦可能會產生卡頓,關掉就好了

2)命令列方式

我在F:盤新建了一個1.txt內容為:123456789

上傳1.txt

ipfs add 1.txt

在這裡插入圖片描述

這個 QmbbHQPfRcXmZMgwFbu8wiaA1oG3NRQcni7zDQXbuvVaXB就是檔案的hash值,通過它可以找到這個檔案

通過hash檢視1.txt

ipfs cat QmbbHQPfRcXmZMgwFbu8wiaA1oG3NRQcni7zDQXbuvVaXB

在這裡插入圖片描述

下載1.txt

ipfs get QmbbHQPfRcXmZMgwFbu8wiaA1oG3NRQcni7zDQXbuvVaXB

在這裡插入圖片描述
ps:下載到當前目錄下,且檔名為預設為hash值