国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

原創| DPOS 3.0 + BFT 為什么需要 2 次 2/3 共識

elva / 2615人閱讀

摘要:提出問題上面所述的只經過了一次共識,那么會出現什么問題呢。這里引進的概念,即資格成為的區塊,簡稱。一個區塊經過共識后,他不會立馬成為會先成為然后再經過共識后才會成為。

很多讀者都很關心 BM 和 V神 在 EOS issue 上對于 DPOS 的機制的討論,接下來我們具體討論下他們的討論內容。

我們先來講述一下最初 EOS 的 DPOS + BFT 的共識機制:當一個特定的區塊被 ( 2/3 + 1 ) 生產者確認的時候,該塊成為不可逆塊。

假設現在有 A, B 和 C 三個 BP。

情況 a: A 生產了一個區塊 N, B 生產區塊 N + 1 并且確認了區塊 N, C 生產區塊 N + 2 并且確認了區塊 N, N +1 , 此時 N 已經有 3 個確認,達到了 2/3 + 1 個確認,則區塊 N 成為不可逆。

情況 b: A 生產一個區塊 Na, B 生產一個區塊 Nb, C 在 Nb 的基礎上生產一個區塊 N + 1, 此時發現 兩個區塊 N( Na 和 Nb ) 都不能達到 2/3 + 1 的確認數了,那豈不是永遠不會不可逆了?假如此時 A 在 N + 1 的基礎上生產區塊 N + 2, B 生產區塊 N + 3, 此時區塊 N + 1 達到了不可逆的,那么 N + 1 所在的該分叉上小于等于 N + 1 的都會變成不可逆, 也就是 Nb 也變成不可逆。

提出問題

上面所述的只經過了一次共識,那么會出現什么問題呢。

V 神就在 issue 上提出一個例子。

可以看出第一條鏈 A 生產的 101 經過 B、C 已經達到了 3 個確認數已經成為不可逆了, 但此時 D 因網絡不好, 沒接收到這些塊, 從而產生分叉開始生產區塊 101 , 之后 A 生產區塊 102 , 因為塊高度大于之前的 101 所以是可生產的,B同理, 經過 A B 之后 D 生產的 101 同樣達到了 三個確認數, 這樣就會有 2 個塊高度為 101 的區塊成為了不可逆,造成 conflict。

為什么會造成這個原因呢?

因為區塊 101 沒有經過所有節點就成為不可逆了, 導致后面的產生的區塊 101 可在下一輪被確認成為不可逆塊。如果說 A ,B ,C ,D 都確認了區塊 101, 那么下一輪誰都沒可能生產塊高度為 101 的區塊。也就不會同時出現 2 個不可逆塊了。 但全部節點確認才成為不可逆這就破壞了引入 BFT 的想法, 而且你沒辦法保證所有節點都會對他進行確認,畢竟網絡波動的原因會一直存在。

那怎么解決不可逆塊沖突, 但是又不會破壞 BFT 的想法呢。

那我們可以繼續使用 BFT 的思想, 也就是破壞掉第二個區塊 101成為 lib 的條件。

PLIB

這里引進 proposed lib的概念, 即資格成為 lib 的區塊,簡稱 plib。
一個區塊經過 2/3 + 1共識后,他不會立馬成為 lib, 會先成為 plib, 然后再 plib 經過 2/3 共識后才會成為lib。

解決問題

由上圖,區塊101 成為了 lib, 那么代表 plib 高度至少是 105 了,也就是 7 個節點中至少有五個生產的區塊高度達到了 110, 這時候,假如一個 E 生產出區塊 101, 那么至少需要 2/3 的節點幫他確認成為 plib,也就是有節點能生成 102 - 105,需要 4 個節點,但是 7 個 BP 已經有 5 個的塊高度達到了 110,根本就不夠節點能讓 區塊 101 成為不可逆, 那么就不會有 2 個 相同 block_num 的 lib 存在了。也就是當 N 能成為 lib 的時候,根本沒有任何情況能讓 2 個 N 同時成為 plib ( 當這里的 N 成為 lib 是排除掉因為 N + m 成為 lib 才使 N 成為 lib 的情況 )。

其實這種方式你可以看成幾條帶 plib 的分叉鏈, BP 節點對這些鏈進行 2/3 共識來選出哪條 plib 分叉鏈作為主鏈,丟棄掉其他 plib 分叉鏈。

總結: dpos 3.0 + BFT 有最初的一次共識增加到了2次,避免掉出現 conflict lib , 但是這也讓 head block num 和 lib 的高度拉到至少 2 2/3 21 * 12 = 336 個塊( 這種計算方式是忽略 BP 漏塊的情況 )。用時間算比較準確也就是 168 秒。 還有不要嫌字跡不清晰, 寫到一半筆沒墨水了,我也沒辦法 T T

以上為個人見解,如有錯誤或者缺漏,還請指正哈。

參考文章:
https://github.com/EOSIO/eos/...
https://medium.com/eosio/dpos...

轉載請注明來源: https://eos.live/detail/19947

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/24534.html

相關文章

  • [原創] 如何理解EOS的性能設計 - 主鏈部分

    摘要:最近看源碼發現跟之前理解有點出入,目前代碼實現上跟白皮書上也有所出入,該文章需要更新修正前言作為的代表,他的設計是比較超前的,也是目前最被看好的項目之一本文從傳統互聯網碼農思維,嘗試講述下的性能方面的設計本文只是涵蓋了基礎主鏈部分,暫不包括 最近看3.0源碼發現跟之前理解有點出入,目前代碼實現上跟白皮書上也有所出入,該文章需要更新修正 前言 EOS作為blockchain 3.0的代表...

    shenhualong 評論0 收藏0
  • Bystack的高TPS共識算法

    摘要:第一類模式是在公鏈項目中運用的最廣泛應用的共識算法,比特幣長達年的運行已充分證明的安全性與穩定性。此時當前區塊已是合法區塊但是未獲得最終確認,類似于比特幣未獲得個塊確認存在回滾的可能性。 showImg(https://segmentfault.com/img/bVbtamO?w=1000&h=600); 共識算法是分布式系統保證節點數據狀態一致性的方法,在區塊鏈的共識算法分POW(工...

    zero 評論0 收藏0
  • BBFT共識算法深度解析丨Bystack是如何實現單條側鏈 20000+TPS的

    摘要:第一類模式是在公鏈項目中運用的最廣泛應用的共識算法,比特幣長達年的運行已充分證明的安全性與穩定性。此時當前區塊已是合法區塊但是未獲得最終確認,類似于比特幣未獲得個塊確認存在回滾的可能性。 showImg(https://segmentfault.com/img/bVbtamO?w=1000&h=600); 共識算法是分布式系統保證節點數據狀態一致性的方法,在區塊鏈的共識算法分POW(工...

    novo 評論0 收藏0
  • 區塊鏈主流共識算法

    摘要:比特幣是第一個區塊鏈應用,同時也是最著名的應用之一,它所使用的共識機制就是。區塊鏈系統的參與者鎖定他們在該區塊鏈上持有的虛擬資產或,他們會簽署消息以達成一致意見。 一.POW(Proof Of Work) Proof Of Work,也就是工作量證明。工作量證明系統(或者說協議、函數),是一種應對拒絕服務攻擊和其他服務濫用的經濟對策。它要求發起者進行一定量的運算,也就意味著需要消耗計算...

    awokezhou 評論0 收藏0
  • 漫談共識機制

    摘要:更多區塊鏈知識共識機制是區塊鏈領域的核心概念,無共識,不區塊鏈。是比特幣采用的共識算法,從誕生起運行至今,表現穩健,是史上最成功的共識算法,沒有之一。挖到礦的礦工同時得到一筆算法賦予的獎勵,也就是一些比特幣。 更多區塊鏈知識 共識機制是區塊鏈領域的核心概念,無共識,不區塊鏈。 區塊鏈作為一個分布式系統,可以由不同的人或機構,將安裝了區塊鏈軟件的計算機(簡稱節點)加入到網絡里,然后共同計...

    Wuv1Up 評論0 收藏0

發表評論

0條評論

elva

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<