標籤:

顛覆HTTP協議,IPFS可不是說大話

顛覆HTTP協議,IPFS可不是說大話

IPFS的目標是取代HTTP協議,那麼HTTP協議存在哪些問題?IPFS如何解決這些問題?

2015年有一篇文章《IPFS:替代HTTP的分散式網路協議》對上述問題做出了一定分析說明,文章的大意是:

其實除了文中所提的幾個問題外,IPFS對比HTTP的取代還有幾個因素值得考慮:

1、依賴伺服器的HTTP網路還非常容易產生內容丟失的問題。而IPFS的分散式存儲,可以讓內容永久保存,除非同時對所有節點進行攻擊。

2、HTTP協議基於文本的明文傳輸,沒有數據隱私可言,而作為升級版的HTTPS引入了SSL(Secure Sockets Layer)機制對數據進行加密,但HTTPS需要中心節點部署證書,去中心化,而去中心化存儲的IPFS本身則無法做到這一點,必須考慮採用其他的保密措施。

以下是《IPFS:替代HTTP的分散式網路協議》的全文:

IPFS:替代HTTP的分散式網路協議 轉載自InfoQ,

作者:張天雷,

發布時間:2015年10月。

今年年初,Internet Archive開始倡導分散式網路。現在關於它的聲音已經變得越來越清晰而又響亮。而IPFS就是在這種環境下出現的一個典型的開源代表。IPFS是點對點協議InterPlanetary File System的簡稱,它是一個面向全球的、點對點的分散式版本文件系統,試圖將所有具有相同文件系統的計算設備連接在一起。 近日,IFPS宣布了一個未來web發展計劃,它用基於內容的地址替代基於域名的地址,也就是用戶尋找的不是某個地址而是儲存在某個地方的內容,不需要驗證發送者的身份,而只需要驗證內容的哈希,通過這樣可以讓網頁的速度更快、更安全、更健壯、更持久。IPFS表示,IPFS未來將替代HTTP(以及其他的許多東西)。

一、HTTP存在很多問題 HTTP鼓勵高度集中化 Web的本意是去中心化,但它卻變得越來越中心化,今天越來越多的人依靠的是少數網站的服務。HTTP變成了一個脆弱的、高度集中的、無效的、過度依賴於骨幹網的協議。像美國國家安全局這樣的組織,現在只需要在幾個點上攔截通信來進行監視。對政府來說,阻止網站訪問這些高度集中化的資源變得容易。這也使通信容易遭受DDoS攻擊而面臨巨大的風險。 將web進行去中性化,可以降低極少數強大組織的延展性,並提高所有站點的自由度和獨立性,同時也降低了由於伺服器中斷造成數據丟失的風險。

HTTP是低效的 如果不是成規模的處理數據,將這些數據從中央數據中心分發仍然是非常昂貴的。IPFS可代替總是從數據中心獲取內容的HTTP,如果將一個ISP網路上的每一台計算機變成流媒體CDN,這時會怎麼樣?例如,獲取江南Style視頻,就可以完全在ISP網路上下載,而不需要在Internet骨幹網上經過大量的傳輸,從而大大減少數據傳輸的費用。 HTTP過度依賴於Internet主幹網 當內容過度集中化之後,這讓數據中心高度依賴於Internet骨幹網。這樣除了有利於政府對內容進行封鎖和審查,事實上存在很多可靠性問題。即使允許冗餘,主要的骨幹有時還是會被損壞,或者出現路由表失控,其後果可能是非常嚴重。Internet骨幹網並不健全,其很容易被攻擊,同時一些重要的光纖線路被切斷時服務很容易遭受影響。

二、IPFS如何解決了這些問題 IPFS從根本上改變了用戶搜索的方式。通過IPFS,用戶搜索的是內容。通過HTTP瀏覽器搜索文件的時候,首先找到伺服器的位置(IP地址),然後使用路徑名稱在伺服器上查找文件。按照這個設計,只有文件所有者可以判斷這是否是用戶要找的文件。此時,必須保證託管者不會通過移除文件或者關閉伺服器而對文件做任何更改。 當文件被添加到IPFS節點上,它得到一個新的名字。這個名字實際上是一個加密哈希,它是從文件內容中被計算出來。通過加密保證該哈希始終只表示該文件的內容。哪怕只在文件中修改一個比特的數據,哈希都會完全不同。 當下一步向IPFS分散式網路詢問哈希的時候,它通過使用一個分散式哈希表,可以快速(在一個擁有10,000,000個節點的網路中只需要20跳)地找到擁有數據的節點,從而檢索該數據,並使用哈希驗證這是否是正確的數據。 IPFS是通用的,並且存儲限制很少。它服務的文件可大可小,對於一些大的文件,它會自動將其切割為一些小塊,使IPFS節點不僅僅可以像HTTP一樣從一台伺服器上下載文件,而且可以從數百台伺服器上進行同步下載。IPFS網路是一個細粒度的、不可靠的、分散式的、易聯合的內容分發網路(Content Delivery Network , CDN)。

對於所有數據類型都是很有用的,包括圖像、視頻流、分散式資料庫、操作系統、blockchains等,而對於IPFS來說,最重要的是靜態web網站。 IPFS文件也可以是特殊的IPFS目錄對象,它允許用戶使用人類可讀的文件名,透明地鏈接到其他IPFS哈希。用戶可以通過默認方式載入目錄中的index.html,這也是標準的HTTP伺服器採用的方式。使用目錄對象,IPFS可允許用戶採用完全相同的方式生成靜態網站。將web網站添加到IPFS節點中只需要一個簡單的命令: ipfs add -r yoursitedirectory。 在此之後,用戶可以從任何IPFS節點訪問,而不需要鏈接到HTML上的任何哈希。 與IPFS建立聯盟的數據 IPFS不需要每個節點存儲所有發布到IPFS上的內容。

相反,每個節點只存儲自己想要的數據。如果每個節點託管一點數據,所有數據通過累積就提供了比任何集中式HTTP更多的空間、帶寬和可用性。分散式網路將很快成為世界上最快、最可用、以及最大的數據存儲。沒有人有能力關閉所有的節點,所以數據永遠不會丟失。 從其他IPFS節點複製、存儲web網站很容易。它只需要一條命令以及網站的哈希值: ipfspin add -r QmcKi2ae3uGb1kBg1yBpsuwoVqfmcByNdMiZ2pukxyLWD8。 IPFS負責剩下的所有工作。

IPNS IPFS哈希代表不可變的數據,這意味著它們是不能被更改的,否則會導致哈希值的變更。這是一件好事,因為它鼓勵數據的持久性,但我們仍然需要一種方法來找到最新的IPFS哈希以表示你的網站。IPFS通過一種特殊的功能來實現,即IPNS。 IPNS允許用戶使用一個私有密鑰來對IPFS哈希附加一個引用,使用一個公共密鑰哈希(簡稱pubkeyhash)表示你的網站的最新版本。如果用戶使用過比特幣,可能會對此比較熟悉,一個比特幣地址也是一個pubkeyhash。 如果該鏈接不起作用,不用擔心。能夠通過更改pubkeyhash所指向的內容,而pubkeyhash卻永遠保持不變。這樣,網站的更新問題就得到了解決。

接下來,只需要保證這些網站的位置是人類可讀的,所有問題就解決了。 人類可讀的可變地址 IPFS/ IPNS哈希是一些很大的、難看的字元串,而且不容易記住。所以IPFS允許用戶使用現有的域名系統(Domain Name System, DNS)來為IPFS/IPNS內容提供人類可讀的鏈接。它允許用戶通過在域名伺服器上將哈希插入TXT記錄來實現這一點(如果你方便使用一個命令行,運行如下命令:dig TXT ipfs.git.sexy)。具體可以參考這裡 ipfs.io/ipns/ipfs.git.s

未來,IPFS已計劃支持Namecoin,它理論上可以用來創建一個完全去中心化的、分散式的web,整個環境中不需要一個中心控制。沒有ICANN,沒有中央伺服器,沒有「權威」證書,也沒有瓶頸。這聽起來很瘋狂。可現實的確瘋狂。因為使用今天的技術這是完全可以實現的! IPFS HTTP網關:新舊網路之間的橋樑 通過一個HTTP網關,IPFS可以實現從HTTP到IPFS的過度,瀏覽器可以完全實現IPFS之前,現在已經允許當前的web瀏覽器訪問IPFS。用戶很快就可以切換到IPFS,完成web網站的存儲、分發和服務。 到目前為止,IPFS還處於實驗階段。

當網站更新的時候,Neocities將每天發布一個哈希IPFS。這個哈希將指向該網站的最新版本,並通過IPFS HTTP網關可以訪問。因為每次更新IPFS哈希都會變更,這也能夠為所有網站提供一個存檔歷史記錄。 從長期來看,如果一切順利的話,Neocities希望使用IPFS存儲所有的網站,並為每個網站發布IPNS鍵。這將讓用戶可以不依賴於Neocities而進行內容發布。如果構建得當,即使Neocities不存在了,用戶仍然可以更新自己的網站。通過有效地去除網站對Neocities中央伺服器的依賴,這種集中控制環境將被永久性打破。

IPFS真正能夠替代HTTP可能還需要一段時間,而且也有很多工作要做。 通過與協議實驗室(Protocol Labs)合作,Neocities已經成為產業界實施IPFS第一大網站。從9月8日開始,所有Neocities站點可以為世界上任何IPFS節點提供查看、存檔和託管功能。當一個IPFS節點選擇從Neocities上託管一個網站的時候,即使Neocities關閉了或停止對它託管,網站的原始版本仍繼續可用。使用Neocities網站的IPFS節點越多,Neocities網站越容易訪問。

目前,IPFS仍處於alpha開發階段。它還沒有取代現有的網站存儲系統。如同任何複雜的新技術,它還存在很多需要的改進地方。但IPFS不是霧件,現在已經可以開始工作,感興趣的用戶可以下載軟體安裝到電腦上。 當然,關於IPFS對HTTP的取代,還有許多值得探討的,這涉及兩個協議的具體內容,後續我們會再進一步進行分析。

本文允許轉載,但必須註明:原文來自於(ipfs.fund),否則視為侵權。


推薦閱讀:

認識HTTP----Cookie和Session篇
精神力量有多强大?
用 http 數據加密和 https 有什麼區別?

TAG:IPFS | HTTP | Filecoin |