區(qū)塊鏈上大數(shù)據(jù)、大文件該如何存儲?
這是目前困擾區(qū)塊鏈應(yīng)用落地的主要難題之一,對此業(yè)內(nèi)不少技術(shù)團(tuán)隊(duì),都在進(jìn)行各種嘗試,以期找出一種能夠?qū)⒋篌w積文件上鏈保存的妥善方法。
11月24日,在迅雷鏈技術(shù)沙龍上海站上,迅雷鏈底層研發(fā)工程師張小剛分享了迅雷鏈對此問題的解決方案,他表示,通過冗余編碼和共享計(jì)算技術(shù),能夠有效解決大數(shù)據(jù)的上鏈難題,由此掃平區(qū)塊鏈技術(shù)商用上的一大障礙。
區(qū)塊鏈存儲痛點(diǎn):價(jià)格貴,容量小
數(shù)據(jù)存儲在鏈上并不困難,目前基本所有的區(qū)塊鏈主鏈都可以實(shí)現(xiàn)數(shù)據(jù)存放。真正的問題是,數(shù)據(jù)的存儲成本極其昂貴,比如以太坊上,存放1MB數(shù)據(jù)需要花費(fèi)大約3.76ETH,即便按目前市價(jià)來算,也接近3000元。EOS上更是如此,曾有人估算,在EOS上開發(fā)一個(gè)DAPP,光購買內(nèi)存的費(fèi)用就要幾百萬元之巨。顯然,如此高的價(jià)格,在實(shí)際商用中根本無法接受。
此外,現(xiàn)有的主流區(qū)塊鏈上可保存的數(shù)據(jù)量其實(shí)并不大,這是由于傳統(tǒng)區(qū)塊鏈?zhǔn)菃螜C(jī)存儲架構(gòu),而數(shù)據(jù)存儲容量會受到單機(jī)存儲上限的限制所致。張小剛表示,截止2018年5月,比特幣的一個(gè)完整節(jié)點(diǎn)的數(shù)據(jù)存儲達(dá)到了210G,而以太坊的數(shù)據(jù)存儲達(dá)到了1T。這種水平已經(jīng)讓很多普通用戶,無法運(yùn)行一個(gè)全量的以太坊節(jié)點(diǎn)了。
如果放開商業(yè)化應(yīng)用數(shù)據(jù)上鏈,數(shù)據(jù)存儲的增長將非常迅猛,遠(yuǎn)超當(dāng)前數(shù)據(jù)體積,以目前的技術(shù)架構(gòu),基本上不可能滿足實(shí)際商用的數(shù)據(jù)上鏈需求。
成本高,容量小,成為目前區(qū)塊鏈數(shù)據(jù)存儲所面臨的主要難題,如果要實(shí)現(xiàn)商用,解決存儲問題首當(dāng)其沖。
迅雷鏈的解決方案
據(jù)張小剛介紹,迅雷鏈對數(shù)據(jù)上鏈保存的解決方案分3步。首先是打破了傳統(tǒng)區(qū)塊鏈中,所有節(jié)點(diǎn)全部保存同樣數(shù)據(jù)的做法,取而代之以新的分區(qū)模式。
迅雷鏈采用的是獨(dú)創(chuàng)的同構(gòu)多鏈架構(gòu),本身可以進(jìn)行分區(qū),且保證每個(gè)分區(qū)結(jié)構(gòu)完全相同。分區(qū)之后,將不同的分區(qū),交給不同的節(jié)點(diǎn)集群來保存,這樣單個(gè)節(jié)點(diǎn)保存的數(shù)據(jù)量就大大減小,有效降低了單節(jié)點(diǎn)的存儲壓力。
如果分區(qū)需要更高的性能或者存儲達(dá)到了閾值,則可以對分區(qū)進(jìn)行平滑擴(kuò)鏈,也就是將一個(gè)分區(qū)劃分出更多的分區(qū),這樣既提高性能又減緩存儲增長。而迅雷鏈的節(jié)點(diǎn)來自于共享計(jì)算所提供的150萬+個(gè)人節(jié)點(diǎn),如此龐大的數(shù)量足以支撐起足夠多的分區(qū)存儲需求。
其次,就是在行業(yè)內(nèi)引起重大反響的迅雷鏈文件系統(tǒng),即TCFS。用戶將文件存儲在TCFS中,TCFS會計(jì)算文件的摘要返回一個(gè)hash值,hash值進(jìn)行上鏈,從而一個(gè)大體積的文件數(shù)據(jù),也能實(shí)現(xiàn)上鏈的記錄。
另一方面TCFS要保證文件存儲的安全和可靠。它將文件經(jīng)過冗余編碼分成若干片,分別保存在不同節(jié)點(diǎn)上,讀取的時(shí)候,只要把部分切片組合到一起,就能還原出整個(gè)原文件,由此保證了即便在有節(jié)點(diǎn)不在線的情況下,僅憑其余在線節(jié)點(diǎn),也能還原出整個(gè)文件。同時(shí),任何一個(gè)單一節(jié)點(diǎn),看到的都是文件碎片,無法還原出其真實(shí)意義,保證了安全性。
此外張小剛還透露,目前迅雷鏈正在將底層的存儲升級為可插拔的插件化存儲架構(gòu),節(jié)點(diǎn)可以根據(jù)自身場景選擇不同的底層存儲架構(gòu),除了原生支持的levelDB存儲外,后續(xù)還會有新的存儲解決方案陸續(xù)支持。
通過這三步技術(shù)上的創(chuàng)新,迅雷鏈目前已能夠較為妥善地處理大數(shù)據(jù)、大文件上鏈保存這一難題。分享最后,張小剛表示,迅雷鏈對所有技術(shù)問題的解決,都是本著如何讓開發(fā)者更好、更方便地開發(fā)區(qū)塊鏈應(yīng)用為出發(fā)點(diǎn),存儲解決方案也不例外。迅雷鏈希望能夠通過對存儲技術(shù)的創(chuàng)新,讓區(qū)塊鏈開發(fā)者做出更豐富、優(yōu)秀的DAPP,并早日實(shí)現(xiàn)區(qū)塊鏈技術(shù)的商用落地。