IPFS資料之旅(一):我的資料誰做主

買賣虛擬貨幣

被稱為下一代HTTP協議的IPFS,熱度僅次於EOS。但很多人對IPFS只有一些很抽象的概念。在此為大家簡單解釋一下IPFS網路:“可以把IPFS網路想象成一個大硬碟,全世界就這一個硬碟,這個硬碟背後是無數個對等的點組成,我們存的檔案會被冗餘並且分片的存到某些點上。”

IPFS是一個內容定址,有版本管理的,點對點檔案系統。本系列說的IPFS包括協議實驗室在github.com上ipfslibp2p兩個組織的各種專案,不包括Filecoin。工作關係一直追蹤分散式儲存IPFS的各種動態,分享下自己對IPFS技術的理解,會涉及到IPFS各種工具和相關程式碼。

設想下面幾個情景:

(可以發現我們自己的資料其實在網際網路中到處都是,但是我們卻沒辦法很好的管理這些資料。)

情景1

A同學給小B同學傳一個照片,直接能想到的都是需要透過中心化的服務,比如微信,網盤等等方式,我們給不同人分享,意味著我們會在不同app/服務商中儲存同一份資料,時間長了,搞不清哪裡有想找的照片。

這裡面就可以用到ipfs的內容定址(content addressing),同一份內容永遠只有一個地址。對於ipfs這樣的一個點對點的網路,其實沒有傳統的上傳和下載的概念。每個人都可以把檔案儲存在自己的ipfs節點中,然後把檔案的地址(雜湊值)廣播出去,如果別人需要,會根據這個雜湊值在他自己的節點儲存。


情景2

如果小B對照片做了修改,比如去除紅眼後,分享給小C。現在問題來了,小A怎麼知道有最新的修改呢?小A“溝通基本靠吼”,直接問下小B或小C。如果是更多人協作呢?

ipfs有ipns(InterPlanetary Naming System)和pubsub(訂閱,釋出)可以幫忙做這個事情。

情景3

如果小A希望網路中有三個備份,要怎麼做呢?已有方法是放到不同服務提供商,某度網盤存一份,微信收藏一份,telegram存一份……如果要存10份呢?

ipfs的ipfs-cluster可以幫忙做指定副本數量的儲存。

以上情景都可以透過IPFS解決,從設計上看,IPFS包括用DHT儲存metadata,使用類似的BT的資料交換方式,使用類似git的object管理和SFS(Self-Certified Filesystems)。

上述情景都可以透過IPFS解決,那技術上到底是如何解決的呢,請關注下期的IPFS資料之旅(二)

下面給大家介紹一個簡單的小工具,在自己的電腦上使用IPFS,可以安裝試一下。

IPFS-companion


顧名思義,IPFS companion(IPFS伴侶)就是方便大家在瀏覽器中使用IPFS的各種功能。 它使用Javascript語言,支援本地的IPFS daemon或瀏覽器內建的基於JS的IPFS daemon(如下圖)。 

它使用mozilla的WebExtensions API開發,後者是一個跨瀏覽器的瀏覽器擴充套件/外掛開發API。

IPFS companion功能包括:

  • 上傳檔案

  • pin,unpin檔案

  • 地址轉換

對地址的轉換,舉個栗子。

對於http的地址

https://ipfs.io/ipfs/QmUgmeDNfbP61hynZAQjvy81sGoQmLQRzEaG51knUS9rjk),

可以生成IPFS地址:

/ipfs/QmUgmeDNfbP61hynZAQjvy81sGoQmLQRzEaG51knUS9rjk,(這個命令可以透過ipfs get下載。筆者後續會詳細介紹ipfs的資料流,敬請期待。)和普通瀏覽器可以訪問的帶ipfs 閘道器的地址:https://ipfs.io/ipfs/QmUgmeDNfbP61hynZAQjvy81sGoQmLQRzEaG51knUS9rjk。

筆者最喜歡的功能其實是直接在瀏覽器使用如下四種格式IPFS連結舉例: 

例如下面圖片 

可以用

ipfs://QmUgmeDNfbP61hynZAQjvy81sGoQmLQRzEaG51knUS9rjk訪問。

使用瀏覽器內建的js daemon時,瀏覽器位址列會顯示:  

使用本地的ipfs daemon時,瀏覽器位址列會顯示:  

二者的含義都是把內容

/ipfs/QmUgmeDNfbP61hynZAQjvy81sGoQmLQRzEaG51knUS9rjk

請求透過http api轉發給ipfs.io或本地的127.0.0.1:8080 ipfs閘道器。ipfs閘道器把http請求轉為ipfs的點對點協議。從上述ipfs閘道器開始,後面就是ipfs協議,而不是傳統http協議了。

作者:半瓦,星際位元技術負責人。曾任職於SUSE,華為,海航集團等公司雲端計算部門,在雲端計算領域有10年的實踐經驗,資深架構師一名。歡迎後臺留言交流哦。

免責聲明:

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

推荐阅读

;