本申請涉及計算機,特別是涉及一種區(qū)塊鏈共識方法、裝置、計算機設備、存儲介質和計算機程序產品。
背景技術:
1、區(qū)塊鏈是一種新型去中心化分布式賬本技術,能安全地存儲交易或其他數(shù)據(jù),特點是存儲在區(qū)塊鏈上的信息不可偽造和篡改,區(qū)塊鏈共識算法驅動區(qū)塊鏈上的每個節(jié)點都參與到交易的驗證過程中,保證區(qū)塊鏈上交易都是經(jīng)過確認可信的。共識算法是一個區(qū)塊鏈系統(tǒng)的核心,共識算法的目的是節(jié)點間就區(qū)塊達成一致,不出現(xiàn)分叉的情況。
2、然而,目前的區(qū)塊鏈共識方式中,由于節(jié)點與節(jié)點間通信是要通過網(wǎng)絡進行的,某些情況下存在網(wǎng)絡異常的情況,雖然目前的區(qū)塊鏈共識算法本身也考慮到了節(jié)點網(wǎng)絡異常的情況,但如果本輪共識輪到該網(wǎng)絡異常節(jié)點作為主節(jié)點時,該節(jié)點實際無法正常參與共識,此時對于區(qū)塊鏈中的其他節(jié)點而言,需要等待一定的超時時間,在等待一定的時間后才會輪換下一個節(jié)點作為主節(jié)點,使得在區(qū)塊鏈的整個共識過程中,其他節(jié)點雖然可以繼續(xù)進行共識,但性能卻是打折扣的,進而導致整個區(qū)塊鏈的共識效率較低。
技術實現(xiàn)思路
1、基于此,有必要針對上述技術問題,提供一種區(qū)塊鏈共識方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產品,能夠有效提高區(qū)塊鏈的共識效率,同時又可以提高整個區(qū)塊鏈的處理性能。
2、第一方面,本申請?zhí)峁┝艘环N區(qū)塊鏈共識方法。所述方法包括:獲取區(qū)塊鏈中本地節(jié)點的第一區(qū)塊高度和目標節(jié)點的第二區(qū)塊高度;當所述第二區(qū)塊高度與所述第一區(qū)塊高度之間的差值大于預設閾值時,向所述區(qū)塊鏈中滿足第一高度條件的節(jié)點發(fā)送針對待同步區(qū)塊的區(qū)塊請求;當接收針對所述區(qū)塊請求的應答消息時,對所述應答消息中的區(qū)塊頭進行驗證,并在驗證通過時,將包含所述區(qū)塊頭的區(qū)塊存儲于本地賬本,并更新所述本地節(jié)點的第一區(qū)塊高度;當更新后的所述第一區(qū)塊高度與所述第二區(qū)塊高度一致時,加入至區(qū)塊鏈共識流程。
3、第二方面,本申請還提供了一種區(qū)塊鏈共識裝置。所述裝置包括:獲取模塊,用于獲取區(qū)塊鏈中本地節(jié)點的第一區(qū)塊高度和目標節(jié)點的第二區(qū)塊高度;發(fā)送模塊,用于當所述第二區(qū)塊高度與所述第一區(qū)塊高度之間的差值大于預設閾值時,向所述區(qū)塊鏈中滿足第一高度條件的節(jié)點發(fā)送針對待同步區(qū)塊的區(qū)塊請求;更新模塊,用于當接收針對所述區(qū)塊請求的應答消息時,對所述應答消息中的區(qū)塊頭進行驗證,并在驗證通過時,將包含所述區(qū)塊頭的區(qū)塊存儲于本地賬本,并更新所述本地節(jié)點的第一區(qū)塊高度;加入模塊,用于當更新后的所述第一區(qū)塊高度與所述第二區(qū)塊高度一致時,加入至區(qū)塊鏈共識流程。
4、第三方面,本申請還提供了一種計算機設備。所述計算機設備包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)以下步驟:獲取區(qū)塊鏈中本地節(jié)點的第一區(qū)塊高度和目標節(jié)點的第二區(qū)塊高度;當所述第二區(qū)塊高度與所述第一區(qū)塊高度之間的差值大于預設閾值時,向所述區(qū)塊鏈中滿足第一高度條件的節(jié)點發(fā)送針對待同步區(qū)塊的區(qū)塊請求;當接收針對所述區(qū)塊請求的應答消息時,對所述應答消息中的區(qū)塊頭進行驗證,并在驗證通過時,將包含所述區(qū)塊頭的區(qū)塊存儲于本地賬本,并更新所述本地節(jié)點的第一區(qū)塊高度;當更新后的所述第一區(qū)塊高度與所述第二區(qū)塊高度一致時,加入至區(qū)塊鏈共識流程。
5、第四方面,本申請還提供了一種計算機可讀存儲介質。所述計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)以下步驟:獲取區(qū)塊鏈中本地節(jié)點的第一區(qū)塊高度和目標節(jié)點的第二區(qū)塊高度;當所述第二區(qū)塊高度與所述第一區(qū)塊高度之間的差值大于預設閾值時,向所述區(qū)塊鏈中滿足第一高度條件的節(jié)點發(fā)送針對待同步區(qū)塊的區(qū)塊請求;當接收針對所述區(qū)塊請求的應答消息時,對所述應答消息中的區(qū)塊頭進行驗證,并在驗證通過時,將包含所述區(qū)塊頭的區(qū)塊存儲于本地賬本,并更新所述本地節(jié)點的第一區(qū)塊高度;當更新后的所述第一區(qū)塊高度與所述第二區(qū)塊高度一致時,加入至區(qū)塊鏈共識流程。
6、第五方面,本申請還提供了一種計算機程序產品。所述計算機程序產品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)以下步驟:獲取區(qū)塊鏈中本地節(jié)點的第一區(qū)塊高度和目標節(jié)點的第二區(qū)塊高度;當所述第二區(qū)塊高度與所述第一區(qū)塊高度之間的差值大于預設閾值時,向所述區(qū)塊鏈中滿足第一高度條件的節(jié)點發(fā)送針對待同步區(qū)塊的區(qū)塊請求;當接收針對所述區(qū)塊請求的應答消息時,對所述應答消息中的區(qū)塊頭進行驗證,并在驗證通過時,將包含所述區(qū)塊頭的區(qū)塊存儲于本地賬本,并更新所述本地節(jié)點的第一區(qū)塊高度;當更新后的所述第一區(qū)塊高度與所述第二區(qū)塊高度一致時,加入至區(qū)塊鏈共識流程。
7、上述區(qū)塊鏈共識方法、裝置、計算機設備、存儲介質和計算機程序產品,通過獲取區(qū)塊鏈中本地節(jié)點的第一區(qū)塊高度和目標節(jié)點的第二區(qū)塊高度,當?shù)诙^(qū)塊高度與第一區(qū)塊高度之間的差值大于預設閾值時,向區(qū)塊鏈中滿足第一高度條件的節(jié)點發(fā)送針對待同步區(qū)塊的區(qū)塊請求;當接收針對區(qū)塊請求的應答消息時,對應答消息中的區(qū)塊頭進行驗證,并在驗證通過時,將包含區(qū)塊頭的區(qū)塊存儲于本地賬本,并更新本地節(jié)點的第一區(qū)塊高度;當更新后的第一區(qū)塊高度與第二區(qū)塊高度一致時,加入至區(qū)塊鏈共識流程。由于差值是本地節(jié)點的第一區(qū)塊高度與目標節(jié)點的第二區(qū)塊高度之間的差值,故當該差值大于預設閾值時,觸發(fā)向區(qū)塊鏈中滿足高度條件的節(jié)點發(fā)送針對待同步區(qū)塊的區(qū)塊請求,以使當接收針對該待同步區(qū)塊的應答消息時,可以快速對應答消息中的區(qū)塊頭進行驗證,并在區(qū)塊頭的驗證通過時,將包含區(qū)塊頭的區(qū)塊存儲于本地賬本,并更新本地節(jié)點的第一區(qū)塊高度,以使本地節(jié)點的第一區(qū)塊高度盡快達到指定的第二區(qū)塊高度,盡快加入至區(qū)塊鏈的共識流程中,相對于同步整個區(qū)塊的方式,區(qū)塊鏈中整體性能高了幾個數(shù)量級,可以使得節(jié)點快速參與到共識中,在有效提高區(qū)塊鏈的共識效率的同時,又可以提高整個區(qū)塊鏈的處理性能。
1.一種區(qū)塊鏈共識方法,其特征在于,所述方法包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述獲取區(qū)塊鏈中本地節(jié)點的第一區(qū)塊高度和目標節(jié)點的第二區(qū)塊高度,包括:
3.根據(jù)權利要求2所述的方法,其特征在于,所述根據(jù)預設安全性篩選條件,從各所述節(jié)點區(qū)塊高度中確定目標節(jié)點的第二區(qū)塊高度,包括:
4.根據(jù)權利要求2所述的方法,其特征在于,所述當所述第二區(qū)塊高度與所述第一區(qū)塊高度之間的差值大于預設閾值時,向所述區(qū)塊鏈中滿足第一高度條件的節(jié)點發(fā)送針對待共識區(qū)塊的區(qū)塊請求,包括:
5.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權利要求5所述的方法,其特征在于,所述向所述區(qū)塊鏈中滿足第一高度條件的節(jié)點發(fā)送包含所述獲取交易集合字段和所述推送交易字段的區(qū)塊請求之后,所述方法還包括:
7.根據(jù)權利要求1所述的方法,其特征在于,所述獲取區(qū)塊鏈中本地節(jié)點的第一區(qū)塊高度和目標節(jié)點的第二區(qū)塊高度之后,所述方法還包括:
8.根據(jù)權利要求7所述的方法,其特征在于,所述基于所述第一區(qū)塊高度確定待共識區(qū)塊的區(qū)塊高度之后,所述方法還包括:
9.根據(jù)權利要求1所述的方法,其特征在于,所述獲取區(qū)塊鏈中本地節(jié)點的第一區(qū)塊高度和目標節(jié)點的第二區(qū)塊高度之后,所述方法還包括:
10.根據(jù)權利要求1所述的方法,其特征在于,所述對所述應答消息中的區(qū)塊頭進行驗證,包括:
11.根據(jù)權利要求1至10任一項所述的方法,其特征在于,所述加入至區(qū)塊鏈共識流程,包括:
12.一種區(qū)塊鏈共識裝置,其特征在于,所述裝置包括:
13.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)權利要求1至11中任一項所述的方法的步驟。
14.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)權利要求1至11中任一項所述的方法的步驟。
15.一種計算機程序產品,包括計算機程序,其特征在于,該計算機程序被處理器執(zhí)行時實現(xiàn)權利要求1至11中任一項所述的方法的步驟。