天天看點

DAPP開發-共識的作用

每條區塊鍊的節點,例如以太坊節點,都擁有自己存儲資料的地方,節點之間索然會互相通信,擔憂彼此不依賴,這就是因為互不信任.

在這種情況下,各個節點如何保互相通信的過程中維護資料的一緻性,進而使鍊上相同區塊号的區塊隻有一個呢?此時就誕生了區塊鍊技術占中的另一個知識點:共識,又稱共識機制.

所謂共識,通俗來講,就是我們大家對某種事物的了解達成一緻的意思,比如日常快回讨論問題,又比如判斷一個動物是不是貓,我們肉眼看了後覺得像貓,那麼我們就認為他是貓,這就是是共識,共識就是一種規則.

技術上訴會議的栗子,參與會議的人,通過開會的方式達到接近問題的目的.對比區塊鍊中的參與挖礦的節點,節點中有挖礦這麼一種角色,他在代碼中對應某一處功能子產品.節點礦工通過某種公式算法來解決該節點的賬本與其他節點的賬号保持一緻.賬本保持一緻的意思是:各個節點同步的區塊的資訊保持一緻,已維護同一條區塊鍊.

那麼為什麼需要共識呢?沒有共識可不可以?當然不可以,這樣會出現問題,加入生活中沒有了共識規則,那麼一切都會亂套,區塊鍊與此類似,沒有了共識規則,各個節點各幹各的,會失去一緻性,區塊鍊也不會達成統一.

上次會議和區塊鍊的對應關系如下BTC為例:

a.參會的人=挖礦的曠工

b.開會=共識算法

c.解決讨論的問題=讓自己的賬本跟其他節點保持一緻

有上訴所說的你可能會對上面的内容産生一些疑問:

a.區塊鍊節點和曠工是什麼關系?

b.讓及诶單賬本保持一緻,賬本的内容是什麼?

c.為什麼需要工時算法去保持賬本一緻?

首先,我們來看一些區塊鍊和曠工的關系.曠工是區塊鍊節點的一個角色,從程式設計的角度來看,就是程式中的一個功能子產品.是以可見,曠工與區塊鍊就是包含于被包含的關系.

其次,然工商本保持一緻,賬本的内容是什麼?賬本的内容就是所有節點維護的那條公鍊中的區塊資訊和區塊的相關資訊.要保持這條公鍊不會出錯,塊與塊之間必須正常相連.

最後,為什麼需要共識算法來保證賬本的一緻呢?因為區塊會北街店中的一些功能子產品生成,在衆多節點且相同的時間流逝中,A節點有可能誕生一個區塊1,B節點也有可能誕生一個區塊1,這樣他們但是也難怪的區塊号就發生重複了,在一條公鍊中,相同的區塊号最終隻會挑選一個連接配接到鍊中,這時候取誰好呢?此時就需要共識算法這一條規則來做出選擇了,這個選擇大緻上如下圖:

DAPP開發-共識的作用

繼續閱讀