一文速覽以太坊主網「倫敦」升級公告
原文標題:《通告| 以太坊主網“倫敦” 升級公告》
編者註:感謝ETH 中文站翻譯了以太坊基金會發出的“倫敦” 升級公告以及Geth 客戶端團隊的版本更新聲明。需要補充的是:
原公告發佈於7 月15 日,而7 月21 日Ropsten 測試網上出現了共識事故,因此,本文內建議的客戶端版本已經過時,運行節點的朋友應該獲得自己所用客戶端的最新版本。
以13.5 的平均出塊時間計算,“倫敦” 升級將在北京時間8 月5 日晚上7 時許激活。
以太坊區塊的Gas Limit 是出塊節點在本地設置參數博弈出來的,設置低於/高於當前大小的值即表示支持減小/增大區塊,並會在自己所出的區塊中反映出來。在EIP-1559 通過之後,Base Fee 的調整將總是以50% 的區塊利用率為目標,因此,如果你作為出塊節點,你認為合適的單塊Gas 消耗量是100,就應該在本地把gas limit 設為200,以此類推。公告和Geth 團隊建議的數值僅有說明意義。不論節點具體設置了什麼值,都不會因此進入另一個分叉。
來源| Ethereum Blog
作者| Tim Beiko
客戶端版本

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

正文
二級標題
正文
下列EIPs 是倫敦升級的內容:
EIP-1559:ETH 1.0 費用市場變更
EIP-3198:BASEFEE 操作碼
EIP-3529:減少gas 返還
EIP-3541:拒絕以0xEF 字節開頭的新地址
EIP-3554:難度炸彈延遲至2021 年12 月
二級標題
二級標題
二級標題
二級標題
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。協議變更會在一個特定的區塊高度上啟動。任何沒有升級到新規則的節點將在舊鏈上被遺棄,而舊鏈繼續保有之前的規則。
致謝
致謝
致謝
二級標題
免責聲明
免責聲明
二級標題
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 字段是否非零。


