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

IPFS應用丨(入門)基于IPFS和Ngrok構建自維護資源網關

128

一、應用背景
由于一些特殊原因,ipfs.io網關在天朝無法訪問,之前在外做宣講的時候,也被很多朋友問到ipfs.io是否一直會被禁的問題,紛紛表示擔憂,這邊通過一個簡單的Demo,讓大家可以搭建屬于自己的協議網關,通過這種方式,我們跑在IPFS上的資源將不在受限,并且每個人都可以獨立出自己的節點服務并分享給其他人、應用程序訪問使用。

二、技術介紹

2.1 IPFS對IPFS這項技術不熟悉的同學,可以參考我之前一次演講分享的內容:【IPFS】戴嘉樂:詳解IPFS的本質、技術架構以及應用

2.2 NgrokNgrok是一個反向代理,通過在公共的端點和本地運行的 Web 服務器之間建立一個安全的通道,比較輕量級,不需要去在本地構建一個類似Nginx或者Tomcat這樣的服務器,即可完成IP動態映射和內網穿透,對建立IPFS這樣的資源網關來說,最為方便,而且,通過Ngrok ,我們可以直觀的捕獲和分析所有通道上的流量,便于后期資源上的分析和重放,還有便于開發者調試的協議信息展現等功能。

  • 官網:https://ngrok.com/
  • 教程:https://ngrok.com/docs
  • 下載:https://ngrok.com/download

三、應用實踐
博主采用的是Mac OS 10.13.3 + go-ipfs v0.4.13 + Ngrok v2.2.8

3.1 環境搭建

3.1.1 Ngrok安裝從?download page下載你所需的系統版本如果是linux or mac系統,建議移動到系統用戶目錄下安裝,以便更好使用terminal來操作ngrok:

$?mv?ngrok.zip?../user/
$?unzip?/path/to/ngrok.zip

這里可以注冊Ngrok,通過Dashboard,綁定Ngrok賬戶,享受更多權益功能:

3.1.2 驗證、啟動Ngrok

./ngrok?help

出現如下信息,表示安裝成功:

./ngrok?http?80

出現如下信息,表示啟動ngrok成功:打開瀏覽器,鍵入http://127.0.0.1:4040 ,可以監控資源訪問情況

3.1.3 IPFS部署部署方式可以參考我之前的文章:【區塊鏈】利用ipfs構建自己的去中心化分布式wiki系統

3.1.4 Ngrok綁定IPFS資源

  • 啟動本地IPFS節點
  • 運用IPFS上傳一張圖片,并得到IPFS指紋:QmdzsNmv…Tow
  • 啟動ngrok,綁定在IPFS的默認端口:127.0.0.1/tcp/8080

./ngrok?http?8080

  • 如下圖所示,Ngrok幫我們動態映射了:29e22496.ngrok.io -> localhost:8080
  • 我們用手機微信對http://29e22496.ngrok.io/ipfs/QmdzsNmv…Tow 進行訪問

  • 我們再在瀏覽器發起一個對本地ipfs資源的訪問:localhost:8080/ipfs/QmdzsNmv…Tow

我們看到了分別來自本地ipfs和手來自機的GET Response,資源訪問成功當然,有朋友說,反向代理層能否自定義自己的域名前綴,其實,Ngrok是為我們提供了這樣的服務的,但是需要購買付費服務:

3.1.5 使用Ngrok對IPFS資源進行監控

  • 瀏覽器打開 http://localhost:4040/inspect/http

  • 我們來監控剛才對IPFS資源訪問的詳細記錄和報文數據:

我們可以成功監控到兩次資源請求的耗時以及協議報文的詳細數據。

3.1.6 通過Ngrok API 自動化運維IPFS節點然而,有朋友又會抱怨了:以上的所有操作都是需要人工手動來建立和部署的,能否實現遠程自動化的運維服務。答案是:沒有什么是程序員解決不了,“懶”是我們永遠追求的境界。通過?Ngrok API 文檔,我們可以通過RPC遠程調用來控制節點,并集成到業務程序代碼里,實現自動化運維和控制。一些常用的操作如下:

方法名 請求形式 API 備注
Start tunnel POST /api/tunnels
Stop tunnel DELETE /api/tunnels/:name
Delete Captured Requests DELETE /api/requests/http

有興趣的朋友可以在自己的業務或者App中進行集成

四、未完待續
我們通過Ngrok為IPFS節點配置HTTP Tunnels,充分利用了其NAT穿越的特性,成功搭建了屬于自己的資源網關,為他人提供IPFS節點服務。但是這僅僅是一個雛形,缺陷還很多,隨后會再寫一篇文章《【應用】(進階)基于IPFS和Ngrok構建自維護資源網關》,來講解對資源網關的種種優化,例如:
– 視頻等大文件本地緩存優化
– ipns動態解析目錄
– 自動化控制資源的分享權限
– ….

轉載聲明:特別鳴謝天一哥(飛向未來 IPFS指南公眾號作者)與ipfser.org早期在IPFS大量的布道工作,才有了博主致力于IPFS應用實踐的想法,期望更多和我們一樣對這個領域感興趣的朋友能加入進來。本文章版權歸博主daijiale.cn所有,若想轉載請聯系作者授權,未經授權,禁止轉載,如若發現,將通過個人律師以侵犯《中華人民共和國著作權法》起訴(奉陪到底),授權轉載也請注明原出處。


微信聯系方式如下:也歡迎加入知識星球:提供更多詳細的提問回復IPFS應用和開發方面的實踐信息享受個人舉辦的一些IPFS線下活動的福利和權益

五、參考文獻【區塊鏈】利用ipfs構建自己的去中心化分布式wiki系統Ngrok Docipfs.io

贊(0)

評論 搶沙發

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