eos的共識機制由傳統的dpos (委託權益共識)公升級到bft-dpos(拜占庭容錯-委託權益共識)
eos 由21個節點(見證人,出塊者)參入。
傳統:dpos 的特點:
1、每3秒生產乙個區塊,每個出塊者生產乙個區塊。出塊順序是無序的。
2、 dpos的演算法中,每乙個區塊需要21個出塊者中的三分之二以上的(大於等於14)的出塊者承認,才會永久有效,不可逆。
比如: a 出塊後,e如何認同a所出的塊呢,那麼就是e出塊的時候(e在a出的塊的基礎上自己出了乙個塊)他認可了a所出的塊。
如果c要出塊了,那就代表著,他認同了之前的所有的塊。
那a所出的塊(比如3007),如何被認定不可逆(永久有效)呢?那就是需要後來的至少14個見證人認可他是有效的才行,那時間就是至少15*3=45秒。
為什麼是15不是14,因為是這筆交易產生後,3007這個區塊生成也許要3秒,就是說包含此交易的區塊,也要算乙個區塊,所以是15。
雖然出塊者出塊(比如3007)後,是可以廣播,但是其他的出塊者,即使收到廣播,但是沒有輪到自己出塊,他也無法對該塊(3007)進行認可的。
認可的手段:是必須輪到自己出塊,並且在前乙個塊的基礎上,產生新的塊,才認可前面的塊。這是認可的機制。
綜上:確認的速度慢。
利用bft 進行改進:
a出塊(3007)了後,立馬廣播,這個時候,a會向所有見證人索要認可(確認) ,不需要等到下乙個見證人出塊的時候才能認可,直接讓其他見證認對該塊(3007)的認可。這樣就非常快了,如果有超過14個見證認認可,就表明該塊(3007)就是不可逆的了,時間估計只要3秒鐘(該交易自己的塊生成時間)。
bft-dpos(帶有拜占庭容錯的委託權益共識)的特點:
1、每0.5秒出乙個塊。每個出塊者連續生產6個快(間隔時間是0.5秒)。總共3秒。
2、21個節點順序出塊,自己擬定出塊順序。(隨機的話,0.5時間不夠,存在需要出塊的節點都還沒有接收到上乙個出塊的資訊,時間就到了,所以每個出塊者出6個塊)
3、6個塊如果在規定的時間沒有被下乙個見證者全部收到(比如收到4個塊,還有兩個2塊沒有收到),就出現分叉了,接收的見證人就會在接收到的塊(比如4塊)的最後乙個塊的基礎上生產6個塊,並發給其他見證人認可,通過拜占庭演算法,最長的鏈為主鏈,那麼後面的產生的塊都會回到主鏈上來。
eos採用的共識機制是 EOS共識機制
eos在第一版 中使用的dpos共識機制,而在新一版的白書中,對共識機制進行了改進,使用bft dpos混合共識機制。使出塊速度從原來的3秒變為0.5秒,tps顯著提高,達到測試3590次 秒。eos第一版共識機制dpos eos現在系統執行的鏈用的共識機制是第一版 的,也就是純dpos共識機制。d...
EOS共識總結
1 eos 每500毫秒出乙個塊,每個生產節點連續出12個塊,然後切換到下一節點生產。2 eos需要兩輪共識 新生產 接收的塊會放入記憶體塊分叉資料庫fork db中,等待共識。單節點不可逆塊 我們把完成第一輪共識的塊,叫做單節點不可逆塊。全網不可逆塊 完成第二輪共識的塊,叫全網不可逆塊。完成兩輪共...
8 2 EOS區塊共識流程
eos共識分為兩個部分 prduce block 生產節點生產的區塊 confirm block 生產節點要確認的區塊 本地生產 接收到的塊 accept block 非生產節點接收到的區塊 plib 加入到備選的不可逆塊序號 lib 最終的不可逆區塊序號 下面的舉例不考慮網路延遲導致的漏塊情況 假...