[發明專利]一種基于半節點的區塊鏈賬本同步方法及裝置在審
| 申請號: | 202110725554.8 | 申請日: | 2021-06-29 |
| 公開(公告)號: | CN113434599A | 公開(公告)日: | 2021-09-24 |
| 發明(設計)人: | 劉彥;胡智;袁暢;石志國;章敏 | 申請(專利權)人: | 北京市大數據中心;北京科技大學 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;G06F21/64 |
| 代理公司: | 北京市廣友專利事務所有限責任公司 11237 | 代理人: | 張仲波 |
| 地址: | 101117 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 節點 區塊 賬本 同步 方法 裝置 | ||
1.一種基于半節點的區塊鏈賬本同步方法,其特征在于,所述方法包括:
S1、創建半節點并完成所述半節點的部署,初始化所述半節點,并創建所述半節點的最初存儲空間,設定初始最大存儲空間;
S2、尋找最佳節點,所述最佳節點為與所述半節點臨近的全節點;
S3、從所述最佳節點向所述半節點同步全部的區塊頭數據;
S4、驗證同步的區塊頭數據是否正確,如果驗證所述區塊頭數據的內容正確,則將所述區塊頭數據存儲在所述半節點的本地賬本中;
S5、計算所述本地賬本中已保存的區塊頭所用的總空間,計算初始區塊體的可用空間,所述初始區塊體的可用空間為所述初始最大存儲空間與所述區塊頭所用的總空間的差值;
S6、根據任一區塊的區塊號、所述初始區塊體的可用空間、隨機數、當前總區塊數、平均區塊體占用內存大小、同時同步的區塊數量,判斷是否同步所述區塊號對應的區塊體數據;
S7、如果判斷同步所述區塊號對應的區塊體數據,則驗證同步的區塊體數據是否正確,如果驗證正確,則將所述區塊體數據同步到所述本地賬本中;
S8、重復執行S6-S7,直到判斷所有區塊的區塊體數據是否同步后,完成區塊鏈賬本同步操作。
2.根據權利要求1所述的方法,其特征在于,所述驗證同步的區塊頭數據是否正確之后,所述方法還包括:
如果驗證所述區塊頭數據的內容不正確,則拋棄從所述最佳節點同步的區塊頭數據,向其他節點發起最佳節點驗證請求;
當接收到其他節點的最佳節點驗證回復消息時,跳轉執行S3。
3.根據權利要求1所述的方法,其特征在于,所述計算所述本地賬本中已保存的區塊頭所用的總空間,計算初始區塊體的可用空間,包括:
根據下述公式(1)計算初始區塊體的可用空間:
M=Msum-Mheader……(1)
其中,M表示初始區塊體的可用空間,Msum表示初始最大存儲空間,Mheader表示所述本地賬本中已保存的區塊頭所用的總空間。
4.根據權利要求3所述的方法,其特征在于,所述根據任一區塊的區塊號、所述初始區塊體的可用空間、隨機數、當前總區塊數、平均區塊體占用內存大小、同時同步的區塊數量,判斷是否同步所述區塊號對應的區塊體數據,包括:
計算下述不等式(2)是否成立:
其中,
其中,lrandom為0-1均勻分布的隨機數,n為目前總區塊數,i為判斷的區塊號,a為平均區塊體占用內存大小,u為同時同步的區塊數量;
如果上述不等式(2)成立,則判斷同步所述區塊號對應的區塊體數據;
如果上述不等式(2)不成立,則判斷不同步所述區塊號對應的區塊體數據。
5.根據權利要求4所述的方法,其特征在于,所述同步所述區塊號對應的區塊體數據,包括:
同步區塊號為imin+u×(imin-1)到i0+u×imin-1的區塊體數據,其中,imin為所有區塊號中的最小值。
6.根據權利要求1所述的方法,其特征在于,所述驗證同步的區塊體數據是否正確之后,還包括:
如果驗證不正確,則拋棄從所述最佳節點同步的區塊頭數據以及區塊體數據,向其他節點發起最佳節點驗證請求;
當接收到其他節點的最佳節點驗證回復消息時,跳轉執行S3。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京市大數據中心;北京科技大學,未經北京市大數據中心;北京科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110725554.8/1.html,轉載請聲明來源鉆瓜專利網。





