1. 程式人生 > >IPFS中國社群丨最簡單全面介紹IPFS

IPFS中國社群丨最簡單全面介紹IPFS

www.ipfs.cn

作  者丨IPFS中國社群:IP君

文章來源丨www.ipfs.cn

原文地址丨http://www.ipfs.cn/news/info-100173.html

·

網際網路是我們日常生活中最重要的工具,是我們如何使用媒體,如何與朋友和家人交談,如何與同事互動,如何學習新技能,如何理財所使用的工具。

然而,我們所熟知和喜愛的網際網路也有缺點。其中最大的缺點是它的資訊大部分是集中的,這意味著我們每天訪問的資訊都儲存在中央公司控制的伺服器上。

·

星際檔案系統的任務

星際檔案系統(IPFS)的目標是建立分散式Web。點對點超媒體協議,使web更快、更安全、更開放。

·

“中心”的問題

集中化會面臨幾個主要問題:

第一個問題是當控制大量資料的中央公司,出現不可訪問的問題時,說明中央控制伺服器成為了一個單點故障,這種故障可能是由於***,或者伺服器離線造成的。

第二個問題是審查制度,當大多數資料託管在少數幾個主伺服器上時,政府更容易阻止對它們的訪問。

·

我們為什麼要使用一個有缺陷的系統?

我們繼續接受這種模式的真正原因是我們被現在的網際網路寵壞了。

我們希望網頁以毫秒為單位載入,影象和視訊的顯示沒有延遲,當然,所有這些都必須是最高的高清或4K質量。集中化伺服器讓公司完全控制他們能以多快的速度交付這些內容,並相應地收取費用。

我們繼續使用這種方法的另一個原因是真的沒有好的替代方法。

 ·

ipfs→不錯的選擇

星際檔案系統(也稱為IPFS)是一種使因特網完全分佈的想法。這個概念將傳統的“HTTP”網際網路轉換成對等網路,類似於BitTorrent的工作方式。

Juan Benet是IPFS的建立者和協議實驗室的創始人。Protocol Labs是一個技術研發實驗室,負責IPFS,他們還開發了Filecoin和IPLD(以及其他)。Juan Benet在斯坦福大學學習電腦科學,對任何與知識、科學和技術有關的東西都非常著迷。


Juan Benets最初的目標並不是在製作這個概念時必然會建立IPFS。他想要做的是找到一種有效的方法來移動科學資料集,這意味著資料的大小可能是10-100+ GB。IPFS的設計看起來像Git和BitTorrent,BitTorrent使您能夠快速地在網路上移動大檔案,Git為您提供了資料的內建版本控制。


在建立了這個協議之後,Benet很快就意識到它的影響遠遠大於移動大資料集。他實際上已經創造了一個協議,它可以取代其他流行的協議,取代我們今天通過網路獲取資訊的方式。

  ·

星際檔案系統的名字是從哪裡來的?

當他們想到星際檔案系統(IPFS)的命名時,他們的想法是向網際網路的名字致敬。JCR Licklider,他是Arpanet(網際網路的前身)的創始人,他的目標是建立一個星系間網路。

因此,網際網路是星際網路的簡稱。星際間採用了相同的命名約定,此外,IPFS的目標是成為Internet協議(IP)的檔案系統(FS)。當你把它們放在一起,你就有了IPFS,網際網路檔案系統。

我將深入探討IPFS如何作為檔案系統。但首先,瞭解我們今天如何從網路訪問檔案非常重要。

當你想從網際網路上下載圖片時,你要告訴你的電腦在哪裡可以找到你想要的圖片。該位置通常以URL的形式出現,其中包含儲存照片的公司的域名,然後是指定檔案的副檔名。這個部落格帖子的請求示例如下:https://achainofblocks.com/ipfs-simple-guide.jpg。

這種訪問資源的方法稱為“基於位置的定址”,您告訴計算機他們可以訪問資訊的位置,計算機檢索資訊。這種方法的一個問題是,如果無法訪問位置(可能伺服器離線),那麼使用者的計算機就無法檢索他們需要的資訊。


伺服器宕機,我們都宕機了

當伺服器宕機時,基於位置的定址無法通過internet訪問伺服器中包含的所有內容。然而,當伺服器宕機時,另一個使用者很可能已經下載了該影象,並將其儲存在他們的計算機上。

但是,即使另一臺計算機有此檔案,您的計算機也無法與另一臺計算機連線以傳輸該檔案。

  ·

關於內容

為了幫助解決這個問題,IPFS引入了“基於內容的定址”的概念。在請求特定資源時,使用基於內容的定址,您不需要指定位置,只需指定您想要的。

每個檔案都有一個惟一的雜湊,可以認為它是檔案的指紋或標識。當您想要訪問一個特定的檔案時,您只需詢問網路中誰擁有具有指定雜湊的檔案副本。一旦發出請求,IPFS網路上的某人將提供您所請求的資源。您將下載該資源,並將副本儲存到您的IPFS快取中。

現在,當另一個人來請求相同的檔案時,您將能夠向他們提供該檔案。這就建立了一個系統,當它被更多地使用時,速度就會加快,因為共享的檔案越多,它們就越容易在大量節點中可用。

 ·

有改變是好的…

在這一點上,我的猜想是你有和我現在做的同樣的問題。我怎麼知道提供給我檔案的人或節點沒有以某種方式篡改它?

因為使用雜湊函式檢索檔案,所以可以驗證接收到的內容。更改檔案的雜湊值與更改區塊鏈中的事務一樣困難。對具有特定雜湊值的檔案發出請求,因此當接收到檔案時,要確保雜湊值與請求匹配。

這是驗證您的Amazon購買的方法。如果你點的是綠色的襪子,而紅色的襪子出現了,你會拒絕它們,然後等著你的綠色襪子出現。

IPFS的另一個特性是重複資料刪除,這意味著當多個使用者釋出同一個檔案時,它在網路上只建立一次。這有助於提高網路的效率。

 ·

IPFS如何真正發揮作用

現在您已經瞭解瞭如何將IPFS與當今的傳統方法進行比較的基礎知識,讓我們更深入地瞭解IPFS如何實際儲存資料並使使用者能夠訪問這些資料。

在IPFS中,檔案儲存在IPFS物件中,每個物件可以儲存256 kb的資料。物件還可以包含到另一個IPFS物件的連結,連結使儲存大於256kb的資料成為可能。例如,如果您只上傳了一個小的文字檔案,那麼一個256 kb的物件應該足以處理您的少量文字。


但是,如果要儲存圖片,則會將其分解為多個物件,每個物件的最大大小為256 kb。然後,IPFS系統將建立一個空物件,該物件將連結到構成該圖片的所有物件。


這個體系結構非常簡單,但也非常強大,體系結構真正允許將IPFS用作檔案系統。如果您檢視下面的簡單檔案目錄結構,我將解釋如何將其轉換為IPFS結構:



這可以通過為每個檔案和每個資料夾/目錄建立一個物件,然後將檔案連結到指定的目錄,從而轉換為IPFS。但是,如果考慮到IPFS使用基於內容的定址,情況就會更好。


這意味著新增的檔案是不可變的,它們永遠無法更改,非常類似於區塊鏈。這意味著您可以確信您正在訪問的資源是正確的資料,並且從未被更改過。

  ·

我如何更新我的資料?

IPFS支援檔案版本控制,這與Git作為開放原始碼儲存庫的工作方式類似。例如,您正在處理一個名為“重要文件- v1”的文字檔案。你想和使用IFPS的人分享這份檔案。當您將該檔案新增到IPFS時,幕後發生的是,IPFS將建立一個新的Commit物件。


這個物件非常基礎,它所做的就是告訴IPFS哪個提交先於這個提交,它連結到與檔案“重要文件- v1.doc”相關聯的IPFS物件。

現在,讓我們假設一些時間過去了,你的“重要檔案”也過去了。博士需要修改一下。這隻需將新檔案新增到IPFS的重要文件v2即可。,軟體將為更新後的檔案建立一個新的提交物件(與原始程序相同)。這個提交物件現在連結到前面提交的物件,第一個提交作為父物件。

這個過程可以無限重複,建立相同資料的連結鏈,所有資料都引用整個鏈。IPFS確保網路上的所有其他節點都可以訪問您的檔案和整個檔案版本控制歷史。



沒有一個系統是完美的

到目前為止,我們已經討論了星際檔案系統的許多有用特性和關鍵概念。然而,所有協議都有侷限性和缺點。正如您可能想象的那樣,IPFS目前面臨的最大問題是保持檔案的可用性。

網路上的每個節點都儲存著他們下載的檔案的快取,並幫助其他使用者在需要時使用它們。但是,在簡單的情況下,如果一個文件由4個節點託管,並且它們都離線了,那麼該文件就無法訪問了。

有幾種方法可以解決上述問題。一種方法是鼓勵節點保持線上狀態,並將檔案提供給社群。這是對儲存空間的獎勵,您可以將其提交到網路中,這將確保檔案在需要時具有很高的可用性。另一種方法是在整個網路中主動分發檔案,確保在任何時候都有足夠的線上副本。你可以把它想象成大規模的冗餘。

 ·

Filecoin


這個問題正是Filecoin想要解決的。Filecoin是由建立IPFS的同一組建立的。Filecoin是構建在IPFS之上的區塊鏈,其目標是建立一個分散的儲存市場。這意味著,在硬碟上有額外儲存空間的使用者可以將其出租作為IPFS儲存,並在此過程中從中獲利。

你可以把Filecoin看作類似於Airbnb的服務,而不是把你房子裡的可用空間出租出去,而是把你電腦上的可用空間出租出去儲存。Filecoin為節點建立了一個激勵機制,使其保持資料線上,並儘可能長時間地保留資料。

除了保持節點線上的動機之外,它還在多個節點之間複製資料,使其具有高可用性和易於訪問性(即使有一些節點離線)。Filecoin和IPFS具有相同的目標,即離線優先,這意味著他們不斷努力獲得更好的體驗,而無需呼叫伺服器來訪問資源。

這是Filecoin的一個非常高階的快速摘要。我將在未來的文章中深入研究Filecoin以及Protocol實驗室中的一些其他偉大專案。

 ·

星際連結資料(IPLD)

據【ipld.io】

IPLD是內容定址的網路資料模型。它允許我們將所有雜湊連結的資料結構視為統一資訊空間的子集,將所有將資料與雜湊連線起來的資料模型統一為IPLD的例項。

這意味著IPLD的目標是成為可互操作協議的資料模型。這種型別的技術有很多用例。這賦予了在IPFS上執行的智慧契約的能力。關鍵是IPLD提供了使基礎資料跨工具和跨協議互操作的庫。

IPLD和Filecoin都是非常複雜的專案,需要它們自己的專用文章才能完全理解。

 ·

額外的想法

我希望從本文中可以明顯看出,IPFS是一個非常雄心勃勃的專案。大多數以權力下放為重點的早期專案主要是關於貨幣和財政方面。IPFS實際上是 關於建立更好的資料共享方式。HTTP以前也遇到過挑戰。

但是,IPFS顯然是最成熟的制度,並被認為是在今後幾年內可得到廣泛採用的制度。我絕不是在暗示HTTP即將消失,Juan Benet自己承認HTTP是一個很好的協議,仍然非常有用。

然而,這個協議已經有超過25年的歷史了,隨著IPFS的不斷採用,用例將隨著技術的發展而擴充套件。我們很可能會遇到這樣的情況,即我們將同時使用這兩種協議,直到IPFS最終取代HTTP。

微信圖片_20181123171244.png

1.jpg