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