Blockchain

礦工是否必須儲存整個區塊鏈?

  • December 15, 2020

我在閱讀乙太坊白​​皮書時遇到了這一段。

乙太坊可能會遭受類似的增長模式,由於乙太坊區塊鏈之上將有許多應用程序而不是像比特幣那樣只是一種貨幣這一事實而惡化,但由於乙太坊全節點需要儲存這一事實而有所改善只是狀態而不是整個區塊鏈歷史。

現在這篇文章說乙太坊全節點儲存完整的區塊鏈。

我很好奇礦工節點如何驗證區塊。那麼,礦工不儲存整個區塊鏈歷史,只儲存最新的系統狀態?

擁有“完整”區塊鏈有兩種方法:完整節點和存檔節點。

全節點是 99% 的礦工使用的,因為它使用的空間更少且更容易。Full 基本上完成了你所期望的所有事情:驗證、探勘、執行。他們儲存最近的狀態並且對歷史狀態不感興趣,即使他們確實儲存了所有的交易和區塊數據。

存檔節點的作用是它還儲存所有中間狀態。所以這個過程非常類似於一個完整的節點,但狀態數據不會被丟棄。

正如我所說,通常一個完整節點就足夠了,因為您對最近的狀態感興趣。但是,如果您需要詢問諸如“地址 X 在塊 Y 有多少乙太幣”之類的問題,您可以直接從存檔節點檢查塊 Y 的狀態 - 但如果您需要從完整節點詢問相同的問題,則節點基本上必須在塊 Y 之前重新執行每筆交易來計算狀態。

至於節點大小,這裡是完整節點(600GB):https ://etherscan.io/chartsync/chaindefault ,這裡是存檔節點(6TB):https ://etherscan.io/chartsync/chainarchive

引用自:https://ethereum.stackexchange.com/questions/91152