本申請涉及計算機,特別是涉及一種區塊鏈共識方法、裝置、計算機設備、存儲介質和計算機程序產品。
背景技術:
1、區塊鏈是一種新型去中心化分布式賬本技術,能安全地存儲交易或其他數據,特點是存儲在區塊鏈上的信息不可偽造和篡改,區塊鏈共識算法驅動區塊鏈上的每個節點都參與到交易的驗證過程中,保證區塊鏈上交易都是經過確認可信的。共識算法是一個區塊鏈系統的核心,共識算法的目的是節點間就區塊達成一致,不出現分叉的情況。
2、然而,目前的區塊鏈共識方式中,由于網絡或節點宕機或重啟等原因,導致區塊鏈網絡中部分節點宕機或者異常,在這種情況下,傳統的區塊鏈共識流程中會輪詢的選取異常節點成為主節點,但是異常節點是無法生成提案的,因此,當異常節點成為主節點時,其它節點需要等待一段時間才能超時投空票,然后再切換下一個節點成為主節點,這樣雖然保證了共識流程的繼續運行,但是區塊鏈的性能非常低,進而導致整個區塊鏈的共識效率較低。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種區塊鏈共識方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產品,能夠有效提高區塊鏈的共識效率,同時又可以提高整個區塊鏈的處理性能。
2、第一方面,本申請提供了一種區塊鏈共識方法。所述方法包括:確定區塊鏈中待共識區塊的區塊高度;基于所述區塊高度和預設區塊高度閾值,確定偏移量;基于所述偏移量、所述待共識區塊的共識輪次數和所述區塊鏈中的節點數量,確定所述待共識區塊的主節點索引值;當所述待共識區塊的主節點索引值與本地節點的索引值相同時,將所述待共識區塊的提案消息廣播至所述區塊鏈中的其他節點,以使所述其他節點基于所述提案消息中的交易任務對所述待共識區塊進行共識。
3、第二方面,本申請還提供了一種區塊鏈共識裝置。所述裝置包括:確定模塊,用于確定區塊鏈中待共識區塊的區塊高度;基于所述區塊高度和預設區塊高度閾值,確定偏移量;基于所述偏移量、所述待共識區塊的共識輪次數和所述區塊鏈中的節點數量,確定所述待共識區塊的主節點索引值;廣播模塊,用于當所述待共識區塊的主節點索引值與本地節點的索引值相同時,將所述待共識區塊的提案消息廣播至所述區塊鏈中的其他節點,以使所述其他節點基于所述提案消息中的交易任務對所述待共識區塊進行共識。
4、第三方面,本申請還提供了一種計算機設備。所述計算機設備包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執行所述計算機程序時實現以下步驟:確定區塊鏈中待共識區塊的區塊高度;基于所述區塊高度和預設區塊高度閾值,確定偏移量;基于所述偏移量、所述待共識區塊的共識輪次數和所述區塊鏈中的節點數量,確定所述待共識區塊的主節點索引值;當所述待共識區塊的主節點索引值與本地節點的索引值相同時,將所述待共識區塊的提案消息廣播至所述區塊鏈中的其他節點,以使所述其他節點基于所述提案消息中的交易任務對所述待共識區塊進行共識。
5、第四方面,本申請還提供了一種計算機可讀存儲介質。所述計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現以下步驟:確定區塊鏈中待共識區塊的區塊高度;基于所述區塊高度和預設區塊高度閾值,確定偏移量;基于所述偏移量、所述待共識區塊的共識輪次數和所述區塊鏈中的節點數量,確定所述待共識區塊的主節點索引值;當所述待共識區塊的主節點索引值與本地節點的索引值相同時,將所述待共識區塊的提案消息廣播至所述區塊鏈中的其他節點,以使所述其他節點基于所述提案消息中的交易任務對所述待共識區塊進行共識。
6、第五方面,本申請還提供了一種計算機程序產品。所述計算機程序產品,包括計算機程序,該計算機程序被處理器執行時實現以下步驟:確定區塊鏈中待共識區塊的區塊高度;基于所述區塊高度和預設區塊高度閾值,確定偏移量;基于所述偏移量、所述待共識區塊的共識輪次數和所述區塊鏈中的節點數量,確定所述待共識區塊的主節點索引值;當所述待共識區塊的主節點索引值與本地節點的索引值相同時,將所述待共識區塊的提案消息廣播至所述區塊鏈中的其他節點,以使所述其他節點基于所述提案消息中的交易任務對所述待共識區塊進行共識。
7、上述區塊鏈共識方法、裝置、計算機設備、存儲介質和計算機程序產品,通過確定區塊鏈中待共識區塊的區塊高度,并基于區塊高度和預設區塊高度閾值,確定偏移量;基于偏移量、待共識區塊的共識輪次數和區塊鏈中的節點數量,確定待共識區塊的主節點索引值;當待共識區塊的主節點索引值與本地節點的索引值相同時,將待共識區塊的提案消息廣播至區塊鏈中的其他節點,以使其他節點基于提案消息中的交易任務對待共識區塊進行共識。由于偏移量是根據待共識區塊的區塊高度和預設區塊高度閾值這個兩個參數共同來確定的,故基于偏移量、待共識區塊的共識輪次數和區塊鏈中的節點數量所確定的待共識區塊的主節點索引值更加符合區塊鏈共識流程的特性,能夠提高每個節點連續成為主節點的次數,在面對區塊鏈中存在異常節點的情況下,極大的提升了區塊鏈共識的處理性能,進而有效提高了整個區塊鏈的共識效率。
1.一種區塊鏈共識方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述確定區塊鏈中待共識區塊的區塊高度之前,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述基于所述共識節點集合中的各節點的節點標識,確定各所述節點的索引值,包括:
4.根據權利要求1所述的方法,其特征在于,所述確定區塊鏈中待共識區塊的區塊高度,包括:
5.根據權利要求4所述的方法,其特征在于,所述方法還包括:
6.根據權利要求5所述的方法,其特征在于,所述基于所述區塊高度和預設區塊高度閾值,確定參考值,包括
7.根據權利要求5所述的方法,其特征在于,所述基于所述第一主節點索引值確定所述偏移量,包括:
8.根據權利要求1所述的方法,其特征在于,所述基于所述區塊高度和預設區塊高度閾值,確定偏移量之后,所述方法還包括:
9.根據權利要求1所述的方法,其特征在于,所述確定所述待共識區塊的主節點索引值之后,所述方法還包括:
10.根據權利要求1所述的方法,其特征在于,所述將所述待共識區塊的提案消息廣播至所述區塊鏈中的其他節點之前,所述方法還包括:
11.根據權利要求10所述的方法,其特征在于,所述確定自身維護的交易過期樹中的過期交易任務,包括:
12.一種區塊鏈共識裝置,其特征在于,所述裝置包括:
13.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至11中任一項所述的方法的步驟。
14.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至11中任一項所述的方法的步驟。
15.一種計算機程序產品,包括計算機程序,其特征在于,該計算機程序被處理器執行時實現權利要求1至11中任一項所述的方法的步驟。