Go-Ethereum

Eth 2.0 會在 geth (go-ethereum) 中實現還是會在新客戶端上執行?

  • June 11, 2020

Geth 是基於 Go 編碼語言的乙太坊官方實現。目前,有 8 個團隊正在建構 Eth 2.0 https://www.coindesk.com/next-gen-buidlers-the-8-teams-working-on-ethereum-2-0

當 Eth 2.0 正式發佈時,Geth 會被棄用,使用者會被迫使用新的客戶端,還是會在目前客戶端(如 Geth)中實現?

乙太坊 2.0 將與傳統的乙太坊大不相同。

ETH1

2015 年,乙太坊推出了由乙太坊基金會資助的3 個官方客戶。

  • 去乙太坊(Geth)
  • C++-乙太坊 (Eth)
  • Pyethereum (Pyethapp)

值得注意的是,C++ 和 Python 客戶端沿途死亡。C++ 程式碼庫中的一些組件被提取出來並在今天仍然得到維護,最突出的是 Solidity 原始碼。

Python 客戶端完全從頭開始重寫,稱為 PyEVM 或 Trinity。

在生產中,只有 Geth 客戶端以及 Parity Ethereum 客戶端 (Rust) 和 Hyperledger Besu 客戶端 (Java) 很重要。與此同時,Parity 放棄了對乙太坊的支持,而 Gnosis 接管了我們今天稱之為 OpenEthereum 的客戶端,稍微延長了它的生命支持。

ETH2

乙太坊 2.0 不會有官方客戶端,而是有一些第三方客戶端。

Sigma Prime 團隊維護著 Lighthouse 客戶端 (Rust)。PegaSys 團隊維護 Teku 客戶端 (Java) 和 Prysmatic Labs 團隊 Prysm (Go)。

Lodestar 或 Nimbus 等其他客戶將扮演相當小眾的角色或完全停止開發(Shasper、Harmony)。

過渡

也就是說,ETH1 和 ETH2 之間需要有一個介面。因此,Geth 客戶端中會為 ETH2 集成一些組件。從評論中引用彼得:

目前的計劃是讓 Geth 成為一個分片節點,做它最擅長的事情(洗牌交易、區塊和狀態),並讓 ETH2 客戶端參與信標鏈並決定共識。本質上,Geth 進行鏈洗牌,但 ETH2 告訴它要洗牌的鏈。本質上,Geth 分片看起來就像目前的任何其他私有網路(例如 Rinkeby、Goerli),只是將鏈選擇委派出去。至於集成,可能在某些 RPC 上的兩個程序是保持組件可插拔的最明智的變體。

要執行信標節點或驗證器,您需要一個客戶端,例如 Lighthouse 或 Teku。根據我的測試,主要的 ETH2 客戶端都可以與 Geth 支持的 ETH1 節點一起很好地工作。此外,Teku 客戶端還與 Besu 保持了良好的兼容性。

乙太坊 2.0 已經由 Coindesk 文章中提到的團隊根據目前規範實施。

一些實現是:

乙太坊 2.0 將是一條新鏈,為了成為區塊驗證者,您必須在乙太坊 1.0 鏈中質押一些 ETH,因此 Eth1.0 仍然可以照常使用,也可以作為成為新乙太坊一部分的一種方式2.0。

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