顛覆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負責剩下的所有工作。推薦閱讀:
※認識HTTP----Cookie和Session篇
※精神力量有多强大?
※用 http 數據加密和 https 有什麼區別?