[發明專利]數據庫升級方法、狀態數據查詢方法、設備和存儲介質有效
| 申請號: | 202010631490.0 | 申請日: | 2020-07-03 |
| 公開(公告)號: | CN111796845B | 公開(公告)日: | 2022-05-24 |
| 發明(設計)人: | 柳宇航;王志文;吳思進 | 申請(專利權)人: | 杭州復雜美科技有限公司 |
| 主分類號: | G06F8/65 | 分類號: | G06F8/65;G06F8/71;G06F16/22 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 310000 浙江省杭州市西湖*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據庫 升級 方法 狀態 數據 查詢 設備 存儲 介質 | ||
本發明提供一種數據庫升級方法、狀態數據查詢方法、設備和存儲介質,該方法包括:獲取數據庫更新信息;保留數據庫所有版本的執行程序,并生成數據庫更新后版本的執行程序;依次對數據庫中各待更新區塊執行:在數據庫待更新區塊的第一區塊高度小于更新高度時,查詢前一個區塊的第一新狀態哈希;生成第二舊狀態哈希、第二新狀態哈希、第一狀態數據;在第一區塊高度等于更新高度時,查詢前一個區塊的第一新狀態哈希;生成第二新狀態哈希、第一狀態數據、第二舊狀態哈希與第二新狀態哈希的對應關系;在第一區塊高度大于更新高度時,生成第二新狀態哈希和第一狀態數據的方法更新狀態數據庫。本申請保障狀態數據一致。
技術領域
本申請涉及區塊鏈技術領域,具體涉及一種數據庫升級方法、狀態數據查詢方法、設備和存儲介質。
背景技術
當前區塊鏈系統中絕大多數區塊鏈是賬戶模型,所用到的狀態數據存儲使用的數據結構一般包括默克爾樹(Merkle Tree)、默克爾平衡二叉樹(MAVL)、Merkle PatriciaTries(MPT)樹等。狀態數據庫對區塊鏈的狀態數據(如賬戶余額等)進行存儲,隨著區塊鏈的運行狀態數據將會越來越多,狀態數據庫由于性能不足等原因需要進行升級;
改善狀態數據結構可以緩解狀態數據庫性能不足的缺陷,改善狀態數據結構后,將生成新的執行程序;假設區塊鏈中其它節點都已使用新的執行程序生成狀態數據,節點A使用舊的執行程序生成狀態數據,將產生節點A與其它節點所生成的狀態數據后不一致的問題。
發明內容
鑒于現有技術中的上述缺陷或不足,期望提供一種更新狀態數據庫的數據庫升級方法、狀態數據查詢方法、設備和存儲介質。
第一方面,本發明提供一種適用于區塊鏈節點的數據庫升級方法,上述方法包括:
獲取數據庫更新信息;其中,數據庫更新信息包括數據庫的更新高度;
保留數據庫所有版本的執行程序,并生成數據庫更新后版本的第一執行程序;
依次對數據庫中各待更新區塊執行以下步驟:
判斷數據庫待更新區塊的第一區塊高度是否小于更新高度:
是,則根據待更新區塊的前一個區塊的第一舊狀態哈希查詢前一個區塊的第一新狀態哈希;以及,
根據待更新區塊的第一區塊數據、第一舊狀態哈希、待更新區塊的原始版本的第二執行程序生成第二舊狀態哈希,根據第一區塊數據、第一新狀態哈希、第一執行程序生成第二新狀態哈希和第一狀態數據;以及,
生成第二舊狀態哈希與第二新狀態哈希的對應關系;
否,則判斷第一區塊高度是否等于更新高度:
是,則根據待更新區塊的前一個區塊的第一舊狀態哈希查詢前一個區塊的第一新狀態哈希;以及,
根據待更新區塊的第一區塊數據、第一新狀態哈希、第一執行程序生成第二新狀態哈希和第一狀態數據;以及,
否,則根據待更新區塊的第一區塊數據、待更新區塊的前一個區塊的狀態哈希、第一執行程序生成第二新狀態哈希和第一狀態數據。
第二方面,本發明提供一種適用于區塊鏈節點的狀態數據查詢方法,上述方法包括:
接收狀態數據查詢請求信息,根據狀態數據查詢請求信息查找到根據第一方面的數據庫升級方法升級數據庫后所存儲的第一狀態數據并返回。
第三方面,本發明還提供一種設備,包括一個或多個處理器和存儲器,其中存儲器包含可由該一個或多個處理器執行的指令以使得該一個或多個處理器執行根據本發明各實施例提供的數據庫升級方法、狀態數據查詢方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州復雜美科技有限公司,未經杭州復雜美科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010631490.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:私鑰生成方法、設備和存儲介質
- 下一篇:數據裁剪方法、設備和存儲介質





