IPFS綜合了許多最新最好的想法以及最成功的系統

買賣虛擬貨幣

在資訊社會中,智慧手機、平板電腦、膝上型電腦等多種終端裝置已成為人們生活的一部分,為了使自己的電子產品能夠及時同步,使用者常常面臨一個頭疼的問題,即如何便捷地將檔案、照片、文件、音樂、電子書等資料在手機、平板電腦、個人電腦等裝置之間互相共享。在科技不斷進步發展的過程中,湧現出各式各樣的檔案共享系統。

在構建全域性分散式檔案系統方面已經有許多嘗試,且有些系統可以看到顯著的效果。在學術嘗試中,AFS已取得了成功且至今仍在使用,而其他一些系統卻還未取得同樣的成功。學術界之外,最成功的系統一直是對等檔案共享的應用,其主要面向大型媒體(音訊和影片)。最值得注意的是,Napster,KaZaA和BitTorrent[3]部署大型檔案分發系統支援超過一億使用者同時使用。即使在今天,BitTorrent保持了大規模部署中數以千萬計的節點生產日報[4]。相比於他們的學術檔案系統而言,這些應用程式看到了更大數量的使用者和檔案分佈。然而,應用程式並沒有設計成基礎性使用工具。雖然可成功的利用現有技術再開發,但目前還未出現一個可以提供全球性、低延遲性和分散式分佈的通用檔案系統。


到目前為止,HTTP是有史以來最成功的“檔案分散式系統”部署。再加上瀏覽器,HTTP有巨大的技術和社會影響力。它已成為在網際網路上傳輸檔案的實際方式。然而, 在過去的十五年裡,它未能利用許多傑出的檔案分佈技術發明。各行業之所以使用HTTP這麼久是因為移動小檔案是相對便宜的,即使對於小型組織也有大量的流量可以使用。但是,我們正面臨一個新的挑戰,資料分佈的新時代具有如下特點:

(1) 託管和分發PB級資料集;

(2) 在大資料跨組織的計算;

(3) 大容量高畫質點播和實時媒體流;

(4) 版本控制和連線的大規模資料集;

(5) 防止重要檔案意外失蹤等。

其中許多可歸結為“大量的資料,訪問無處不在。” 透過追尋關鍵特性和頻寬問題,我們已經放棄使用HTTP協議進行不同的資料分發。下一步是使用它們在Web本身的一部分。

IPFS是點對點協議(InterPlanetary File System,IPFS)的簡稱,它是一個面向全球、點對點的分散式版本檔案系統,試圖將所有具有相同檔案系統的計算裝置連線在一起。本文將介紹對IPFS的部分研究及其在新一類資料共享系統中的應用。

一、 IPFS技術背景

1.1 HTTP技術的缺陷

超文字傳輸協議(HTTP)已經在全球資訊協議中一統山河,對資訊的釋出與傳播設定了很多規範。沒有HTTP的生活幾乎無法想象,HTTP將釋出資訊的成本幾乎降為零,這一創新粉碎了對資訊至上而下的傳播渠道管控,藉助資訊流動與更簡單的資訊釋出方式,使人人都能釋出與訪問包括經濟、政治、文化領域(音樂、創意、影片、新聞、遊戲等)的資訊,HTTP讓我們的文化獲得了整體提高。

可以這樣說,HTTP是史上最偉大且最重要的發明之一。

儘管HTTP成就斐然,但是在傳播與維護人類知識方面,它作為基礎並非差強人意,而是幾乎全無招架之力。HTTP傳播資訊的方式從根本上是有缺陷的,無論進行再多的效能調整,打破CASSL或採取其他措施都難以修復這一問題。HTTP/2(超文字傳輸協議第二版)是可喜的進步,不過它只能算針對一個有年頭的技術所進行的保守更新。想要讓網路獲得更好的未來,我們不止需要一個HTTP的更新版,而是一個新的基礎。就網路空間的管理模式而言,我們需要一個新的協議。


總體而言,HTTP具有以下幾方面的缺點:

(1)HTTP是脆弱的,一臺Web伺服器一旦關機或無響應,連線就會中斷,站點間的聯絡會被打破,訪問的內容也隨之消失不見。

(2)HTTP鼓勵過度集中化,這樣會導致大量的資料對大型、更集中管理的伺服器產生進一步的依賴。由於冗餘備份較多,他們在短時間內可用性(大多)更高。但仍沒有解決長期的可用性問題,還觸發了一系列全新的問題。

(3)HTTP效率低下,HTTP降低了釋出資訊的價格,但仍需要花錢,看起來低廉的成本加起來卻數目驚人。將大量資料從中央資料中心傳播出去,如果不是以規模經濟的方式完成,花費可能相當高昂。

(4)HTTP對網際網路主幹過度依賴,內容的過度集中化將會使我們高度依賴網際網路主幹的資料中心功能。這樣除了很容易被攔截審查之外,也存在著可靠性問題。即使有冗餘備份,主幹網有時也存在被毀壞或者路由表失控的問題,結果可能十分嚴重。

為解決以上問題,IPFS應運而生。

1.2 IPFS的解決方案

IPFS從根本上改變了查詢方式,這是它最重要的特徵。我們使用HTTP查詢的是位置,而使用IPFS查詢的是內容

在HTTP伺服器中,查詢檔案須遵照HTTP協議,瀏覽器首先會查詢伺服器的位置(IP地址),隨後向伺服器索要檔案路徑。這種體系下檔案的位置取決於伺服器管理者,而使用者只能寄希望於檔案沒有被移動,並且伺服器沒有關閉。

IPFS的做法則是不再關心中心伺服器的位置,也不考慮檔案的名字和路徑,只關注檔案中可能出現的內容。我們將一個檔案放在IPFS的節點,它會得到一個新名字QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU,這是一個由檔案內容計算出的加密雜湊值。雜湊值直接反映檔案的內容,哪怕只修改1位元,雜湊值也會完全不同。

當IPFS被請求一個檔案雜湊時,它會使用一個分散式雜湊表找到檔案所在的節點,取回檔案並驗證檔案資料。雖然早期的DHT設計曾出現過Sybil攻擊的問題,不過現在已經有了新的解決辦法。

IPFS是通用的基礎架構,基本沒有儲存上的限制。大檔案會被切分成小的分塊,下載時可以從多個伺服器同時獲取。IPFS的網路是不固定的、細粒度的、分散式的網路,可以很好地適應內容分發網路(CDM)的要求。這樣的設計可以很好地共享各類資料,包括影象、影片流、分散式資料庫、整個作業系統、模組鏈,還有最重要的——靜態網站。

IPFS檔案可以抽象成特殊的IPFS目錄,從而標註一個可讀的檔名(透明的對映到IPFS雜湊),在訪問時會像HTTP一樣獲取一個目錄索引。在IPFS上建立網站的流程和過去一樣,而且把網站加入到IPFS節點只需要一條指令:ipfs add -r yoursitedirectory。網頁間的連線不再需要人去維護,IPFS自帶的查詢可以解決問題。

IPFS不會要求每一個節點都儲存所有的內容,節點的所有者可以自由選擇想要維持的資料。這就像書籤一樣,在備份了自己的網站之外,自願為其他關注的內容提供服務,不同的是這個書籤不會像之前那樣最終失效。

IPFS節點間的複製、儲存和網站支援都很容易,如果IPFS得以普及,且節點數達到一定規模,即使每個節點只存放一點點內容,所累計的空間、頻寬和可靠性也遠超HTTP所能提供的。隨即,分散式Web會變成地球上最快、最可靠、最大的資料倉儲。


二、 IPFS設計

IPFS是一個綜合了先前的P2P系統,包括DHTs、位元流、Git和SFS成功思想的分散式檔案系統。IPFS的貢獻是簡化、進化,以及連線成熟的技術到一個單一的綜合系統,其功能大於各部分的總和。IPFS提出了一個用以編寫和部署應用程式的新平臺,並進行版本控制以及分發大量資料的新系統。IPFS甚至可能進化網路本身。

IPFS是對等網路,沒有節點擁有特權。IPFS節點倉庫在本地儲存IPFS物件。節點之間相互連線並傳輸物件。這些物件代表檔案和其他資料結構。所述IPFS協議分為一堆子協議並各自負責不同的功能:

(1)特性:管理節點的身份生成和驗證。

(2)網路:對連線到的其他節點進行管理,使用各種底層網路協議,並且是可配置的。

(3)路由:維護資訊來定位特定的節點和物件。響應本地和遠端查詢。預設為一個DHT,但是可交換的。

(4)交換:可以使用一種新的分組交換協議(位元交換)來管理有效的塊分佈。建模為一個需求,弱化資料複製的刺激。可交換的貿易策略。

(5)物件:內容定址的Merkle DAG不可變物件連結。用於表示任意的資料結構,例如檔案層次結構和通訊系統。

(6)檔案:靈感來自Git版本控制檔案系統的層次結構。

(7)命名:一個自認證的可變名稱系統。

這些子系統並不是獨立的,他們整合並利用了混合屬性,在這些功能的協作下,構建了自上而下的協議棧。

三、 系統設計與分析

結合IPFS的設計理念,我們可以在其基礎上實現分散式資料共享系統的進一步開發。分散式資料共享系統對我們而言並不陌生,其使用的技術多種多樣,這一類分散式檔案系統如HDFS、FastDFS等,並沒有在我們的實際生活中得到廣泛推廣。在這裡不能夠說本系統能夠取代他們,只是對分散式資料共享系統的一點設想與看法。

3.1 系統設計

首先,本系統將以IPFS技術作為其設計核心,因此,本系統具備IPFS技術的所有優點,並可以擁有IPFS的所有功能。允許安裝此係統的所有裝置都將作為網路節點,使用者可選擇將自己的資料透過雜湊加密後儲存於任何節點中(只要能夠登入此節點),並且可以隨時取回本地,即便本地資料丟失,使用者仍可憑藉其雜湊值從任何儲存過此資料的節點中將其找到。

其次,IPFS雜湊只能用來表示不可變資料,因為一旦資料改變,雜湊值也會改變。但從某種意義上來說,這是保持資料持續性的較好的設計。卻也需要一種方法來標記最新更新的雜湊,這個方法被稱作IPNS。由於本系統採用了雜湊加密,相比傳統的加密方式其安全性更高。

本系統可分為PC端和Android端,二者沒有客戶端與伺服器端之分。當裝置開啟此程式時,使用者指定的檔案或資料夾即可被任意經過授權的節點發現並進行訪問。

3.2 結果分析

由於本系統採用IPFS技術作為其設計核心,所以與其他資料共享系統有很大的不同。首先,由於IPFS技術擬用來替代HTTP技術,故其在網路中的安全性以及傳輸協議都與HTTP技術有很大的不同,本系統所使用的協議是位元交換協議。其次,本系統採用內容定址方式,所有內容都是由其多雜湊校驗和唯一標識,包括連結。

由於本系統採用了IPFS技術,使得使用者加入到了全球性IPFS節點的行列中來,每一臺安裝了此係統的電腦都可以作為網路中的一個節點,它不會要求每一個節點都儲存所有內容,節點的所有者可以自由選擇想要維持的資料。比如兩個人在各自的節點中放入了相同的資料,其中一人在自己的資料丟失後仍可藉助另一人的節點取到丟失的資料。


四、 結 語

IPFS背後的想法是對幾十年來在學術界和開源產品中成功的分散式系統的研究。IPFS綜合了許多最新最好的想法以及最成功的系統。除了位元交換,這是一種新的協議,IPFS的主要貢獻是系統的耦合和設計的合成。

確實,本系統是在其基礎上建立的一種新的應用,儘管對於IPFS技術的運用還不是十分廣泛,但總的來說這也是一次對新生技術的嘗試。並且,作者認為本系統還不是終結,經過進一步的設計與研究,一定會得出一種新的更加最佳化的系統。儘管對IPFS技術的瞭解還不全面,但該技術對於資料共享系統的新嘗試具有極大的指導意義。

免責聲明:

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

推荐阅读

;