本發(fā)明專利技術(shù)涉及一種新型分布式共識(shí)算法及分布式系統(tǒng),算法包括步驟:S1、確定網(wǎng)絡(luò)中投票節(jié)點(diǎn)總共有多少,由每個(gè)節(jié)點(diǎn)維護(hù)一個(gè)投票委員會(huì)名單;S2、一部分有提案權(quán)的節(jié)點(diǎn)將提案發(fā)給所有投票節(jié)點(diǎn);S3、投票節(jié)點(diǎn)比較各種提案,選出可以投票的提案,用自己的私鑰簽名后,發(fā)給提案節(jié)點(diǎn);S4、提案節(jié)點(diǎn)自己統(tǒng)計(jì)出自己的得票率,廣播給整個(gè)網(wǎng)絡(luò);S5、每個(gè)節(jié)點(diǎn)分別根據(jù)維護(hù)的投票節(jié)點(diǎn)數(shù)量,判斷得票率,確定是否接受這個(gè)狀態(tài)。本發(fā)明專利技術(shù)的分布式共識(shí)算法中,不需要很多點(diǎn)對(duì)點(diǎn)通訊,也不需要一個(gè)獨(dú)立的第三方計(jì)票員,由節(jié)點(diǎn)自己給自己計(jì)票,投票過程簡潔高效,可以避免像比特幣一樣經(jīng)過漫長的等待才能最終確定交易,適用于各種需要達(dá)成分布式一致的場(chǎng)景。
【技術(shù)實(shí)現(xiàn)步驟摘要】
一種新型分布式共識(shí)算法及分布式系統(tǒng)
本專利技術(shù)涉及計(jì)算機(jī)
,更具體地說,涉及一種新型分布式共識(shí)算法及分布式系統(tǒng)。
技術(shù)介紹
在分布式系統(tǒng)中,多個(gè)主機(jī)通過異步通信方式組成網(wǎng)絡(luò)集群。在這樣的一個(gè)異步系統(tǒng)中,需要主機(jī)之間進(jìn)行狀態(tài)復(fù)制,以保證每個(gè)主機(jī)達(dá)成一致的狀態(tài)共識(shí)。所謂共識(shí),簡單理解就是指大家都達(dá)成一致的意思。分布式一致性問題,簡單的說,就是在一個(gè)或多個(gè)進(jìn)程提議了一個(gè)值應(yīng)當(dāng)是什么后,使系統(tǒng)中所有進(jìn)程對(duì)這個(gè)值達(dá)成一致意見。這樣的協(xié)定問題在分布式系統(tǒng)中很常用,比如:1、領(lǐng)導(dǎo)者選舉(leaderelection):進(jìn)程對(duì)leader達(dá)成一致;2、互斥(mutualexclusion):進(jìn)程對(duì)進(jìn)入臨界區(qū)的進(jìn)程達(dá)成一致;3、原子廣播(atomicbroadcast):進(jìn)程對(duì)消息傳遞(delivery)順序達(dá)成一致。對(duì)于這些問題有一些特定的算法,但是,分布式一致性問題試圖探討這些問題的一個(gè)更一般的形式,如果能夠解決分布式一致性問題,則以上的問題都可以解決。然而,異步系統(tǒng)中,可能出現(xiàn)無法通信的故障主機(jī),而主機(jī)的性能可能下降,網(wǎng)絡(luò)可能擁塞,這些可能導(dǎo)致錯(cuò)誤信息在系統(tǒng)內(nèi)傳播。因此需要在默認(rèn)不可靠的異步網(wǎng)絡(luò)中定義容錯(cuò)協(xié)議,以確保各主機(jī)達(dá)成安全可靠的狀態(tài)共識(shí)。如果在一個(gè)不出現(xiàn)故障的系統(tǒng)中,很容易解決分布式一致性問題。但是實(shí)際分布式系統(tǒng)一般是基于消息傳遞的異步分布式系統(tǒng),進(jìn)程可能會(huì)慢、被殺死或者重啟,消息可能會(huì)延遲、丟失、重復(fù)、亂序等。在一個(gè)可能發(fā)生上述異常的分布式系統(tǒng)中如何就某個(gè)值達(dá)成一致,形成一致的決議,保證不論發(fā)生以上任何異常,都不會(huì)破壞決議的一致性,這些正是一致性算法要解決的問題。區(qū)塊鏈架構(gòu)是一種分布式的架構(gòu),其部署模式有公共鏈、聯(lián)盟鏈、私有鏈三種,對(duì)應(yīng)的是去中心化分布式系統(tǒng)、部分去中心化分布式系統(tǒng)和弱中心分布式系統(tǒng)。在區(qū)塊鏈系統(tǒng)中,每個(gè)節(jié)點(diǎn)必須要做的事情就是讓自己的賬本跟其他節(jié)點(diǎn)的賬本保持一致。在區(qū)塊鏈網(wǎng)絡(luò)中,由于應(yīng)用場(chǎng)景的不同,所設(shè)計(jì)的目標(biāo)各異,不同的區(qū)塊鏈系統(tǒng)采用了不同的共識(shí)算法。目前區(qū)塊鏈中幾種常見的共識(shí)機(jī)制有:PBFT,Raft,PoW,PoS,DPoS,Ripple。一般來說,在私有鏈和聯(lián)盟鏈情況下,對(duì)一致性、正確性有很強(qiáng)的要求,一般來說要采用強(qiáng)一致性的共識(shí)算法。而在公有鏈情況下,對(duì)一致性和正確性通常沒法做到百分之百,通常采用最終一致性(EventualConsistency)的共識(shí)算法。
技術(shù)實(shí)現(xiàn)思路
本專利技術(shù)要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種新型分布式共識(shí)算法及分布式系統(tǒng)。本專利技術(shù)解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種新型分布式共識(shí)算法,應(yīng)用于分布式網(wǎng)絡(luò),其中,包括以下步驟:S1、確定網(wǎng)絡(luò)中總共有多少個(gè)投票節(jié)點(diǎn),每個(gè)投票節(jié)點(diǎn)維護(hù)一個(gè)投票委員會(huì)名單;S2、一部分有提案權(quán)的節(jié)點(diǎn)A生成待投票的提案,并將提案發(fā)給其他所有投票節(jié)點(diǎn)B;S3、投票節(jié)點(diǎn)B比較各種提案,選出可以投票的提案,用自己的私鑰簽名后,發(fā)給提案節(jié)點(diǎn)A;S4、提案節(jié)點(diǎn)A自己統(tǒng)計(jì)出自己的得票率,將統(tǒng)計(jì)結(jié)果廣播給整個(gè)網(wǎng)絡(luò);S5、每個(gè)節(jié)點(diǎn)分別根據(jù)維護(hù)的投票節(jié)點(diǎn)數(shù)量,判斷得票率,確定是否接受這個(gè)狀態(tài)。本專利技術(shù)所述的新型分布式共識(shí)算法,其中,所述步驟S3具體包括以下步驟:網(wǎng)絡(luò)中的投票節(jié)點(diǎn)B計(jì)算接收到的多個(gè)提案的優(yōu)先級(jí),找出優(yōu)先級(jí)最高的提案;投票節(jié)點(diǎn)B用自己的私鑰對(duì)優(yōu)先級(jí)最高的提案的哈希值簽名,并將簽名結(jié)果和自己的公鑰一起發(fā)送給提案節(jié)點(diǎn)A。本專利技術(shù)所述的新型分布式共識(shí)算法,其中,所述步驟S4中,提案節(jié)點(diǎn)A自己統(tǒng)計(jì)出自己的得票率,具體包括:提案節(jié)點(diǎn)A計(jì)算對(duì)所述提案進(jìn)行簽名的投票節(jié)點(diǎn)B的數(shù)量,判斷該數(shù)量是否達(dá)到預(yù)設(shè)的數(shù)值;如果簽名的投票節(jié)點(diǎn)B數(shù)量達(dá)到預(yù)設(shè)的數(shù)值,則投票完成。本專利技術(shù)所述的新型分布式共識(shí)算法,其中,所述分布式網(wǎng)絡(luò)為區(qū)塊鏈網(wǎng)絡(luò);所述步驟S1和S2中,節(jié)點(diǎn)通過競(jìng)選的方式獲得投票權(quán)和提案權(quán)。本專利技術(shù)所述的新型分布式共識(shí)算法,其中,所述競(jìng)選包括以下步驟:節(jié)點(diǎn)對(duì)上一個(gè)區(qū)塊的哈希值加上輪次信息,再用自己的私鑰進(jìn)行加密,并將加密結(jié)果取哈希值;判斷所得到的哈希值從任意位置開始的連續(xù)0或者1的個(gè)數(shù)是否滿足設(shè)定的要求;如果滿足,則認(rèn)為當(dāng)前節(jié)點(diǎn)獲得提案資格;當(dāng)前節(jié)點(diǎn)向網(wǎng)絡(luò)中的其他節(jié)點(diǎn)發(fā)送中簽廣播。本專利技術(shù)所述的新型分布式共識(shí)算法,其中,所述步驟S3中,所述投票節(jié)點(diǎn)B計(jì)算接收到的多個(gè)提案的優(yōu)先級(jí)的方法是:對(duì)所述提案取哈希值,所得哈希值的從任意位置開始的連續(xù)0或者1的個(gè)數(shù)越多,同時(shí)所述提案區(qū)塊的輪次值更低,則優(yōu)先級(jí)越高。本專利技術(shù)還提供了一種分布式系統(tǒng),包含多個(gè)節(jié)點(diǎn),其中,采用如前面任一項(xiàng)所述的新型分布式共識(shí)算法。本專利技術(shù)的有益效果在于:該算法不需要很多點(diǎn)對(duì)點(diǎn)通訊,也不需要一個(gè)獨(dú)立的第三方計(jì)票員,由節(jié)點(diǎn)自己給自己計(jì)票,投票過程簡潔高效,可以避免像比特幣一樣經(jīng)過漫長的等待才能最終確定交易,非常適合推廣應(yīng)用于各種需要達(dá)成分布式一致的場(chǎng)景。附圖說明為了更清楚地說明本專利技術(shù)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將結(jié)合附圖及實(shí)施例對(duì)本專利技術(shù)作進(jìn)一步說明,下面描述中的附圖僅僅是本專利技術(shù)的部分實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他附圖:圖1是本專利技術(shù)較佳實(shí)施例的新型分布式共識(shí)算法流程圖一;圖2是本專利技術(shù)較佳實(shí)施例的新型分布式系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖;圖3是本專利技術(shù)較佳實(shí)施例的新型分布式共識(shí)算法流程圖二;圖4是本專利技術(shù)較佳實(shí)施例的新型分布式共識(shí)算法流程圖三。具體實(shí)施方式為了使本專利技術(shù)實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本專利技術(shù)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例是本專利技術(shù)的部分實(shí)施例,而不是全部實(shí)施例。基于本專利技術(shù)的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本專利技術(shù)的保護(hù)范圍。在本專利技術(shù)的較佳實(shí)施例中,涉及一種新型分布式共識(shí)算法,應(yīng)用于分布式網(wǎng)絡(luò),如圖1所示,包括以下步驟:S1、確定網(wǎng)絡(luò)中總共有多少個(gè)投票節(jié)點(diǎn),每個(gè)投票節(jié)點(diǎn)維護(hù)一個(gè)投票委員會(huì)名單;S2、一部分有提案權(quán)的節(jié)點(diǎn)A生成待投票的提案,并將提案發(fā)給其他所有投票節(jié)點(diǎn)B;S3、投票節(jié)點(diǎn)B比較各種提案,選出可以投票的提案,用自己的私鑰簽名后,發(fā)給提案節(jié)點(diǎn)A;S4、提案節(jié)點(diǎn)A自己統(tǒng)計(jì)出自己的得票率,將統(tǒng)計(jì)結(jié)果廣播給整個(gè)網(wǎng)絡(luò);S5、每個(gè)節(jié)點(diǎn)分別根據(jù)維護(hù)的投票節(jié)點(diǎn)數(shù)量,判斷得票率,確定是否接受這個(gè)狀態(tài)。上述網(wǎng)絡(luò)可以是任何一種分布式網(wǎng)絡(luò)系統(tǒng),網(wǎng)絡(luò)中的節(jié)點(diǎn)是其中的具有計(jì)算功能的各個(gè)終端。投票節(jié)點(diǎn)是指有投票權(quán)利的計(jì)算終端,提案節(jié)點(diǎn)是指可以進(jìn)行意見提出、生成提案數(shù)據(jù)塊或者其他可生成網(wǎng)絡(luò)所需的數(shù)據(jù)塊的計(jì)算終端。提案,可以是任意數(shù)據(jù),再用私鑰對(duì)這個(gè)哈希值簽名,就成了提案。在上述分本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種新型分布式共識(shí)算法,應(yīng)用于分布式網(wǎng)絡(luò),其特征在于,包括以下步驟:/nS1、確定網(wǎng)絡(luò)中總共有多少個(gè)投票節(jié)點(diǎn),每個(gè)投票節(jié)點(diǎn)維護(hù)一個(gè)投票委員會(huì)名單;/nS2、一部分有提案權(quán)的節(jié)點(diǎn)A生成待投票的提案,并將提案發(fā)給其他所有投票節(jié)點(diǎn)B;/nS3、投票節(jié)點(diǎn)B比較各種提案,選出可以投票的提案,用自己的私鑰簽名后,發(fā)給提案節(jié)點(diǎn)A;/nS4、提案節(jié)點(diǎn)A自己統(tǒng)計(jì)出自己的得票率,將統(tǒng)計(jì)結(jié)果廣播給整個(gè)網(wǎng)絡(luò);/nS5、每個(gè)節(jié)點(diǎn)分別根據(jù)維護(hù)的投票節(jié)點(diǎn)數(shù)量,判斷得票率,確定是否接受這個(gè)狀態(tài)。/n
【技術(shù)特征摘要】
1.一種新型分布式共識(shí)算法,應(yīng)用于分布式網(wǎng)絡(luò),其特征在于,包括以下步驟:
S1、確定網(wǎng)絡(luò)中總共有多少個(gè)投票節(jié)點(diǎn),每個(gè)投票節(jié)點(diǎn)維護(hù)一個(gè)投票委員會(huì)名單;
S2、一部分有提案權(quán)的節(jié)點(diǎn)A生成待投票的提案,并將提案發(fā)給其他所有投票節(jié)點(diǎn)B;
S3、投票節(jié)點(diǎn)B比較各種提案,選出可以投票的提案,用自己的私鑰簽名后,發(fā)給提案節(jié)點(diǎn)A;
S4、提案節(jié)點(diǎn)A自己統(tǒng)計(jì)出自己的得票率,將統(tǒng)計(jì)結(jié)果廣播給整個(gè)網(wǎng)絡(luò);
S5、每個(gè)節(jié)點(diǎn)分別根據(jù)維護(hù)的投票節(jié)點(diǎn)數(shù)量,判斷得票率,確定是否接受這個(gè)狀態(tài)。
2.根據(jù)權(quán)利要求1所述的新型分布式共識(shí)算法,其特征在于,所述步驟S3具體包括以下步驟:
網(wǎng)絡(luò)中的投票節(jié)點(diǎn)B計(jì)算接收到的多個(gè)提案的優(yōu)先級(jí),找出優(yōu)先級(jí)最高的提案;
投票節(jié)點(diǎn)B用自己的私鑰對(duì)優(yōu)先級(jí)最高的提案的哈希值簽名,并將簽名結(jié)果和自己的公鑰一起發(fā)送給提案節(jié)點(diǎn)A。
3.根據(jù)權(quán)利要求1所述的新型分布式共識(shí)算法,其特征在于,所述步驟S4中,提案節(jié)點(diǎn)A自己統(tǒng)計(jì)出自己的得票率,具體包括:
提案節(jié)點(diǎn)A計(jì)算對(duì)所述提案進(jìn)行簽名的投票節(jié)點(diǎn)B的數(shù)量,判斷該數(shù)量是否達(dá)到預(yù)設(shè)...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:柏建華,
申請(qǐng)(專利權(quán))人:柏建華,
類型:發(fā)明
國別省市:廣東;44
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。