BUMO正式提出了大規(guī)模數(shù)據(jù)的差異化分布式存儲(chǔ)體系Trailer
目前,區(qū)塊鏈應(yīng)用已經(jīng)不僅局限于資產(chǎn)轉(zhuǎn)賬、信息追溯等領(lǐng)域,新型商業(yè)化應(yīng)用不斷涌現(xiàn),視頻、圖片、醫(yī)療信息等大體量數(shù)據(jù)也越來(lái)越多地需要存儲(chǔ)于區(qū)塊鏈中。大規(guī)模分布式數(shù)據(jù)的存儲(chǔ)和管理需求,使得區(qū)塊鏈數(shù)據(jù)處理的時(shí)間和空間消耗問(wèn)題越來(lái)越突出。因此,BUMO在數(shù)據(jù)存儲(chǔ)設(shè)計(jì)中充分考慮到上述挑戰(zhàn),提出了大規(guī)模數(shù)據(jù)的差異化分布式存儲(chǔ)體系Trailer。
Trailer首先對(duì)數(shù)據(jù)進(jìn)行差異化分類(lèi)處理,根據(jù)數(shù)據(jù)特點(diǎn)將其分為鏈上數(shù)據(jù)和鏈下數(shù)據(jù)。鏈上數(shù)據(jù)指實(shí)時(shí)存儲(chǔ)于區(qū)塊鏈節(jié)點(diǎn)的數(shù)據(jù),比如賬戶、交易、區(qū)塊頭等基礎(chǔ)鏈數(shù)據(jù)等;鏈下數(shù)據(jù)指不需實(shí)時(shí)存儲(chǔ)于區(qū)塊鏈節(jié)點(diǎn)的數(shù)據(jù),比如存在性證明所需的歷史視頻數(shù)據(jù)等。但是,鏈下數(shù)據(jù)需要進(jìn)行鏈上數(shù)據(jù)錨定,即將數(shù)據(jù)哈希值作為鏈上數(shù)據(jù)存儲(chǔ)。其次,針對(duì)鏈上數(shù)據(jù)和鏈下數(shù)據(jù)的不同特點(diǎn),選擇不同的存儲(chǔ)引擎,并進(jìn)行接口封裝和成本計(jì)算,滿足大規(guī)模數(shù)據(jù)差異化存儲(chǔ)需求的同時(shí),具有較高的用戶友好性。
1. 數(shù)據(jù)差異化定義
鏈上數(shù)據(jù)指實(shí)時(shí)存儲(chǔ)于區(qū)塊鏈節(jié)點(diǎn)的數(shù)據(jù),區(qū)塊鏈節(jié)點(diǎn)具備對(duì)鏈上數(shù)據(jù)的全拷貝能力,是能形成區(qū)塊有效性證明的最小單元數(shù)據(jù)集合,典型數(shù)據(jù)如下:
●鏈基礎(chǔ)數(shù)據(jù): 比如賬戶、交易、區(qū)塊頭等直接數(shù)據(jù),賬戶樹(shù)、交易樹(shù)及區(qū)塊生成證明等區(qū)塊有效性證明數(shù)據(jù),以及供用戶數(shù)據(jù)查詢必要的索引數(shù)據(jù)等;
●智能合約及 合約操作數(shù)據(jù):智能合約的圖靈完備腳本及其依賴數(shù)據(jù)均需要在鏈上存儲(chǔ),以保證其可執(zhí)行和去中心化特性,隨時(shí)提供智能合約訪問(wèn)能力;
●資產(chǎn)類(lèi)數(shù)據(jù): 這類(lèi)數(shù)據(jù)存儲(chǔ)需求量小,但對(duì)安全性要求極高,鏈上存儲(chǔ)可以在提供充分冗余存儲(chǔ)的同時(shí)提供安全的計(jì)算環(huán)境;
●簡(jiǎn)短靜態(tài)數(shù)據(jù): 比如交易備注等通常數(shù)據(jù)量很小的數(shù)據(jù)。
鏈下數(shù)據(jù)指無(wú)需實(shí)時(shí)存儲(chǔ)于區(qū)塊鏈節(jié)點(diǎn)的數(shù)據(jù),通常是使用頻率較低、存儲(chǔ)體量相對(duì)較大的數(shù)據(jù)集合,比如存在性證明所需的歷史視頻數(shù)據(jù)等。鏈下數(shù)據(jù)通常需要進(jìn)行鏈上數(shù)據(jù)錨定,即將數(shù)據(jù)哈希值、數(shù)據(jù)索引|等作為鏈上數(shù)據(jù)存儲(chǔ)。典型數(shù)據(jù)如下:
●大體量數(shù)據(jù): 該類(lèi)數(shù)據(jù)特點(diǎn)是所需的存儲(chǔ)空間大,比如視頻、圖片、志、地理位置等數(shù)據(jù);
●區(qū)塊歷史數(shù)據(jù):使用頻率低,戶無(wú)需實(shí)時(shí)查詢,鏈下數(shù)據(jù)可作為備份手段;
●保密性要求較高數(shù)據(jù): 比如個(gè)人身份信息,醫(yī)療數(shù)據(jù)等,鏈下數(shù)據(jù)脫敏存儲(chǔ),只在驗(yàn)證請(qǐng)求或授權(quán)請(qǐng)求時(shí)提供原始數(shù)據(jù)證明。
2. 數(shù)據(jù)分類(lèi)篩選
數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)圖
存儲(chǔ)適配器模塊負(fù)責(zé)篩選、甄別鏈上數(shù)據(jù)和鏈下數(shù)據(jù),并分別進(jìn)行存儲(chǔ)操作。一般而言,區(qū)塊鏈網(wǎng)絡(luò)中的參與節(jié)點(diǎn)均會(huì)選擇使用鏈上存儲(chǔ),而鏈下存儲(chǔ)的選擇則與用戶應(yīng)用方式緊密相關(guān)。鏈下存儲(chǔ)按照數(shù)據(jù)存儲(chǔ)的開(kāi)放程度,可分為私有存儲(chǔ)和共享存儲(chǔ)兩類(lèi)。鏈下私有存儲(chǔ)指用戶搭建并進(jìn)行運(yùn)維的存儲(chǔ)系統(tǒng),具有前期投入大、運(yùn)維成本高的特點(diǎn);鏈下共享存儲(chǔ)指無(wú)需用戶自身投入建設(shè),通過(guò)付費(fèi)等方式獲取的共享存儲(chǔ)系統(tǒng)。存儲(chǔ)適配器模塊的主要作用如下:
●接口封裝:將復(fù)雜的內(nèi)部存儲(chǔ)功能封 裝為少量簡(jiǎn)單易用的用戶服務(wù)接口;
●數(shù)據(jù)分類(lèi): 對(duì)鏈上數(shù)據(jù)及鏈下數(shù)據(jù)進(jìn)行分類(lèi),如需進(jìn)行鏈下數(shù)據(jù)存儲(chǔ),需進(jìn)一步選擇鏈下共享存儲(chǔ)或者鏈下私有存儲(chǔ)。在鏈下數(shù)據(jù)存儲(chǔ)前,需先將待存儲(chǔ)數(shù)據(jù)進(jìn)行哈希運(yùn)算,進(jìn)而將哈希值作為鏈上數(shù)據(jù)進(jìn)行存儲(chǔ)操作;
●成本計(jì)算: 支持對(duì)鏈上數(shù)據(jù)存儲(chǔ)所需的成本(比如Gas值), 以及共享存儲(chǔ)需支付的費(fèi)用等進(jìn)行綜合計(jì)算,提供給用戶作為成本參考。
3. 鏈上數(shù)據(jù)存儲(chǔ)實(shí)現(xiàn)
針對(duì)鏈上數(shù)據(jù)存儲(chǔ)需求,BUMO基于TiDB技術(shù)構(gòu)建了專用的分布式存儲(chǔ)引擎數(shù)據(jù)庫(kù)ChainDB。TIDB 是受Google Spanner/ F1論文啟發(fā)而設(shè)計(jì)的開(kāi)源分布式HTAP (Hybrid TransacTIonal and AnalyTIcal Processing)數(shù)據(jù)庫(kù)。ChainDB 具備如下能力:
●水平彈性擴(kuò) 展:通過(guò)簡(jiǎn)單配置即可實(shí)現(xiàn)新節(jié)點(diǎn)添加并且能在不停止終端業(yè)務(wù)的前提下,動(dòng)態(tài)添加存儲(chǔ)節(jié)點(diǎn),提高整體的數(shù)據(jù)存儲(chǔ)能力;
●高可用性: 數(shù)據(jù)存儲(chǔ)引擎可在保證大多數(shù)副本不丟失的前提下實(shí)現(xiàn)故障的自動(dòng)恢復(fù);
●分布式事務(wù): 采用優(yōu)化后的Percolator模型支持分布式事務(wù),同時(shí)使用樂(lè)觀鎖技術(shù),在事務(wù)執(zhí)行過(guò)程中不會(huì)檢測(cè)寫(xiě)沖突,只在提交過(guò)程中進(jìn)行沖突檢測(cè),沖突雙方中較早完成提交的一方會(huì)率先寫(xiě)入成功,另一方會(huì)嘗試重新執(zhí)行整個(gè)事務(wù),具備高效的事務(wù)處理能力。
4. 鏈下數(shù)據(jù)存儲(chǔ)實(shí)現(xiàn)
BUMO結(jié)合IPFS等現(xiàn)有分布式存儲(chǔ)技術(shù),有效滿足鏈下數(shù)據(jù)存儲(chǔ)需求。不同于鏈上數(shù)據(jù)的相對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)存儲(chǔ)方案,IPFS 等存儲(chǔ)體系是永久、去中心化保存和共享文件的技術(shù),是內(nèi)容可尋址、版本化、點(diǎn)對(duì)點(diǎn)超媒體的分布式存儲(chǔ)協(xié)議,基于該類(lèi)技術(shù)構(gòu)建的鏈下數(shù)據(jù)存儲(chǔ)弓|擎具備如下能力:
●降低存儲(chǔ)空間: 通過(guò)對(duì)文件生成唯一哈希 值的方式標(biāo)識(shí)文件,取代傳統(tǒng)的通過(guò)文件位置標(biāo)識(shí)文件的方式,有效降低存儲(chǔ)空間;
●提高存儲(chǔ)多樣性: 支持更多業(yè)務(wù)數(shù)據(jù)類(lèi)型及大體星數(shù)據(jù)的存儲(chǔ)(視頻、照片、日志地理位置) ;
●降低硬件成本: 支持水平擴(kuò)展,對(duì)存儲(chǔ)節(jié)點(diǎn)的硬件要求較低;
●多種部署形式: 在提供共享服務(wù)能力的同時(shí),也可以利用該技術(shù)進(jìn)行私有化部署;
●易于擴(kuò) 展維護(hù):滿足代碼開(kāi)源、版本可追溯等開(kāi)源特征。