如果有人很直接地問你:怎樣才能拓展狀態機復制(
區塊鏈)系統呢?
你應該反問:你系統遇到的瓶頸是什么?數據?共識?還是執行?
1、數據:數據是將所有指令傳輸給所有狀態機副本的載體。舉個例子,如果一個區塊包含 1MB 的指令,那么你就需要把 1MB 的數據發送給所有負責驗證的副本。顯然,這種情況下,系統的通道容量(帶寬)是系統可拓展的瓶頸。
2、共識:指令到達本地之后,狀態機們就會參與共識協議(就像這里所討論的部分同步或者同步協議)。舉個例子,如果一個共識協議需要兩次消息往返,而參與驗證的狀態機分布在全球各地,那么,這里明顯的瓶頸在——由光速和地球大小而導致的延遲。
3、執行:指令到達、共識在指令排序上達成共識后,副本需要執行指令。執行引擎是一個接受舊狀態并應用指令來計算新狀態(并計算輸出)的函數。又舉個例子,如果執行需要許多密碼學計算,那么很明顯啦,這里的瓶頸就是副本要重復執行的密碼學計算。
需要注意的是,這三個瓶頸不是追求一種折衷,也不是兩難的困境,也不是三難困境。它們是彼此獨立的。所有狀態機復制系統的可拓展能力都受到這三種因素的限制(而且像木桶原理一樣,受制于其中條件最差的那一個)。本文將介紹一些解決這些瓶頸的方案。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。