導(dǎo)讀:多虧了IPFS,這個(gè)非常真實(shí)、且非常容易使用的系統(tǒng)可能是我們實(shí)現(xiàn)更快、更民主的互聯(lián)網(wǎng)的關(guān)鍵。如上所述,IPFS的基本思想是使用用戶設(shè)備來存儲、索引和交付當(dāng)下需要駐留在集中式服務(wù)器上的數(shù)據(jù)。
讓我們想象一下這樣一個(gè)場景,你正在下載一個(gè)最新的meme文件,并耐心地在等待下載的完成。這個(gè)meme非常熱門,所以你給你的朋友也發(fā)了一個(gè)鏈接。他們從你的手機(jī)中獲取了文件,然后又開始與他們自己的朋友進(jìn)行了分享。這樣,meme文件便同時(shí)存儲在了幾十個(gè)設(shè)備當(dāng)中,所以當(dāng)一個(gè)新用戶獲得鏈接時(shí),他們實(shí)際上最終會同時(shí)連接到其他多個(gè)人的設(shè)備上面,并從每個(gè)人那里獲得一些片段,這使得下載幾乎可以是即時(shí)的。
多虧了IPFS,這個(gè)非常真實(shí)、且非常容易使用的系統(tǒng)可能是我們實(shí)現(xiàn)更快、更民主的互聯(lián)網(wǎng)的關(guān)鍵。如上所述,IPFS的基本思想是使用用戶設(shè)備來存儲、索引和交付當(dāng)下需要駐留在集中式服務(wù)器上的數(shù)據(jù)。這聽起來有點(diǎn)像是加密貨幣,沒有錯(cuò)--這個(gè)項(xiàng)目的幕后推手Juan Benet曾將IPFS描述為“在某種意義上,IPFS對網(wǎng)站的影響……就像是比特幣對貨幣的影響一樣。”
什么是星際文件系統(tǒng)?
如果你知道BitTorrent或任何其他的P2P技術(shù)是如何工作的,那么你也可以很好地理解IPFS在做的事情。它可以在用戶設(shè)備之間發(fā)送文件(包括構(gòu)成大多數(shù)網(wǎng)站的HTML、CSS和JavaScript文件)和文件片段,就像你完全可以合法地下載公共領(lǐng)域的音樂一樣。
這意味著,你只需檢查附近是否有人存儲了頁面(或其中的某些部分),而不是連接到服務(wù)器以查看站點(diǎn)。一旦你下載了這個(gè)頁面,你的設(shè)備也會將其儲存一段時(shí)間,這樣其他人就可以從你這里獲得它(或它的一部分)了。這聽起來有點(diǎn)復(fù)雜,但實(shí)際上它比我們目前使用HTTP協(xié)議在單個(gè)服務(wù)器-客戶端管道上發(fā)送數(shù)據(jù)的系統(tǒng)要高效得多。
為什么它是先進(jìn)的?
與傳統(tǒng)網(wǎng)絡(luò)相比,IPFS有幾個(gè)很大的優(yōu)勢:
更快、更高效的內(nèi)容交付:你可以從地理位置相近的資源下載文件片段,從而最小化下載時(shí)間和帶寬。
去中心化:沒有一個(gè)單一的來源可以控制數(shù)據(jù)或控制對其的訪問。
信息保存:由于沒有單一的服務(wù)器會存儲所有的數(shù)據(jù),所以它不會像GeoCities網(wǎng)站那樣就這么消失并帶走你所有的數(shù)據(jù)。
在連接較差的地區(qū),連接速度也會更快、更穩(wěn)定:只要你想要的內(nèi)容已經(jīng)被下載到了某個(gè)你可以訪問的地方,你就不需要進(jìn)行長距離的連接,這對那些連接不穩(wěn)定的地區(qū)來說非常有幫助。
審查的阻力:雖然還不完美,但總比集中式的模式更好。
工作原理:簡短版
現(xiàn)在任何人都可以使用IPFS網(wǎng)絡(luò),因?yàn)樗呀?jīng)變得非常友好了。下面是一個(gè)簡短的流程概述
當(dāng)您將一個(gè)文件添加到IPFS中時(shí),該文件會被分割為多個(gè)塊,每個(gè)塊都會通過一個(gè)算法分配得到一個(gè)惟一的ID。整個(gè)文件,包括這些塊ID,也被分配了一個(gè)ID。最初,你的機(jī)器將是人們可以獲取文件的惟一地方,但是其他節(jié)點(diǎn)(機(jī)器)也可以提取并分發(fā)文件。
如果網(wǎng)絡(luò)注意到你的一些數(shù)據(jù)與已經(jīng)存儲在那里的內(nèi)容相同,它只會使用這些數(shù)據(jù)而不是添加副本。假設(shè)你正在主持一張你錄制的“豪華版”的專輯。其中10首歌曲與你已經(jīng)錄制的專輯相同,但其中兩首是新的,因此當(dāng)你將它們添加到IPFS時(shí),系統(tǒng)將識別重復(fù)的歌曲并為它們使用現(xiàn)有的ID,而只為兩首新歌添加新的ID。
網(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)都會存儲一些數(shù)據(jù)(可能是節(jié)點(diǎn)希望分發(fā)的數(shù)據(jù),加上節(jié)點(diǎn)最近打開的數(shù)據(jù))和一個(gè)索引的一部分,該索引能夠幫助人們查找網(wǎng)絡(luò)上的內(nèi)容。
如果你想打開一個(gè)文件,你可以讓網(wǎng)絡(luò)查找它的ID并把你和它的擁有者聯(lián)系起來。名為IPNS的命名系統(tǒng)有助于將人類可讀的名字轉(zhuǎn)換成系統(tǒng)可搜索的以及機(jī)器可讀的ID。
更簡單的一種描述是:IPFS能夠?yàn)槊總€(gè)數(shù)據(jù)塊提供一個(gè)名稱,列出數(shù)據(jù)在任何給定時(shí)間的位置,并實(shí)現(xiàn)在設(shè)備之間直接發(fā)送數(shù)據(jù)。
工作原理:技術(shù)版
使IPFS起作用的主要有三件事:內(nèi)容尋址模塊給數(shù)據(jù)一個(gè)標(biāo)識,Merkle-DAG給它一個(gè)結(jié)構(gòu),而分布式哈希表能夠告訴你在哪里可以找到它。
內(nèi)容尋址:告訴你是什么,而不是在哪里
我們當(dāng)前的大多數(shù)內(nèi)容都有其基于位置的地址(如C:/Users/Username/Documents, 192.124.249.3等)。這是在告訴我們?nèi)ツ睦镎覕?shù)據(jù)。這在分散的系統(tǒng)中是行不通的,因?yàn)閮?nèi)容可以存儲在任何地方,所以像IPFS和BitTorrent這樣的系統(tǒng)會使用“內(nèi)容尋址”的方式。
內(nèi)容尋址系統(tǒng)的工作原理是通過一種算法來為數(shù)據(jù)分配一個(gè)唯一的ID或哈希。每個(gè)相同的文件副本都會有相同的ID,這意味著當(dāng)IPFS查找它時(shí),它可以找到存儲在網(wǎng)絡(luò)上的每個(gè)實(shí)例。
Merkle-DAG:所有東西都有一個(gè)CID,它們都是相連接的
盡管聽起來像一個(gè)德國政黨,但Merkle-DAG(有向無環(huán)圖)實(shí)際上是一種組織數(shù)據(jù)的方法。在這個(gè)系統(tǒng)中,每一塊數(shù)據(jù)都有自己的內(nèi)容ID(CID):文件夾、文件、文件內(nèi)的數(shù)據(jù)塊--所有的一切。這意味著可以將文件分成不同的部分、驗(yàn)證和重新組裝。
IPFS文檔將其描述為“海龜下面還是海龜”,因?yàn)樗袃?nèi)容都可以分解為一個(gè)由CID標(biāo)識的數(shù)據(jù)集合。文件夾的CID將引導(dǎo)您到一個(gè)文件和文件夾CID的集合,其CID隨后也將引導(dǎo)您到表示其他內(nèi)容片段的其他CID,而它們也有自己的CID。任何文件中的任何更改都會導(dǎo)致其哈希和其文件夾的哈希的更改。
但是,數(shù)據(jù)實(shí)際上并不在這里,它只是告訴你在哪里可以找到所有的數(shù)據(jù),以及一旦你有了數(shù)據(jù),所有的數(shù)據(jù)應(yīng)該如何組合在一起。從本質(zhì)上說,是Merkle-DAG為所有這些ID提供了一個(gè)結(jié)構(gòu),非常類似于計(jì)算機(jī)上的文件系統(tǒng)。
分布式哈希表:IPFS定位內(nèi)容的方式
那么我們可以如何找到我們想要的數(shù)據(jù)呢?基本上,有一個(gè)大的數(shù)據(jù)庫,它會將內(nèi)容ID與承載該內(nèi)容的計(jì)算機(jī)的位置相匹配,數(shù)據(jù)庫本身也會被網(wǎng)絡(luò)中的每個(gè)人分割。當(dāng)您請求一塊由CID表示的內(nèi)容時(shí),您的計(jì)算機(jī)將搜索CID,直到它找到了擁有它的人的列表。然后你的電腦將連接到這些人,下載你需要的東西,并把它們組裝起來。這就是分布式哈希表--本質(zhì)上是一個(gè)關(guān)于誰擁有什么東西的大列表。
IPFS很酷,但它會變得流行嗎?
IPFS始于2015年,自那以后已經(jīng)取得了快速的發(fā)展。已經(jīng)有數(shù)十個(gè)應(yīng)用程序和網(wǎng)站建立在它之上(包括分散的YouTube,或DTube),一個(gè)區(qū)塊鏈文件存儲系統(tǒng)(Filecoin),和一個(gè)GeoCities的替代品(Neocities)。它成功地將去中心化和用戶友好性結(jié)合在了一起,這可能就是為什么它成為了所有想要實(shí)現(xiàn)去中心化的項(xiàng)目的首選,比如Sociall(一個(gè)去中心化的社交網(wǎng)絡(luò))和Brave。
Cloudflare的IPFS網(wǎng)關(guān)已經(jīng)大受歡迎,網(wǎng)絡(luò)的使用也變得越來越容易了;你所要做的就是下載一個(gè)程序并安裝一個(gè)瀏覽器擴(kuò)展。當(dāng)然,對于它是否真的是最好的解決方案依然存在爭議--它也遠(yuǎn)非是唯一一個(gè)有同樣愿景的項(xiàng)目--但它也還沒有顯示出任何可能放緩的跡象。即使它不能完全取代HTTP,它也肯定會成為下一個(gè)版本的Internet的一部分。
原文標(biāo)題:How the Interplanetary File System (IPFS) Could Decentralize the Web,作者:Andrew Braun