• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      聯(lián)盟鏈中實(shí)用拜占庭容錯(cuò)算法的改進(jìn)

      2022-02-24 12:33:16方燚飚周創(chuàng)明宋亞飛
      關(guān)鍵詞:拜占庭視圖共識(shí)

      方燚飚,周創(chuàng)明,李 松,宋亞飛,高 娜,劉 唐

      1.空軍工程大學(xué) 研究生院,西安 710038

      2.空軍工程大學(xué) 防空反導(dǎo)學(xué)院,西安 710038

      3.中國(guó)人民解放軍 31436部隊(duì)

      2008年,一位化名為“中本聰”的學(xué)者提出了一種數(shù)字加密貨幣——比特幣[1],比特幣能夠有效解決傳統(tǒng)數(shù)字貨幣中的“雙花”問(wèn)題[2]和拜占庭將軍問(wèn)題[3],因而迅速引起了社會(huì)各界的廣泛關(guān)注。隨著數(shù)字加密貨幣的普及和發(fā)展,區(qū)塊鏈技術(shù)逐漸進(jìn)入人們的視野。區(qū)塊鏈?zhǔn)且环N以鏈?zhǔn)浇Y(jié)構(gòu)為基礎(chǔ)的分布式賬本[4],它是點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)、密碼學(xué)、共識(shí)算法、智能合約等多種技術(shù)結(jié)合的產(chǎn)物,具有去中心化、不可篡改、安全可信、集體維護(hù)等特點(diǎn)。目前,區(qū)塊鏈技術(shù)的應(yīng)用場(chǎng)景已由早期的金融領(lǐng)域拓展到醫(yī)療、物聯(lián)網(wǎng)、供應(yīng)鏈、邊緣計(jì)算等非金融領(lǐng)域[5]。作為一種分布式系統(tǒng),區(qū)塊鏈需要保證系統(tǒng)內(nèi)的所有節(jié)點(diǎn)達(dá)成一致的狀態(tài)共識(shí)。因此,共識(shí)算法是區(qū)塊鏈技術(shù)的重要組成部分之一,直接影響到區(qū)塊鏈系統(tǒng)的性能和可拓展性[6]。根據(jù)部署模式的不同,區(qū)塊鏈可以分為公共鏈、聯(lián)盟鏈和私有鏈三種類(lèi)型,公有鏈中的共識(shí)算法以X證明機(jī)制(proof of X,PoX)為主[7],如工作量證明機(jī)制(proof of work,PoW),該算法有效解決了區(qū)塊鏈系統(tǒng)中的共識(shí)問(wèn)題,但需要消耗大量的網(wǎng)絡(luò)算力,整體效率不高[8];Quantum[9]提出了權(quán)益證明機(jī)制(proof of stake,PoS),在數(shù)學(xué)計(jì)算難度的基礎(chǔ)上加入了幣齡的概念,一定程度上減小了算力的消耗,提高了共識(shí)效率。聯(lián)盟鏈和私有鏈中節(jié)點(diǎn)需經(jīng)過(guò)授權(quán)后才能夠加入?yún)^(qū)塊鏈網(wǎng)絡(luò),因此也被稱(chēng)為許可鏈[10]。許可鏈中使用的共識(shí)算法以分布式一致性算法為主,包括實(shí)用拜占庭容錯(cuò)算法(practical Byzantine fault tolerance,PBFT)[11]及其優(yōu)化算法、Paxos算法[12]和Raft算法[13]等。PBFT算法是一類(lèi)狀態(tài)機(jī)拜占庭算法,能夠容忍一定數(shù)量的惡意節(jié)點(diǎn)的攻擊,并通過(guò)狀態(tài)機(jī)復(fù)制機(jī)制來(lái)提高系統(tǒng)的可靠性和可用性。PBFT算法能夠較好地解決分布式系統(tǒng)中面臨的拜占庭將軍問(wèn)題,目前已成為許可鏈中主流的共識(shí)算法。

      PBFT算法由拜占庭容錯(cuò)算法(Byzantine fault tolerance,BFT)改進(jìn)而來(lái),它繼承了BFT算法的優(yōu)點(diǎn),大幅降低了算法執(zhí)行的網(wǎng)絡(luò)開(kāi)銷(xiāo),使算法具有了實(shí)際應(yīng)用價(jià)值。但PBFT算法在使用過(guò)程中還存在一些不足。首先PBFT算法無(wú)法動(dòng)態(tài)感知系統(tǒng)節(jié)點(diǎn)數(shù)目的變化,由于算法采用C/S架構(gòu),系統(tǒng)必須通過(guò)重啟來(lái)添加新節(jié)點(diǎn),這對(duì)系統(tǒng)的日常運(yùn)作會(huì)造成較大的影響。其次PBFT算法中各節(jié)點(diǎn)按編號(hào)順序輪流擔(dān)任主節(jié)點(diǎn),選取方式較為簡(jiǎn)單且缺少節(jié)點(diǎn)資質(zhì)審核,會(huì)對(duì)系統(tǒng)安全性帶來(lái)隱患。最后PBFT算法雖然將BFT算法的復(fù)雜度降到了多項(xiàng)式級(jí)別,但對(duì)分布式系統(tǒng)而言其帶來(lái)的通信壓力仍然較大,且隨著系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的增加,系統(tǒng)時(shí)延將大大增加,最終影響到系統(tǒng)運(yùn)行效率。針對(duì)上述問(wèn)題,研究人員希望通過(guò)優(yōu)化PBFT算法的執(zhí)行協(xié)議來(lái)提高算法性能,目前已經(jīng)得到了T-PBFT[14]、Scalable BFT[15]和EPBFT[16]等PBFT的改進(jìn)算法。

      針對(duì)PBFT算法中存在的問(wèn)題,結(jié)合聯(lián)盟鏈的特點(diǎn),本文提出了一種改進(jìn)的PBFT算法(score-based PBFT,S-PBFT)。首先,在原有PBFT算法中引入評(píng)分機(jī)制,根據(jù)各節(jié)點(diǎn)運(yùn)行狀況對(duì)其進(jìn)行打分,按評(píng)分高低將其分為共識(shí)節(jié)點(diǎn)、候選節(jié)點(diǎn)和預(yù)備節(jié)點(diǎn)三部分。其次,簡(jiǎn)化了PBFT算法一致性協(xié)議中的確認(rèn)階段,并將原本由所有節(jié)點(diǎn)共同參與的共識(shí)過(guò)程改為僅由共識(shí)節(jié)點(diǎn)參與,提高了共識(shí)效率,降低了算法的復(fù)雜度。最后,結(jié)合評(píng)分機(jī)制改進(jìn)了主節(jié)點(diǎn)選舉方式,S-PBFT中的主節(jié)點(diǎn)由共識(shí)節(jié)點(diǎn)中評(píng)分最高且具有最大編號(hào)的節(jié)點(diǎn)擔(dān)任,最大程度上保證主節(jié)點(diǎn)的可靠性,減少觸發(fā)視圖更換協(xié)議的頻率,提高算法效率。

      1 相關(guān)背景介紹

      1.1 拜占庭系統(tǒng)的優(yōu)化研究

      BFT算法最早由Lampor于20世紀(jì)80年代提出[17],主要用于解決分布式計(jì)算領(lǐng)域中的共識(shí)問(wèn)題,但原始的BFT算法的運(yùn)行復(fù)雜度較高,且會(huì)隨著系統(tǒng)節(jié)點(diǎn)數(shù)的增加而呈指數(shù)級(jí)上升,因而缺少實(shí)際的應(yīng)用價(jià)值。結(jié)合BFT算法的特性及不足,研究人員開(kāi)展了大量改進(jìn)研究,目前針對(duì)BFT算法的優(yōu)化主要有以下三個(gè)方向:狀態(tài)機(jī)拜占庭系統(tǒng)、結(jié)合可信部件的拜占庭系統(tǒng)和結(jié)合應(yīng)用場(chǎng)景優(yōu)化的拜占庭系統(tǒng)。

      狀態(tài)機(jī)拜占庭系統(tǒng)要求所有節(jié)點(diǎn)都執(zhí)行統(tǒng)一的操作,來(lái)維護(hù)系統(tǒng)狀態(tài)的一致性?,F(xiàn)有的狀態(tài)機(jī)拜占庭系統(tǒng)大多由PBFT算法改進(jìn)得到,包括通過(guò)hybrid quorum(HQ)減少序號(hào)分配過(guò)程的HQ算法[18],基于speculation技術(shù)的簡(jiǎn)化了一致性協(xié)議的Zyzzyva算法[19],運(yùn)用拜占庭鎖技術(shù)從而提高系統(tǒng)性能的Zzyzx算法[20]以及將一致性過(guò)程與請(qǐng)求執(zhí)行過(guò)程分離的ZZ算法[21]和ODRC算法[22]等。

      結(jié)合可信部件的拜占庭系統(tǒng)通過(guò)在系統(tǒng)中增加可信部件來(lái)提高系統(tǒng)可靠性、減少系統(tǒng)共識(shí)節(jié)點(diǎn)數(shù)、降低系統(tǒng)開(kāi)銷(xiāo)。早期可信部件主要用于系統(tǒng)的檢測(cè),如PRRW算法[23]中用于控制服務(wù)器修復(fù)過(guò)程的內(nèi)部同步網(wǎng)絡(luò)和VM-FIT[24]中用于加快數(shù)據(jù)同步的虛擬化技術(shù)等。后期,研究人員利用可信部件來(lái)減少系統(tǒng)所需節(jié)點(diǎn)數(shù),從而降低系統(tǒng)開(kāi)銷(xiāo)。Miller等通過(guò)一種可信計(jì)數(shù)器(trusted incrementer)來(lái)降低系統(tǒng)的開(kāi)銷(xiāo)[25]。

      部分應(yīng)用場(chǎng)景下,已有拜占庭協(xié)議無(wú)法滿(mǎn)足實(shí)際需求,這就需要結(jié)合實(shí)際應(yīng)用場(chǎng)景對(duì)拜占庭協(xié)議進(jìn)行優(yōu)化。Li等[26]針對(duì)分布式網(wǎng)絡(luò)中可能出現(xiàn)的通信不穩(wěn)定的問(wèn)題,設(shè)計(jì)了一種改進(jìn)的拜占庭算法Zeno。借助Zeno算法,系統(tǒng)能夠在最多1/3的節(jié)點(diǎn)出現(xiàn)網(wǎng)絡(luò)中斷的情況下保持一定的功能,且在網(wǎng)絡(luò)恢復(fù)后,可快速使所有節(jié)點(diǎn)達(dá)成一致?tīng)顟B(tài)。區(qū)塊鏈平臺(tái)NEO所采用的DBFT算法針對(duì)大規(guī)模節(jié)點(diǎn)數(shù)下系統(tǒng)性能不足的問(wèn)題,對(duì)拜占庭協(xié)議進(jìn)行了優(yōu)化。

      1.2 PBFT算法

      PBFT算法是一類(lèi)狀態(tài)機(jī)拜占庭系統(tǒng),主節(jié)點(diǎn)、從節(jié)點(diǎn)、視圖是算法運(yùn)行過(guò)程中的三個(gè)重要組成部分。主節(jié)點(diǎn)是算法執(zhí)行過(guò)程的發(fā)起者,負(fù)責(zé)對(duì)請(qǐng)求進(jìn)行排序;從節(jié)點(diǎn)接收并執(zhí)行從主節(jié)點(diǎn)接收到的請(qǐng)求,保證算法的有效性;所有節(jié)點(diǎn)需要在統(tǒng)一視圖下執(zhí)行請(qǐng)求,當(dāng)主節(jié)點(diǎn)發(fā)生故障時(shí),就會(huì)出現(xiàn)視圖更換機(jī)制改變當(dāng)前主節(jié)點(diǎn)。在一具有f個(gè)拜占庭節(jié)點(diǎn)的系統(tǒng)中,節(jié)點(diǎn)總數(shù)N需大于3f+1才能使系統(tǒng)達(dá)成一致,即PBFT算法最多能夠容忍(N-1)/3個(gè)非法節(jié)點(diǎn)的破壞。

      為保證系統(tǒng)中節(jié)點(diǎn)達(dá)成共識(shí),PBFT算法運(yùn)行在以下三種協(xié)議下:一致性協(xié)議、檢查點(diǎn)協(xié)議和視圖更換協(xié)議。其中一致性協(xié)議是PBFT算法的核心協(xié)議,原始的PBFT算法中一致性協(xié)議主要有請(qǐng)求(request)、預(yù)準(zhǔn)備(pre-prepare)、交互(prepare)、確認(rèn)(commit)和響應(yīng)(reply)五個(gè)階段,如圖1所示。

      圖1 PBFT算法一致性協(xié)議執(zhí)行流程Fig.1 Implementation process of PBFT algorithm conformance protocol

      (1)請(qǐng)求階段:客戶(hù)端C向主節(jié)點(diǎn)N0發(fā)送請(qǐng)求消息<RE QUEST,m,t,c>,其中m為客戶(hù)端請(qǐng)求的主要內(nèi)容,t為時(shí)間戳,c為客戶(hù)端C的身份信息。

      (2)預(yù)準(zhǔn)備階段:主節(jié)點(diǎn)N0接收到請(qǐng)求消息m后,為接收到的m分配序號(hào),并生成預(yù)準(zhǔn)備消息<<PR EPREPARE,v,n,d>,m>,其中v為當(dāng)前視圖編號(hào),n為主節(jié)點(diǎn)對(duì)請(qǐng)求內(nèi)容m分配的編號(hào),d為請(qǐng)求內(nèi)容m的消息摘要。生成完畢后,主節(jié)點(diǎn)將預(yù)準(zhǔn)備消息發(fā)送至各個(gè)節(jié)點(diǎn)。

      (3)交互階段:從節(jié)點(diǎn)接收到預(yù)準(zhǔn)備消息后,需要與其余節(jié)點(diǎn)進(jìn)行交互。從節(jié)點(diǎn)向其余節(jié)點(diǎn)發(fā)送交互消息<PREPARE,v,n,d,i>,其中i為發(fā)送消息的節(jié)點(diǎn)的編號(hào)。從節(jié)點(diǎn)接收到來(lái)自其余從節(jié)點(diǎn)的交互消息后,會(huì)將接收到的交互消息與來(lái)自主節(jié)點(diǎn)的預(yù)準(zhǔn)備消息進(jìn)行對(duì)比驗(yàn)證,當(dāng)有2f+1個(gè)來(lái)自不同從節(jié)點(diǎn)的交互消息與預(yù)準(zhǔn)備消息一致時(shí),即可進(jìn)入下一階段。

      (4)確認(rèn)階段:節(jié)點(diǎn)完成交互階段后,即進(jìn)入確認(rèn)階段。在此階段中,包括主節(jié)點(diǎn)在內(nèi)的所有節(jié)點(diǎn)向其余節(jié)點(diǎn)發(fā)送確認(rèn)消息<COMMIT,v,n,D(m),i>,其中D(m)為節(jié)點(diǎn)對(duì)請(qǐng)求的簽名。節(jié)點(diǎn)接收到來(lái)自其余節(jié)點(diǎn)的確認(rèn)消息后,對(duì)消息內(nèi)容的準(zhǔn)確性進(jìn)行核驗(yàn)。當(dāng)有2f+1個(gè)確認(rèn)消息通過(guò)驗(yàn)證,則確認(rèn)階段完成。

      (5)回復(fù)階段:完成確認(rèn)階段后,各節(jié)點(diǎn)向客戶(hù)端發(fā)送回復(fù)消息<REPLY,v,t,c,i,r>,其中r為客戶(hù)端請(qǐng)求的執(zhí)行結(jié)果。若客戶(hù)端在接收到至少f+1個(gè)相同的回復(fù)消息,則請(qǐng)求執(zhí)行成功。

      2 S-PBFT算法設(shè)計(jì)

      2.1 算法整體思想

      PBFT算法是一類(lèi)“狀態(tài)機(jī)”拜占庭系統(tǒng),早期用于實(shí)現(xiàn)傳統(tǒng)分布式系統(tǒng)中各節(jié)點(diǎn)狀態(tài)的一致性,其首要任務(wù)是解決系統(tǒng)中可能出現(xiàn)的拜占庭問(wèn)題,同時(shí)需要保證節(jié)點(diǎn)能夠按照既定順序執(zhí)行客戶(hù)請(qǐng)求。在區(qū)塊鏈系統(tǒng)中,各個(gè)區(qū)塊的共識(shí)過(guò)程按照具有嚴(yán)格的順序進(jìn)行,無(wú)需共識(shí)算法進(jìn)行干預(yù)。另外,在聯(lián)盟鏈環(huán)境下,節(jié)點(diǎn)在進(jìn)入系統(tǒng)時(shí)需要經(jīng)過(guò)一定的身份認(rèn)證機(jī)制,如基于角色的身份認(rèn)證等,能夠有效地避免女巫攻擊等問(wèn)題。因此,為使PBFT算法能夠更好地應(yīng)用于聯(lián)盟鏈系統(tǒng),結(jié)合聯(lián)盟鏈特點(diǎn),針對(duì)經(jīng)典PBFT算法中存在的不足,提出了以下優(yōu)化思路:

      (1)省略一致性協(xié)議中的請(qǐng)求和回復(fù)階段。PBFT算法中的請(qǐng)求和回復(fù)階段是系統(tǒng)節(jié)點(diǎn)與客戶(hù)端之間的交互,而在區(qū)塊鏈共識(shí)過(guò)程中數(shù)據(jù)區(qū)塊直接由主節(jié)點(diǎn)生成,無(wú)需專(zhuān)門(mén)的客戶(hù)端參與。

      (2)引入評(píng)分機(jī)制,按節(jié)點(diǎn)積分進(jìn)行分類(lèi)。首先結(jié)合聯(lián)盟鏈身份認(rèn)證的特點(diǎn),根據(jù)節(jié)點(diǎn)處理能力大小為各節(jié)點(diǎn)分配初始積分(S ib)并記錄各節(jié)點(diǎn)初始積分的值,隨后根據(jù)節(jié)點(diǎn)積分(Si)大小將其分為共識(shí)節(jié)點(diǎn)、候選節(jié)點(diǎn)、預(yù)備節(jié)點(diǎn)三類(lèi)。其中,共識(shí)節(jié)點(diǎn)負(fù)責(zé)完成系統(tǒng)共識(shí)過(guò)程,由PBFT算法一致性協(xié)議可知,當(dāng)客戶(hù)端接受到超過(guò)f+1個(gè)來(lái)自合法節(jié)點(diǎn)的一致消息時(shí),才可認(rèn)定請(qǐng)求執(zhí)行成功,因此共識(shí)節(jié)點(diǎn)的數(shù)量取為2f+1;候選節(jié)點(diǎn)只保存共識(shí)結(jié)果,而不參與系統(tǒng)共識(shí)過(guò)程,其數(shù)量不定;預(yù)備節(jié)點(diǎn)由初始積分較低的節(jié)點(diǎn)和共識(shí)節(jié)點(diǎn)中發(fā)生錯(cuò)誤的節(jié)點(diǎn)組成,不參與共識(shí)但需保存共識(shí)結(jié)果,其數(shù)量不定。

      (3)改進(jìn)主節(jié)點(diǎn)選舉方式。主節(jié)點(diǎn)屬于共識(shí)節(jié)點(diǎn)的一部分,當(dāng)主節(jié)點(diǎn)出現(xiàn)問(wèn)題,該節(jié)點(diǎn)直接降為預(yù)備節(jié)點(diǎn),隨后將余下共識(shí)節(jié)點(diǎn)中持有積分最高且初始積分較高的節(jié)點(diǎn)作為主節(jié)點(diǎn)。

      (4)優(yōu)化一致性協(xié)議,對(duì)確認(rèn)階段進(jìn)行簡(jiǎn)化。在PBFT算法中,節(jié)點(diǎn)交互階段已經(jīng)完成了共識(shí)過(guò)程,確認(rèn)階段的作用主要是使各節(jié)點(diǎn)掌握其余節(jié)點(diǎn)的狀態(tài)。在傳統(tǒng)的分布式系統(tǒng)中,確認(rèn)階段為系統(tǒng)提供了狀態(tài)確認(rèn)的過(guò)程,使各節(jié)點(diǎn)能夠知曉其余節(jié)點(diǎn)的共識(shí)狀態(tài),確認(rèn)系統(tǒng)達(dá)成一致。在聯(lián)盟鏈系統(tǒng)中,每一個(gè)達(dá)成共識(shí)的區(qū)塊都可作為一個(gè)檢查點(diǎn),在交互階段完成共識(shí)后,通過(guò)區(qū)塊同步即可使系統(tǒng)達(dá)成一致。相較于傳統(tǒng)的分布式系統(tǒng),聯(lián)盟鏈中的節(jié)點(diǎn)具有更高的可靠性,系統(tǒng)環(huán)境更為穩(wěn)定。同時(shí),改進(jìn)的主節(jié)點(diǎn)選舉方式和聯(lián)盟鏈的可追溯的特性也保證了區(qū)塊同步過(guò)程的合法性,因此在S-PBFT算法中對(duì)確認(rèn)過(guò)程進(jìn)行簡(jiǎn)化。

      S-PBFT算法將原本需要進(jìn)行兩兩交互的確認(rèn)過(guò)程簡(jiǎn)化為直接由主節(jié)點(diǎn)對(duì)共識(shí)結(jié)果進(jìn)行判定,從而減少了一次復(fù)雜度為O(N2)的交互過(guò)程,在一定程度上能夠降低系統(tǒng)通訊開(kāi)銷(xiāo),提高算法的共識(shí)效率。

      2.2 符號(hào)表示及節(jié)點(diǎn)組成

      (1)系統(tǒng)節(jié)點(diǎn)集合為N,由{1,2,…,i}表示,非法節(jié)點(diǎn)最大容忍數(shù)為f,N中節(jié)點(diǎn)數(shù)i不應(yīng)小于3f+1個(gè),考慮到系統(tǒng)共識(shí)效率,i通常取3f+1。

      (2)共識(shí)節(jié)點(diǎn)集合為G,由{1,2,…,g]表示,為使算法能夠達(dá)成有效共識(shí),結(jié)合拜占庭協(xié)議的共識(shí)原理,S-PBFT算法中共識(shí)節(jié)點(diǎn)的數(shù)量g不得小于2f+1;候選節(jié)點(diǎn)集合為H,由{1,2,…,h}表示;預(yù)備節(jié)點(diǎn)集合為Y,由{1,2,…,y}表示。候選節(jié)點(diǎn)數(shù)h與預(yù)備節(jié)點(diǎn)數(shù)y之和為f。

      (3)初始狀態(tài)下,共識(shí)節(jié)點(diǎn)由積分在9及以上的節(jié)點(diǎn)組成;候選節(jié)點(diǎn)由積分在8~9之間的節(jié)點(diǎn)組成;預(yù)備節(jié)點(diǎn)由積分在8及以下的節(jié)點(diǎn)組成。

      2.3 節(jié)點(diǎn)評(píng)分機(jī)制

      節(jié)點(diǎn)評(píng)分機(jī)制是S-PBFT算法改進(jìn)思想的核心,為主節(jié)點(diǎn)選舉和一致性協(xié)議的優(yōu)化奠定了基礎(chǔ)。S-PBFT算法的節(jié)點(diǎn)評(píng)分機(jī)制主要分為節(jié)點(diǎn)初始積分和積分調(diào)整規(guī)則兩部分,下面結(jié)合這兩部分來(lái)分析節(jié)點(diǎn)評(píng)分機(jī)制。

      2.3.1 節(jié)點(diǎn)初始積分

      S-PBFT算法中,節(jié)點(diǎn)初始積分的賦予主要有以下兩種情況:系統(tǒng)初始化時(shí)對(duì)系統(tǒng)內(nèi)節(jié)點(diǎn)的評(píng)分、有新節(jié)點(diǎn)加入時(shí)對(duì)新節(jié)點(diǎn)的評(píng)分。

      (1)系統(tǒng)初始化時(shí)節(jié)點(diǎn)的評(píng)分。本文提出的S-PBFT算法主要應(yīng)用于聯(lián)盟鏈環(huán)境,聯(lián)盟鏈?zhǔn)怯梢欢〝?shù)量的具有共同訴求的節(jié)點(diǎn)構(gòu)建,如針對(duì)銀行之間結(jié)算問(wèn)題的銀行同業(yè)聯(lián)盟鏈。此類(lèi)區(qū)塊鏈中,節(jié)點(diǎn)之間的綜合實(shí)力存在一定的差距,通常情況下節(jié)點(diǎn)綜合實(shí)力越強(qiáng),節(jié)點(diǎn)具有的性能和功能優(yōu)勢(shì)就越大,節(jié)點(diǎn)穩(wěn)定性就越好。

      結(jié)合以上分析,S-PBFT算法將節(jié)點(diǎn)綜合實(shí)力作為初始積分的評(píng)分依據(jù)。進(jìn)行評(píng)分時(shí),將所有節(jié)點(diǎn)按綜合實(shí)力大小進(jìn)行排序,考慮到共識(shí)過(guò)程中對(duì)節(jié)點(diǎn)穩(wěn)定性和性能的需求,將排好序的節(jié)點(diǎn)按2f+1、f2、f2的比例分為共識(shí)節(jié)點(diǎn)、候選節(jié)點(diǎn)和預(yù)備節(jié)點(diǎn)三部分,節(jié)點(diǎn)順序由所有節(jié)點(diǎn)投票得出。其中,共識(shí)節(jié)點(diǎn)部分節(jié)點(diǎn)評(píng)分需大于9,候選節(jié)點(diǎn)部分節(jié)點(diǎn)評(píng)分在8~9,預(yù)備節(jié)點(diǎn)部分節(jié)點(diǎn)評(píng)分小于8。

      在實(shí)際應(yīng)用過(guò)程中,可根據(jù)部署系統(tǒng)的需求,對(duì)候選節(jié)點(diǎn)和預(yù)備節(jié)點(diǎn)的比例進(jìn)行調(diào)整,但共識(shí)節(jié)點(diǎn)的數(shù)量不得小于2f+1。

      (2)新節(jié)點(diǎn)加入時(shí)節(jié)點(diǎn)的評(píng)分。聯(lián)盟鏈中,節(jié)點(diǎn)需要得到聯(lián)盟鏈的授權(quán)后才能夠加入到聯(lián)盟鏈網(wǎng)絡(luò)中,此時(shí)即需要對(duì)節(jié)點(diǎn)進(jìn)行評(píng)分。節(jié)點(diǎn)積分大小同樣由授權(quán)節(jié)點(diǎn)投票得出,系統(tǒng)根據(jù)節(jié)點(diǎn)積分將新節(jié)點(diǎn)劃分到對(duì)應(yīng)節(jié)點(diǎn)集合中。為維護(hù)系統(tǒng)穩(wěn)定性,通常情況下,不將新節(jié)點(diǎn)直接劃為共識(shí)節(jié)點(diǎn)。

      2.3.2 積分調(diào)整規(guī)則

      S-PBFT算法中,節(jié)點(diǎn)具有三種不同狀態(tài),不同狀態(tài)的節(jié)點(diǎn)之間能夠互相轉(zhuǎn)換,但具有一定的轉(zhuǎn)換條件,在此制定如下規(guī)則:

      (1)加分規(guī)則:節(jié)點(diǎn)每成功完成一次共識(shí)過(guò)程,積分在9以上的節(jié)點(diǎn)積分加0.01,積分在8~9的節(jié)點(diǎn)積分加0.05,積分在8以下的節(jié)點(diǎn)積分加0.2。集合G中,節(jié)點(diǎn)積分最高為10,積分到達(dá)10后不再增加;集合H和Y中,節(jié)點(diǎn)積分增加無(wú)上限。有以下公式:

      其中,S p為節(jié)點(diǎn)執(zhí)行共識(shí)前的積分,S為節(jié)點(diǎn)執(zhí)行共識(shí)后的積分。

      (2)扣分規(guī)則:集合G與H中,節(jié)點(diǎn)在共識(shí)過(guò)程中出現(xiàn)錯(cuò)誤,節(jié)點(diǎn)的積分直接降為8,且不論節(jié)點(diǎn)原本類(lèi)型,均直接轉(zhuǎn)換為預(yù)備節(jié)點(diǎn);集合Y中,節(jié)點(diǎn)出現(xiàn)錯(cuò)誤,節(jié)點(diǎn)積分減0.5。

      (3)節(jié)點(diǎn)轉(zhuǎn)換規(guī)則:若共識(shí)節(jié)點(diǎn)出現(xiàn)錯(cuò)誤,則出錯(cuò)節(jié)點(diǎn)轉(zhuǎn)換為預(yù)備節(jié)點(diǎn),并將集合H中積分最高且初始積分較高的節(jié)點(diǎn)轉(zhuǎn)換為共識(shí)節(jié)點(diǎn),節(jié)點(diǎn)積分變?yōu)?;若候選節(jié)點(diǎn)出現(xiàn)錯(cuò)誤,則出錯(cuò)節(jié)點(diǎn)轉(zhuǎn)換為預(yù)備節(jié)點(diǎn),并將集合Y中積分最高且初始積分較高的節(jié)點(diǎn)轉(zhuǎn)換為候選節(jié)點(diǎn),節(jié)點(diǎn)積分變?yōu)?。

      2.4 主節(jié)點(diǎn)選舉

      在系統(tǒng)初始化或是主節(jié)點(diǎn)出現(xiàn)拜占庭錯(cuò)誤后,需要進(jìn)行主節(jié)點(diǎn)選舉。S-PBFT算法中,主節(jié)點(diǎn)選舉以節(jié)點(diǎn)積分作為主要參考,將持有積分最高且初始積分較高的節(jié)點(diǎn)作為主節(jié)點(diǎn)。較高的持有積分說(shuō)明節(jié)點(diǎn)功能近期較為穩(wěn)定,較高的初始積分則說(shuō)明節(jié)點(diǎn)具有較好的性能,將此類(lèi)節(jié)點(diǎn)作為主節(jié)點(diǎn),能夠最大程度上保證主節(jié)點(diǎn)的穩(wěn)定性,減少觸發(fā)視圖轉(zhuǎn)換的概率,提高系統(tǒng)效率。下面簡(jiǎn)要說(shuō)明主節(jié)點(diǎn)選舉的流程。

      主節(jié)點(diǎn)選舉過(guò)程中,集合G內(nèi)的各節(jié)點(diǎn)需要通過(guò)兩兩交互來(lái)確定主節(jié)點(diǎn)人選。交互過(guò)程中,將節(jié)點(diǎn)i編號(hào)(i)、持有積分值(S i)和初始積分值(Sib)組成一個(gè)數(shù)組(i,S i,S ib),作為選舉憑證(vote)。節(jié)點(diǎn)將自身的vote廣播至各個(gè)共識(shí)節(jié)點(diǎn),各節(jié)點(diǎn)獎(jiǎng)接受到的vote與自身vote進(jìn)行比較后,保存條件更優(yōu)的vote,可能的比較結(jié)果如下:

      (1)若接收到的vote中的持有積分?jǐn)?shù)據(jù)小于節(jié)點(diǎn)自身的持有積分?jǐn)?shù)據(jù),則保存自身vote。

      (2)若接收到的vote中的持有積分?jǐn)?shù)據(jù)等于節(jié)點(diǎn)自身的持有積分?jǐn)?shù)據(jù),則繼續(xù)比較初始積分。若接收vote的初始積分更高,則保存接收到的vote;否則保存自身vote。若兩者初始積分也相同,則保存節(jié)點(diǎn)編號(hào)更小的vote。

      (3)若接收到的vote中的持有積分?jǐn)?shù)據(jù)大于節(jié)點(diǎn)自身的持有積分?jǐn)?shù)據(jù),則保存自身vote。

      當(dāng)完成所有節(jié)點(diǎn)的比較后,各共識(shí)節(jié)點(diǎn)將自身簽名添加到最終結(jié)果(D(i),g,S g,S gb)中,其中D(i)為節(jié)點(diǎn)i的簽名,g為待定主節(jié)點(diǎn)的編號(hào),隨后進(jìn)行廣播。當(dāng)有至少f+1個(gè)結(jié)果一致的憑證時(shí),選舉完成,最終憑證中節(jié)點(diǎn)編號(hào)對(duì)應(yīng)的節(jié)點(diǎn)作為主節(jié)點(diǎn),選舉結(jié)束。選舉過(guò)程如圖2所示,圖中僅為節(jié)點(diǎn)1與其他節(jié)點(diǎn)的交互過(guò)程,其余節(jié)點(diǎn)間交互過(guò)程類(lèi)似。時(shí)間間隔后,主節(jié)點(diǎn)將這些交易中的合法交易打包,生成一個(gè)數(shù)據(jù)區(qū)塊。隨后,進(jìn)入一致性協(xié)議階段,對(duì)此交易區(qū)塊進(jìn)行共識(shí)。

      圖2 主節(jié)點(diǎn)選舉過(guò)程示意圖Fig.2 Process of master node election

      (1)S-預(yù)準(zhǔn)備階段(S-pre-prepare):主節(jié)點(diǎn)根據(jù)數(shù)據(jù)區(qū)塊內(nèi)容生成S-預(yù)準(zhǔn)備消息<<S-PRE-PREPARE,v,n,H(b)>,b>,其中H(b)為區(qū)塊的內(nèi)容摘要即區(qū)塊哈希值,b為本次進(jìn)行共識(shí)的區(qū)塊。隨后,主節(jié)點(diǎn)將S-預(yù)準(zhǔn)備消息發(fā)送至所有節(jié)點(diǎn),其中共識(shí)節(jié)點(diǎn)需對(duì)消息內(nèi)容進(jìn)行核驗(yàn),核驗(yàn)通過(guò)則進(jìn)入下一階段,否則進(jìn)行視圖變更,更換主節(jié)點(diǎn);候選節(jié)點(diǎn)和預(yù)備節(jié)點(diǎn)僅接收消息,不對(duì)消息內(nèi)容進(jìn)行反饋。

      (2)S-交互階段(S-prepare):共識(shí)節(jié)點(diǎn)完成S-預(yù)準(zhǔn)備消息核驗(yàn)后,需生成S-交互消息<S-PREPARE,v,n,H()b,i>,其中i為發(fā)送節(jié)點(diǎn)的編號(hào),將此S-交互消息廣播至所有共識(shí)節(jié)點(diǎn)。共識(shí)節(jié)點(diǎn)會(huì)對(duì)接收到的S-交互消息進(jìn)行核驗(yàn),當(dāng)有f+1個(gè)來(lái)自不同共識(shí)節(jié)點(diǎn)的一致的S-交互消息時(shí),即可進(jìn)行下一階段,否則中止共識(shí)過(guò)程,更換問(wèn)題節(jié)點(diǎn),重啟共識(shí)過(guò)程。

      (3)S-確認(rèn)階段(S-commit):完成S-交互消息的核驗(yàn)后,進(jìn)入即可進(jìn)入S-確認(rèn)階段。S-確認(rèn)階段主要用于核驗(yàn)各節(jié)點(diǎn)保存的區(qū)塊數(shù)據(jù)的正確性,因此包括候選節(jié)點(diǎn)和預(yù)備節(jié)點(diǎn)在內(nèi)的所有節(jié)點(diǎn)均需要向主節(jié)點(diǎn)發(fā)送S-確認(rèn)消息,以保證最終上鏈區(qū)塊的一致性。S-確認(rèn)消息的內(nèi)容為<S-COMMIT,v,n,H(b),D(b)i,i>,其中D(b)i為節(jié)點(diǎn)i對(duì)區(qū)塊b的簽名。當(dāng)主節(jié)點(diǎn)接受到2f+1個(gè)來(lái)自不同節(jié)點(diǎn)的S-確認(rèn)消息時(shí),即完成共識(shí),區(qū)塊b可保存到聯(lián)盟鏈中。

      S-PBFT算法的流程如圖3所示。

      圖3 S-PBFT算法執(zhí)行流程Fig.3 Execution flow of S-PBFT algorithm

      2.5 一致性協(xié)議

      完成主節(jié)點(diǎn)選舉后,各節(jié)點(diǎn)需通過(guò)狀態(tài)同步,使視圖號(hào)、區(qū)塊高度、前區(qū)塊哈希值等數(shù)據(jù)達(dá)成一致。隨后,即可對(duì)新的數(shù)據(jù)區(qū)塊進(jìn)行共識(shí),即執(zhí)行一致性協(xié)議。S-PBFT中引入了評(píng)分機(jī)制,通過(guò)對(duì)節(jié)點(diǎn)類(lèi)型分類(lèi)、改進(jìn)主節(jié)點(diǎn)選舉方式,實(shí)現(xiàn)了對(duì)共識(shí)節(jié)點(diǎn)的多重篩選,最大程度上保證了共識(shí)節(jié)點(diǎn)的可靠性。改進(jìn)的一致性協(xié)議執(zhí)行流程如下:

      當(dāng)聯(lián)盟鏈中的交易量達(dá)到一定數(shù)量或是達(dá)到一定

      3 實(shí)驗(yàn)分析

      通過(guò)實(shí)驗(yàn)從共識(shí)時(shí)延、通信開(kāi)銷(xiāo)和吞吐量三個(gè)方面對(duì)S-PBFT算法和PBFT算法進(jìn)行測(cè)試、分析,比較兩種算法的性能。本實(shí)驗(yàn)在實(shí)驗(yàn)室內(nèi)部局域網(wǎng)中搭建了聯(lián)盟鏈環(huán)境,通過(guò)docker容器設(shè)置若干個(gè)配置相同的虛擬節(jié)點(diǎn)作為系統(tǒng)節(jié)點(diǎn),實(shí)驗(yàn)具體配置信息如表1所示。

      表1 實(shí)驗(yàn)配置信息Table 1 Experiment configuration information

      3.1 共識(shí)時(shí)延

      區(qū)塊鏈系統(tǒng)中,共識(shí)時(shí)延是指由節(jié)點(diǎn)提交交易請(qǐng)求到系統(tǒng)完成共識(shí)所需要的時(shí)間,是評(píng)價(jià)共識(shí)算法性能的一個(gè)重要參數(shù),降低共識(shí)時(shí)延能夠提高系統(tǒng)運(yùn)行效率和實(shí)用性。本實(shí)驗(yàn)將系統(tǒng)節(jié)點(diǎn)總數(shù)作為實(shí)驗(yàn)變量,節(jié)點(diǎn)數(shù)由10遞增至40,步長(zhǎng)為6,在不同節(jié)點(diǎn)數(shù)下分別進(jìn)行多次交易,取不同狀態(tài)下的平均值作為該狀態(tài)共識(shí)時(shí)延的最終值,實(shí)驗(yàn)結(jié)果如圖4所示。

      圖4 共識(shí)時(shí)延對(duì)比結(jié)果Fig.4 Results of consensus delay comparison

      由實(shí)驗(yàn)結(jié)果可知,不同節(jié)點(diǎn)數(shù)下,S-PBFT算法由于簡(jiǎn)化了一致性協(xié)議中的確認(rèn)節(jié)點(diǎn),在共識(shí)時(shí)延上的表現(xiàn)要優(yōu)于PBFT算法,且隨著節(jié)點(diǎn)數(shù)的增加,S-PBFT算法的共識(shí)時(shí)延增長(zhǎng)率更小,穩(wěn)定性更好。

      3.2 通信開(kāi)銷(xiāo)

      S-PBFT算法的主要思想是通過(guò)簡(jiǎn)化PBFT算法中的一致性協(xié)議來(lái)降低算法復(fù)雜度,提高算法效率。因此設(shè)計(jì)了算法通信開(kāi)銷(xiāo)對(duì)比實(shí)驗(yàn),來(lái)比較分析兩種算法在通信開(kāi)銷(xiāo)方面的性能。本文將通信開(kāi)銷(xiāo)設(shè)定為系統(tǒng)完成一次一致性協(xié)議節(jié)點(diǎn)間需進(jìn)行的平均通信次數(shù)。假設(shè)系統(tǒng)視圖變更概率為p。

      (1)PBFT算法通信開(kāi)銷(xiāo)

      根據(jù)1.2節(jié)中對(duì)PBFT算法的分析,一致性協(xié)議中節(jié)點(diǎn)間的通信次數(shù)為6f(3f+1,f)為系統(tǒng)能夠容忍的拜占庭節(jié)點(diǎn)的最大個(gè)數(shù)。

      試圖轉(zhuǎn)換階段中,從節(jié)點(diǎn)需要通過(guò)兩兩交互來(lái)傳遞視圖轉(zhuǎn)換信息,此時(shí)通信次數(shù)為9f2。完成視圖變更后,主節(jié)點(diǎn)需要向從節(jié)點(diǎn)發(fā)送視圖確認(rèn)消息,此時(shí)通信次數(shù)為3f。結(jié)合視圖變更概率p,得PBFT算法的平均總通信次數(shù)為:

      (2)S-PBFT算法通信開(kāi)銷(xiāo)

      一致性協(xié)議中,S-PBFT算法僅進(jìn)行3階段的交互。在S-預(yù)準(zhǔn)備階段和S-確認(rèn)階段通信次數(shù)均為3f,在S-交互階段主節(jié)點(diǎn)之外的共識(shí)節(jié)點(diǎn)需要向其他共識(shí)節(jié)點(diǎn)廣播區(qū)塊信息,通信次數(shù)為4f2,因此一致性協(xié)議階段總通信次數(shù)為4f2+6f。

      主節(jié)點(diǎn)選舉階段,首先共識(shí)節(jié)點(diǎn)需要將選舉憑證廣播至自身以外的共識(shí)節(jié)點(diǎn),通信次數(shù)為2f(2f+1)。各共識(shí)節(jié)點(diǎn)選出待定主節(jié)點(diǎn)后,將選舉結(jié)果廣播至各共識(shí)節(jié)點(diǎn)進(jìn)行確認(rèn),此過(guò)程中同樣進(jìn)行了2f(2f+1)次交互。最后,新的主節(jié)點(diǎn)向所有共識(shí)節(jié)點(diǎn)發(fā)送確認(rèn)信息,通信次數(shù)為2f。

      因此,S-PBFT算法的平均總通信次數(shù)為:

      由此可得,S-PBFT算法與PBFT算法的通信次數(shù)的比值Q為:

      通過(guò)MATLAB得出此公式的可視化圖形,如圖5所示。其中p的取值為0到1,步長(zhǎng)為0.1,f的取值為3到23,步長(zhǎng)為2。

      圖5 S-PBFT算法與PBFT算法通信次數(shù)比值三維曲面圖Fig.5 Three dimensional surface graph of algorithm communication times ratio

      由圖5可知,在給定范圍內(nèi),無(wú)論p和f的取值如何變化,Q值始終小于1,即S-PBFT算法的通信次數(shù)始終小于PBFT算法的通信次數(shù)。隨著節(jié)點(diǎn)數(shù)的增加Q值逐漸減小,說(shuō)明在多節(jié)點(diǎn)環(huán)境下,S-PBFT算法的通信開(kāi)銷(xiāo)表現(xiàn)仍?xún)?yōu)于PBFT算法。另外,S-PBFT算法引入了評(píng)分機(jī)制,對(duì)節(jié)點(diǎn)進(jìn)行多次篩選,能夠降低了視圖轉(zhuǎn)換發(fā)生的概率,因此在實(shí)際過(guò)程中,S-PBFT算法在通信開(kāi)銷(xiāo)上會(huì)有更好的表現(xiàn)。

      3.3 吞吐量

      吞吐量指單位時(shí)間內(nèi)系統(tǒng)能夠處理的事件量,本實(shí)驗(yàn)將每秒事件處理數(shù)(TPS)作為表示系統(tǒng)吞吐量,系統(tǒng)TPS可由以下公式表示:

      其中,TradeΔt為出塊間隔內(nèi)系統(tǒng)處理的事件數(shù),Δt為出塊間隔。

      實(shí)驗(yàn)將節(jié)點(diǎn)總數(shù)作為變量,節(jié)點(diǎn)數(shù)由10遞增至70,步長(zhǎng)為6,在不同節(jié)點(diǎn)數(shù)下進(jìn)行20次重復(fù)實(shí)驗(yàn),每次實(shí)驗(yàn)的事件量設(shè)置為1 000,最終取實(shí)驗(yàn)結(jié)果的平均值作為不同節(jié)點(diǎn)數(shù)下吞吐量的值,實(shí)驗(yàn)結(jié)果如圖6所示。

      圖6 S-PBFT算法與PBFT算法吞吐量對(duì)比Fig.6 Throughput comparison between S-PBFT algorithm and PBFT algorithm

      由實(shí)驗(yàn)結(jié)果可知,節(jié)點(diǎn)數(shù)較小時(shí),隨著節(jié)點(diǎn)數(shù)的增加,兩種算法的吞吐量均呈上升趨勢(shì)。隨后PBFT算法與S-PBFT算法的吞吐量先后達(dá)到峰值,其中S-PBFT算法吞吐量的峰值更大、到達(dá)峰值時(shí)的節(jié)點(diǎn)數(shù)更多,且在整個(gè)過(guò)程中,S-PBFT算法的吞吐量始終大于PBFT算法的吞吐量,因此S-PBFT算法具有更好的吞吐性能。

      3.4 共識(shí)節(jié)點(diǎn)可靠性

      共識(shí)節(jié)點(diǎn)是S-PBFT算法共識(shí)過(guò)程的執(zhí)行節(jié)點(diǎn),共識(shí)節(jié)點(diǎn)的可靠性直接決定了系統(tǒng)共識(shí)的達(dá)成,因此S-PBFT算法中,共識(shí)節(jié)點(diǎn)的可靠性具有十分重要的意義。

      由前文分析可知,S-PBFT算法以節(jié)點(diǎn)初始積分和節(jié)點(diǎn)實(shí)際積分為共識(shí)節(jié)點(diǎn)選取依據(jù)來(lái)選取共識(shí)節(jié)點(diǎn)。節(jié)點(diǎn)初始積分是節(jié)點(diǎn)綜合實(shí)力的體現(xiàn),節(jié)點(diǎn)實(shí)際積分則是一段時(shí)間內(nèi)節(jié)點(diǎn)在共識(shí)過(guò)程中表現(xiàn)的綜合評(píng)價(jià),能夠在一定程度上反映節(jié)點(diǎn)執(zhí)行共識(shí)的穩(wěn)定性。因此,理論上,相較于隨機(jī)的節(jié)點(diǎn)選取方式,由以上方法得到的共識(shí)節(jié)點(diǎn)能夠具有更好的可靠性和穩(wěn)定性。

      下面通過(guò)對(duì)比實(shí)驗(yàn)來(lái)對(duì)共識(shí)節(jié)點(diǎn)的可靠性進(jìn)行測(cè)試。實(shí)驗(yàn)以S-PBFT算法為基礎(chǔ),設(shè)置A、B兩組對(duì)照組:A組的共識(shí)節(jié)點(diǎn)由節(jié)點(diǎn)積分規(guī)則選出,B組的共識(shí)節(jié)點(diǎn)在所有節(jié)點(diǎn)中隨機(jī)挑選。實(shí)驗(yàn)通過(guò)比較相同節(jié)點(diǎn)數(shù)下,算法的共識(shí)成功率來(lái)分析。

      實(shí)驗(yàn)中,總節(jié)點(diǎn)數(shù)由10遞增至70,步長(zhǎng)為6,在不同節(jié)點(diǎn)數(shù)下進(jìn)行多次實(shí)驗(yàn),得到該節(jié)點(diǎn)數(shù)下算法的共識(shí)成功率。兩組實(shí)驗(yàn)中節(jié)點(diǎn)的算力、帶寬等資源按相同原則隨機(jī)分配。實(shí)驗(yàn)結(jié)果如圖7所示。

      圖7 節(jié)點(diǎn)可靠性實(shí)驗(yàn)結(jié)果Fig.7 Results of node reliability experiment

      由實(shí)驗(yàn)結(jié)果可知,隨著節(jié)點(diǎn)數(shù)的增加,實(shí)驗(yàn)組A的共識(shí)成功率始終保持在98.5%左右,實(shí)驗(yàn)組B的共識(shí)成功率隨著節(jié)點(diǎn)數(shù)的增加整體上呈下降趨勢(shì)。實(shí)驗(yàn)組A中,共識(shí)節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)積分和節(jié)點(diǎn)初始積分選出,始終能夠保證具有更高算力、更大帶寬、更穩(wěn)定的節(jié)點(diǎn)作為共識(shí)節(jié)點(diǎn)。而實(shí)驗(yàn)組B中共識(shí)節(jié)點(diǎn)間的性能差距較大且由于系統(tǒng)資源有限,隨著節(jié)點(diǎn)數(shù)的增加,節(jié)點(diǎn)分配到的資源越來(lái)越少,導(dǎo)致了共識(shí)成功率的下降。可見(jiàn),通過(guò)對(duì)節(jié)點(diǎn)的動(dòng)態(tài)調(diào)整,能夠提高共識(shí)節(jié)點(diǎn)的可靠性。

      4 總結(jié)與展望

      隨著區(qū)塊鏈的不斷發(fā)展,共識(shí)算法的改進(jìn)研究越來(lái)越得到科研人員的重視,共識(shí)算法的優(yōu)劣直接影響到區(qū)塊鏈的性能和安全性。本文在PBFT算法的基礎(chǔ)上,設(shè)計(jì)了一種改進(jìn)的S-PBFT算法。S-PBFT算法將節(jié)點(diǎn)分為共識(shí)節(jié)點(diǎn)、候選節(jié)點(diǎn)和預(yù)備節(jié)點(diǎn)三類(lèi),通過(guò)評(píng)分機(jī)制最大程度保證共識(shí)節(jié)點(diǎn)的可靠性。此外,S-PBFT算法還優(yōu)化了一致性協(xié)議及其執(zhí)行過(guò)程,在保證算法功能性的同時(shí)降低了算法復(fù)雜度,提供了運(yùn)行效率。但S-PBFT算法仍存在一些不足,在后續(xù)工作中將結(jié)合具體應(yīng)用場(chǎng)景進(jìn)一步細(xì)化節(jié)點(diǎn)評(píng)分機(jī)制,構(gòu)建動(dòng)態(tài)網(wǎng)絡(luò)結(jié)構(gòu),增強(qiáng)系統(tǒng)靈活性,提高系統(tǒng)實(shí)用性。

      猜你喜歡
      拜占庭視圖共識(shí)
      共識(shí) 共進(jìn) 共情 共學(xué):讓“溝通之花”綻放
      論思想共識(shí)凝聚的文化向度
      拜占庭帝國(guó)的繪畫(huà)藝術(shù)及其多樣性特征初探
      商量出共識(shí)
      淺談初中歷史教學(xué)中的邏輯補(bǔ)充——從拜占庭帝國(guó)滅亡原因談起
      5.3 視圖與投影
      視圖
      Y—20重型運(yùn)輸機(jī)多視圖
      SA2型76毫米車(chē)載高炮多視圖
      《西方史學(xué)通史》第三卷“拜占庭史學(xué)”部分糾繆
      古代文明(2016年1期)2016-10-21 19:35:20
      吉隆县| 文水县| 探索| 庐江县| 武胜县| 瑞金市| 阿克苏市| 璧山县| 金秀| 东乌珠穆沁旗| 通化县| 综艺| 苍南县| 葵青区| 收藏| 东山县| 枣庄市| 自贡市| 来宾市| 呈贡县| 临江市| 格尔木市| 墨竹工卡县| 工布江达县| 乳源| 平昌县| 克东县| 罗江县| 思茅市| 宾阳县| 班玛县| 乌拉特中旗| 施甸县| 琼海市| 香港 | 横峰县| 南和县| 古交市| 广汉市| 泰和县| 多伦县|