• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 百科 查看內容
    • 15804
    • 0
    • 分享到

    迅雷鏈介紹——共識算法

    2018-5-28 14:29

    來源: 區塊鏈游戲大全 作者: 小謝

    迅雷鏈共識算法


    迅雷鏈采用了同構多鏈架構,將不同的賬戶錨定在不同的同構鏈上,然后接入層將交易路由到發送方所在的鏈上進行區塊打包與共識。

    共識成功的區塊中的交易會根據接收方所在的鏈的不同,跨鏈轉發到相應的鏈上。若交易接收方與發送方同屬于一條鏈,則不再進行交易轉發。

    在每一條同構鏈上,驗證人節點對打包好交易的區塊進行共識。共識采用優化過的 PBFT 算法。


    以處于某一區塊高度的共識操作為例,由于共識的達成需要超過 2/3 的節點確認,因此每一次共識可能需要多輪投票才能達成。

    與傳統的 PBFT 算法類似,對于每一輪共識操作,又包括三個階段: Propose,Prevote 和 Precommit。

    當在某一輪達成共識(收到+2/3 的 Precommit 投票)后,就會進入對下一個高度的共識,從第 0 輪開始。下面簡單介紹下詳細的步驟:

    首先介紹一個鎖定區塊的概念,表示在某個特定的高度和輪數,節點對某個塊收到超過節點總數 2/3 的 Prevote 投票集合后,則此節點對于此高度此輪的區塊進行鎖定。也就是說,節點以鎖定區塊來表示對某一個區塊的認可。

    Propose 階段:系統中所有驗證人節點輪流作為提議者提出提議,而系統中非提議者的節點在收到提議后,就會進入 Prevote 階段。如果當前節點此前存在已鎖定區塊,則還需要收集所有針對已鎖定區塊的 Prevote 投票。

    PreVote 階段:當節點進入到 Prevote 階段后,每個節點廣播自己的PreVote 投票。

    具體的,如果當前區塊高度或投票輪數高于此前已鎖定的區塊高度或輪數,則將原鎖定的區塊進行解鎖。

    如果此時節點仍含有未解鎖的區塊,則對此鎖定的區塊投 PreVote 投票。或者如果節點收到合法的 Propose 區塊,則對此區塊投 ProVote 投票。

    當階段超時或者接收到大于 2/3 的針對某個塊的投票后,則節點鎖定此區塊并進入。

    PreCommit 階段:當節點存在已鎖定區塊,則對此區塊投 PreCommit 投票。當節點收到針對已鎖定區塊大于 2/3 的 PreCommit 投票是,就可以將這個塊 Commit,并且進入針對下一個高度塊的共識。

    若 PreCommit 階段定時器超時,則節點保存已鎖定區塊,然后重新返回到 Propose 階段。

    各節點通過在以上階段上循環,對區塊進行一致性共識。與 PBFT 算法類似,迅雷鏈共識也經過了三階段提交,但通過引入區塊鎖定操作,通過緩存待確認區塊,降低了未達成共識情況下重復通信區塊帶來的網絡壓力,從而提升了共識效率。
    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    1234567
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频