[發明專利]DBFT共識網絡中數據同步的方法、計算機可讀存儲介質和DBFT共識網絡有效
| 申請號: | 202010417916.2 | 申請日: | 2020-05-18 |
| 公開(公告)號: | CN111708833B | 公開(公告)日: | 2023-06-06 |
| 發明(設計)人: | 杜曉楠 | 申請(專利權)人: | 杜曉楠 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27 |
| 代理公司: | 深圳市順天達專利商標代理有限公司 44217 | 代理人: | 鄒秋菊 |
| 地址: | 新加坡大牌233碧山2*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | dbft 共識 網絡 數據 同步 方法 計算機 可讀 存儲 介質 | ||
1.一種DBFT共識中數據同步的方法,其特征在于,包括以下步驟:
在新DBFT節點加入DBFT網絡時進入新高度狀態,在所述新高度狀態中,如果在所述DBFT網絡中有超過2/3的DBFT節點的區塊高度大于所述新DBFT節點的區塊高度,所述新DBFT節點暫停DBFT共識并從其他DBFT節點下載區塊;
新高度狀態結束之后進入議案狀態,在所述議案狀態中,主DBFT節點發起議案,全部DBFT節點廣播新視圖消息,所述新視圖消息包括所述DBFT節點的區塊高度和視圖號,每個DBFT節點接收并存儲其余DBFT節點的高度和視圖,并在所述DBFT網絡中有超過2/3的DBFT節點的區塊高度大于自己的區塊高度時暫停DBFT共識并從其他DBFT節點下載區塊;
議案狀態結束之后進入投票狀態,在所述投票狀態中,DBFT節點對所述議案進行投票并廣播自己的投票且接收其他DBFT節點的投票;
投票狀態結束之后進入預承諾狀態,在所述預承諾狀態中,統計所述投票并給出預承諾投票,并基于預承諾投票結果進入承諾狀態或者返回議案狀態;
在承諾狀態中,根據所述預承諾結果做出承諾;
所述承諾狀態結束之后進入結束狀態,在所述結束狀態中,將最終區塊落盤并廣播新高度消息,所述新高度消息包括當前DBFT節點的區塊高度;
在所述結束狀態結束之后返回所述新高度狀態;每個DBFT節點在接收到所述新視圖消息之后,執行以下步驟:
當發現所述新視圖消息中的DBFT節點的區塊高度大于自己的區塊高度,則緩存所述區塊高度,如果緩存之后發現超過2/3的DBFT節點的區塊高度大于自己的區塊高度,所述DBFT節點暫停DBFT共識并從其他DBFT節點下載區塊以同步區塊,且在同步完成之后進入所述新高度狀態;
當發現所述新視圖消息中的DBFT節點的區塊高度等于自己的區塊高度,則判斷當前狀態是否是非承諾狀態或非結束狀態,如果是則更新所述新視圖消息的視圖號,并且重新進入議案狀態。
2.根據權利要求1所述的DBFT共識中數據同步的方法,其特征在于,DBFT節點在接收到所述新高度消息之后,緩存所述新高度消息;當緩存之后發現超過2/3的DBFT節點的區塊高度大于當前區塊高度,所述DBFT節點暫停DBFT共識并從其他DBFT節點下載區塊以同步區塊,且在同步完成之后進入所述新高度狀態。
3.根據權利要求2所述的DBFT共識中數據同步的方法,其特征在于,在所述預承諾狀態中,DBFT節點在其接收到的所述投票狀態中投出的贊成票超過2/3時投出預承諾贊成票否則將投出預承諾反對票,并收集其余DBFT節點的預承諾投票;
當預承諾狀態結束時,如果收到的預承諾贊成票沒有超過2/3則重新進入所述議案狀態,否則進入承諾狀態。
4.根據權利要求3所述的DBFT共識中數據同步的方法,其特征在于,在所述承諾狀態中,如果預承諾狀態中投出的預承諾贊成票超過2/3,廣播承諾贊成票給其余DBFT節點。
5.根據權利要求4所述的DBFT共識中數據同步的方法,其特征在于,一旦進入任何狀態,開啟所述狀態的定時器,所述定時器超時,進入下一狀態。
6.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述程序被處理器執行時實現根據權利要求1-5中任意一項權利要求所述的DBFT共識中數據同步的方法。
7.一種DBFT共識網絡,包括多個DBFT節點,所述DBFT節點上存儲有計算機程序,其特征在于,所述程序被處理器執行時實現根據權利要求1-5中任意一項權利要求所述的DBFT共識中數據同步的方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杜曉楠,未經杜曉楠許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010417916.2/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





