編者註:感謝ETH 中文站翻譯了以太坊基金會發出的 “倫敦” 升級公告以及Geth 客戶端團隊的版本更新聲明。需要補充的是:原公告發佈於7 月15 日,而7 月21 日Ropsten 測試網上出現了共識事故,因此,本文內建議的客戶端版本已經過時,運行節點的朋友應該獲得自己所用客戶端的最新版本。以13.5 的平均出塊時間計算,“倫敦” 升級將在北京時間8 月5 日晚上7 時許激活。

3. 以太坊區塊的Gas Limit 是出塊節點在本地設置參數博弈出來的,設置低於/高於當前大小的值即表示支持減小/增大區塊,並會在自己所出的區塊中反映出來。在EIP-1559 通過之後,Base Fee 的調整將總是以50% 的區塊利用率為目標,因此,如果你作為出塊節點,你認為合適的單塊Gas 消耗量是100,就應該在本地把gas limit 設為200,以此類推。公告和Geth 團隊建議的數值僅有說明意義。不論節點具體設置了什麼值,都不會因此進入另一個分叉。

來源| Ethereum Blog

作者| Tim Beiko

譯者按:除了倫敦主網升級的公告外,ECN 還翻譯了Geth 客戶端v1.10.5 里關於此次倫敦升級,不同相關行動者需要注意的代碼變更。

倫敦升級的測試網成功部署後,現在已經準備好在以太坊主網上激活了。它將在區塊高度12 965 000 激活,時間大概在2021 年8 月3-5 日。

客戶端版本

為了與倫敦升級兼容,節點運營者將需要升級其運行的客戶端版本。下面列出的每個客戶端版本支持以太坊主網的倫敦升級。注意:下列版本不同於《倫敦測試網公告》中所列出的客戶端版本,測試網的客戶端版本並不支持主網倫敦升級的客戶端版本。

注意:OpenEthereum 客戶端將倫敦升級後棄用。 OE 團隊正在與Erigon 合作,為用戶提供一個平穩的過渡路徑。更多信息點擊這裡查看。

礦工請注意:倫敦升級將改變在網絡如何處理gas limit 目標的方式。請參閱下文中“作為一名礦工,我需要做什麼?”的部分了解詳情。

倫敦EIPs

下列EIPs 是倫敦升級的內容:

EIP-1559:ETH 1.0 費用市場變更EIP-3198:BASEFEE 操作碼EIP-3529:減少gas 返還EIP-3541:拒絕以0xEF 字節開頭的新地址EIP-3554:難度炸彈延遲至2021 年12 月

Ethereum Cat Herders 發布了一篇博客文章,討論了這些EIPs 的細節。

值得注意的是,雖然EIP-1559 可以與當前的交易格式向後兼容,但是它引入了對區塊頭的更改,添加了新的交易類型,提供了新的JSON RPC 端點,並在幾個方面改變了客戶端的行為(挖礦、交易池等等)。強烈建議各個項目熟悉這個EIP。與EIP-1559 相關的更廣泛的資料列表可以點擊此處查閱。

尋bug 賞金

為了讓更多人關注即將到來的倫敦升級,所有與倫敦升級相關的bug 的獎金都會翻倍,直到升級開始。可以領取雙倍賞金的例子有以下這些客戶端之間的跨客戶端共識問題:Geth、Besu、Nethermind、OpenEthereum 和Erigon。有關bug 賞金範圍和限製完整詳細信息,請參閱:https://bounty.ethereum.org/#rules。

FAQ

Q: 作為以太坊的用戶或ETH 持有者,我有什麼可以做的嗎?

如果你使用交易所(比如Coinbase、Kraken 或Binance)、網頁錢包服務(比如Metamask、MyCrypto、或MyEtherWallet) ,移動端的錢包服務(比如Coinbase Wallet、Status.im、或Trust Wallet)、或硬件錢包(比如Ledger, Trezor, or KeepKey),你不需做任何事情,除非你的交易所或錢包服務商通知你採取額外步驟。如果你運行自己的以太坊節點,你需要升級你的節點。請看下文“作為一個非挖礦節點,我需要做什麼?”部分。

Q: 作為一個非挖礦節點,我需要做什麼?

下載以太坊客戶端的最新版本,已在上文表格中列出。

Q: 作為一個礦工,我應該做什麼?

首先,下載你的以太坊客戶端最新版本。然後,你需要手動把gas limit 目標設為現在的兩倍。這是因為一旦倫敦升級部署了,區塊大小會變成現在的兩倍,而EIP-1559 會保持區塊容量大約50% 滿。這可以在所有提供與主網兼容挖礦的客戶端上通過JSON-RPC 來實現,無須重啟你的節點。

例如,如果倫敦升級以前你把區塊大小設為15m gas,你將需要把gas limit 設為30m,以維持平均每個區塊的交易數量一致。如果你不在區塊12 965 000 修改gas limit 目標,你便會開始在網絡裡降低你的區塊大小。下表提供了每個客戶端的特定API,你需要用它們來更新你的gas limit 目標。

注意:Nethermind、Erigon 和EthereumJS 目前還不支持在以太坊主網上挖礦。

Q: 如果我是一個礦工或節點運行者且不參與升級,會怎麼樣?

如果你正在使用以太坊客戶端但不升級到(上文所列的)最新版本,升級後你的客戶端同步的是分叉前的區塊鏈數據。你會停滯在一條遵循舊規則的、不兼容的鏈上,且將無法發送ETH 或在升級後的以太坊網絡上操作。

Q: 在以太坊上網絡升級意味著什麼?

網絡升級意味著以太坊底層協議的一次變更,創建新規則來完善系統。區塊鏈系統的去中心化本質使得網絡升級變得更難。區塊鍊網絡升級的順利進行需要與社區以及各個以太坊客戶端開發者進行協作和溝通,以使過渡順利進行。

Q: 網絡升級過程會發生什麼?

當社區就哪些變更需要被納入到升級上達成共識時,這些對協議的變更會被寫入各個以太坊客戶端,例如geth、Erigon、Besu 和Nethermind。協議變更會在一個特定的區塊高度上啟動。任何沒有升級到新規則的節點將在舊鏈上被遺棄,而舊鏈繼續保有之前的規則。

Q: 為什麼是“倫敦”?

在伊斯坦布爾升級後,我們定下來的網絡升級名字都用完了。有人建議我們用舉辦Devcon 的城市命名,於是我們就用了。柏林是舉辦Devcon 0 的城市,下一次升級的名字是舉辦Devcon 1 的城市——倫敦。

致謝

特別感謝參與到倫敦升級的研究、計劃、實現、測試、修復、再測試、部署、壓力測試,以及以其他任何形式幫助倫敦部署的每個人????????????

還有提供封面圖的Benjamin Davies!

免責聲明

這是一個新興且不斷發展的高科技領域。如果讀者們選擇實施本文中的建議並繼續參與,請確保您已充分了解您的選擇會帶來什麼影響。讀者們應該了解所涉及的風險,包括但不限於出現意外bug 等風險,請讀者獨自承擔風險。這篇文章及其建議不是任何形式的銷售,也不提供任何形式的保證,包括但不限於與以太坊網絡或此處提及的以太坊客戶端有關的任何東西。

Geth Exodus Cluster (v1.10.5) 節選

Geth 客戶端關於倫敦升級變更的說明:

此版本包含倫敦硬分叉的主網啟動區塊高度。 (#23176)如之前所有的分叉相關版本,我們添加了一個重載標記,用來設置啟動區塊。這個標誌是暫時的,在主網分叉區塊成功啟動後會被刪除。 (#22822, #22972)為了配合EIP-1559 所創造的新費用市場,Geth 客戶端的交易池已經重新設計了。我們的新交易池設計旨在滿足用戶的需求——及時打包交易——根據他們的有效挖礦獎勵實現高效的交易排序。你可以在交易池設計文檔裡了解更多新交易池的工作邏輯。 (#22898)對於礦工:Geth 提供的交易選擇算法專門挑選具有最高有效獎勵的交易。如果用--miner.gasprice 命令行標誌設置了一個最低價格,那麼提供低於最低價格的礦工小費的交易將不會被打包到區塊裡。 (#22896, #22995)EIP-1559 還會改變gas limit 的投票系統。在倫敦分叉後,可用於交易的區塊gas 量是基於需求來調整的。區塊容量被稱為gas target,EIP-1559 將這個target 定義為gas limit 的一半。為了確保可用於交易的gas 與分叉前一樣,分叉區塊的gas limit 是加倍的。如果你正在使用--miner.gaslimit 標記來參與投票,你需要將這個標記的值變成原來的兩倍,以保持投票的值與之前的相同。你可以使用miner_setGasLimit RPC API 來升級target 而不需要離線,但要注意,這不會在重啟後繼續有效。之前的--miner.gastarget 標記在倫敦升級後會被棄用,它的值會被忽略。舉例:如果你正在使用 --miner.gaslimit 對gas limit 為20M 投票,而實際的區塊gas limit 是20M。當倫敦升級啟動了,區塊gas limit 會調整到40M,但如果你繼續使用同一個--miner.gaslimit 設置的話,你還將對20M 投票。因此在分叉後的某個時間點,你需要將你的 --miner.gaslimit 的值設為原來的兩倍,以確保gas limit 保持在40M gas。對於錢包提供商:EIP-1559 的交易價格默認計算算法(eth_maxPriorityFeePerGas) 還是遵循舊機制,把max priority fee 設為在網絡上支付的effective price 減去當前的base fee;把max fee 設為priority fee + 2x base fee。這確保了在倫敦過渡期後,如果用戶沒有明確反對意見,按每gas 支付的總價格保持不變。另外,Geth 發布了一個新的eth_feeHistory (blocks, head, percentiles) API 終端,用戶可以用它來詢問關於支付給礦工小費和交易燒毀費用數量的最近數據信息。建議錢包使用這個終端給用戶多個費用選項(#23033)。 JSON-RPC 用戶注意:分叉啟動後,eth_sendTransaction 和eth_fillTransaction 會默認創建EIP-1559 式交易。 Go/Java/ObjC 合約綁定的用戶注意:分叉啟動後,accounts/abi/bind 會自動創建1559 式交易。要在Go 語言寫的應用裡用EIP-1559,請記得在你應用的go.mod 文件中把go-ethereum 模塊依賴升級到v1.10.4。 (#23038)ethclient 用戶注意:如果你用ethclient 包發送交易並想用EIP-1559 帶來的的新費用模式,你必須修改你的代碼,用types.NewTx(&types.DynamicFeeTx{...})來創建交易。為了了解分叉是否已經啟動和新交易類型是否可用,只需檢查最新區塊頭的BaseFee 字段是否非零。

點擊“閱讀原文”獲取文章內部鏈接!

原文鏈接:https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/

ECN的翻譯工作旨在為中國以太坊社區傳遞優質資訊和學習資源,文章版權歸原作者所有,轉載須註明原文出處以及ETH中文站。若需長期轉載,請聯繫eth@ecn.co進行授權。