下一次升級(柏林升級)在望,為此我們要安排一個網絡升級流程。在經過幾次頭腦風暴后,EIPIP團隊就如何改進網絡升級流程提出了幾點建議。我希望這篇文章所分享的信息能夠對EIP作者乃至整個社區都有用。讓我們來了解一下新流程是怎么樣的,以及為什么要調整自以太坊
區塊鏈誕生以來就沿用至今的網絡升級流程。
什么是網絡升級?
網絡升級是將新功能添加到以太坊協議上的方式。通常來說,這些升級功能旨在為網絡帶來可擴展性、更好的用戶體驗和更高的安全性。每個新功能在EIP(以太坊改進提議)中都有詳細描述。當網絡中的所有節點都同意激活新功能時,就會在特定區塊高度發生網絡升級。由于以太坊是去中心化的,而且沒人可以強迫其他人升級節點,如果網絡中的部分參與者決定不激活升級程序,就會停止與已激活升級程序的節點通信,導致網絡中出現分叉。
為什么要改變網絡升級流程?
過去,網絡升級流程都與EIP標準化流程相互關聯。核心EIP要與標準化流程一起部署在主網上。
共識沖突
以太坊是一個開源社區項目。若想將核心提議部署到主網上,必須先獲得社區和核心客戶端(以太坊節點)的同意。一旦以太坊核心客戶端開發者和社區都接受了某個EIP,這個EIP將包括到下一次網絡升級中。
當以太坊開發者在準備伊斯坦布爾升級時,社區在EIP1057(可編程工作量證明ProgPow)上沒有達成共識。這個提議得到了部分人的支持,但是也遭到了很多人的強烈反對。最終,以太坊客戶端之間未能達成共識。
雖然這個提議沒有納入網絡升級,但它確實通過了EIP標準化流程。這就凸顯了將EIP標準化和網絡升級流程分離的重要性。
核心EIP數量劇增
早期,網絡升級流程運行良好,總的EIP數量也相對較少。過去幾年來,由于以太坊區塊鏈的貢獻者人數劇增,關于如何改進網絡的EIP數量也成倍增長。這就增加了復雜性,也在如何針對網絡升級EIP設計一個正式流程的問題上引發了討論。
透明度
隨著以太坊區塊鏈的采用率提高,很多貢獻者聯合起來提交關于網絡升級的EIP來強化以太坊網絡。每個客戶端都要付出極大的努力來實現EIP中所提議的改進。考慮到實現每個EIP需要耗費的工時,并非所有EIP都可以納入下一次升級。不了解流程可能會引起混亂。因此,我們必須更新文檔來增加升級流程的透明度。
新版網絡升級流程
現行網絡升級流程是EIPIP團隊經過多次頭腦風暴并與以太坊開發者和整個社區不斷交流后得出的結果。
現行網絡升級流程已經正式與EIP標準化流程分離。但是,上圖也包括了不同階段的EIP推薦狀態。EIP流程大致分為三個階段,以顯示EIP在下一次升級前的狀態。
考慮納入
考慮納入(Consider for Inclusion,CFI)指的是一個提議有望納入下一次網絡升級的第一階段。有人建議讓提議的作者或支持者在Eth1.0規范庫中創建一個議題,以便進行官宣。
Devnet階段
在這一階段,客戶端開發者會對提議進行討論,并達成共識來推進Devnet(開發者測試網)的實現。這是專為客戶端開發者而設計的,其它社區成員也可以使用。但是,該測試網有可能沒有預先通知就會關閉,因此不建議用來測試dApp。當前的Devnet是YOLO測試網。現行版本是YOLO2.0,包含了有望引入下一次網絡升級的提議。