摘要:五參考文獻區(qū)塊鏈利用構(gòu)建自己的去中心化分布式系統(tǒng)相關(guān)文章和視頻推薦戴嘉樂入門基于和構(gòu)建自維護資源網(wǎng)關(guān)圓方圓學(xué)院匯集大批區(qū)塊鏈名師,打造精品的區(qū)塊鏈技術(shù)課程。
作者簡介:戴嘉樂( Mr.Maple ) | 前百度高級研發(fā)工程師 | IPFS應(yīng)用實踐者&布道師|一、背景
個人網(wǎng)站:https://www.daijiale.cn
聯(lián)系方式:微信號:daijiale6239。
上篇文章[《(入門)基于IPFS和Ngrok構(gòu)建自維護資源網(wǎng)關(guān)》](),我們通過Ngrok為IPFS節(jié)點配置HTTP Tunnels,充分利用了其NAT穿越的特性,成功搭建了屬于自己的資源網(wǎng)關(guān),為他人提供IPFS節(jié)點服務(wù)。但是這僅僅是一個雛形,缺陷還很多,這篇文章來講解對資源網(wǎng)關(guān)的種種優(yōu)化和配置。
二、意義之前一些朋友問到了這件事的意義,這邊簡單梳理了一下,我認為對于 IPFS這塊的開發(fā)者 ,需要 部署私有集群的DevOps ,以及未來想 組建Filecoin礦場的礦工 ,這件事情都相對比較必要,具體如下:
2.1 IPFS資源網(wǎng)關(guān)的意義:1. 目前主流瀏覽器還未全面支持 ipfs:// 協(xié)議,需要安裝專門的客戶端/插件 2. 沒有安裝IPFS Desktop,也可以通過HTTP方式與IPFS網(wǎng)絡(luò)產(chǎn)生交互來獲取IPFS 網(wǎng)絡(luò)的內(nèi)部資源。2.2 自維護的意義: 2.2.1?ipfs.io?默認網(wǎng)關(guān)存在DNS污染現(xiàn)象:
ipfs.io?IP解析所在的物理位置位于美國 ThePlanet機房:
在國內(nèi),對ipfs.io的ping請求被解析為31.13.72.34?IP,
此IP所在物理地址為:愛爾蘭Fackbook分公司,
ipfs.io存在DNS污染現(xiàn)象。
2.2.2 默認的Bootstrap都是指向官方提供的節(jié)點:DigitalOcean 云計算中心如果需要構(gòu)造自己的IPFS私有網(wǎng)絡(luò),需要為本地的私有節(jié)點添加反向代理。
2.2.3 增強網(wǎng)關(guān)訪問安全性,將資源服務(wù)與代理服務(wù)用防火墻隔開 2.2.4. 官方提供的 Public Gateway 穩(wěn)定性感人兩個月前的:
最近看了一下:
三、優(yōu)化與進階 3.1 個性公網(wǎng)域名+IPNS掛載上傳Hash為 QmdzsNmvKiKQve8z15gamNo5s31g9bTWhzBg9SKG1YKTow 的IPFS資源,并掛載到本地NodeID為QmeUGXG4K4hbNPbKDUycmNsWrU3nDN69LLgHkWU2yUN6FZ的IPNS上,如下圖所示:
開放網(wǎng)關(guān),進行效果對比測試:
監(jiān)控NAT請求效果:
一次個性公網(wǎng)域名(需要在Ngrok付費申請)+ IPNS掛載就完成了。
多節(jié)點 IPNS 更換的方案
這邊也介紹下多節(jié)點 IPNS 更換的方案,方便一些朋友更新網(wǎng)關(guān)資源的同時也可以保證對外的IPNS一致性:
1.節(jié)點A創(chuàng)建新公鑰:
ipfs key gen --type = rsa --size=2048 mykey
2.記錄生成在.ipfs/keystore中的公鑰mykey
3.發(fā)布IPFS資源A,得到hashA,掛載A節(jié)點,生成IPNS HashA:
ipfs name publish --key=mykey hashA
4.將節(jié)點A創(chuàng)建的公鑰mykey 復(fù)制到節(jié)點 B 的keystore目錄
5.在節(jié)點B,發(fā)布IPFS資源B,獲得hashB,掛載B節(jié)點,得到IPNS HashB,這個值和IPNS HashA一致:
ipfs name publish --key=mykey hashB3.2 網(wǎng)關(guān)資源優(yōu)化 (緩存/帶寬優(yōu)化等) 3.2.1 針對同IPFS網(wǎng)絡(luò)資源請求方:
設(shè)計了一種緩存自啟動方案,解決存儲和請求過程中的資源復(fù)用消耗:
3.2.2 針對外部HTTP網(wǎng)絡(luò)資源請求方:設(shè)計了一種防作弊,解決過多帶寬資源消耗的方案:
這塊一定注意區(qū)分兩個場景概念:
同IPFS網(wǎng)絡(luò)請求場景?是指兩個節(jié)點共同運行,暴露公共網(wǎng)關(guān)的同時,通過HTTP進行對等連接訪問。
外部HTTP網(wǎng)絡(luò)請求場景?是通過NAT的形式將本地IPFS節(jié)點存儲的資源暴露在公網(wǎng)下,供各個應(yīng)用方、設(shè)備方進行HTTP訪問,這里的IPFS節(jié)點角色相當(dāng)于一個中心存儲服務(wù)了,不具備P2P特性。
優(yōu)化方案按照不同場景有不同策略,之前很多朋友搞不清楚(確實,也容易混淆)。
3.3 自動化控制資源的分享權(quán)限有時候針對我們自己構(gòu)建的私有IPFS網(wǎng)絡(luò),需要將資源外放,但是 外放需要策略來進行自動化控制(集成在業(yè)務(wù)環(huán)境里)。
3.3.1 舉個很簡單的場景實例我編寫的業(yè)務(wù)應(yīng)用需要 接收到特定以太坊智能合約的轉(zhuǎn)賬回調(diào)函數(shù) ,來 自動開啟對應(yīng)智能合約中IPFS資源外放的開關(guān);
(eg:只有當(dāng)買家遵守以太坊的智能合約支付了一定數(shù)量的ETH或者其他ERC2.0代幣后,才能解鎖獲取到我存儲在IPFS網(wǎng)路中的自拍照)
但這個IPFS網(wǎng)絡(luò)往往很多時候是我自己部署的私有集群(不會搭建私有網(wǎng)絡(luò)的朋友可以參考董哥的:IPFS指南: 私有網(wǎng)絡(luò)(private network)的搭建與使用&version=12010210&nettype=WIFI&lang=zh_CN&fontScale=100&pass_ticket=NmuiS2Nc%2FNmgwj%2B%2F39iElLKMAzjZvNYZkUgnmPXgJe4SGTwjQcd8WFU5Fb9Onlqs)),默認對外是不提供公共的尋址網(wǎng)關(guān)的,我該如何控制?
3.3.2 資源分享權(quán)限實現(xiàn)這邊我們可以充分利用Ngrok的Client Restful API來對NAT進行自動化收放,從而實現(xiàn)整個業(yè)務(wù)場景下的程序化控制:
3.3.3 Ngrok的Client Restful API?Postman測試 四、IPFS資源網(wǎng)關(guān)應(yīng)用面配合 微服務(wù)架構(gòu)的后端系統(tǒng) 提供服務(wù)
將IPFS私有網(wǎng)絡(luò)中的 資源靈活外放
制作自己的付費資源池(類似OSS存儲)
為前后端聯(lián)調(diào)提供API調(diào)試工具,Mock數(shù)據(jù)(需要配置專門的前端瀏覽器插件,例如:FE助手)
當(dāng)然這塊還有很多的實踐價值和我未曾想到的場景,歡迎對這塊有興趣繼續(xù)研究的朋友一起交流,聯(lián)系方式在文尾。
五、參考文獻【區(qū)塊鏈】利用ipfs構(gòu)建自己的去中心化分布式wiki系統(tǒng)
Ngrok Doc
ipfs.io
[ 【戴嘉樂】(入門)基于IPFS和Ngrok構(gòu)建自維護資源網(wǎng)關(guān)]()
圓方圓學(xué)院匯集大批區(qū)塊鏈名師,打造精品的區(qū)塊鏈技術(shù)課程。 在各大平臺都長期有優(yōu)質(zhì)免費公開課,歡迎報名收看。
公開課地址:https://ke.qq.com/course/345101? ?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/24428.html
摘要:作者簡介戴嘉樂前百度高級研發(fā)工程師應(yīng)用實踐者布道師個人網(wǎng)站聯(lián)系方式微信號。二技術(shù)介紹對這項技術(shù)不熟悉的同學(xué),可以參考我之前一次演講分享的內(nèi)容戴嘉樂詳解的本質(zhì)技術(shù)架構(gòu)以及應(yīng)用。 作者簡介:戴嘉樂( Mr.Maple ) | 前百度高級研發(fā)工程師 | IPFS應(yīng)用實踐者&布道師|個人網(wǎng)站:https://www.daijiale.cn聯(lián)系方式:微信號:daijiale6239。 一、應(yīng)用背...
摘要:戴嘉樂去年月參與了的眾籌,從而了解到技術(shù),獨立開發(fā)了兩款基于的開源應(yīng)用,一個是與有關(guān)的系統(tǒng),另一個是相關(guān)的地理位置檢索系統(tǒng)。現(xiàn)在支持的數(shù)據(jù)結(jié)構(gòu),支持比特幣以太坊的區(qū)塊數(shù)據(jù)。 戴嘉樂是前百度高級研發(fā)工程師,ipfser.org&巴比特專欄作者。戴嘉樂去年8月參與了FileCoin的眾籌,從而了解到IPFS技術(shù),獨立開發(fā)了兩款基于IPFS的開源應(yīng)用,一個是與IPFS有關(guān)的wiki系統(tǒng),另一...
摘要:全稱,中文名星際文件系統(tǒng),是一個旨在創(chuàng)建持久且分布式存儲和共享文件的網(wǎng)絡(luò)傳輸協(xié)議。在網(wǎng)絡(luò)中的節(jié)點將構(gòu)成一個分布式文件系統(tǒng)。使用稱為去中心化命名系統(tǒng),每個文件都可以被協(xié)作命名為易讀的名字。三項目實踐利用構(gòu)建一個去中心化不可篡改的分布式系統(tǒng)。 作者簡介:戴嘉樂( Mr.Maple ) | 前百度高級研發(fā)工程師 | IPFS應(yīng)用實踐者&布道師|個人網(wǎng)站:https://www.daijial...
摘要:數(shù)據(jù)將具有如下個特點將二維的經(jīng)緯度轉(zhuǎn)換成字符串,比如下圖展示了北京個區(qū)域的字符串,分別是,等等,每一個字符串代表了某一矩形區(qū)域。例如,坐標(biāo)對,位于北京安定門附近,后形成的值為。 作者簡介:戴嘉樂( Mr.Maple ) | 前百度高級研發(fā)工程師 | IPFS應(yīng)用實踐者&布道師|個人網(wǎng)站:https://www.daijiale.cn聯(lián)系方式:微信號:daijiale6239。 show...
摘要:寫在前面,這一篇文章是許曉笛在北京開發(fā)者圓桌會議上的發(fā)言實錄,感謝主辦方戴嘉樂和董天一的邀請,感謝編輯們。我這次分享題目是有可能有點標(biāo)題黨,前面拉了三個字有可能是落地的一個非常重要的途徑。共識機制共識機制,就是所有代幣持有人選舉。 寫在前面,這一篇文章是許曉笛 2018.05.20 在北京 《IPFS開發(fā)者圓桌會議》上的發(fā)言實錄,感謝主辦方戴嘉樂和董天一的邀請,感謝編輯們。先介紹一下《...
閱讀 2310·2023-04-25 14:22
閱讀 3748·2021-11-15 18:12
閱讀 1303·2019-08-30 15:44
閱讀 3224·2019-08-29 15:37
閱讀 653·2019-08-29 13:49
閱讀 3466·2019-08-26 12:11
閱讀 887·2019-08-23 18:28
閱讀 1592·2019-08-23 14:55