




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
區塊鏈查詢技術優化作者:李楠來源:《電腦知識與技術》2021年第11期創世區塊前區塊1S]|ifi木莎救—KW創世區塊前區塊1S]|ifi木莎救—KW居院K小戲舫碰土小后區塊/EIFRt十點W圖2M-B+樹的結構EffH圖3節點1-5的M-B-樹的區塊存儲結構后區塊*牌.套大罕前區塊pg、創世區悅圖4基于M-IT樹的區塊鏈結構.口圖6實驗部署圖1200200$ooO806040圖7數據查詢時間3吁.".-:.'1'二'.--3圖8利用區塊號查詢時間摘要:對區塊鏈上數據查詢功能單一且查詢效率低等問題,提出一種查詢技術的優化方案,該方案對區埋鏈的Merkle樹進行了修改,結合了8+樹的結構,不僅能夠快速驗證(基于M-B+樹根hash),還可以利用B+樹的結構快速查找特定記錄。并將交易的關鍵信息和對應的區塊號等數據存入到關系數據庫MySQL中,從而支持關系查詢。實驗結果表明,基于M-B+樹的區塊鏈系統不僅查詢速度效率提升而且具有豐富的查詢手段。關鍵詞:區塊鏈;超級賬本;關系查詢;B+樹中圖分類號:TP3文獻標識碼:A文章編號:1009-3044(2021)11-0213-031引言區塊鏈技術主要是解決在分布式、不可信的場景下進行安全、可靠、不可更改的交易問題。目前研究內容涉及:系統性能分析、安全性能和共識算法研究、技術應用探索等方面,查詢技術和底層數據管理研究不多,由于區塊鏈采用鏈式結構,在查詢的業務場景中,查詢效率低、方法有限,且時間復雜度高,使區塊鏈技術應用價值被削弱。在查詢領域的研究主要有兩大方向:第一種,對結點進行區分,并且對查詢的路徑進行優化,來提升查詢效率,但是這種方法還是在區塊鏈原有的查詢方式上進行優化,對原有的區塊鏈查詢功能沒有提升;第二種,將區塊鏈和現有的數據庫連接,借助數據庫豐富的查詢功能,但是這種方法存在數據庫數據安全問題。第一種方法只是對現有的節點進行優化,在區塊鏈原有的查詢方式上進行優化,卻沒有從區塊鏈本身進行相應的提升改進,對原有的區塊鏈查詢功能應用場景和查詢手段的改進不大第二種,將區塊鏈和現有的數據庫連接,使用數據庫豐富的查詢功能,但是存在數據庫數據的安全問題,而且會使區塊鏈系統的復雜性變大,使系統的運行效率變低。為了解決區塊鏈查詢效率低,豐富查詢功能。本文提出一種新的區塊鏈查詢方法:結合B+樹和Merkle樹的各自特點,建立基于M-B+樹的區塊存儲結構,并將區塊號同步到數據庫,在進行查詢時先在數據庫中查找到相應區塊號后,然后到對應區塊查詢數據,因為數據庫只保留了區塊號,數據都在鏈上,這樣解決了數據庫數據被篡改的風險。2相關工作針對區塊鏈查詢,目前的研究如下:賈大宇等[1]在ElasticChain模型基礎上,提出一種新的高效查詢方法:ElasticQM。該框架主要在數據層建立B-M樹的區塊鏈存儲結構,提高局部查詢效率。Trent等提出了BigchainDB[2]區塊鏈數據庫,具有高吞吐量、低延遲、大容量、豐富的查詢功能和去中心化、不可篡改和能夠進行數字資產創建、傳輸的特性。北京眾享比特科技有限公司提出ChainSQL[3]技術,該技術是將數據庫的操作記錄各個節點共識之后記錄到區塊鏈上,如果共識執行失敗或不通過,數據庫執行回滾操作,這樣就實現了兼顧區塊鏈和傳統數據庫的優點。余濤等[4]提出FabricSQL方法,該方法將鏈上的有效交易同步至SQL數據庫中,借助數據庫管理系統對區塊鏈數據關系查詢。本文所提出一種區塊鏈數據關系查詢解決方案,對區塊鏈區塊結構修改,結合Merkle樹和B+樹的特點,建立M-B+區塊結構,并設計相關模塊結合數據庫,實現高效、安全的數據查詢。3區塊鏈結構設計3.1現有的區塊鏈區塊結構在現有的區塊鏈系統中,區塊主要包含區塊頭、區塊體兩大部分。區塊頭包含:版本號、時間戳、難度系數、隨機數、前區塊hash、Merkle樹根hash;區塊體包含:魔法數、區塊大小、交易數量、交易詳情大小。如圖1所示。區塊結構說明。在區塊頭中,版本號是用來標記當前區塊對應的系統版本,大小為4byte;時間戳是記錄區塊創建的時間,大小為4byte難度系數是記錄區塊鏈工作量證明的難度目標,儲存格式為難度系數的hash;隨機數是記錄區塊鏈工作量的計算參數,大小為4byte,存儲格式為hash;前區塊頭的hash是當前區塊的前一^區塊的區塊頭的hash,大小為32byte;Merkle樹根hash是當前區塊打包所有的交易記錄都是以Merkle樹的方式記錄的,記錄的是交易樹根的hash,當有新的信息存入時,該字段會重新計算更新。在區塊體中,魔法數是客戶端解析區塊數據時的識別碼,大小為4byte,是不變常量;區塊大小為4byte;交易數量,記錄上一個區塊創建之后到本區塊創建完成之間所有的交易筆數交易詳情,記錄所有交易詳情,包括收支地址、比特幣收支數量、Merkle節點值和數字簽名等,采用的數據結構是Merkle樹。區塊號,是區塊的編號,也稱區塊高度,從0開始計算,下一個區塊的為1,區塊號和區塊一一對應,可以根據區塊號快速查詢區塊的信息。3.2物流信息平臺中區塊結構設計1)M-B+樹的區塊存儲結構Merkle樹的結構設計可以保證了數據安全不被篡改,還能快速驗證數據的hash是否存在于區塊上,查找具體的信息時,根據區塊號找到相應的區塊,遍歷區塊查找相應的信息。隨著區塊鏈上的數據變多,查詢相關數據的效率越來越低。本節提出一種M-B+樹的區塊存儲結構,這種結構不僅結合了現有的Merkle樹的特點,又提高了查詢效率。基于B+樹和Merkle樹的優點,設計了M-B+樹的區塊存儲結構。節點結構如圖2。數據結構如下:Node{Nodeleft;Valuevalue;Hashhash;Noderight;}節點1-5的M-B+樹的區塊存儲結構如下:2)基于M-B+樹的區塊鏈結構基于M-B+W的區塊結構,利用該結構搭建的區塊鏈,形成一種新的區塊鏈。如圖所示,每一個區塊都存儲著M-B+樹根hash和M-B+樹根,樹的其余部分放在了區塊體中。在驗證相關數據是否存在于該區塊時只需要驗證是否和M-B+樹根hash相等就能快速得到結果。4區塊鏈查詢技術下面將開始分析傳統的區塊鏈查詢方法,然后提出一種基于M-B+樹結構的區塊鏈查詢方法。4.1現有的區塊鏈查詢方法在區塊鏈中,除了創世區塊,其他區塊都記錄了前一個區塊的hash,形成按時間順序組成的鏈。在查找數據時,從區塊號或區塊哈希來確定所在的區塊,然后找到相應的區塊后,在交易信息中找到想要的交易記錄。在交易過程中,查詢流程如下:一個SPV節點查詢交易地址,節點間的通信鏈接上建立起bloom過濾器,以Merkleblock消息的形式發送該區塊。Merkleblock消息包含區塊頭和一條連接目標交易與Merkle根的Merkle路徑,驗證交易的真實性。4.2基于M-B+樹的區塊鏈結構查詢方法針對區塊鏈查詢方面的不足,本節會將基于M-B+樹的區塊鏈和關系型數據庫MySQL結合,將新生成的區塊的區塊號、M-B+樹哈希、M-B+路徑、交易信息同步到關系型數據庫MySQL中。在關系型數據庫MySQL中,會將同步過來的區塊鏈的區塊號、M-B+樹哈希、M-B+路徑、交易信息進行判斷、同步、提取后,處理成MySQL數據庫要求的數據格式存儲。查詢方法主要分為三個主要部分:數據處理和同步模塊、外部數據庫、查詢接口。在基于M-B+樹的區塊鏈運行過程中,數據判斷和提出模塊會通過區塊鏈的數據接口,將新生成的區塊的區塊號、M-B+樹哈希、M-B+路徑、交易信息同步到關系型數據庫MySQL中。5實驗與分析本章主要是對基于M-B+樹的區塊鏈結構查詢方法進行試驗并和傳統的區塊鏈系統進行比較,并通過試驗結果證明方案可行性。5.1實驗環境本文采用HyperledgerFabric開源框架,基于M-B+樹的區塊結構搭建區塊鏈系統。實驗的硬件配置為:IntelCoreI5-7300HQ2.50GHZCPU和16GB內存的PC,操作系統為Windows10專業版。使用VMwareWorkstation12.5建立虛擬機,在虛擬機上模擬實驗的真實節點,節點的內存為1GB,硬盤為25GB的Ubuntu16.04系統。數據來自脫敏的電子交易數據集和賬戶數據集。圖6所示的實驗部署圖,為了構成P2P網絡,首先選擇一個普通結點作為初始節點,然后選擇一個超級節點和初始節點進行鏈接。普通節點只同步區塊頭,超級節點同步整個區塊的整體信息。當普通用戶獲取不在本節點的信息時,可以在超級節點上同步信息,減少普通用戶本地存儲。實驗1:在兩個系統中分別錄入相同的原始數據,然后進行一筆交易信息的查詢,利用區塊鏈上的查詢的接口,控制變量,進行多組對照實驗。觀察兩個系統的查詢時間。查詢時間如圖所示,由于單個查詢時間較短,采用1000筆重復查詢實驗然后取平均值。圖中的橫坐標是上鏈的數據量規模,分別是300M,600M和900M,縱坐標是時間值,通過實驗結果可以看出,基于M-B+樹的區塊鏈系統的查詢時間較傳統的區塊鏈系統查詢響應時間有著明顯的提升。實驗2:在兩個系統中分別錄入相同的原始數據,然后利用外接數據庫MySQL提供的查詢接口,根據相同的區塊號進行信息查詢,取區塊號10、100、150、200、250、300進行查詢,觀察查詢時間。如圖所示,利用外接數據庫提供的查詢接口,利用區塊號進行查詢實驗,通過對實驗結果進行分析,外接數據庫查詢時間相較于傳統查詢時間縮短。有些數據會緩存在服務器上,所以整體查詢時間比直接利用區塊鏈的查詢接口要快。6結束語本文研究當前的區塊鏈系統的查詢技術,發現查詢功能不完善,效率低,對區塊鏈查詢方法進行了研究和改善。傳統Fabric區塊鏈系統的查詢功能是通過文件系統和Key-value數據庫實現的,隨著區塊鏈技術的普及和廣泛應用在各行各業,系統對存儲數據的訪問方法支持不足,而且查詢功能單一、效率不高。本文針對在物流中區塊鏈查詢方面的不足,提出一種解決方案:基于M-B+樹的區塊鏈系統,該方案對區塊鏈的Merkle樹進行了修改,結合了8+樹的結構,能夠使區塊鏈系統在進行交易查詢時不僅能夠快速驗證(基于M-B+樹根hash),而且可以利用B+樹的結構快速查找特定記錄。而且基于M-B+樹的區塊鏈系統外接了MySQL數據庫,將新生成的區塊的區塊號、M-B+樹hash、M-B+路徑、交易信息同步到關系型數據庫MySQL中。利用MySQL數據庫豐富的查詢功能,能夠快速驗證和得到需要查詢的信息的區塊號,然后到區塊鏈中查找特定信息。參考文獻:賈大宇,信俊昌,王之瓊,等.存儲容量可擴展區塊鏈系統的高效查詢模型[J].軟件學報,2019,30(9):2655-2670.McConaghyT,MarquesR,MullerA,etal.BigchainDB:ascalableblockchaindatabase[J].whit
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網絡工程師自主學習試題及答案
- 深化軟件設計師考試知識點的訓練試題及答案
- 機電工程需求與供應關系試題及答案
- 智能響應性水凝膠行業跨境出海項目商業計劃書
- 模型設計行業跨境出海項目商業計劃書
- 太極養生會館行業跨境出海項目商業計劃書
- 版權糾紛解決機制企業制定與實施新質生產力項目商業計劃書
- 省域地方高校分類發展評價體系構建與應用的策略及實施路徑
- 了解企業法律責任避免高額賠償
- 教育家精神引領高質量教師隊伍建設研究
- 理論聯系實際談一談你對高質量發展的理解參考答案二
- T/CEMIA 026-2021濕電子化學品技術成熟度等級劃分及定義
- 浙江省金華市東陽市2025年七年級下學期期末數學試題及答案
- 林業法律法規試題及答案
- 江西省煙草專賣局(公司)筆試試題2024
- 期末復習題(試題)2024-2025學年六年級下冊數學人教版
- 消防用水協議書
- 2023年廣州中考政治試題及答案
- T-SCSTA001-2025《四川省好住房評價標準》
- 2025-2030全球及中國貨運保險行業市場現狀供需分析及市場深度研究發展前景及規劃可行性分析研究報告
- 《MTP管理技能提升》課件
評論
0/150
提交評論