成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

原創(chuàng)| DPOS 3.0 + BFT 為什么需要 2 次 2/3 共識(shí)

elva / 2643人閱讀

摘要:提出問(wèn)題上面所述的只經(jīng)過(guò)了一次共識(shí),那么會(huì)出現(xiàn)什么問(wèn)題呢。這里引進(jìn)的概念,即資格成為的區(qū)塊,簡(jiǎn)稱。一個(gè)區(qū)塊經(jīng)過(guò)共識(shí)后,他不會(huì)立馬成為會(huì)先成為然后再經(jīng)過(guò)共識(shí)后才會(huì)成為。

很多讀者都很關(guān)心 BM 和 V神 在 EOS issue 上對(duì)于 DPOS 的機(jī)制的討論,接下來(lái)我們具體討論下他們的討論內(nèi)容。

我們先來(lái)講述一下最初 EOS 的 DPOS + BFT 的共識(shí)機(jī)制:當(dāng)一個(gè)特定的區(qū)塊被 ( 2/3 + 1 ) 生產(chǎn)者確認(rèn)的時(shí)候,該塊成為不可逆塊。

假設(shè)現(xiàn)在有 A, B 和 C 三個(gè) BP。

情況 a: A 生產(chǎn)了一個(gè)區(qū)塊 N, B 生產(chǎn)區(qū)塊 N + 1 并且確認(rèn)了區(qū)塊 N, C 生產(chǎn)區(qū)塊 N + 2 并且確認(rèn)了區(qū)塊 N, N +1 , 此時(shí) N 已經(jīng)有 3 個(gè)確認(rèn),達(dá)到了 2/3 + 1 個(gè)確認(rèn),則區(qū)塊 N 成為不可逆。

情況 b: A 生產(chǎn)一個(gè)區(qū)塊 Na, B 生產(chǎn)一個(gè)區(qū)塊 Nb, C 在 Nb 的基礎(chǔ)上生產(chǎn)一個(gè)區(qū)塊 N + 1, 此時(shí)發(fā)現(xiàn) 兩個(gè)區(qū)塊 N( Na 和 Nb ) 都不能達(dá)到 2/3 + 1 的確認(rèn)數(shù)了,那豈不是永遠(yuǎn)不會(huì)不可逆了?假如此時(shí) A 在 N + 1 的基礎(chǔ)上生產(chǎn)區(qū)塊 N + 2, B 生產(chǎn)區(qū)塊 N + 3, 此時(shí)區(qū)塊 N + 1 達(dá)到了不可逆的,那么 N + 1 所在的該分叉上小于等于 N + 1 的都會(huì)變成不可逆, 也就是 Nb 也變成不可逆。

提出問(wèn)題

上面所述的只經(jīng)過(guò)了一次共識(shí),那么會(huì)出現(xiàn)什么問(wèn)題呢。

V 神就在 issue 上提出一個(gè)例子。

可以看出第一條鏈 A 生產(chǎn)的 101 經(jīng)過(guò) B、C 已經(jīng)達(dá)到了 3 個(gè)確認(rèn)數(shù)已經(jīng)成為不可逆了, 但此時(shí) D 因網(wǎng)絡(luò)不好, 沒(méi)接收到這些塊, 從而產(chǎn)生分叉開(kāi)始生產(chǎn)區(qū)塊 101 , 之后 A 生產(chǎn)區(qū)塊 102 , 因?yàn)閴K高度大于之前的 101 所以是可生產(chǎn)的,B同理, 經(jīng)過(guò) A B 之后 D 生產(chǎn)的 101 同樣達(dá)到了 三個(gè)確認(rèn)數(shù), 這樣就會(huì)有 2 個(gè)塊高度為 101 的區(qū)塊成為了不可逆,造成 conflict。

為什么會(huì)造成這個(gè)原因呢?

因?yàn)閰^(qū)塊 101 沒(méi)有經(jīng)過(guò)所有節(jié)點(diǎn)就成為不可逆了, 導(dǎo)致后面的產(chǎn)生的區(qū)塊 101 可在下一輪被確認(rèn)成為不可逆塊。如果說(shuō) A ,B ,C ,D 都確認(rèn)了區(qū)塊 101, 那么下一輪誰(shuí)都沒(méi)可能生產(chǎn)塊高度為 101 的區(qū)塊。也就不會(huì)同時(shí)出現(xiàn) 2 個(gè)不可逆塊了。 但全部節(jié)點(diǎn)確認(rèn)才成為不可逆這就破壞了引入 BFT 的想法, 而且你沒(méi)辦法保證所有節(jié)點(diǎn)都會(huì)對(duì)他進(jìn)行確認(rèn),畢竟網(wǎng)絡(luò)波動(dòng)的原因會(huì)一直存在。

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

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

PLIB

這里引進(jìn) proposed lib的概念, 即資格成為 lib 的區(qū)塊,簡(jiǎn)稱 plib。
一個(gè)區(qū)塊經(jīng)過(guò) 2/3 + 1共識(shí)后,他不會(huì)立馬成為 lib, 會(huì)先成為 plib, 然后再 plib 經(jīng)過(guò) 2/3 共識(shí)后才會(huì)成為lib。

解決問(wèn)題

由上圖,區(qū)塊101 成為了 lib, 那么代表 plib 高度至少是 105 了,也就是 7 個(gè)節(jié)點(diǎn)中至少有五個(gè)生產(chǎn)的區(qū)塊高度達(dá)到了 110, 這時(shí)候,假如一個(gè) E 生產(chǎn)出區(qū)塊 101, 那么至少需要 2/3 的節(jié)點(diǎn)幫他確認(rèn)成為 plib,也就是有節(jié)點(diǎn)能生成 102 - 105,需要 4 個(gè)節(jié)點(diǎn),但是 7 個(gè) BP 已經(jīng)有 5 個(gè)的塊高度達(dá)到了 110,根本就不夠節(jié)點(diǎn)能讓 區(qū)塊 101 成為不可逆, 那么就不會(huì)有 2 個(gè) 相同 block_num 的 lib 存在了。也就是當(dāng) N 能成為 lib 的時(shí)候,根本沒(méi)有任何情況能讓 2 個(gè) N 同時(shí)成為 plib ( 當(dāng)這里的 N 成為 lib 是排除掉因?yàn)?N + m 成為 lib 才使 N 成為 lib 的情況 )。

其實(shí)這種方式你可以看成幾條帶 plib 的分叉鏈, BP 節(jié)點(diǎn)對(duì)這些鏈進(jìn)行 2/3 共識(shí)來(lái)選出哪條 plib 分叉鏈作為主鏈,丟棄掉其他 plib 分叉鏈。

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

以上為個(gè)人見(jiàn)解,如有錯(cuò)誤或者缺漏,還請(qǐng)指正哈。

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

轉(zhuǎn)載請(qǐng)注明來(lái)源: https://eos.live/detail/19947

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/24534.html

相關(guān)文章

  • [原創(chuàng)] 如何理解EOS的性能設(shè)計(jì) - 主鏈部分

    摘要:最近看源碼發(fā)現(xiàn)跟之前理解有點(diǎn)出入,目前代碼實(shí)現(xiàn)上跟白皮書(shū)上也有所出入,該文章需要更新修正前言作為的代表,他的設(shè)計(jì)是比較超前的,也是目前最被看好的項(xiàng)目之一本文從傳統(tǒng)互聯(lián)網(wǎng)碼農(nóng)思維,嘗試講述下的性能方面的設(shè)計(jì)本文只是涵蓋了基礎(chǔ)主鏈部分,暫不包括 最近看3.0源碼發(fā)現(xiàn)跟之前理解有點(diǎn)出入,目前代碼實(shí)現(xiàn)上跟白皮書(shū)上也有所出入,該文章需要更新修正 前言 EOS作為blockchain 3.0的代表...

    shenhualong 評(píng)論0 收藏0
  • Bystack的高TPS共識(shí)算法

    摘要:第一類模式是在公鏈項(xiàng)目中運(yùn)用的最廣泛應(yīng)用的共識(shí)算法,比特幣長(zhǎng)達(dá)年的運(yùn)行已充分證明的安全性與穩(wěn)定性。此時(shí)當(dāng)前區(qū)塊已是合法區(qū)塊但是未獲得最終確認(rèn),類似于比特幣未獲得個(gè)塊確認(rèn)存在回滾的可能性。 showImg(https://segmentfault.com/img/bVbtamO?w=1000&h=600); 共識(shí)算法是分布式系統(tǒng)保證節(jié)點(diǎn)數(shù)據(jù)狀態(tài)一致性的方法,在區(qū)塊鏈的共識(shí)算法分POW(工...

    zero 評(píng)論0 收藏0
  • BBFT共識(shí)算法深度解析丨Bystack是如何實(shí)現(xiàn)單條側(cè)鏈 20000+TPS的

    摘要:第一類模式是在公鏈項(xiàng)目中運(yùn)用的最廣泛應(yīng)用的共識(shí)算法,比特幣長(zhǎng)達(dá)年的運(yùn)行已充分證明的安全性與穩(wěn)定性。此時(shí)當(dāng)前區(qū)塊已是合法區(qū)塊但是未獲得最終確認(rèn),類似于比特幣未獲得個(gè)塊確認(rèn)存在回滾的可能性。 showImg(https://segmentfault.com/img/bVbtamO?w=1000&h=600); 共識(shí)算法是分布式系統(tǒng)保證節(jié)點(diǎn)數(shù)據(jù)狀態(tài)一致性的方法,在區(qū)塊鏈的共識(shí)算法分POW(工...

    novo 評(píng)論0 收藏0
  • 區(qū)塊鏈主流共識(shí)算法

    摘要:比特幣是第一個(gè)區(qū)塊鏈應(yīng)用,同時(shí)也是最著名的應(yīng)用之一,它所使用的共識(shí)機(jī)制就是。區(qū)塊鏈系統(tǒng)的參與者鎖定他們?cè)谠搮^(qū)塊鏈上持有的虛擬資產(chǎn)或,他們會(huì)簽署消息以達(dá)成一致意見(jiàn)。 一.POW(Proof Of Work) Proof Of Work,也就是工作量證明。工作量證明系統(tǒng)(或者說(shuō)協(xié)議、函數(shù)),是一種應(yīng)對(duì)拒絕服務(wù)攻擊和其他服務(wù)濫用的經(jīng)濟(jì)對(duì)策。它要求發(fā)起者進(jìn)行一定量的運(yùn)算,也就意味著需要消耗計(jì)算...

    awokezhou 評(píng)論0 收藏0
  • 漫談共識(shí)機(jī)制

    摘要:更多區(qū)塊鏈知識(shí)共識(shí)機(jī)制是區(qū)塊鏈領(lǐng)域的核心概念,無(wú)共識(shí),不區(qū)塊鏈。是比特幣采用的共識(shí)算法,從誕生起運(yùn)行至今,表現(xiàn)穩(wěn)健,是史上最成功的共識(shí)算法,沒(méi)有之一。挖到礦的礦工同時(shí)得到一筆算法賦予的獎(jiǎng)勵(lì),也就是一些比特幣。 更多區(qū)塊鏈知識(shí) 共識(shí)機(jī)制是區(qū)塊鏈領(lǐng)域的核心概念,無(wú)共識(shí),不區(qū)塊鏈。 區(qū)塊鏈作為一個(gè)分布式系統(tǒng),可以由不同的人或機(jī)構(gòu),將安裝了區(qū)塊鏈軟件的計(jì)算機(jī)(簡(jiǎn)稱節(jié)點(diǎn))加入到網(wǎng)絡(luò)里,然后共同計(jì)...

    Wuv1Up 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<