IPFS快速入門-起源與原理

IPFS快速入門-起源與原理

互聯網是我們日常生活中最重要的工具,通過互聯網我們可以查看新聞、與朋友和家人交流、與同事互動、學習新知識、以及進行理財。然而,我們所瞭解和喜愛的互聯網存在缺陷。其中,最大的一點缺陷是它上面的信息大部分是集中式的(集中在一起)。這意味著我們每天訪問的信息都保存在,受到公司控制的中央服務器上。

行星際文件系統IPFS的目標,是創建分佈式Web(去中心化的網絡)。一個對等網絡超媒體協議,使網絡更快、更安全、更開放。

兩個'中心'問題

集中化帶來了兩個主要問題。第一個是當你有一個控制大量數據的中央公司時,如果無法訪問這些服務器會發生什麼?一個控制存儲大量有價值和有用數據的服務器的中央公司成為了一個單一故障點。這種失敗可能是由於攻擊造成的,也可能是因為一個簡單的服務器離線。

將數據存儲在中心位置的第二個問題是審查制度。當大量數據託管在幾個主要服務器上時,相關機構更容易阻止對它們的訪問。2017年,土耳其居民無法訪問維基網站。因為土耳其政府禁止該網站稱其為“國家安全威脅”。這種情況也發生在2011年1月的埃及,當時政府切斷了95%以上公民的網絡。

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

我們繼續接受這種模式的真正原因。一方面是因為已經對互聯網接入產生極大的依賴,我們希望網頁以毫秒為單位加載圖像和視頻,而沒有延遲顯示。而這一切需具有最高的HD或4K的質量,集中式服務器使公司可以完全控制提供內容的速度,並相應地收取費用。另一個原因,是因為我們沒有一個更好的選擇。

IPFS,一個好的選擇

InterPlanetary文件系統,也稱為IPFS。是一種使Internet完全去中心的想法。該概念將傳統的“HTTP”互聯網轉變為對等網絡,類似於BitTorrent的工作方式。

Juan Benet是IPFS的創建者和協議實驗室的創始人。協議實驗室主要負責IPFS的技術研發,同時還開發了Filecoin和IPLD(以及其他一些項目)。Benet在斯坦福大學學習計算機科學,並且非常關注與知識、科學和技術有關的任何事情。

IPFS快速入門-起源與原理

Juan Benets最初的目標,並不是在構思這個概念時創建IPFS。他想要做的是找到一種有效的方法來移動科學數據集,這意味著數據大小在10-100+GB。IPFS的設計看起來像,Git和BitTorrent綜合在一起的結晶。BitTorrent使你能夠快速地在網絡上移動大型文件,而Git提供內置的數據版本。

IPFS快速入門-起源與原理

在創建此協議之後,Benet很快意識到其影響遠大於移動大型數據集。他實際上已經創建了一個協議,可以取代其他通用的協議,用於我們今天如何通過網絡更快的訪問信息。

行星際文件系統的名稱來源?

當提出命名為行星際文件系統(IPFS)時,他們的想法是如何表達對互聯網命名的一點敬意。JCR Licklider是Arpanet(互聯網的前身)的創始人,其目標是建立一個星際網絡。因此,互聯網其實際上是星際網絡的縮影,InterPlanetary採用了相同的命名方式,此外,IPFS旨在成為Internet協議(IP)的文件系統(FS)。當你把它們放在一起時,就形成了IPFS,即互聯網文件系統。

接下來將深入探討IPFS作為一個文件系統是如何工作的。但首先,需要了解我們今天是如何從網絡上訪問文件的。

當你想從互聯網上下載圖像時,需要告訴你的計算機,能夠明確找到所要求的圖像的位置。這個位置通常採用URL的形式,其中包含存儲照片的公司的域名,後面跟著指定文件內容的擴展名。例如:https://achainofblocks.com/ipfs-simple-guide.jpg。這種訪問資源的方法稱為“基於位置的尋址”,你告訴計算機他們可以訪問信息的位置,然後計算機檢索信息。這個方法有一個問題,如果位置不可訪問(可能服務器處於脫機狀態),則用戶的計算機無法檢索所需的信息。

IPFS快速入門-起源與原理

宕機問題

當服務器宕機時,使用基於位置的尋址,該服務器中包含的所有內容都不能通過互聯網訪問。然而,當服務器出現故障時,另一個用戶很可能已下載了所需圖像,並將其存儲在了自己的計算機上。但即使另一臺計算機確實有此文件,你的計算機也不能連接到其他計算機來傳輸該文件。

如何解決?

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

每個文件都有一個唯一的哈希值,可以將其視為文件的指紋或標識。如果要訪問特定文件,只需向網絡詢問具有指定哈希值的文件副本即可。請求完成後,IPFS網絡上的某個人將提供你請求的資源。你將下載該資源,並將一個副本保存到你的IPFS緩存中。現在,當另一個人請求相同的文件時,你將能夠提供給他們,這樣就創建了一個系統。該系統使用的越多,其運行速度就越快,因為共享的文件越多,它們就越容易在大量節點之間獲得文件。

好的改變,有什麼保障?

在這一點上,我猜測你的問題和我現在做的一樣。如何知道提供給我文件的人或節點沒有以某種方式篡改它?因為你使用哈希函數來檢索文件,所以可以驗證收到的內容。更改文件的哈希值,像更改區塊鏈中的事務一樣困難。請求具有特定哈希的文件,在收到文件時,需要確保文件哈希與請求的哈希匹配。這與在亞馬遜上用於驗證購買的方法相同。如果你訂購了一雙綠色的襪子,收到的是一雙紅色襪子,你可以拒絕它們並等待綠色襪子的出現。

IPFS的另一個功能是重複數據刪除,這意味著當多個用戶發佈同一文件時,它只在網絡上創建一次。這有助於提高網絡效率。

IPFS如何真正起作用

現在,你已經知道了IPFS與當今傳統方法的區別。接下來,讓我們更深入地瞭解IPFS實際是如何存儲數據,並使其可供用戶訪問的。

在IPFS中,文件存儲在IPFS Object(對象)中,每個Object可以存儲256 kb的數據。Object還可以包含指向另一個IPFS對象的鏈接,鏈接可以存儲大於256 kb的數據。例如,如果您你上傳一個小文本文件,那麼一個256 kb的對象應該適合你的少量文本。

IPFS快速入門-起源與原理

但是,如果要存儲圖片,則會將其分解為多個對象,每個對象最多為256 kb。然後,IPFS系統將創建一個空的Object(對象),該對象將鏈接到構成該圖片的所有對象。

IPFS快速入門-起源與原理

這種架構非常簡單,但它也非常強大,該架構真正使IPFS能夠用作文件系統。如果你查看下面的簡單文件目錄結構,我將解釋如何將其轉換為IPFS結構:

IPFS快速入門-起源與原理

通過為每個文件和每個文件夾/目錄創建1個Object(對象),然後將文件鏈接到指定的目錄,可以將其轉換為IPFS。但是,當你考慮到IPFS使用基於內容尋址的事實時,它會變得更好。這意味著添加的文件是不可變的,它們永遠不會被更改,非常像區塊鏈。這意味著你可以放心,訪問的資源是正確的數據,並且從未被更改過。

IPFS快速入門-起源與原理

如何更新我的數據?

IPFS支持文件版本控制,這類似於Git作為開源代碼庫的運作方式。例如,你正在處理一個名為“Imp.nt Document–v1.doc”的文本文件,並且希望與使用IFPS的人共享此文檔。當你將此文件添加到IPFS時,背後發生的事情是,IPFS將創建一個新的Commit(提交)對象。這個Object(對象)是非常基本的,它只是告訴IPFS哪個Commit在這個之前,並且它將會鏈接到與文件相關的IPFS對象'Imp.nt Document–v1.doc'。

IPFS快速入門-起源與原理

現在讓我們假設已經過了一段時間,你的'Imp.nt Document–v1.doc'需要修改。只需將新文件添加到IPFS“Imp.nt Document–v1.doc”即可完成此操作,軟件將為更新的文件創建新的提交對象(與原始進程相同)。此提交對象現在鏈接到先前的提交對象,第一個提交用作為父對象。這個過程可以無休止地重複,創建一個鏈接的相同數據版本,所有這些都引用整個鏈。IPFS確保你的文件,以及整個文件版本控制歷史記錄,可供網絡上的所有其他節點訪問。

IPFS快速入門-起源與原理

沒有系統是完美的

到目前為止,我們已經討論了InterPlanetary文件系統的許多有用功能和關鍵概念。但是,所有協議都有侷限性和缺點。正如你可能想象的那樣,IPFS目前面臨的最大問題是保持文件可用。網絡上的每個節點都會保留已下載文件的緩存,並有助於使其可用,因為其他用戶需要它們。但是,在一個簡單的情況下,如果一個Document由4個節點託管,並且它們全部脫機,則該文檔將不能夠訪問。

有幾種方法可以解決上述問題。一種方法是激勵節點保持在線並使文件可供社區使用。對可以提交給網絡的存儲空間進行獎勵,這將確保文件在需要時可用。另一種方法是主動在整個網絡中分發文件,確保在任何給定時間總是有足夠的在線副本。可以把它想象成大規模的冗餘。

Filecoin

這個問題是Filecoin旨在解決的確切問題。Filecoin由創建IPFS的同一團隊創建。Filecoin是一個建立在IPFS之上的區塊鏈,其目標是創建一個分散的存儲市場。這意味著在硬盤上有額外存儲空間的用戶,可以將其出租用作IPFS存儲,並在此過程中從中賺取一些收入。可以將Filecoin視為與Airbnb類似的服務,只不過不是租用你家中的可用空間,而是租用計算機上的可用空間進行存儲。Filecoin為節點創建了一種激勵,使數據保持在線並儘可能長時間保留。除了保持節點在線的激勵之外,它還可以跨多個節點複製數據,使其高度可用且易於訪問(即使少數節點處於脫機狀態)。Filecoin和IPFS具有相同的目標,即脫機優先,這意味著他們不斷努力獲得更好的體驗,而無需調用服務器來訪問資源。

IPFS快速入門-起源與原理

行星際關聯數據(IPLD)

IPLD是內容可尋址網絡的數據模型,它允許我們將所有與哈希相關的數據結構,視為統一信息空間的子集,統一所有將數據與哈希作為IPLD實例鏈接的數據模型。“

這意味著IPLD旨在成為可互操作協議的數據模型。這種技術有很多使用案例,這提供了在IPFS上運行智能合約的能力。關鍵在於IPLD提供了使基礎數據可以跨工具和協議進行互操作的庫。

IPLD和Filecoin都是非常複雜的項目,要想完全理解還需要閱讀專業文章。

總 結

IPFS是一個非常具有前景的項目,以權力下放(去中心化)為重點的大多數早期項目,主要涉及貨幣和金融方面。IPFS實際上是建立一種更好的共享數據的方式。以前的HTTP將面臨挑戰,IPFS顯然是最成熟的,並且被視為可以在未來幾年中大規模採用的系統。我絕不暗示HTTP正在消失,Juan Benet自己也承認HTTP是一個很棒的協議,它仍然非常有用。但是,它是一個超過25年的協議,隨著IPFS在採用中的不斷增長,用例將隨著技術的發展而擴展。直到IPFS最終接管之前,我們很有可能會同時使用這兩種協議。

( 本文由 JAY FRIED 發表於國外博客,經由Filecoin中國社區翻譯整理 )

【往期文章】

更多諮詢點擊“瞭解更多”,添加 ipfsxiaomishu 進入IPFS-Filecoin社群交流。


分享到:


相關文章: