編者注:「以太坊客戶端」一般指的是一套軟件,可用於幫助用戶在計算機上下載以太坊區塊鏈(即以太坊歷史上的交易記錄)並參與到以太坊網絡中,與網絡中的其它計算機達成共識、保持同步(即對最新的交易記錄達成一致)。到目前爲止,以太坊 1.0 有多種客戶端軟件,包括 Geth、Parity·Ethereum、cpp-ethereum 等。

Geth 客戶端的 1.9.0 版本開發了很長時間,可喜的是,長時間的開發換來的是以太坊客戶端性能的全面提升。Geth 1.9.0 版本發佈後,受到廣泛的好評。下面這條長推特即是 Lefteris Karapetsas 給 Geth 1.9.0 寫的凝練版更新說明。

原文標題:《通告 | Geth 1.9.0 發佈!性能全面提升》
作者:Lefteris Karapetsas
翻譯 & 校對:曾汨 & 阿劍

1/X: #ethereum geth v1.9.0 剛剛發佈了。該版本包含了大量的更新。但是發佈帖(https://blog.ethereum.org/2019/07/10/geth-v1-9-0/)太長了,可能很多人都直接跳過不讀了。那麼我在這裏寫一個總結性的帖子給你們。

2/X:性能得到全面提高。LevelDB 的 GO 語言實現,賬戶 / 存儲樹(trie)的訪問模式,EVM 代碼的分析和優化、數據庫模式的分析和優化,這些是全方位的性能提升。

以太坊發佈 Geth 1.9.0 ,性能全面提升

3/X:快速同步(Fast Sync)基準測試

在 4 小時 8 分鐘內完成同步(比 v1.8.27 快 7 小時 12 分鐘)

所佔硬盤大小:131GB (比 v1.8.27 少 45GB)

以太坊發佈 Geth 1.9.0 ,性能全面提升

4/X:完全同步(Full Sync)基準

在 6 天 8 小時 7 分鐘內完成同步(與 v1.8.27 類似,但僅使用了 1/3 的內存,且消除了虛假內存峯值(spurious memory peaks))

所佔硬盤大小:303GB (比 v1.8.27 少 38GB)

以太坊發佈 Geth 1.9.0 ,性能全面提升

5/X:Archive 節點同步基準

在 13 天 19 小時內完成同步(比 v1.8.27 快大約 59 天!!!)

所佔硬盤大小:2.32TB (比 v1.8.27 少 0.25TB)

以太坊發佈 Geth 1.9.0 ,性能全面提升

6/X:Freezer (冷藏室)

數據庫現在分爲兩部分:

  1. 最近的區塊和狀態保存在 LevelDB 的快速鍵值存儲中。適合 SSD。
  2. 3 個輪次(epoch)以前的區塊和收據被移動到定製的冷藏室數據庫中,不會被頻繁訪問。適合 HDD。

7/X:GraphQL 引入了一種全新的基於 GraphQL 的節點查詢接口。使用 GraphQL,用戶可以只查詢他們需要的數據,同時仍保持計算和數據傳輸的開銷最小化。

以太坊發佈 Geth 1.9.0 ,性能全面提升

8/X:額外的硬件錢包支持

  • 支持 @Ledger Nano X
  • 支持更新的 @Trezor One

9/X:Geth 現在支持 status keycard @ethstatus keycard 自帶加密系統,且能被當做借記卡或其他 POS 系統使用。

10/X:Clef Clef 是一個獨立的交易簽名器。Clef 背後的思想是將帳戶管理與其他客戶端功能分開。它通過 IPC 或 HTTP 暴露了一個輕巧的 API,因此可被許多其它項目用作簽名工具。

11/X:你可以在 1.9.0 發佈帖上了解到很多關於 Clef 的信息,但我認爲 Clef 中最神奇的功能,就是它使用加密鍵值存儲和 Javascript
規則引擎實現了無口令簽名甚至自動確認!!

12/X:Geth v.1.9.0 附帶一個超輕型客戶端:hackmd.io/@GMFZzCl1SH6s2 …。這是一條介於可信服務器和輕服務器之間的中間道路,它使用了來自一組可信服務者的多數簽名來替代 PoW 驗證。

13/X:輕客戶端的硬編碼檢查點如今被鏈上預言機所取代。輕客戶端現在可以向輕服務器請求檢查點,輕客戶端會負責詢問鏈上預言機獲得最新檢查點。

14/X:Geth 對其所有子系統和事件的監控都得到了重塑和升級。你可以手動配置自己的節點要採用哪些指標、如何暴露出這些數據以及它們如何呈現。閱讀文章瞭解更多細節。

以太坊發佈 Geth 1.9.0 ,性能全面提升

15/X:從 geth v.1.9.0 開始,Puppeth 私有網絡部署工具將整合一個網絡瀏覽器!它本質上就是 @poanetwork 做的 BlockScout 資源管理器。

16/X:這篇文章(指 1.9.0 發佈帖)還提到,他們正在開發一個全新版本的以太坊節點發現協議,使其能適應當前我們擁有多個網絡、分叉、非存檔節點以及其它事物的狀態。https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md

17/X:在新的發現協議準備就緒並推出之前,geth v1.9.0 向舊的發現協議提供了兩個 ENR 擴展:1. 可以同時支持兩種版本的 IP 協議
2. 節點現在可以公佈其鏈的配置,以增加可發現性。

18/X:自從 Frontier 推出以來,首次推出了一組新的以太坊網絡啓動節點!

以太坊發佈 Geth 1.9.0 ,性能全面提升

19/X:你可以在文章或更改日誌中讀到更多細微的更改。對我而言,這個版本不亞於是 #ethereum 生態系統和路線圖的一個新里程碑。

20/X:將榮譽獻給 @peter_szilagyi @mhswende @nicksdjohnson @realLedgerwatch@zsfelfoldi @gballet Felix Lange,Matthew Hallpern,Guillaume Ballet,Andrea Franz,Gary Rong,Maxim Krasilnikov,Ayrat Badykov,Frank Szendzielarz,Andrei
Maiboroda,Antoine Toulme,Age Manning,Tomasz Stańczak

21/X:…以及其他貢獻者!順帶說一下,如果以上任何一個人有 Twitter 賬號,請關注他們。