本公開的實施例涉及計算機,具體涉及區(qū)塊鏈共識方法和裝置。
背景技術(shù):
1、區(qū)塊鏈系統(tǒng)與傳統(tǒng)的分布式系統(tǒng)相似,都存在著傳輸時延、損壞、丟失、篡改等問題,另外,區(qū)塊鏈去中心化的特性會讓網(wǎng)絡(luò)中的節(jié)點因信任問題存在惡意篡改節(jié)點數(shù)據(jù)的情況。如果區(qū)塊鏈系統(tǒng)中的惡意節(jié)點非法篡改記賬區(qū)塊的交易信息,通過他驗證節(jié)點驗證,這時就會檢測出打包的數(shù)據(jù)存在問題,這種惡意行為產(chǎn)生的影響就是當(dāng)前一個區(qū)塊記賬的信息被回退,會損失整個區(qū)塊的交易信息。所以,一個能高效率檢測惡意節(jié)點,并高效率剔除惡意節(jié)點的共識算法是非常重要的。
技術(shù)實現(xiàn)思路
1、本公開的實施例提出了區(qū)塊鏈共識方法和裝置。
2、第一方面,本公開的實施例提供了一種區(qū)塊鏈共識方法,包括:對區(qū)塊鏈中參與共識的節(jié)點進(jìn)行分組;在每個分組內(nèi)分別投票選舉出初級記賬節(jié)點,并組成初級記賬節(jié)點集合;從所述初級記賬節(jié)點集合中投票選舉出記賬節(jié)點。
3、在一些實施例中,從所述初級記賬節(jié)點集合中投票選舉出記賬節(jié)點,包括:統(tǒng)計初級記賬節(jié)點收到的反對票數(shù)量;解除反對票數(shù)量大于預(yù)定閾值的初級記賬節(jié)點的記賬權(quán)。
4、在一些實施例中,該方法還包括:在區(qū)塊鏈中廣播以下至少一種節(jié)點狀態(tài):良好狀態(tài)、正常狀態(tài)、惡意狀態(tài);以及從所述初級記賬節(jié)點集合中投票選舉出記賬節(jié)點,包括:查詢初級記賬節(jié)點的節(jié)點狀態(tài),其中,所述節(jié)點狀態(tài)根據(jù)節(jié)點的信譽值調(diào)整;根據(jù)節(jié)點狀態(tài)從所述初級記賬節(jié)點集合中投票選舉出記賬節(jié)點。
5、在一些實施例中,該方法還包括:根據(jù)投票選舉結(jié)果更新節(jié)點的信譽值;響應(yīng)于檢測到更新后的節(jié)點的信譽值達(dá)到狀態(tài)變更閾值,轉(zhuǎn)換更新后的節(jié)點的節(jié)點狀態(tài)。
6、在一些實施例中,該方法還包括:響應(yīng)于檢測到更新后的節(jié)點的信譽值超過預(yù)定重置閾值,將更新后的節(jié)點的信譽值重置為初始值。
7、在一些實施例中,該方法還包括:根據(jù)初級記賬節(jié)點的信譽值設(shè)定支持票數(shù)量的權(quán)重和反對票數(shù)量的權(quán)重;計算初級記賬節(jié)點的支持票數(shù)量、反對票數(shù)量和信譽值的加權(quán)和作為初級記賬節(jié)點的投票得分,其中,支持票數(shù)量的權(quán)重為正數(shù),反對票數(shù)量的權(quán)重為負(fù)數(shù),支持票數(shù)量的權(quán)重與反對票數(shù)量的權(quán)重之差為第一固定正數(shù)值,信譽值越高則支持票數(shù)量的權(quán)重越大,信譽值的權(quán)重為第二固定正數(shù)值;按投票得分由高到低的順序選擇預(yù)定數(shù)目的初級記賬節(jié)點作為記賬節(jié)點。
8、在一些實施例中,根據(jù)投票選舉結(jié)果更新節(jié)點的信譽值,包括:對給良好狀態(tài)的初級記賬節(jié)點投支持票的節(jié)點或者給惡意狀態(tài)的初級記賬節(jié)點投反對票的節(jié)點增加信譽值;對于棄票或不在線時長達(dá)到預(yù)定超時閾值的節(jié)點降低信譽值。
9、在一些實施例中,該方法還包括:從所述初級記賬節(jié)點集合中按支持票數(shù)量由高到低的順序選出預(yù)定數(shù)目的備用記賬節(jié)點。
10、第二方面,本公開的實施例提供了一種區(qū)塊鏈共識裝置,包括:分組單元,被配置成對區(qū)塊鏈中參與共識的節(jié)點進(jìn)行分組;第一選舉單元,被配置成在每個分組內(nèi)分別投票選舉出初級記賬節(jié)點,并組成初級記賬節(jié)點集合;第二選舉單元,被配置成從所述初級記賬節(jié)點集合中投票選舉出記賬節(jié)點。
11、在一些實施例中,第二選舉單元進(jìn)一步被配置成:統(tǒng)計初級記賬節(jié)點收到的反對票數(shù)量;解除反對票數(shù)量大于預(yù)定閾值的初級記賬節(jié)點的記賬權(quán)。
12、在一些實施例中,該裝置還包括廣播單元,被配置成:在區(qū)塊鏈中廣播以下至少一種節(jié)點狀態(tài):良好狀態(tài)、正常狀態(tài)、惡意狀態(tài);以及第二選舉單元進(jìn)一步被配置成:查詢初級記賬節(jié)點的節(jié)點狀態(tài),其中,所述節(jié)點狀態(tài)根據(jù)節(jié)點的信譽值調(diào)整;根據(jù)節(jié)點狀態(tài)從所述初級記賬節(jié)點集合中投票選舉出記賬節(jié)點。
13、在一些實施例中,該裝置還包括更新單元,被配置成:根據(jù)投票選舉結(jié)果更新節(jié)點的信譽值;響應(yīng)于檢測到更新后的節(jié)點的信譽值達(dá)到狀態(tài)變更閾值,轉(zhuǎn)換更新后的節(jié)點的節(jié)點狀態(tài)。
14、在一些實施例中,該裝置還包括重置單元,被配置成:響應(yīng)于檢測到更新后的節(jié)點的信譽值超過預(yù)定重置閾值,將更新后的節(jié)點的信譽值重置為初始值。
15、在一些實施例中,第二選舉單元進(jìn)一步被配置成:根據(jù)初級記賬節(jié)點的信譽值設(shè)定支持票數(shù)量的權(quán)重和反對票數(shù)量的權(quán)重;計算初級記賬節(jié)點的支持票數(shù)量、反對票數(shù)量和信譽值的加權(quán)和作為初級記賬節(jié)點的投票得分,其中,支持票數(shù)量的權(quán)重為正數(shù),反對票數(shù)量的權(quán)重為負(fù)數(shù),支持票數(shù)量的權(quán)重與反對票數(shù)量的權(quán)重之差為第一固定正數(shù)值,信譽值越高則支持票數(shù)量的權(quán)重越大,信譽值的權(quán)重為第二固定正數(shù)值;按投票得分由高到低的順序選擇預(yù)定數(shù)目的初級記賬節(jié)點作為記賬節(jié)點。
16、在一些實施例中,更新單元進(jìn)一步被配置成包括:對給良好狀態(tài)的初級記賬節(jié)點投支持票的節(jié)點或者給惡意狀態(tài)的初級記賬節(jié)點投反對票的節(jié)點增加信譽值;對于棄票或不在線時長達(dá)到預(yù)定超時閾值的節(jié)點降低信譽值。
17、在一些實施例中,該裝置還包括備用單元,被配置成:從所述初級記賬節(jié)點集合中按支持票數(shù)量由高到低的順序選出預(yù)定數(shù)目的備用記賬節(jié)點。
18、第三方面,本公開的實施例提供了一種電子設(shè)備,包括:一個或多個處理器;存儲裝置,其上存儲有一個或多個計算機程序,當(dāng)所述一個或多個計算機程序被所述一個或多個處理器執(zhí)行,使得所述一個或多個處理器實現(xiàn)如第一方面或第二方面中任一項所述的方法。
19、第四方面,本公開的實施例提供了一種計算機可讀介質(zhì),其上存儲有計算機程序,其中,所述計算機程序被處理器執(zhí)行時實現(xiàn)如第一方面或第二方面中任一項所述的方法。
20、第五方面,本公開的實施例提供了一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序在被處理器執(zhí)行時實現(xiàn)如第一方面或第二方面中任一項所述的方法。
21、本公開的實施例提供的區(qū)塊鏈共識方法和裝置,在現(xiàn)有的共識機制的基礎(chǔ)上進(jìn)行了改進(jìn),將記賬節(jié)點的選舉過程分為兩階段選舉。第一個階段的記賬節(jié)點選舉,首先根據(jù)網(wǎng)絡(luò)中實際的參與節(jié)點數(shù),對網(wǎng)絡(luò)中節(jié)點進(jìn)行分組。接著在組內(nèi)采用常規(guī)的節(jié)點的選舉方式選舉出第一階段的初級記賬節(jié)點,這種分組選舉的方式可以使組與組之間的影響降至最低。通過第一階段的候選節(jié)點選舉,已經(jīng)獲得一批優(yōu)質(zhì)的初級記賬節(jié)點。在第二階段的選舉中,可以使得網(wǎng)絡(luò)中所有參與候選的節(jié)點都擁有相差不大的幾率成為記賬節(jié)點,使整個網(wǎng)絡(luò)更穩(wěn)定,安全性更高。
22、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識本公開的實施例的關(guān)鍵或重要特征,也不用于限制本公開的范圍。本公開的其它特征將通過以下的說明書而變得容易理解。
1.一種區(qū)塊鏈共識方法,包括:
2.根據(jù)權(quán)利要求1所述的方法,其中,在從所述初級記賬節(jié)點集合中投票選舉出記賬節(jié)點之前,所述方法還包括:
3.根據(jù)權(quán)利要求1所述的方法,其中,所述方法還包括:
4.根據(jù)權(quán)利要求3所述的方法,其中,所述方法還包括:
5.根據(jù)權(quán)利要求4所述的方法,其中,所述方法還包括:
6.根據(jù)權(quán)利要求3所述的方法,其中,所述根據(jù)節(jié)點狀態(tài)從所述初級記賬節(jié)點集合中投票選舉出記賬節(jié)點,包括:
7.根據(jù)權(quán)利要求4所述的方法,其中,所述根據(jù)投票選舉結(jié)果更新節(jié)點的信譽值,包括:
8.根據(jù)權(quán)利要求1所述的方法,其中,所述方法還包括:
9.一種區(qū)塊鏈共識裝置,包括:
10.一種電子設(shè)備,包括:
11.一種計算機可讀介質(zhì),其上存儲有計算機程序,其中,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1-8中任一項所述的方法。
12.一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序在被處理器執(zhí)行時實現(xiàn)根據(jù)權(quán)利要求1-8中任一項所述的方法。