[發明專利]一種支持時間范圍和屬性范圍復合查詢的區塊鏈索引方法有效
| 申請號: | 201811366991.X | 申請日: | 2018-11-16 |
| 公開(公告)號: | CN109471905B | 公開(公告)日: | 2020-08-25 |
| 發明(設計)人: | 邵奇峰;朱燕超;張召 | 申請(專利權)人: | 華東師范大學 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;G06F16/22;G06F16/24 |
| 代理公司: | 上海藍迪專利商標事務所(普通合伙) 31215 | 代理人: | 徐筱梅;張翔 |
| 地址: | 200241 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 支持 時間 范圍 屬性 復合 查詢 區塊 索引 方法 | ||
1.一種支持時間范圍和屬性范圍復合查詢的區塊鏈索引方法,其特征在于,包括基于區塊序號及區塊創建時間的B+樹索引和基于交易屬性的層次索引;所述基于區塊序號及區塊創建時間的B+樹索引實現了基于區塊序號或交易時間到區塊存儲地址的快速查詢;所述基于交易屬性的層次索引實現了基于交易屬性到交易存儲地址的快速查詢;具體包括以下步驟:
步驟1:構建基于區塊序號及區塊創建時間的B+樹索引,其包括步驟A1-步驟A3:
步驟A1:采集新的區塊數據,分別提取4個參數:區塊序號/區塊高度、區塊創建時間、區塊所在的區塊鏈文件名和區塊位于區塊鏈文件中的地址偏移量;
步驟A2:新建B+樹結點,結點中鍵的格式為“blockNum, timestamp”,其中blockNum為區塊序號,timestamp為區塊創建時間;結點中指針的格式為“blockfile_offset”,其中blockfile為區塊所在的區塊鏈文件名,offset為區塊位于區塊鏈文件中的地址偏移量;分別填入步驟A1采集的4個參數;
步驟A3:基于新結點中鍵的blockNum部分,并依照B+樹結點插入算法插入該新結點至B+樹,以持續更新整顆B+樹索引;
步驟2:構建基于交易屬性的層次索引,其包括步驟B1-步驟B3:
步驟B1:采集新的區塊數據,提取新區塊的所有交易中索引所需的屬性值及相應交易的存儲地址;
步驟B2:基于新的交易屬性值,更新第1層位圖索引,該索引依據交易屬性確定了包含指定交易屬性值的每個交易所在的區塊;
步驟B3:基于新的交易屬性值,更新第2層B+樹索引,該索引為每個區塊單獨構建,其依據交易屬性確定了被查詢交易的存儲地址。
2.如權利要求1所述的區塊鏈索引方法,其特征在于,所述步驟B2中第1層位圖索引的更新包括如下步驟:
步驟B21:基于新區塊中的交易屬性值采樣并維護位圖索引所需的等深直方圖的平衡,直方圖的每個桶代表了交易屬性其中的一個取值范圍,所有桶所代表的互不相交的取值范圍合在一起,即覆蓋了該屬性的所有取值;
步驟B22:追加表達新區塊中交易屬性取值范圍的位向量新行到位圖索引;位圖索引為區塊鏈中的每個新區塊分別維護一個位向量,位向量的長度等于直方圖的桶數;位向量的第i位為1時,表明該區塊含有一些交易,這些交易屬性的取值位于直方圖第i個桶對應的屬性取值范圍;第i位為0時,表明該區塊中所有交易的交易屬性取值,都不位于直方圖第i個桶對應的屬性取值范圍。
3.如權利要求1所述的區塊鏈索引方法,其特征在于,所述步驟B3中第2層B+樹索引的更新包括如下步驟:
步驟B31:針對新區塊中每個交易數據,分別提取索引所需的3個參數:交易屬性值、交易所在的區塊鏈文件名和交易位于區塊鏈文件中的地址偏移量;
步驟B32:新建B+樹結點,結點中的鍵為交易屬性;結點中的指針的格式為“blockfile_offset”,其中blockfile為交易所在的區塊鏈文件名,offset為交易位于區塊鏈文件中的地址偏移量,分別填入步驟B31所采集的3個參數;
步驟B33:基于新結點中鍵的具體取值,依照B+樹結點插入算法插入新結點至B+樹,以持續更新整顆B+樹索引。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華東師范大學,未經華東師范大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811366991.X/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種用于組織標簽的方法和系統
- 下一篇:基于區塊鏈的說明書存入取出方法及裝置





