做者簡介:戴嘉樂( Mr.Maple ) | 前百度高級研發工程師 | IPFS應用實踐者&佈道師| 我的網站:www.daijiale.cn 聯繫方式:微信號:daijiale6239。html
因爲一些特殊緣由,ipfs.io網關在天朝沒法訪問,以前在外作宣講的時候,也被不少朋友問到ipfs.io是否一直會被禁的問題,紛紛表示擔心,這邊經過一個簡單的Demo,讓你們能夠搭建屬於本身的協議網關,經過這種方式,咱們跑在IPFS上的資源將不在受限,而且每一個人均可以獨立出本身的節點服務並分享給其餘人、應用程序訪問使用。linux
對IPFS這項技術不熟悉的同窗,能夠參考我以前一次演講分享的內容:【IPFS】戴嘉樂:詳解IPFS的本質、技術架構以及應用。程序員
Ngrok是一個反向代理,經過在公共的端點和本地運行的 Web 服務器之間創建一個安全的通道,比較輕量級,不須要去在本地構建一個相似Nginx或者Tomcat這樣的服務器,便可完成IP動態映射和內網穿透,對創建IPFS這樣的資源網關來講,最爲方便,並且,經過Ngrok ,咱們能夠直觀的捕獲和分析全部通道上的流量,便於後期資源上的分析和重放,還有便於開發者調試的協議信息展示等功能。api
官網: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.1 Ngrok安裝緩存
從 download page下載你所需的系統版本。安全
若是是linux or mac系統,建議移動到系統用戶目錄下安裝,以便更好使用terminal來操做ngrok:服務器
$ mv ngrok.zip ../user/
複製代碼
$ unzip /path/to/ngrok.zip微信
這裏能夠註冊Ngrok,經過Dashboard,綁定Ngrok帳戶,享受更多權益功能:架構
./ngrok help
複製代碼
出現以下信息,表示安裝成功:
./ngrok http 80
複製代碼
出現以下信息,表示啓動ngrok成功:
打開瀏覽器,鍵入http://127.0.0.1:4040 ,能夠監控資源訪問狀況:
部署方式能夠參考我以前的文章:利用ipfs構建本身的去中心化分佈式wiki系統。
./ngrok http 8080
咱們看到了分別來自本地ipfs和手來自機的GET Response,資源訪問成功。
固然,有朋友說,反向代理層可否自定義本身的域名前綴,其實,Ngrok是爲咱們提供了這樣的服務的,可是須要購買付費服務:
咱們能夠成功監控到兩次資源請求的耗時以及協議報文的詳細數據。
然而,有朋友又會抱怨了:以上的全部操做都是須要人工手動來創建和部署的,可否實現遠程自動化的運維服務。
答案是:沒有什麼是程序員解決不了,「懶」是咱們永遠追求的境界。
經過 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構建自維護資源網關》,來說解對資源網關的種種優化,例如:
【戴嘉樂】(進階)基於IPFS和Ngrok構建自維護資源網關
圓方圓學院聚集大批區塊鏈名師,打造精品的區塊鏈技術課程。 在各大平臺都長期有優質免費公開課,歡迎報名收看。 公開課地址:ke.qq.com/course/3451…