17年是區塊鏈大火的一年,先不說代幣是否是圈錢的工具,就區塊鏈技術而言,確實是網際網路發展的乙個里程碑。我17年參投了 filecoin 的愛西歐,才開始對 ipfs 感興趣,filecoin 為 ipfs 的代幣,目前還未上線。
目錄:ipfs
http 的缺陷
ipfs 的原理
ipfs 進展
ipfs 的全稱為"星際檔案系統"(interplanetary file system,縮寫ipfs),是乙個旨在建立持久且分布式儲存和共享檔案的網路傳輸協議。在 ipfs 網路中的節點將構成乙個分布式的檔案系統,它的目標是補充甚至替代過去20年使用的 http。
簡單點說,它是乙個點對點的分布式檔案系統(和位元幣技術一樣),通過底層協議,可以讓儲存在 ipfs 系統上的檔案,在全世界任何乙個地方快速獲取,且不受防火牆的影響(無需網路**)。
2. http 的缺陷
http - 超文字傳輸協議,這種協議具有非常中心化的特點。
總結一下 http 的缺陷:
歷史檔案被刪除問題。經常會出現**檔案不能長期儲存或者操作不當,導致一些重要檔案從網際網路徹底消失,造成無法追回的損失。
中心化的網路限制了網際網路的發展,容易受到控制。
網路應用太依賴骨幹網。為保證資料的可靠性,在開發的應用程式時太依賴大型的中心伺服器,並通過大量的備份來保證資料的安全。
而 ipfs 的目標就是想解決這些痛點:
比如我們經常會遇到的某個資源刪除無法訪問的問題,這種情況,在 ipfs 上就不會發生。即便是把該站點撤銷,只要儲存該站點資訊的網路依然存在,該網頁就可以被正常訪問。儲存站點的分布式網路越多,它的可靠性也就越強。
解決過度冗餘問題,實現共享經濟
而 ipfs 會把儲存檔案,做一次雜湊計算,使用者只需要使用相同的雜湊值,就可以訪問那個檔案,這個雜湊值就是檔案的位址。只要獲取這個位址,就可以共享資源了。基於上面的永久儲存特性,你再也不用擔心某個電影找不到了,也不用備份,因為全球電腦上只要有那麼幾個人儲存著,你就能拿到它。
基於內容定址,而非基於網域名稱定址。ipfs 的網路上執行著一條區塊鏈,即用來儲存網際網路檔案的雜湊值表,每次有網路訪問,只要在鏈上查詢該內容(檔案)的位址。檔案(內容)具有存在的唯一性,乙個檔案加入了 ipfs 的網路,將基於計算對內容賦予乙個唯一加密的雜湊值,這將改變我們使用網域名稱訪問網路的習慣。
提供檔案的歷史版本控制器(類似git),並且讓多節點使用儲存不同版本的檔案。
節點儲存激勵,代幣分成
通過使用代幣(filecoin)的激勵作用,讓各節點有動力去儲存資料。 filecoin 是乙個由加密貨幣驅動的儲存網路,礦工通過為網路提供開放的硬碟空間獲得 filecoin,而使用者則用 filecoin 來支付在去中心化網路中儲存加密檔案的費用。
3. ipfs 的原理
filecoin ***中闡述了 ipfs 的工作原理:
個人認為,目前的 pos 挖礦機制確實是在大量耗費計算資源,電費。礦工挖礦就是為了獲取代幣獎勵,然後變現。但是這種高密集型計算並未給社會發展帶來什麼實際性地貢獻,更多的只是乙個經濟生態:發幣商 - 代幣 - 礦機- 礦工 - 交易所。ipfs 也是運用這種思想,包括代幣激勵,但是它的共識機制如果真能實現上面的幾點,確實是一件既環保又有價值的事情。4. ipfs 進展ipfs 是17年8月開始眾籌的,目前已經過去一年半的時間了,官網說主網預計19年q2上線,讓我們拭目以待。ipfs 的代幣挖礦使用的是硬碟,但是對頻寬的要求非常高。單從硬碟來說,就比目前的各種顯示卡礦機,專業礦機更親民,更節省資源。
不過不知道是因為目前熊市的原因,還是在技術實現上的困難,ipfs 團隊對外一直很謹慎。最近更新的官方博文上也寫到了目前中國市場一些問題,且開始配中文版本的內容:
同時 ipfs 在18年也開放了 github **:
感興趣的朋友可以去 fork 研究下,好了,《網路篇》就寫完了,接下來我更新的篇章主題為《加解密》。
HTTP協議 網路篇
網路篇 http協議 1 uri url urn基本介紹 uri 統一資源標誌符 uniform resource identifier url 統一資源定位符 uniform resource locator urn 統一資源命名 uniform resource name 關係圖如下 2 url...
網路基礎之網路協議篇
1 c s b s clientserver browserserver server端必須滿足的條件 1 穩定執行 網路 硬體 作業系統 服務端應用軟體 對外一直提供服務 2 服務端必須繫結乙個固定的位址 2 什麼是網際網路 兩大要素 1 底層的物理連線介質,是為通訊鋪好道路的 2 一套統一的通訊...
網路基礎之網路協議篇
我們知道兩個程序如果需要進行通訊最基本的乙個前提能能夠唯一的標示乙個程序,在本地程序通訊中我們可以使用pid來唯一標示乙個程序,但pid只在本地唯一,網路中的兩個程序pid衝突機率很大,這時候我們需要另闢它徑了,我們知道ip層的ip位址可以唯一標示主機,而tcp層協議和埠號可以唯一標示主機的乙個程序...