區塊鏈
挖礦,比特幣,EOS,以太坊

IPFS星際文件系統注定會成為偉大的項目

322

606622575867583245.jpg
資料來源:smg-corporate.com作者丨Jonas Bostoen翻譯丨Jason這篇文章將分為IPFS的理論介紹和IPFS的使用指南兩部分。?第一部分旨在向大家展示IPFS是如何工作的。
第二部分將指導大家使用IPFS并與現有網絡進行交互,這部分假設了一些技術知識和一個基于*nix的系統。理論介紹
HTTP或者超文本傳輸協議(HyperText Transfer Protocol)是現有管理互聯網點對點的通信協議。這是現在大家訪問網站、觀看視頻、下載文件的一種方式。
然而,它存在好些問題。其中很多問題,實際上都是由于HTTP集中化導致的。

那到底今天的互聯網怎么了?
當你今天想訪問某個網站時,你用的瀏覽器(客戶端)會向服務器(主機)發送請求,即使這些服務器位于全球其他地方。這個就是基于位置的尋址,且它使用IP地址來顯示你所處位置。
這個過程很占用帶寬,而且會因此花費大量時間和金錢。
最重要的一點是,在多臺電腦里獲取一個文件的不同部分,速度和效率比用HTTP在一個時間段里從單個服務器下載此文件全部內容快很多好很多。
HTTP還會被強大權力所干涉,比如阻止訪問某個網絡位置(例子如土耳其在2017對維基百科服務器的所作所為。)?Juan Benet,打算用IPFS技術來解決這些問題。
首先,單點故障什么的在IPFS里是不存在的。它是一個點對點的、分布式文件存儲系統。毫不夸張的說,它真的可能取代HTTP,并讓因特網再一次實現分布式。
在這里,互聯網的審查變得不現實,發布的信息不會突然因為服務器提供商和主機網絡的秀逗或者短路而突然消失不見了。
安全性也會隨之增加,如DDos攻擊將不再有用,因為它是對中央分發系統進行攻擊的,而IPFS并沒有中央分發系統。速度也會增快,在分布式網絡中,每個節點都會向最靠近他的節點去發送請求,而不是單個中心位置。
它是如何工作的?0_UAZGKiXS5RQtsJP9_.png通過Simply Explained對IPFS和視頻動畫的另一個很好的解釋

IPFS通過將網絡上的所有設備連接到相同的文件結構來運行。
此文件結構叫做Merkle DAG,這個結構結合了?Merkle trees(https://en.wikipedia.org/wiki/Merkle_tree)(為了確保不變性)和Directed Acyclic Graphs(https://ericsink.com/vcbe/html/directed_acyclic_graphs.html)(用于Git版本的控制,同時能允許用戶查看IPFS上內容的版本)。
其實可以把它想象成一個大型BitTorrent群。
想象下,你想閱讀IPFS的白皮書,大家一般會先輸入一個URL,該URL可以被解析為IP地址,而該IP地址能夠提供有關文件位置的信息(如果有IPFS服務器,則位置信息為IPFS服務器),之后會允許你的客戶端與主機連接并獲取文件。
這里提到的每個細節都可能會出錯。?現在,想象下,用IPFS網絡來訪問它。
該文件及其所有區塊,都由內容本身的唯一加密哈希值所標識。整個系統都是基于鍵值數據存儲。
這就是允許內容尋址的原因:任何人都可以保管密鑰,無論信息的來源是哪里。所以你會連接到組群(swarm)里并向網絡請求該文件。首先會找到離你最近的一個點(peer),因為他們有機會獲得該文件的副本。如果他們沒有副本,你就會連接到最初上傳文件的那個節點上,因為它是肯定持有該文件的。?Simply?Explained制作的一個視頻動畫對IPFS很好地解釋了一番。(視頻地址:https://v.qq.com/x/page/d0654dansf1.html)?你下載這個文件之后,自己就會成為一個主機(Host)。這意味著你是客戶端的同時,也是主機。你也只需要托管對自己有用的文件就行了。
現在讓我們倒回來看IPFS的白皮書。可能你并沒有安裝IPFS,那我們就先用網關(gateway)。
URL如下所示:https://gateway.ipfs.io/ipfs/QmV9tSDx9UiPeWExXEeH6aoDvmihvx6jD5eLb4jbTaKGps。
從IPFS網關URL開始,然后把內容的唯一哈希標識符包含進去。網關將連接到具有該文件的(可能就是它本身)最近的點(peer),然后將該文件提供給你。?你可能會問,從不信任的節點下載文件會很危險吧?問得好,但是由于加密哈希是放篡改的,且哈希就是內容本身,你可以放心你得到的文件,因為它就是你要的那份。

我們讓網絡和網絡應用不再需要中央源服務器,它們可以像比特幣一樣分發。—Juan Benet
IPFS提供內容,但是內容的大小可以比PDF文件大很多很多。應用程序本質上也是內容。與其他分布式項目如以太坊相結合,也會讓IPFS功能非常強大。像以太坊這樣的區塊鏈可以作為你應用程序的后端,而前端則由IPFS提供服務。
這就是完全去中心化、分散的應用程序了。?為了真正推動這一點,等等,讓先我來看另一個例子吧。
想象一下,一個滿屋子的學生都在Google doc上合作寫作業。用HTTP的話,每次進行修改更正時,信息都會發送回服務器,然后再從服務器發回給其他的學生。可以想象到這帶寬得有多浪費,而且還有很多不必要的延遲。由其是對處在同一本地網絡的人們。
但是用IPFS的話,這些信息根本就不用被這樣傳來傳去的。只需要在同一網絡上的所有人員之間實時共享就好了。即使Google服務器壞掉了、停機了,也沒關系,因為每個節點(node)現在都是自己的主機。這就讓不必要的帶寬和延遲大大減小。?讓我來解釋下為啥叫星際文件系統。
試想,如果剛剛那群學生在火星上,并且能在那里用一部分網絡:一個人從其中一個節點里向地球的IPFS網絡請求Google docs,或者其他文件。大概花個一小時之后,文件一旦到達了火星(文件可以是任何東西,維基百科分解之后也是文件),第一個請求它的人將成為整個網絡的“播種者”,其他節點也可以從他那里獲得文件。如果這個過程持續的時間夠長的話,最終大部分互聯網都可以在火星上使用,且不必在發送請求后仍需等待數小時。?IPFS仍在初始階段(文章寫于2018五月份,所以他這么說),一堆開發還在緊鑼密鼓地進行中。還有一個很帥的東西叫Filecoin。Filecoin是一種加密貨幣,用于激勵(具有經濟回報)網絡上的節點們(node)去存儲內容,因此內容的可訪問性不會取決于那些不受信任的節點(node)。?1_9WBT5XMl4IAZsDISvZDkgQ.png
入門實用指南
在這部分里,我們會實際地、真正地連接到IPFS網絡里。首先你需要先把它安裝到你的系統里。你可以使用snapcraft來安裝IPFS,用snap install ipfs,但我建議從預先構建好的軟件包里進行安裝。從這里下載安裝包(https://dist.ipfs.io/)。接下來,使用:tar xvfz go-ipfs.tar.gz
cd go-ipfs
./install.sh

它會先解壓縮歸檔,然后install.sh?腳本會將二進制文件移動到可執行文件$PATH可以用$ ipfs help來檢查是否正確安裝$ ipfs help

一個很好的IPFS命令行的概述。

現在我們開始吧,首先先初始化IPFS存儲庫,用$ ipfs init這個操作會讓你得到一個屬于你節點的密鑰對,和一些IPFS對象(IPFS objects)的存儲庫。看一下,出來的命令行是不是和下面的一樣:$ ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

然后會出現這個:Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗ ?███████╗
██║██╔═══╝ ██╔══╝ ?╚════██║
██║██║ ? ? ██║ ? ? ███████║
╚═╝╚═╝ ? ? ╚═╝ ? ? ╚══════╝

If you’re seeing this, you have successfully installed
IPFS and are now interfacing with the ipfs merkledag!

——————————————————-
| Warning: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
| ? This is alpha software. Use at your own discretion! |
| ? Much is missing or lacking polish. There are bugs. ?|
| ? Not yet secure. Read the security notes for more. ? |
——————————————————-

Check out some of the other files in this directory:

./about
./help
./quick-start ? ? <– usage examples
./readme ? ? ? ? ?<– this file
./security-notes

$ ipfs cat命令可以讓你查看IPFS對象的中的內容。
快試試看目錄中的其他文件吧~
在IPFS里添加文件?把文件添加到IPFS里其實非常簡單。先讓我們轉到IPFS的測試庫(test-repository)并創建一個簡單的文件先:$ echo “Some text!” > IPFSfile

接下去把文件添加進IPFS:
$ ipfs add IPFSfile

這個操作會讓你得到一個以Qm開頭的哈希值,而此哈希值為此文件內容的唯一標識。這時你已經遞歸地把文件固定在你的本地存儲中了,這就意味著一旦你連接到群組中(swarm),其他具有該哈希標識的人也能向你請求文件。?為了看看那些IPFS文件時在你系統里的,會用到以下代碼:$ ipfs pin ls

此操作會列出所有固定文件,這時候你應該能(遞歸地)查看到你剛剛創建的文件(它的哈希標識),還能看到初始化IPFS時創建的文件,如readme(自述文件)和quick-start(快速啟動文件)。
要想查看這些文件,只要ipfs cat它們就可以了,除非它們只是個目錄文件(其實也是有可能的),這時候就要用$ ipfs ls?來查看目錄。如果要添加一整個目錄,?只需在ipfs add?命令行里加-r就搞定啦。

開始與群組(Swarm)進行交互
到目前為止,所有剛剛做的東西都是在本地完成的。我們還沒有連接到群組(swarm)里。先讓我們初始化IPFS守護進程(daemon):$ ipfs daemon

使用?$ ipfs id來查看連接的詳細信息。先來看看我們的節點(peers):
$ ipfs swarm peers

可以注意到的是,這些節點都有唯一的哈希值作為它們的ID。可以用?$ ipfs id <insert hash>對它們進行檢查。
IPFS的守護程序設置了一個本地主機,讓你能用瀏覽器與IPFS網絡實現交互。系統默認值為8080。
我們用網絡瀏覽器來看看我們的文件吧:
localhost:8080/ipfs/<hash of file>
現在應該能看到你的文件了。和之前說的一樣,你可以輸入內容的哈希值來閱讀網絡上的IPFS白皮書。(QmV9tSDx9UiPeWExXEeH6aoDvmihvx6jD5eLb4jbTaKGps)。
快點兒來試試吧~
守護進程還為你的節點(node)提供了一個很好的網頁用戶界面(Web UI)。系統默認URL為:
127.0.0.1:5001/webui
你可以看看所有節點(peers)都在哪里,試著用UI去上傳文件,而不是用命令行。
現在IPFS能做到的東西已經很多了,但是我們還不能真正使用到它。其實普通人甚至都可能不知道這東西區別在哪里。
但它是遷移互聯網協議的唯一途徑。Juan Benet一直強調這一點,我覺得他說的很對。

丨熱門閱讀

IPFS生態研究報告

破紀錄的頂級風險投資Filecoin ICO熊市機遇:投資EOS ,不如投資IPFS存儲IPFS中國社區賴楚航:IPFS如何構建下一代互聯網

_________________________

 


更多精彩資訊,歡迎關注IPFS中國社區

贊(0)

評論 搶沙發

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址
p3试机号99