[發明專利]一種區塊鏈系統快速同步及簡精數據存儲的方式有效
| 申請號: | 201811376874.1 | 申請日: | 2018-11-19 |
| 公開(公告)號: | CN109542979B | 公開(公告)日: | 2023-08-22 |
| 發明(設計)人: | 張勁松;朱倍儀 | 申請(專利權)人: | 北京市密網信息科技有限公司 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;G06Q20/40 |
| 代理公司: | 成都魚爪智云知識產權代理有限公司 51308 | 代理人: | 何濤 |
| 地址: | 100000 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 區塊 系統 快速 同步 數據 存儲 方式 | ||
本發明提供了一種區塊鏈系統快速同步及簡精數據存儲的方式,在區塊鏈系統的區塊頭數據結構中增加了一個賬本哈希,代表了完整帳本的哈希摘要。在區塊鏈系統的同步過程中,先同步所有的區塊頭,從最新的一個區塊頭中得到賬本哈希,然后根據賬本哈希,從網絡中同步對應的一個完整的帳本,減少區塊體數據的同步,一方面大大減少區塊鏈系統中完整節點的同步時間和存儲空間需求,另一方面在區塊鏈系統的節點運行過程中,可以隨時將老的區塊數據刪除,從而減少在運行過程中對存儲空間的需求。
技術領域
本發明涉及區塊鏈技術、塊鏈式存儲技術領域,具體是一種區塊鏈系統快速同步及簡精數據存儲的方式。
背景技術
目前,對于區塊鏈系統來說,對區塊數據的完整同步是一個緩慢,需要大量帶寬和存儲空間的過程。對于一個完整節點來說,需要同步從區塊鏈系統上線以來,到目前為止所有的區塊頭數據和區塊數據。系統運行時間越長,交易數越多,需要同步的數據量越大。
這種同步的方式,會讓整個節點需要同步和存儲的數據越來越大,隨著系統運行時間越長,需要同步的數據越多。最終會導致普通的網絡帶寬和存儲空間令普通的計算機無法承受的地步。
發明內容
本發明的目的在于提供一種區塊鏈系統快速同步及簡精數據存儲的方式,以解決現有技術中的問題。
為實現上述目的,本發明提供如下技術方案:
一種區塊鏈系統快速同步及簡精數據存儲的方法,其區塊鏈系統包括一個區塊鏈數據結構,區塊鏈數據結構分為若干區塊頭和區塊體,區塊頭包括單元有本地賬本哈希和上一個區塊頭的哈希值,所述區塊鏈數據結構同步的下一個區塊為所述區塊鏈數據結構的子區塊,其方法步驟為:
A1:在區塊鏈數據結構的區塊頭增加一個本地賬本哈希,本地賬本哈希指代的是一個完整本地賬本的所有數據;
A2:當本地節點生成新的子區塊0~n時,區塊鏈系統通過點對點網絡先同步子區塊0~n的區塊頭數據,然后從最新的第n個區塊頭中,得到最新的本地賬本的哈希值;
A3:區塊鏈系統再根據最新的賬本哈希,通過網絡同步最新的本地賬本;
A4:當本地帳本同步完之后,區塊鏈系統無需再同步第0~n個區塊體,直接同步第(n+1)塊區塊頭和區塊體的數據。
進一步的,當需要計算的帳本數據較大時,將原帳本數據拆分成若干個子帳本,步驟(A2)中區塊鏈系統計算出的哈希值是由若干子帳本的數據統一計算出來的,也可以是若干個子帳本的Merkel根,本地賬本哈希為若干個子賬本統計算出來的哈希值。所述Merkle樹是將區塊數據分組進行散列函數運算,將新的散列值放回,再重新拿出2個數據進行運算,一直遞歸下去,直到剩下唯一的“Merkle根”,Merkle樹具有良好的擴展性,不管交易數據怎么樣,都可以生成一顆Merkle樹;查找算法的時間復雜度很低,從底層溯源查找到Merkle根部來驗證一筆交易是否存在或合法,時間復雜度為lbN,極大降低運行時的資源占用;使輕節點成為可能,輕節點不用保存全部的區塊鏈數據,僅需要保存包含Merkle根的塊頭,就可以驗證交易的合法性。
進一步的,區塊頭還包括的單元為版本、時間戳、難度值、隨機數和Merkel根,所述版本主要是4字節,標示軟件及協議的相關版本信息,所述時間戳時間戳是4字節,記錄該區塊產生的時間,精確到秒;所述難度值也是4字節,指該區塊相關數學題的難度目標值,所述Merkle根是32字節,是由區塊主體中所有交易的哈希值再逐級兩兩哈希計算出來的一個數值,主要用于檢驗一筆交易是否在這個區塊中存在。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京市密網信息科技有限公司,未經北京市密網信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811376874.1/2.html,轉載請聲明來源鉆瓜專利網。





