ipfs是什么?IPFS星際文件系統新手指南

ipfs是什么?IPFS星際文件系統新手指南
這次讓我們來談談去中心化儲存的方式, IPFS代表星際文件系統, 它是一種開源的, 對等分布式超媒體協議, 旨在充當所有計算設備的普遍存在的文件系統 。 讓我們來看看這種方式有什么特點 。
在講解IPFS 之前, 讓我們先來復習一下幾個現有的文件傳輸協定, 第一個是hyper text 也就是http 協議, 這個協議本身是一個讓你可以去讀取網路上文件的協議, 而讀出來你再用特定的方式來顯示他, 這就是我們現在使用的web , 他依靠的是單一伺服器的內容, 所以當伺服器掛了, 你就無法讀取該網站的內容, 還有因為伺服器的地緣關系, 很多時候你在很遠的地方他讀取的速度是相對很慢的 。
另外一個是所謂的BT , 這個協議就有點像我們現在講的IPFS , 他是一個共享的協議, 當你發出一個文件的請求, 有很多文件的節點就會去貢獻他的文件, 所以如果文件分享源離你很近的話, 相對你拿到文件的速度是快的, 而且當越多人在分享一個文件, 你能夠拿到文件的速度也會變快 。
IPFS是什么IPFS是一個分散式的文件儲存系統, 他將每一臺參與的電腦當成一個節點, 儲存在這上面的文件會使用雜湊技術變成content identifier — CID來代表這個文件, 然后將這些文件拆成一個個小的文件, 儲藏在這個網路上的節點之上, 當用戶需要調閱這個文件的內容時, 在使用P2P的方式去找到儲藏有這個部分文件的節點, 取出來進行讀取 。
IPFS如何工作?基本上, IPFS與我們今天所知的萬維網類似, 但是更像是單個BitTorrent群, 它們在單個Git存儲庫中交換對象 。
通過基于BitTorrent的協議分發文件 。 重要的是, IPFS是Kodemila, BitTorrent和Git的一種組合, 可以創建Internet的分布式子系統 。
協議的設計提供了與Git一樣的Internet歷史版本 。 每個文件及其中的所有塊均具有唯一的標識符, 該標識符是加密哈希 。 跨網絡刪除重復項, 并跟蹤每個文件的版本歷史記錄 。
這將導致永久可用的內容, 其中網頁不會由于服務器故障或Web主機損壞而消失 。
此外, 通過此機制可以保證內容的真實性, 并且在查找文件時, 您實際上是在要求網絡查找在與該內容關聯的唯一標識哈希后面存儲該內容的節點 。 IPFS中節點之間的鏈接采用加密哈希的形式, 由于其Merkle DAG數據架構, 這是可能的 。 Merkle DAG對IPFS的好處包括:
內容尋址–內容具有唯一的標識符, 該標識符是文件的加密哈希 。
無重復-內容相同的文件不能復制, 只能存儲一次 。
防篡改–使用校驗和來驗證數據, 因此, 如果哈希發生變化, 則IPFS將知道數據已被篡改 。
IPFS使用Merkle鏈接將文件結構彼此鏈接, 并且每個文件都可以使用稱為IPNS的分散式命名系統通過人類可讀的名稱找到 。 Merkle有向無環圖(DAGS)的實現對于協議的基礎功能很重要, 但是比本文的范圍更具技術性 。
分散在這網路上, 每一個文件都有一個獨特的Content Identification, 這個數字可以代表這個文件, 讓我們在尋找文件的時候不是因為這個文件在哪里, 而是這個文件是什么 。 讓整個查找的邏輯相對會比較直接, 然后這個主文件又可以拆成很多小文件, 而這些小文件儲存在不同電腦里面, 理論上, 因為每個相同文件會有一樣的號碼, 所以如果你的文件跟其他人是同一份, 你們就可以共享這個內容, 也不會有冗余文件的問題 。
在軟體架構上, 跟其他的分散式儲存一樣, 將整個文件分散成很多個部分, 分散在不同部分去做儲存, 是很常見的 。 因為當我們在處理大型的文件的時候, 如果你不把它分散出來, 你可能會花很長一段時間再將這個文件從硬碟讀出來, 而讀取硬碟其實是相當慢的 。 首先, 你必須將文件讀出來寫入在記憶體里面, 才可以由記憶體去顯示出來 。
反之, 如果你將文件切割成很多的部分的時候, 理論上你就可以平行的從不同電腦里面去讀取這個文件, 此時就像是在一個車站一樣, 當旅客可以從不同出口進出的時候, 你就可以更快的將旅客疏散出來 。 例如, 我們在跨年的時候, 我們可以看到, 捷運局會希望你可以從象山站, 甚至永春站來進出捷運, 這都是一樣的道理, 但如果大家都擠在市政府站, 那么大家就要等很長一段時間才能夠從101 疏散出來 。
速度因為分散的關系, 你可能會采用離你比較近的節點, 這個節點可以更快的去存取你要的資料, 在傳統的中心化架構里面, 如果你是在美國的機房, 因為距離的關系, 當你必須要存取這個網頁的時候, 你可能必須要花比較長的時間來存取這個文件, 所以我們有CDN 這個技術, 他就是希望你能夠針對內容在比較近的機房, 進行內容的存取, 但現在這個分散的技術, 理想的狀況, 假設很多人進行分享的話, 你可能可以從就近的電腦來存取別人分享的文件, 這不就是最天然的CDN 嗎?

推薦閱讀