• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于改進Raft 算法的私有鏈模型

    2019-11-30 08:50:24朱漢成
    現(xiàn)代計算機 2019年1期
    關鍵詞:記賬計算結果一致性

    朱漢成

    (四川大學計算機學院,成都610065)

    0 引言

    隨著以比特幣為代表的虛擬數(shù)字貨幣飛速發(fā)展,區(qū)塊鏈作為這個應用的底層關鍵技術受到了國家和科技巨頭們的極大關注。區(qū)塊鏈天生具有去中心化、不可篡改等特性,使其在對數(shù)據(jù)信息安全性要求高的行業(yè)應用前景極其看好[2],現(xiàn)如今很多銀行帶頭做起金融區(qū)塊鏈,螞蟻金服也發(fā)布了落地應用——善款追蹤和商品溯源。但是現(xiàn)在的以太網(wǎng)為代表的區(qū)塊鏈生態(tài)系統(tǒng)的在交易吞吐量等方面遠遠滿足不了當今大部分應用場景的需求。

    共識算法作為區(qū)塊鏈的核心,往往決定著區(qū)塊鏈的出塊效率,如今共識算法發(fā)展的十分全面[1]。現(xiàn)如今以PoW、PoS 算法為主流共識算法的公有鏈,雖然可以很好的保證了安全性,但是效率低下。以Paxos、Raft為代表的傳統(tǒng)一致性算法只能追求在宕機或者網(wǎng)絡問題時仍能保證一致性,但是組織惡意節(jié)點進行破壞攻擊;PBFT 拜占庭容錯算法)則是一種狀態(tài)機副本復制算法,可以防止1/3 以下節(jié)點數(shù)的惡意節(jié)點攻擊,但是卻需要較大的網(wǎng)絡帶寬來保證副本的復制。

    區(qū)塊鏈作為這兩年風頭正熱的新興技術,難以落地一直困擾眾多看好區(qū)塊鏈的政府與企業(yè)。現(xiàn)實的企業(yè)應用中,假如應用不涉及代幣內容,那么我們可能要求的區(qū)塊鏈的交易吞吐量達到一個較高的量級,而不是常見公有鏈以分鐘計來確定一個區(qū)塊。因為主流的公有鏈的區(qū)塊鏈應用不僅效率堪憂,而且浪費大量算力是國家和有責任的企業(yè)不愿意看見的。隨之而來就是大量對聯(lián)盟鏈和私有鏈的研究。聯(lián)盟鏈是多數(shù)機構共同維護一個聯(lián)盟鏈,并且大多使用基于PBFT 的算法,TPS 可以過萬,但是還是容易收到PBFT 算法影響,當節(jié)點個數(shù)過多時,共識難以達成,效率大受影響。私有鏈與聯(lián)盟鏈類似,但私有鏈由單個機構或組織來管理,很多時候默認鏈中節(jié)點是不會成為惡意節(jié)點進行攻擊的。但是私有鏈實際情況之中還是會出現(xiàn)惡意節(jié)點,假如惡意節(jié)點成為記賬節(jié)點,那么對于整個私有鏈是致命的。本文將改進Raft 算法并且應用到我們的私有鏈之中,既保留了算法中快速找出記賬節(jié)點進行記賬,同時保證出現(xiàn)惡意節(jié)點攻擊也能保證系統(tǒng)穩(wěn)定、其他節(jié)點不受影響。

    1 相關工作

    Lamport 首次提出Paxos 算法,用以解決分布式中節(jié)點的一致性問題,雖然后來又在中進行簡化說明,仍然理解起來較為吃力并且難以工程實現(xiàn)。Diego Ongaro 和John Ousterhout[3]提出了Raft 算法,相比于Paxos而言更加簡單理解而且更容易工程實現(xiàn)。一致性是指多個服務器節(jié)點狀態(tài)達成一致,但是在一個分布式的系統(tǒng)之中仍然會出現(xiàn)一些節(jié)點出現(xiàn)宕機等不穩(wěn)定狀況,就難以和其他的服務器保持一致。這時候一致性協(xié)議出現(xiàn)可以保證盡管出現(xiàn)節(jié)點異常,仍然可以保證整個分布式系統(tǒng)正常運行。在Raft 算法中,主要有三個角色:Candidate、Leader、Follower。Candidate 節(jié)點分別向其他的節(jié)點索要選票,如果收到的選票可以達到節(jié)點數(shù)的半數(shù)以上,Candidate 節(jié)點的身份將會升級為Leader,Leader 就可以對其他Follower 節(jié)點進行只會操作。李升林[4]等人也曾改進Raft 算法并且將其用在區(qū)塊鏈中,Raft 算法的簡單高效有著很高的改進余地。本文通過對Raft 算法進行改進以防止惡意節(jié)點攻擊。本文將增加一個Monitor 身份用以接收驗證信息并且此時可以判斷哪些節(jié)點出現(xiàn)問題或者是惡意節(jié)點,達到一定錯誤次數(shù)以后將會進行刪除節(jié)點的操作。Leader 將會把打包的區(qū)塊信息廣播給其他的Follower 節(jié)點,因為每個節(jié)點都會收到所有的交易數(shù)據(jù),那么每個節(jié)點都可以對Leader 打包的區(qū)塊進行一個驗證。每個節(jié)點都會將自己的計算結果廣播給所有的其他節(jié)點,此時所有節(jié)點的身份都將變成Monitor,Monitor 將會進行統(tǒng)計票數(shù),如果收到的計算結果正確的個數(shù)超過半數(shù),則說明Leader 計算的結果正確并且進行記賬,同時各個節(jié)點將會記錄問題節(jié)點,記錄達到一定程度,我們將舍棄此節(jié)點;如果收到計算結果正確的個數(shù)未超過半數(shù),則說明Leader 計算結果出錯,節(jié)點身份將會變成Candidate 再次競爭Leader,至于上一輪Leader 計算結果出錯可能會出現(xiàn)兩種狀況:一是惡意節(jié)點、二是網(wǎng)絡問題導師交易信息不全,各節(jié)點也將記錄此次Leader,如果再次連續(xù)出現(xiàn)問題記錄,下次Monitor 會考慮舍棄此節(jié)點。改進后的算法可以作為私有鏈的共識算法,不僅保留了Raft 本身效率高的特點,而且具有防止惡意節(jié)點攻擊的情況出現(xiàn)。

    2 改進后算法流程

    改進算法中節(jié)點的四個角色:

    Candidate:候選人,可以競選Leader;

    Follower:跟隨者,進行Leader 選舉投票,校驗Leader 打包區(qū)塊的結果;

    Leader:領導者;

    Monitor:監(jiān)視者,收集Leader 和Follow 計算結果的反饋,從而判斷問題節(jié)點進行下一步操作。

    每個節(jié)點都可以同時具有所有角色,不同的過程扮演不用角色。

    (1)Candidate 節(jié)點將進行競選Leader,我們可以進行一些策略避免所有Candidate 節(jié)點同時競選,例如可以參考PoW 算法,產生一定隨機性。當Candidate 收到其他Follower 的返回結果時,統(tǒng)計結果,如果票數(shù)過半,則說明選舉成功。此節(jié)點角色將由Candidate 變?yōu)長eader,具有此次的記賬權。

    (2)Leader 節(jié)點將自己節(jié)點收到的交易信息進行整理、計算、打包成一個區(qū)塊,將計算后的區(qū)塊信息廣播給其他的Follower 節(jié)點。

    (3)所有Follower 收到節(jié)點后的將會根據(jù)自己節(jié)點收到的所有交易信息進行整理、計算,并且與Leader廣播的結果進行比較,然后將自己的結果廣播給其他的所有節(jié)點(包括Leader 節(jié)點)。

    (4)每個節(jié)點會收到其他節(jié)點的所有結果,這個時候節(jié)點的角色將會兼顧著Monitor 的角色。節(jié)點會接收到其他所有節(jié)點的驗證Leader 結果的反饋,會有以下兩種情況:

    ①如果各個節(jié)點收到Leader 計算結果正確的反饋超過半數(shù),節(jié)點就可以將Leader 廣播的區(qū)塊進行記錄上鏈,并且將記錄所有反饋節(jié)點錯誤的節(jié)點,并且進行監(jiān)管,如果連續(xù)出現(xiàn)問題,可能是網(wǎng)絡問題導致所接受的交易信息不夠完整,也有可能節(jié)點攻擊后進行惡意操作,此時各個正常節(jié)點將行使Monitor 的權利,將此節(jié)點除名,保證安全性。

    ②如果各個節(jié)點收到的Leader 計算結果正確的反饋未能超過半數(shù),各個節(jié)點就會重新進入到步驟(1)進行競選Leader,同時記錄Leader 為待驗證問題節(jié)點,而反饋Leader 結果正確的節(jié)點將會被各個節(jié)點直接舍棄,因為一定是被攻擊到的問題節(jié)點。

    相比較原算法而言,本文提出的改進方案多加了一個角色信息,與此角色相對應的增加了校驗Leader節(jié)點計算結果全部節(jié)點校驗和出錯節(jié)點記錄的過程,使得改進后的算法具有的容錯的功能。

    3 對比實驗

    本文將使用改進后Raft 算法作為共識算法的構建私有鏈進行攻擊,確認改進后私有鏈的安全性;并且對比改進算法后構建私有連的交易吞吐量狀況和傳統(tǒng)的公有鏈的交易吞吐量進行對比,體現(xiàn)私有鏈的可用性。

    (1)實驗模擬私有鏈共有五個節(jié)點,并且分別攻擊一個非Leader 節(jié)點、一個Leader 節(jié)點、攻擊兩個節(jié)點,查看私有鏈的運行狀況:

    ①攻擊一個Follower 節(jié)點,其他節(jié)點會正常進行記賬并且記錄此Follower 節(jié)點此次出錯。

    ②攻擊Leader 節(jié)點,Leader 節(jié)點會發(fā)送錯誤信息,其他節(jié)點會發(fā)現(xiàn)計算區(qū)塊信息錯誤并且重新選舉Leader,并且將Leader 記錄此次出錯。

    ③攻擊半數(shù)以上節(jié)點,如果Leader 節(jié)點發(fā)送錯誤信息,其他節(jié)點也會進行記賬加區(qū)塊;如果Leader 節(jié)點計算的區(qū)塊內容是正確的,但是由于作惡節(jié)點占到半數(shù),那么最后每個節(jié)點都會認為Leader 計算結果出現(xiàn)問題,并且重新選舉節(jié)點,并且造成系統(tǒng)癱瘓。

    (2)實驗將計算區(qū)塊生成效率,然后與公有鏈的算法進行比較:

    經過實驗模擬,本文提出基于改進Raft 算法的私有鏈打包區(qū)塊的TPS 可以達到5000 左右,比起主流的區(qū)塊鏈的打包區(qū)塊速度有了質的飛躍,如果進行后期的足夠優(yōu)化,本文提出的方案將可以更加廣泛的應用在各種領域。

    4 結語

    本文對Raft 進行改進并且將其應用到私有鏈之中,既保留原來強一致性的高效,又可以防止惡意節(jié)點的攻擊,為很多私有鏈應用落地提供更多可行性的方案。今后的工作將對Raft 算法進行更多的容錯方面的改進,使其在復雜的網(wǎng)絡環(huán)境保證可用性得到提高,能夠有更強的生命活力;并且能夠改進通信和負載均衡方面的結構,讓私有鏈在通信的時候盡量減小網(wǎng)絡開銷,提高系統(tǒng)的穩(wěn)定性。

    猜你喜歡
    記賬計算結果一致性
    關注減污降碳協(xié)同的一致性和整體性
    公民與法治(2022年5期)2022-07-29 00:47:28
    注重教、學、評一致性 提高一輪復習效率
    IOl-master 700和Pentacam測量Kappa角一致性分析
    記賬類APP
    不等高軟橫跨橫向承力索計算及計算結果判斷研究
    甘肅科技(2020年20期)2020-04-13 00:30:40
    農家參謀(2019年2期)2019-09-10 03:54:02
    基于事件觸發(fā)的多智能體輸入飽和一致性控制
    代理記賬:會計“工學結合”的新動向
    超壓測試方法對炸藥TNT當量計算結果的影響
    火炸藥學報(2014年3期)2014-03-20 13:17:39
    噪聲對介質損耗角正切計算結果的影響
    邳州市| 永德县| 加查县| 安阳县| 蒲江县| 乌海市| 玉龙| 大姚县| 杭州市| 洛扎县| 长沙市| 武威市| 司法| 公安县| 开远市| 新乡县| 盐亭县| 武定县| 清流县| 安西县| 四子王旗| 温州市| 奉新县| 固镇县| 黑河市| 泗洪县| 吴江市| 阿城市| 肇源县| 四子王旗| 柳州市| 新田县| 宁都县| 建湖县| 宁化县| 翁牛特旗| 和硕县| 夏邑县| 芷江| 高州市| 乡宁县|