8 2 EOS區塊共識流程

2021-09-22 01:29:03 字數 1940 閱讀 8426

eos共識分為兩個部分:

prduce block: 生產節點生產的區塊

confirm block: 生產節點要確認的區塊(本地生產+接收到的塊)

accept block: 非生產節點接收到的區塊

plib: 加入到備選的不可逆塊序號

lib: 最終的不可逆區塊序號

下面的舉例不考慮網路延遲導致的漏塊情況:

假如有a,b,c,d四個生產者按a->b->c->d順序出塊,每個節點出12個塊,eos啟動後,此時a為生產者,a先出12個塊,自己會把1-12的塊確認一次,並分別發給b,c,d,此時節點b,c,d只接收塊,即b,c,d每個節點上都有序號為1->12塊待確認;

生產者切換到b後,b開始生產塊的序號為13->24,總共12塊,此時b會把a發來的1->12的塊確認,並把自己生產的序號為13->24的塊確認一次,並發給a,c,d,此時節點a生產的序號為1->12的塊被確認兩次,收到序號為13->24的塊,節點c,d上有新接收的13->24的塊,即有序號為1->24的塊待確認;

生產者切換到c後,c開始生產塊,生產塊的序號為25->36,總共12塊,此時c會把a發來的1->12的塊和b發來的序號為13->24的塊確認,此時節點a生產的序號為1->12的塊已經被確認了三次,b生產的序號為13->24的塊已經被確認了兩次,c並把自己生產的序號為25->36的塊確認一次,並發給a,b,d,此時a節點接收到序號為25->36的塊,即有序號為13->36的塊待確認;b節點接收到序號為25->36的塊,即有序號為25->36的塊待確認; d節點接收到序號為25->36的塊,即有序號為1->36的塊待確認;

此時節點a生產的序號為1->12的塊被確認了三次,因為有四個節點,那麼需要確認(4*2/3 + 1 = 3)即需要被確認三次,即可成為備選不可逆塊。 此時,生產者為c,序號為12的塊成為備選不可逆塊,會被加入到備選不可逆區塊列表中;

生產者切換到d後,依次按照此邏輯進行共識,序號為24的塊就會被加入到備選不可逆區塊列表中;

生產者切換到a後,依次按照此邏輯進行共識,序號為36的塊就會被加入到備選不可逆區塊列表中;

生產者切換到b後,依次按照此邏輯進行共識,序號為48的塊就會被加入到備選不可逆區塊列表中;

根據上面的描述,可以知道c節點確認出的備選不可逆塊序號為12,d節點確認出的備選不可逆塊序號為24,a節點確認出的備選不可逆塊序號為36,b節點確認出的備選不可逆塊序號為48;

此時,備選不可逆塊列表中的內容為:[12,24,36,48],根據eos中給出的演算法,從小到大排序,取1/3處,那麼12為最終的不可逆塊序號。

eos共識需要理解以下三點:

各個節點需要共識出備選不可逆塊。

從備選不可逆塊列表中選出最終的不可逆區塊。

乙個區塊成為最終的不可逆塊序號,經過了2輪(2/3+1)的確認。

區塊鏈研究總結 EOS

本文為區塊鏈技術總結及發展展望一文的子章節。業內對於誰是第三代區塊鏈系統代表還沒達成一致,不過eos絕對是個不可忽視的競爭者。eos致力於解決以太坊使用過程的一系列痛點,推動去中心化應用的發展。eos由bm github賬號bytemaster 通過史上最大規模ico專案發起,目標是成為區塊鏈世界的...

EOS區塊鏈映象區塊快速同步 snapshots

開啟區塊映象 選擇 若要在 ubuntu linux 中,可以使用 apt 來安裝 zstandard 壓縮工具 ubuntu 安裝 zstd 壓縮工具 sudo apt get install zstd 若在 centos linux 中,則可使用 yum 安裝 centos 安裝 zstd 壓縮...

區塊鏈 EOS 環境的搭建

目錄概述 開始編譯並安裝 如上圖,目標是主要包含幾個工具 nodeos eos的核心部分,能夠提供各種api服務,能夠同步節點。cleos 是用於給使用者操作的部分,只要nodeos配置好並執行後,都是通過cleos對其進行呼叫的 當然也可以呼叫別的節點的nodeos介面 keosd 用於安全儲存使...