一、目標(biāo)愿景
現(xiàn)階段互聯(lián)網(wǎng)的數(shù)據(jù)交互及存儲(chǔ)協(xié)議都是基于超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP)在中心化服務(wù)器中處理完成的。這種基于客戶端和服務(wù)器的交互模式,由于數(shù)據(jù)都在中心化存儲(chǔ)系統(tǒng)中,較低的設(shè)備、網(wǎng)絡(luò)、運(yùn)維成本與高速的集中處理性能。但是隨著的互聯(lián)網(wǎng)的更新迭代,中心化存儲(chǔ)方式逐漸被分布式存儲(chǔ)取代。
中心化存儲(chǔ)數(shù)據(jù)的交互效率、成本以及安全性能制約新一代互聯(lián)網(wǎng)的發(fā)展。一是現(xiàn)階段的數(shù)據(jù)交互,每次需要從中心化的服務(wù)器下載完整的文件,大數(shù)據(jù)的存儲(chǔ)與傳輸帶寬使得中心化存儲(chǔ)成本高,傳輸速度慢,效率低。二是Web文件容易丟失,難以永久保存。據(jù)統(tǒng)計(jì)HTTP的頁(yè)面平均生存周期大約100天。三是中心化的存儲(chǔ)會(huì)受到各種管制,對(duì)互聯(lián)網(wǎng)功能完整性構(gòu)成威脅。各種突發(fā)的故障因素都可能造成互聯(lián)網(wǎng)應(yīng)用中斷服務(wù)。
星際文件系統(tǒng)(Inter-Planetary File System,IPFS)協(xié)議主要服務(wù)于數(shù)據(jù)存儲(chǔ)和文件傳輸,旨在代替?zhèn)鹘y(tǒng)的HTTP協(xié)議。IPFS網(wǎng)絡(luò)協(xié)議可以實(shí)現(xiàn)存儲(chǔ)速度更快、成本更低、安全性更高的效果。通過(guò)IPFS與區(qū)塊鏈技術(shù)的結(jié)合,能夠使數(shù)據(jù)的強(qiáng)保密、高隱私、低成本和防篡改特性相較于傳統(tǒng)中心化存儲(chǔ)會(huì)更加完善,IPFS將會(huì)帶來(lái)一個(gè)新的互聯(lián)網(wǎng)時(shí)代。
二、解決方案
1、IPFS技術(shù)架構(gòu)
IPFS為了實(shí)現(xiàn)存儲(chǔ)更快、成本更低、安全更高的特性,采用了分塊,傳輸和隱私保護(hù)等多種技術(shù)。IPFS的技術(shù)架構(gòu)主要分為以下8個(gè)技術(shù)層次。
圖1 IPFS協(xié)議的技術(shù)架構(gòu)
身份層:IPFS存儲(chǔ)網(wǎng)絡(luò)中存儲(chǔ)節(jié)點(diǎn)的身份信息通過(guò)身份層功能生成的,給加入DHT網(wǎng)絡(luò)的用戶分配身份信息,通過(guò)分配的身份參加IPFS存儲(chǔ)網(wǎng)絡(luò)工作。
網(wǎng)絡(luò)層:網(wǎng)絡(luò)層是IPFS信息傳輸?shù)幕A(chǔ),通過(guò)Libp2p協(xié)議棧支持任意傳輸層協(xié)議的功能,以此構(gòu)建了P2P鏈接的基石。
路由層:通過(guò)利用DHTS、MDNS、DNS等協(xié)議,完成存儲(chǔ)內(nèi)容的查找以及路由的查找。
交換層:IPFS存儲(chǔ)網(wǎng)絡(luò)中重要的交換協(xié)議,實(shí)現(xiàn)節(jié)點(diǎn)之間數(shù)據(jù)塊的交換。IPFS利用了BitTorrent協(xié)議為基礎(chǔ)構(gòu)建符合IPFS分布式存儲(chǔ)的交換協(xié)議。
對(duì)象層:完成IPFS存儲(chǔ)網(wǎng)絡(luò)上的數(shù)據(jù)結(jié)構(gòu)構(gòu)建,利用MerkleDag結(jié)構(gòu),通過(guò)路徑持續(xù)分叉的結(jié)構(gòu),快速、精準(zhǔn)地找到目標(biāo)數(shù)據(jù),為內(nèi)容尋址和去重提供了便利。
文件層:記錄存儲(chǔ)對(duì)象在不同版本中的各種特定的快照,保留出兩個(gè)對(duì)象文件的區(qū)別。
命名層:證明文件的自我驗(yàn)證。即驗(yàn)證所用的公鑰是否與節(jié)點(diǎn)身份匹配,并加入IPNS使得加密后的DAG對(duì)象名可與節(jié)點(diǎn)綁定,把可變的內(nèi)容固定在相對(duì)固定的節(jié)點(diǎn)身份。
應(yīng)用層:應(yīng)用層也是IPFS的核心層,應(yīng)用層實(shí)現(xiàn)網(wǎng)絡(luò)加速,數(shù)據(jù)價(jià)值化和經(jīng)濟(jì)價(jià)值,加快分布式存儲(chǔ)網(wǎng)絡(luò)生態(tài)的發(fā)展。
2、IPFS關(guān)鍵技術(shù)
IPFS通過(guò)分布式版本控制系統(tǒng),可以記錄之前任何一個(gè)文件版本,支持?jǐn)?shù)據(jù)恢復(fù)。IPFS系統(tǒng)通過(guò)Git控制存儲(chǔ)文件版本的迭代,Git控制系統(tǒng)不僅存儲(chǔ)最新版本的文件,還把歷史文件版本都完整地存儲(chǔ)下來(lái)。系統(tǒng)中任何一處協(xié)同存儲(chǔ)的服務(wù)器發(fā)生故障,都可以用任何一個(gè)本地存儲(chǔ)數(shù)據(jù)進(jìn)行恢復(fù)。
IPFS采用分布式哈希列表DHT快速查詢數(shù)據(jù),具有離散性、伸縮性和良好的容錯(cuò)性。DHT是一種分布式哈希表,通過(guò)存儲(chǔ)的鍵值對(duì)提供查詢服務(wù)。鍵值對(duì)存儲(chǔ)在DHT中,鍵值對(duì)的映射由網(wǎng)絡(luò)中所有的節(jié)點(diǎn)維護(hù)。在不需要服務(wù)器的情況下,每個(gè)節(jié)點(diǎn)負(fù)責(zé)部分路由和數(shù)據(jù)存儲(chǔ),從而實(shí)現(xiàn)整個(gè)DHT網(wǎng)絡(luò)的尋址和存儲(chǔ)。
IPNS文件域名系統(tǒng)依據(jù)文件名搜索文件時(shí)只需查詢文件名,而不受文件內(nèi)容變更的影響。IPFS中文件的哈希值完全取決于文件內(nèi)容,每次更新文件后都需更新引用的哈希值。為了能夠在更改文件內(nèi)容時(shí)保證原鏈接的有效性,IPFS團(tuán)隊(duì)采用星際域名系統(tǒng)IPNS。IPNS是一個(gè)去中心化的命名系統(tǒng),通過(guò)指針地址安全地指向可變內(nèi)容,資源塊都可以被命名為易讀的名字,通過(guò)搜索名字就可以找到文件。
三、項(xiàng)目歷程
2014年5月起,IPFS創(chuàng)始人胡安·貝內(nèi)特發(fā)起IPFS項(xiàng)目,成立了協(xié)議實(shí)驗(yàn)室。
2015年1月, 協(xié)議實(shí)驗(yàn)室向全球發(fā)布IPFS。
2017年,IPFS團(tuán)隊(duì)宣布成立Filecion項(xiàng)目,在同年8月得到華爾街風(fēng)投機(jī)構(gòu)2.57億美元的募資。
2018年5月,第一屆IPFS大會(huì)召開,用戶能夠在自己的移動(dòng)設(shè)備上運(yùn)行個(gè)人IPFS,實(shí)現(xiàn)了真正的去中心化存儲(chǔ)。
2019年2月份,F(xiàn)ilecion生態(tài)語(yǔ)言代碼正式開放,進(jìn)一步助力IPFS的發(fā)展。
2020年10月15日,F(xiàn)ilecion在全球六百多家交易所正式上線。
四、思考評(píng)論
1、IPFS的優(yōu)勢(shì)
IPFS誕生之初,就是為了解決HTTP協(xié)議的中心化問(wèn)題,不斷迭代發(fā)展至今,IPFS已經(jīng)展現(xiàn)了諸多優(yōu)勢(shì)。
IPFS利用文件分片機(jī)制,改善互聯(lián)網(wǎng)應(yīng)用的數(shù)據(jù)存儲(chǔ)成本。用戶上傳的大型文件在經(jīng)過(guò)IPFS存儲(chǔ)時(shí),通過(guò)DHT既可以有效降低相同資源冗余程度,也可以將大型文件分塊多地存儲(chǔ),降低硬件存儲(chǔ)的要求;通過(guò)特殊的路由機(jī)制就近獲取資源,降低數(shù)據(jù)傳輸時(shí)間,緩解主網(wǎng)的帶寬壓力,節(jié)約海量用戶在文件傳輸時(shí)所產(chǎn)生的帶寬成本。
IPFS通過(guò)鏈下分布式存儲(chǔ)解決區(qū)塊鏈鏈上數(shù)據(jù)存儲(chǔ)空間問(wèn)題。目前大部分公有鏈的問(wèn)題是沒(méi)法將大量的數(shù)據(jù)存儲(chǔ)在鏈上。運(yùn)用IPFS存儲(chǔ)網(wǎng)絡(luò),將打包好的區(qū)塊數(shù)據(jù)通過(guò)異構(gòu)處理,并轉(zhuǎn)換成便于內(nèi)容尋址的數(shù)據(jù)結(jié)構(gòu)類型,掛載到IPFS存儲(chǔ)網(wǎng)絡(luò)上,可以讓IPFS存儲(chǔ)網(wǎng)絡(luò)承擔(dān)存儲(chǔ)和P2P檢索功能,而不消耗區(qū)塊鏈系統(tǒng)本身太多的計(jì)算資源。
IPFS借助就近檢索模式提供快速便捷的分布式緩存方案。IPFS可以將數(shù)據(jù)通過(guò)算法轉(zhuǎn)化成一維字符串,將與之相關(guān)聯(lián)的常用檢索數(shù)據(jù)存入IPFS存儲(chǔ)網(wǎng)絡(luò)并分布在各個(gè)鄰近節(jié)點(diǎn)上。檢索時(shí),系統(tǒng)優(yōu)先通過(guò)字符串近似度范圍比較,縮小檢索范圍,加快檢索效率,緩解骨干網(wǎng)的通信壓力,達(dá)到分布式緩存的效果。
2、IPFS的挑戰(zhàn)
作為一種新型的分布式存儲(chǔ)技術(shù),目前依舊存在一些問(wèn)題限制了IPFS技術(shù)的發(fā)展與普及。
IPFS的文件分片對(duì)系統(tǒng)的吞吐性能有很高的要求。IPFS需要將文件分片、復(fù)制、多節(jié)點(diǎn)冗余保存,在調(diào)取存儲(chǔ)數(shù)據(jù)時(shí),需要查詢大量文件分片,對(duì)系統(tǒng)數(shù)據(jù)吞吐性能要求很高。另外,對(duì)于大型數(shù)據(jù),大量的文件分片使得內(nèi)容尋址的哈希表也會(huì)很大,尋址時(shí)間也會(huì)增加。因此,現(xiàn)有的分布式存儲(chǔ)系統(tǒng)的吞吐效率是首要考慮的問(wèn)題。
IPFS缺乏獎(jiǎng)懲機(jī)制使得存儲(chǔ)用戶承擔(dān)較高的服務(wù)質(zhì)量風(fēng)險(xiǎn)。IPFS只負(fù)責(zé)監(jiān)控參與節(jié)點(diǎn)的工作完成情況并予以激勵(lì),但是無(wú)法避免惡意節(jié)點(diǎn)對(duì)存儲(chǔ)內(nèi)容的攻擊,因此存儲(chǔ)安全的保障需要由應(yīng)用層通過(guò)獎(jiǎng)懲措施來(lái)解決。存儲(chǔ)節(jié)點(diǎn)通過(guò)預(yù)質(zhì)押保證金以支撐其信用保障,只有當(dāng)越來(lái)越多的用戶愿意選擇收費(fèi)更高的網(wǎng)絡(luò)節(jié)點(diǎn)時(shí),去中心化存儲(chǔ)系統(tǒng)的整體效率才能提升,服務(wù)質(zhì)量才更有保障。
作者:程彤彤,中國(guó)信息通信研究院工業(yè)互聯(lián)網(wǎng)與物聯(lián)網(wǎng)研究所技術(shù)部工程師
主要從事工業(yè)互聯(lián)網(wǎng)、標(biāo)識(shí)解析、區(qū)塊鏈存儲(chǔ)等領(lǐng)域研究和產(chǎn)業(yè)推進(jìn)工作。
聯(lián)系方式:chengtongtong@caict.ac.cn
風(fēng)險(xiǎn)提示:本站所提供的資訊不代表任何投資暗示。投資有風(fēng)險(xiǎn),入市須謹(jǐn)慎。