在信息社會中,智能手機、平板電腦、筆記本電腦等多種終端設備已成為人們生活的一部分,為了使自己的電子產(chǎn)品能夠及時同步,用戶常常面臨一個頭疼的問題,即如何便捷地將文件、照片、文檔、音樂、電子書等數(shù)據(jù)在手機、平板電腦、個人電腦等設備之間互相共享。在科技不斷進步發(fā)展的過程中,涌現(xiàn)出各式各樣的文件共享系統(tǒng)。 在構建全局分布式文件系統(tǒng)方面已經(jīng)有許多嘗試,且有些系統(tǒng)可以看到顯著的效果。在學術嘗試中,AFS已取得了成功且至今仍在使用,而其他一些系統(tǒng)卻還未取得同樣的成功。學術界之外,最成功的系統(tǒng)一直是對等文件共享的應用,其主要面向大型媒體(音頻和視頻)。最值得注意的是,Napster,KaZaA和BitTorrent[3]部署大型文件分發(fā)系統(tǒng)支持超過一億用戶同時使用。即使在今天,BitTorrent保持了大規(guī)模部署中數(shù)以千萬計的節(jié)點生產(chǎn)日報[4]。相比于他們的學術文件系統(tǒng)而言,這些應用程序看到了更大數(shù)量的用戶和文件分布。然而,應用程序并沒有設計成基礎性使用工具。雖然可成功的利用現(xiàn)有技術再開發(fā),但目前還未出現(xiàn)一個可以提供全球性、低延遲性和分散式分布的通用文件系統(tǒng)。到目前為止,HTTP是有史以來最成功的“文件分布式系統(tǒng)”部署。再加上瀏覽器,HTTP有巨大的技術和社會影響力。它已成為在互聯(lián)網(wǎng)上傳輸文件的實際方式。然而, 在過去的十五年里,它未能利用許多杰出的文件分布技術發(fā)明。各行業(yè)之所以使用HTTP這么久是因為移動小文件是相對便宜的,即使對于小型組織也有大量的流量可以使用。但是,我們正面臨一個新的挑戰(zhàn),數(shù)據(jù)分布的新時代具有如下特點: (1) 托管和分發(fā)PB級數(shù)據(jù)集; (2) 在大數(shù)據(jù)跨組織的計算; (3) 大容量高清點播和實時媒體流; (4) 版本控制和連接的大規(guī)模數(shù)據(jù)集; (5) 防止重要文件意外失蹤等。 其中許多可歸結為“大量的數(shù)據(jù),訪問無處不在?!?通過追尋關鍵特性和帶寬問題,我們已經(jīng)放棄使用HTTP協(xié)議進行不同的數(shù)據(jù)分發(fā)。下一步是使用它們在Web本身的一部分。 IPFS是點對點協(xié)議(InterPlanetary File System,IPFS)的簡稱,它是一個面向全球、點對點的分布式版本文件系統(tǒng),試圖將所有具有相同文件系統(tǒng)的計算設備連接在一起。本文將介紹對IPFS的部分研究及其在新一類數(shù)據(jù)共享系統(tǒng)中的應用。 一、 IPFS技術背景 1.1 HTTP技術的缺陷 超文本傳輸協(xié)議(HTTP)已經(jīng)在全球信息協(xié)議中一統(tǒng)山河,對信息的發(fā)布與傳播設置了很多規(guī)范。沒有HTTP的生活幾乎無法想象,HTTP將發(fā)布信息的成本幾乎降為零,這一創(chuàng)新粉碎了對信息至上而下的傳播渠道管控,借助信息流動與更簡單的信息發(fā)布方式,使人人都能發(fā)布與訪問包括經(jīng)濟、政治、文化領域(音樂、創(chuàng)意、視頻、新聞、游戲等)的信息,HTTP讓我們的文化獲得了整體提高。 可以這樣說,HTTP是史上最偉大且最重要的發(fā)明之一。 盡管HTTP成就斐然,但是在傳播與維護人類知識方面,它作為基礎并非差強人意,而是幾乎全無招架之力。HTTP傳播信息的方式從根本上是有缺陷的,無論進行再多的性能調整,打破CASSL或采取其他措施都難以修復這一問題。HTTP/2(超文本傳輸協(xié)議第二版)是可喜的進步,不過它只能算針對一個有年頭的技術所進行的保守更新。想要讓網(wǎng)絡獲得更好的未來,我們不止需要一個HTTP的更新版,而是一個新的基礎。就網(wǎng)絡空間的管理模式而言,我們需要一個新的協(xié)議。 總體而言,HTTP具有以下幾方面的缺點:(1)HTTP是脆弱的,一臺Web服務器一旦關機或無響應,連接就會中斷,站點間的聯(lián)系會被打破,訪問的內容也隨之消失不見。 (2)HTTP鼓勵過度集中化,這樣會導致大量的數(shù)據(jù)對大型、更集中管理的服務器產(chǎn)生進一步的依賴。由于冗余備份較多,他們在短時間內可用性(大多)更高。但仍沒有解決長期的可用性問題,還觸發(fā)了一系列全新的問題。 (3)HTTP效率低下,HTTP降低了發(fā)布信息的價格,但仍需要花錢,看起來低廉的成本加起來卻數(shù)目驚人。將大量數(shù)據(jù)從中央數(shù)據(jù)中心傳播出去,如果不是以規(guī)模經(jīng)濟的方式完成,花費可能相當高昂。 (4)HTTP對互聯(lián)網(wǎng)主干過度依賴,內容的過度集中化將會使我們高度依賴互聯(lián)網(wǎng)主干的數(shù)據(jù)中心功能。這樣除了很容易被攔截審查之外,也存在著可靠性問題。即使有冗余備份,主干網(wǎng)有時也存在被毀壞或者路由表失控的問題,結果可能十分嚴重。 為解決以上問題,IPFS應運而生。 1.2 IPFS的解決方案 IPFS從根本上改變了查找方式,這是它最重要的特征。我們使用HTTP查找的是位置,而使用IPFS查找的是內容。 在HTTP服務器中,查找文件須遵照HTTP協(xié)議,瀏覽器首先會查找服務器的位置(IP地址),隨后向服務器索要文件路徑。這種體系下文件的位置取決于服務器管理者,而用戶只能寄希望于文件沒有被移動,并且服務器沒有關閉。 IPFS的做法則是不再關心中心服務器的位置,也不考慮文件的名字和路徑,只關注文件中可能出現(xiàn)的內容。我們將一個文件放在IPFS的節(jié)點,它會得到一個新名字QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU,這是一個由文件內容計算出的加密哈希值。哈希值直接反映文件的內容,哪怕只修改1比特,哈希值也會完全不同。 當IPFS被請求一個文件哈希時,它會使用一個分布式哈希表找到文件所在的節(jié)點,取回文件并驗證文件數(shù)據(jù)。雖然早期的DHT設計曾出現(xiàn)過Sybil攻擊的問題,不過現(xiàn)在已經(jīng)有了新的解決辦法。 IPFS是通用的基礎架構,基本沒有存儲上的限制。大文件會被切分成小的分塊,下載時可以從多個服務器同時獲取。IPFS的網(wǎng)絡是不固定的、細粒度的、分布式的網(wǎng)絡,可以很好地適應內容分發(fā)網(wǎng)絡(CDM)的要求。這樣的設計可以很好地共享各類數(shù)據(jù),包括圖像、視頻流、分布式數(shù)據(jù)庫、整個操作系統(tǒng)、模塊鏈,還有最重要的——靜態(tài)網(wǎng)站。 IPFS文件可以抽象成特殊的IPFS目錄,從而標注一個可讀的文件名(透明的映射到IPFS哈希),在訪問時會像HTTP一樣獲取一個目錄索引。在IPFS上建立網(wǎng)站的流程和過去一樣,而且把網(wǎng)站加入到IPFS節(jié)點只需要一條指令:ipfs add -r yoursitedirectory。網(wǎng)頁間的連接不再需要人去維護,IPFS自帶的查找可以解決問題。 IPFS不會要求每一個節(jié)點都存儲所有的內容,節(jié)點的所有者可以自由選擇想要維持的數(shù)據(jù)。這就像書簽一樣,在備份了自己的網(wǎng)站之外,自愿為其他關注的內容提供服務,不同的是這個書簽不會像之前那樣最終失效。 IPFS節(jié)點間的拷貝、存儲和網(wǎng)站支援都很容易,如果IPFS得以普及,且節(jié)點數(shù)達到一定規(guī)模,即使每個節(jié)點只存放一點點內容,所累計的空間、帶寬和可靠性也遠超HTTP所能提供的。隨即,分布式Web會變成地球上最快、最可靠、最大的數(shù)據(jù)倉庫。 二、 IPFS設計 IPFS是一個綜合了先前的P2P系統(tǒng),包括DHTs、比特流、Git和SFS成功思想的分布式文件系統(tǒng)。IPFS的貢獻是簡化、進化,以及連接成熟的技術到一個單一的綜合系統(tǒng),其功能大于各部分的總和。IPFS提出了一個用以編寫和部署應用程序的新平臺,并進行版本控制以及分發(fā)大量數(shù)據(jù)的新系統(tǒng)。IPFS甚至可能進化網(wǎng)絡本身。 IPFS是對等網(wǎng)絡,沒有節(jié)點擁有特權。IPFS節(jié)點倉庫在本地存儲IPFS對象。節(jié)點之間相互連接并傳輸對象。這些對象代表文件和其他數(shù)據(jù)結構。所述IPFS協(xié)議分為一堆子協(xié)議并各自負責不同的功能: (1)特性:管理節(jié)點的身份生成和驗證。 (2)網(wǎng)絡:對連接到的其他節(jié)點進行管理,使用各種底層網(wǎng)絡協(xié)議,并且是可配置的。 (3)路由:維護信息來定位特定的節(jié)點和對象。響應本地和遠程查詢。默認為一個DHT,但是可交換的。 (4)交換:可以使用一種新的分組交換協(xié)議(比特交換)來管理有效的塊分布。建模為一個需求,弱化數(shù)據(jù)復制的刺激??山粨Q的貿(mào)易策略。 (5)對象:內容尋址的Merkle DAG不可變對象鏈接。用于表示任意的數(shù)據(jù)結構,例如文件層次結構和通信系統(tǒng)。 (6)文件:靈感來自Git版本控制文件系統(tǒng)的層次結構。 (7)命名:一個自認證的可變名稱系統(tǒng)。 這些子系統(tǒng)并不是獨立的,他們整合并利用了混合屬性,在這些功能的協(xié)作下,構建了自上而下的協(xié)議棧。 三、 系統(tǒng)設計與分析 結合IPFS的設計理念,我們可以在其基礎上實現(xiàn)分布式數(shù)據(jù)共享系統(tǒng)的進一步開發(fā)。分布式數(shù)據(jù)共享系統(tǒng)對我們而言并不陌生,其使用的技術多種多樣,這一類分布式文件系統(tǒng)如HDFS、FastDFS等,并沒有在我們的實際生活中得到廣泛推廣。在這里不能夠說本系統(tǒng)能夠取代他們,只是對分布式數(shù)據(jù)共享系統(tǒng)的一點設想與看法。 3.1 系統(tǒng)設計 首先,本系統(tǒng)將以IPFS技術作為其設計核心,因此,本系統(tǒng)具備IPFS技術的所有優(yōu)點,并可以擁有IPFS的所有功能。允許安裝此系統(tǒng)的所有設備都將作為網(wǎng)絡節(jié)點,用戶可選擇將自己的數(shù)據(jù)通過哈希加密后保存于任何節(jié)點中(只要能夠登錄此節(jié)點),并且可以隨時取回本地,即便本地數(shù)據(jù)丟失,用戶仍可憑借其哈希值從任何保存過此數(shù)據(jù)的節(jié)點中將其找到。 其次,IPFS哈希只能用來表示不可變數(shù)據(jù),因為一旦數(shù)據(jù)改變,哈希值也會改變。但從某種意義上來說,這是保持數(shù)據(jù)持續(xù)性的較好的設計。卻也需要一種方法來標記最新更新的哈希,這個方法被稱作IPNS。由于本系統(tǒng)采用了哈希加密,相比傳統(tǒng)的加密方式其安全性更高。 本系統(tǒng)可分為PC端和Android端,二者沒有客戶端與服務器端之分。當設備打開此程序時,用戶指定的文件或文件夾即可被任意經(jīng)過授權的節(jié)點發(fā)現(xiàn)并進行訪問。 3.2 結果分析 由于本系統(tǒng)采用IPFS技術作為其設計核心,所以與其他數(shù)據(jù)共享系統(tǒng)有很大的不同。首先,由于IPFS技術擬用來替代HTTP技術,故其在網(wǎng)絡中的安全性以及傳輸協(xié)議都與HTTP技術有很大的不同,本系統(tǒng)所使用的協(xié)議是比特交換協(xié)議。其次,本系統(tǒng)采用內容尋址方式,所有內容都是由其多哈希校驗和唯一標識,包括鏈接。 由于本系統(tǒng)采用了IPFS技術,使得使用者加入到了全球性IPFS節(jié)點的行列中來,每一臺安裝了此系統(tǒng)的電腦都可以作為網(wǎng)絡中的一個節(jié)點,它不會要求每一個節(jié)點都存儲所有內容,節(jié)點的所有者可以自由選擇想要維持的數(shù)據(jù)。比如兩個人在各自的節(jié)點中放入了相同的數(shù)據(jù),其中一人在自己的數(shù)據(jù)丟失后仍可借助另一人的節(jié)點取到丟失的數(shù)據(jù)。 四、 結 語 IPFS背后的想法是對幾十年來在學術界和開源產(chǎn)品中成功的分布式系統(tǒng)的研究。IPFS綜合了許多最新最好的想法以及最成功的系統(tǒng)。除了比特交換,這是一種新的協(xié)議,IPFS的主要貢獻是系統(tǒng)的耦合和設計的合成。 確實,本系統(tǒng)是在其基礎上建立的一種新的應用,盡管對于IPFS技術的運用還不是十分廣泛,但總的來說這也是一次對新生技術的嘗試。并且,作者認為本系統(tǒng)還不是終結,經(jīng)過進一步的設計與研究,一定會得出一種新的更加優(yōu)化的系統(tǒng)。盡管對IPFS技術的了解還不全面,但該技術對于數(shù)據(jù)共享系統(tǒng)的新嘗試具有極大的指導意義。 |
|
來自: 昵稱16619343 > 《區(qū)塊鏈》