IPFS/Filecoin小白請往這裡看,簡單明瞭入門指南

IPFS/Filecoin小白請往這裡看,簡單明瞭入門指南

永不止步IPFS前言:你好,大千世界,浩瀚文海,有幸你能看到我的文章,或許從此刻起,我們之間就產生了微妙的“感情”。作為技術派系的IPFS是一個明星專案,其激勵層Filecoin主網上線,在2020年熱度飆升,捕獲了巨大的流量與關注度。記住那個不斷地和你分享IPFS /filecoin的人,你以後會感謝TA的。如果你錯過IPFS/filecoin ,將錯過一個時代,他不是一個什麼普通專案,因為他是網際網路2.0時代的未來,也是區塊鏈3.0時代的王者,是真正對人類社會非常有價值的。 投資是個長久之計,不是一朝一夕,所以不可操之過急。

IPFS(Inter Planetary File System即星際檔案系統)是一種基於內容定址、版本化、點對點的超媒體傳輸協議,允許網路中的參與者互相儲存、索取和傳輸可驗證的資料,對標http的新一代通訊協議。IPFS的目標是打造一個更加開放、快速、安全的網際網路。

IPFS產生的背景

2014年5月,斯坦福大學計算機碩士畢業的Juan Benet創立了協議實驗室(Protocol Lab)。協議實驗室是一個網路協議的研究、開發和部署的實驗室,致力於構建協議、系統和工具來改進網際網路的工作方式,並關注如何儲存、定位和傳輸資訊。協議實驗室的目標是用新的技術突破、偉大的使用者體驗設計和開源的方法來解決傳統網際網路的種種弊端,並建立了IPFS、Filecoin、libp2p、IPLD、Multiformats等五個專案。

IPFS概述

IPFS(InterPlanetary File System即星際檔案系統)是一種基於內容定址、版本化、點對點的超媒體傳輸協議,是一個P2P的分散式檔案系統,對標http的新一代通訊協議,目標是打造一個更加開放、快速、安全的網際網路。IPFS可以被視為一個單一的BitTorrent群,交換物件在一個Git倉庫,提供了一種高通量處理的依託於內容定址超連結的塊儲存模型。對於一個存放在IPFS網路的檔案資源,透過這個檔案資源的內容生成的唯一編碼去訪問。IPFS可以講資料分片儲存到分散式的儲存節點,與BitTorrent類似,在訪問時不需要關係儲存在哪裡,可以從多個儲存節點分片獲取。

IPFS繼承了Git版本管理技術,從而可以使用內容的升級變化。為了實現真實性、不可篡改性,IPFS維護一個分散式的雜湊表,實現一種Merkle DAG的資料結構,還結合了自我證明單名稱空間。IPFS中沒有單節點故障,且眾多節點無須信任彼此。所以,IPFS是集合了BitTorrent—BT協議技術、Git—版塊化技術、DHT—分散式雜湊表、SFS—自認證命名技術這四個成熟技術組合形成的一種通訊協議方式,允許網路中的參與者互相儲存、索取和傳輸可驗證的資料。IPFS的目標是取代HTTP,打造一個更加開放、快速、安全的網際網路。

HTTP協議的弊端

我們現在使用網際網路都是在http或https協議下執行的,http協議也就是超文字傳輸協議,是用於從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳送協議,從1990年提出至今已經近30年了,他對於目前網際網路的爆炸性成長居功至偉,成就了網際網路的繁榮。但是HTTP協議是基於C/S架構下的網際網路通訊協議,基於主幹網路中心化執行的機制,也存在諸多弊端。

首先,網際網路上的資料經常因為檔案被刪除或伺服器關閉而永久被抹去。有人統計過目前網際網路上的web頁面平均儲存壽命只有100天左右,我們經常看到一些網站出現“404錯誤”。近幾年,新浪網盤、騰訊微雲、金山快盤等網盤紛紛關閉,如果你不把資料下載到本地硬碟的話,你在網盤上的資料就會被清零。IPFS提供了檔案的歷史版本回溯功能,可以很容易的檢視檔案的歷史版本, 且資料無法刪除,可以得到永久儲存。

其次,主幹網路執行效率低,使用成本高。由於中心化的通訊模式導致所有終端都要從一個Web伺服器查詢資料,相同的檔案會在不同的伺服器上重複儲存,這就要求伺服器的頻寬很大。使用HTTP協議每次需要從中心化的伺服器下載完整的檔案,速度慢、效率低。IPFS是基於內容定址的儲存模式,相同的檔案都不會重複儲存,它會把過剩的資源擠壓下來,包括儲存空間都釋放出來,資料儲存成本就會降低。如果改用P2P的方式下載,頻寬使用成本可以節省近60%。

第三,主幹網路併發機制制約網際網路訪問速度。這種中心化主幹網路的模式也導致在高併發情況下網路訪問時候的擁堵,最典型的就是春運搶購火車票以及雙11剁手節的時候。

第四,中心化限制了web的成長。現在的網際網路是由數百萬個分佈在世界各地的伺服器構成的,是一個高度中心化的網路。在現有的http協議下,所有的資料都儲存在這些中心化伺服器上,網際網路巨頭們不但對我們的資料有絕對的控制權和解釋權,各種各樣的監管、封鎖、監控一定程度上也極大的限制了創新和發展。建立在去中心化的分散式網路上的IFPS很難被中心化管理和限制,網際網路將更加開放。

第五,HTTP對主幹網路依賴嚴重,存在嚴重的安全隱患。所有資料儲存在一個地方,為尋求規模效應,機房就會建設在一個地方,就會非常依賴一個主幹節點,一旦“單點式”的中心被摧毀或者發生資料丟失、造假的情況,那麼整個網路都會隨之癱瘓,或者接收到錯誤的資訊,使用者的資訊保安和隱私容易受到威脅。

為了支撐HTTP協議,伺服器7*24小時開啟,對於大流量公司,比如百度、騰訊、阿里等,投入大量資源維護伺服器和安全隱患,防止DDoS、XSS、CSRF等攻擊。主幹網路受制於戰爭,自然災害,中心伺服器宕機等因素,都可能造成整個網際網路中斷服務。IPFS分散式儲存可以極大的降低對中心主幹網路的依賴。

Juan Benet指出兩個關鍵:“我們使用的是內容定址的技術,也就是說內容可以從源伺服器分離出來,並永久儲存。這就意味著內容可以在距離使用者非常近的地方儲存和託管,甚至是儲存在同一個房間裡面。內容定址還可以讓我們校驗資料,因為其他主機可能是不受信任的。一旦內容被下載到使用者的裝置之後,它就可以被無限期的儲存。”

IPFS還可以解決困擾HTTP網際網路多時的安全問題:內容定址和內容簽名技術可以保護基於IPFS的網站,杜絕DDoS攻擊發生的可能。IPFS還可以歸檔重要的公共記錄內容,避免網站終止運營所帶來的損失。IPFS的最後一個核心改進是去中心化的內容分佈,這點可以讓人們在分散的網際網路服務(甚至是離線的情況)之下獲取網際網路的內容。“我們讓網站和網頁應用擺脫了源伺服器的牽制。”Juan Benet解釋,“它們可以按照比特幣網路的模式進行分佈。”這是HTTP無法做到的這一點,而且對於網路條件欠佳的地方和市郊地區來說是一個極大的好處。

IPFS包含的內容

節點身份。每一個IPFS節點都有一個獨一無二的身份ID,利用節點的公鑰生成的加密雜湊,節點的活動都需要使用這個ID,就像是IPFS網路裡面節點的身份證。

網路。IPFS節點要和網路裡面成百上千的其他節點通訊,現實中的網路結構如此複雜,IPFS使用ICE NAT穿透技術來保障網路的連通性。

路由。IPFS網路的路由使用的事DHT,借鑑了S/Kademlia,使用一個節點可以快速地查詢到其它節點。

資料交換協議。IPFS借鑑BitTorrent協議,使用了叫做BitSwap的資料交換協議,該協議使用兩個列表,想要的資料塊(want_list)和我有的資料塊(have_list)與其他節點進行資料交換。

物件儲存。IPFS儲存資料私用的事MerkleDAG結構,這賦予了IPFS內容定址、防篡改、去重功能。

版本控制系統。IPFS在MerkleDAG上面新增了Git版本控制功能,這使得IPFS檔案擁有了時光機功能,可以輕鬆檢視檔案的變動歷史。

自認證命名系統。IPFS使用了SFS自認證系統給檔案命名,同時提供了IPNS解決傳播問題,而且還相容了現有的域名系統。

IPFS的技術架構

IPFS有八層子協議棧,從低往高分別為身份、網路、路由、交換、物件、檔案、命名、應用,每個協議棧各司其職,又互相搭配。

身份層和路由層

對等節點身份資訊的生成以及路由規則是透過Kademlia協議生成制定,KAD協議實質是構建了一個分散式鬆散Hash表(distributed hash table),簡稱DHT,每個加入這個DHT網路的人都要生成自己的身份資訊,然後才能透過這個身份資訊去負責儲存這個網路裡的資源資訊和其他成員的聯絡資訊。

網路層

lib2p可以支援任意傳輸層協議。ICE NAT traversal框架整合STUN、TURN和其他型別的NAT協議,該框架可以讓客戶端利用各種NAT方式打通網路,從而完成NAT通訊,這對於IPFS的p2p網路非常重要。

交換層

類似迅雷、電驢這樣的BT工具,IPFS團隊把BitTorrent進行了創新,叫作Bitswap,它增加了信用和帳單體系來激勵節點去分享,使用者在傳送給其他節點資料可以增加信用值,從其他節點接受資料降低信用值。如果使用者只去接收資料而不分享資料,信用分會越來越低而被其他節點忽略掉。

物件層和檔案層

物件層共同管理IPFS上80%的資料結構。大部分資料物件都是以Merkle DAG的結構存在,這為內容定址和資料去重提供了便利。檔案層是一個新的資料結構,和DAG並列,採用Git一樣的資料結構來支援版本快照。

命名層

具有自我驗證的特性(當其他使用者獲取該物件時,使用指紋公鑰進行驗籤,即驗證所用的公鑰是否與NodeId匹配,這驗證了使用者釋出物件的真實性,同時也獲取到了可變狀態),並且加入了IPNS這個巧妙的設計來使得加密後的DAG物件名可定義,增強可閱讀性。

應用層

IPFS核心價值就在於上面執行的應用程式,可以利用它類似CDN的功能,在成本很低的頻寬下,去獲得想要的資料,從而提升整個應用程式的效率。

IPFS的關係圖譜

協議實驗室團隊在開發IPFS時,採用高度模組整合化的方式,像搭積木一樣去開發整個專案。其中IPLD、LibP2P、Multiformats這三個模組服務於IPFS底層。下面這張是IPFS的關係圖譜。

Mutiformats是一系列hash加密演算法和自描述方式的集合,用以加密和描述nodeID以及指紋資料的生成,它在現有協議基礎上對值進行自我描述改造,即從值上就可以知道是如何產生的。libP2P是IPFS核心中的核心,面對各式各樣的傳輸層協議以及複雜的網路裝置,它可以幫助開發者迅速建立一個可用P2P網路層,快速且節約成本。libp2p的主要功能包括:發現節點、連線節點、發現資料、傳輸資料。它類似現實世界的快遞公司,連線著千千萬萬個節點,除了負責分發資料,還負責查詢資料。

IPLD是一個轉換中介軟體,將現有的異構資料結構統一成一種格式,方便不同系統之間的資料交換和互操作。現在IPLD支援比特幣、以太坊的區塊資料。IPLD中介軟體可以把不同的區塊結構統一成一個標準進行傳遞,為開發者提供了成功性比較高的標準,不用擔心效能、穩定和bug,這也是IPFS為什麼受到區塊鏈系統歡迎的重要原因。

IPFS應用了這幾個模組的功能,整合為一種容器化的應用程式,執行在獨立節點上,以Web服務的形式,供大家使用訪問。IPFS允許網路中的參與者互相儲存,索取和傳輸可驗證的資料。但是由於IPFS是開源的,可以被免費下載和使用,並且已經被大量的團隊使用。運用IPFS及技術各個節點可儲存它們認為重要的資料;但目前沒有簡單的方法可以激勵他人加入網路或儲存特定資料,IPFS的推廣普及的速度明顯很慢。

IPFS是如何工作的

IPFS是基於檔案內容進行定址的。IPFS為每一個檔案分配一個獨一無二的雜湊值(檔案指紋:根據檔案的內容進行建立),即使是兩個檔案內容只有1個位元的不同,其雜湊值也是不相同的。所以IPFS是基於檔案內容進行定址,而不像傳統的HTTP協議已於基於域名定址。

檔案版本管理。IPFS在整個網路範圍內去掉重複的檔案,並且為檔案建立版本管理,也就是說,每一個檔案的變更歷史都將被記錄,可以很容易回到檔案的歷史版本檢視資料。

檔案查詢。當查詢檔案的時候,IPFS網路根據檔案的雜湊值(全網唯一)進行查詢。由於每個檔案的雜湊值全網唯一,所以查詢將很容易進行。每個節點除了儲存自己需要的資料,還儲存了一張雜湊表,用來記錄檔案儲存所在的位置,用來進行檔案的查詢、下載。

IPNS。如果僅僅使用雜湊值來區分檔案的話,會給傳播造成困難,因為雜湊值不容易記憶,就像IP地址一樣不容易記憶,於是人類發明了域名。IPFS利用IPNS將雜湊值對映為容易記的名字。IPFS雜湊代表不可變的資料,這意味著他們是不能被更改的,否則會導致雜湊值的變更。IPFS透過一種特殊的功能來實現,即IPNS。IPNS允許使用者使用一個私鑰來對IPFS雜湊附加一個引用,使用一個公鑰雜湊表示你的網站是最新版本。如果你使用過比特幣,可能會對此比較熟悉,一個比特幣地址也是一個公鑰,如果該連結不起作用,不用擔心,能夠透過更改公鑰所指向的內容,而公鑰卻永遠保持不變。這樣,網站的更新問題就得到了解決。接下來,只需要保證這些網站的位置是人類可讀的,所有問題就解決了。

人類可讀的可變地址。IPFS/IPNS雜湊是一些很大的、難看的字串,而且不容易記住。所以IPFS允許使用者使用現有的域名系統(Domain Name System,DNS)來為IPFS/IPNS內容提供人類可讀的連結。它允許使用者透過在域名伺服器上將雜湊插入TXT記錄來實現這一點。

IPFS HTTP閘道器,新舊網路之間的橋樑。透過一個HTTP閘道器,IPFS可以實現從HTTP到IPFS的過渡,在瀏覽器完全支援IPFS之前,現在已經允許當前的Web瀏覽器訪問IPFS。使用者很快就可以切換到IPFS,完成Web網路的儲存、分發和服務。

IPFS可以用來做什麼

在/ipfs和/ipns下面掛在全球永久檔案系統。就是說所有的檔案都可以存到上面。掛在個人同步的資料夾,可以自動進行版本管理、自動備份,也就意味著未來將擁有無限空間的網盤,不用擔心資料丟失和隱私洩露。

作為帶版本控制的軟體包管理系統。

作為虛擬機器的根檔案系統。利用管理程式,把IPFS作為虛擬機器的引導檔案系統、線上作業系統。

作為資料庫。應用可以直接操作IPFS的MerkleDAG資料結構,並且可以使用IPFS的版本控制、快取,自動備份、永不丟失、安全加密、無限空間、高速連線。

作為加密通訊平臺。

作為加密CDN。

永久Web。不存在不能訪問的連結,不會出現404錯誤。

IPFS與Filecoin

協議實驗室在建立IPFS的時候就提出了與IPFS相輔相成的Filecoin,Filecoin是一個共有區塊鏈,是IPFS的經濟激勵系統,承載著IPFS的價值傳遞,維繫著IPFS生態的發展。在Filecoin的激勵機制下,使用者透過支付Filecoin獲得儲存資料以及檢索資料服務,而礦工們則透過儲存資料並以加密方式證明資料儲存來獲得付款和獎勵。IPFS和Filecoin的關係有點類似於區塊鏈與比特幣之間的關係。

Filecoin使用者與礦工互動圖

Filecoin基於時空證明的共識機制,其儲存資料的區塊由礦工建立。Filecoin協議透過一個獨立的儲存提供者的網路提供資料儲存與檢索服務,它並不依賴於單一的協調組,在這裡,使用者為儲存與檢索資料而付費,儲存礦工按儲存報價獲得Tokens獎勵,檢索礦工按服務資料獲得Tokens獎勵。Filecoin是基於區塊鏈的儲存網路和加密貨幣,我們講的挖礦,其實就是Filecoin挖礦。

永不止步IPFS結束語:對於任何一件事,嘗試了、努力了不一定能獲得成功,但是我知道不去嘗試,不去努力一定不會成功。學會讓自己重新選擇,我在這裡等著你,你願與我攜手同行嗎?永不止步IPFS投資理念:投入專案最重要的不是你一次能夠賺取多少,而是你能不能穩定地獲利,長久地立足生存。Filecoin正在興起,未來是一路高歌猛進,還是平淡無奇,只需翹首以待。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读