Cortina:X 鏈線性化
作者:Cortina
2023 年 4 月 3 日星期一,將發布 Avalanche Cortina 升級的預發布代碼。此升級將於上午 11 點激活。 2023 年 4 月 6 日星期四,美國東部時間(UTC 下午 3 點)。請注意,此預發布代碼僅適用於 Fuji。如果您在主網上運行代碼,它將在啟動時退出。
在 Fuji 上成功完成 Cortina 升級之前,將公布 Avalanche 主網激活時間,並發布官方 Cortina AvalancheGo 版本 (v1.10.0)。
Cortina 升級包括與 AvalancheGo 版本 \< v1.10.0 不兼容的協議優化。如果您在 Fuji 上運行節點,則必須在 Fuji 上的激活時間之前將您的軟件升級到 AvalancheGo >= v1.10.0。如果您是主網節點運營商,則在官方 AvalancheGo@v1.10.0 代碼發布之前無需執行任何操作。
X鏈線性化
X-Chain 運行 Avalanche Consensus,這是一種基於 DAG 的無領導者協議,允許以高吞吐量並發處理非衝突 UTXO,而無需建立活動的總順序。另一方面,C-Chain、P-Chain 和所有 Avalanche 子網都運行 Snowman++,這是一種基於鏈的完全有序的協議,可以在數千名參與者之間對無衝突的塊生產進行排序,而無需基於時間的插槽。
X-Chain 的現有語義阻止或顯著複雜化 Avalanche Warp Messaging (AWM) 的集成、複雜 X-Chain 交易的添加、狀態同步的啟用以及廣泛的交換支持。 AWM 集成需要 Snowman++ 來驗證來自其他 Avalanche 子網的傳入消息的 BLS 多重簽名。
這種限制意味著當前形式的 X-Chain 無法與子網互動,並且它運行的基於 DAG 的共識無法廣泛應用於子網,而子網絕大多數希望與其他子網無縫通信。 X-Chain 上的部分排序意味著在頂點驗證期間沒有規範狀態(頂點是 X-Chain 上批處理交易的容器,類似於區塊鏈中的塊)並且頂點在設計上經過處理在不同的節點上以不同的順序。
在沒有規範狀態的情況下,與共享的鏈上對象(例如交易所)互動以及將狀態同步到網絡尖端(以避免重新處理所有歷史活動)成為一個重要且容易出錯的問題,社區可以花費進一步發展子網的時間。
最後,鏈上活動的不確定排序極大地阻礙了許多傳統交易所以其當前形式與 X 鏈集成的能力,因為大多數傳統交易所都是為比特幣和以太坊等完全有序的區塊鏈設計的,並且他們很難在部分有序的區塊鏈上協調不同時間點的餘額。
Cortina 遷移 X-Chain 以運行 Snowman++ 共識,並在稱為"線性化"的過程中作為完全有序的區塊鏈運行。當線性化開始時,將不再可能向 X-Chain DAG 添加額外的頂點。 DAG 的最終狀態現在是不可變的,然後將用作由 Snowman++ 提供支持的線性化 X 鏈的創始狀態。 X-Chain 上使用的交易格式和提交交易、獲取交易狀態和獲取餘額的 API 在這個過程中不會改變,因此大多數錢包不需要做任何改變來支持這個線性化事件。
然而,支持 X-Chain 的探索者將需要遷移到解析 X-Chain 區塊而不是解析 X-Chain 頂點,這看起來與 P-Chain 區塊非常相似。線性化是無縫的,不應導致 P 鏈、C 鏈或任何子網的任何停機。然而,X-Chain 將暫時無法訪問。
如上所述,這種遷移為 Avalanche Warp Messaging 集成鋪平了道路,新的交易類型修改了共享的 X-Chain 狀態,提供了一個直接的路徑來實現狀態同步,並使交易所能夠支持 X-Chain,其中將包含許多在彈性子網上使用的令牌。
雖然可以在 DAG 上引入總排序,但在 X-Chain 上這樣做需要重寫現有的 Avalanche 共識引擎,並且對任何子網都沒有用。遷移到整個 Avalanche 網絡的單一共識引擎,減少可信計算基礎的規模並增加現有研發工作的槓桿作用,將實現更快的開發和更廣泛適用的創新。
我們在這裡為集成商準備了一份遷移指南,重點介紹了支持 Cortina 所需的 AvalancheGo API 的所有更改。
批量委託獎勵
自 Avalanche 網絡啟動以來,驗證者有機會向委託給他們節點的任何人收取服務費。如果驗證者在委託期間的 80% 在線,他們將獲得委託者所賺取的獎勵(費用)的百分比。 P-Chain 在每個委託期間將此費用作為單獨的 UTXO 進行分配。
隨著過去幾個月網絡上委託人數量的大幅增加(截至 2023 年 3 月 20 日達到約 80k),驗證者可能收到的作為費用的 UTXO 數量也大幅增加。這通常意味著驗證者最終會得到數以千計的小 UTXO,這些 UTXO 必須聚合起來才能用於任何事情。在瀏覽器和錢包中跟蹤數以千計的 UTXO 也使得提供出色的用戶體驗比需要的更具挑戰性。
Cortina 修改了這些委託費用如何分配給在 Cortina 激活後開始質押的所有驗證者(之前質押的驗證者將看不到任何變化)。費用現在不是在每個成功的委託期發送費用 UTXO,而是在節點的整個驗證期內分批處理,並在節點取消質押時分配。
增加 C 鏈氣體限制
自 Apricot Phase 1 以來,C-Chain 區塊的 gas 限制已設置為 8M gas。 C 鏈上的區塊每約 2 秒生成一次,因此此設置將每 10 秒可消耗的最大氣體量限制為約 40M 氣體。但是,每個滾動 10 秒窗口的氣體目標設置為 15M 氣體。這意味著當在 10 秒窗口內使用超過 15M 的 gas 時,gas 價格將會上漲(當使用少於 15M 時會下降)。
除了限制以任何 gas 價格在某個窗口中可以消耗的 gas 量之外,區塊 gas 限制還限制了可以在單個區塊中發布的交易的複雜性。隨著 Avalanche 上的不同開發者開始部署更複雜的 dApp,他們表示每個區塊 800 萬氣體對於他們的用例來說是不夠的。 Cortina 將 C-Chain 區塊氣體限制增加到 1500 萬氣體。為避免增加驗證主網絡所需的資源量,gas 目標將保持在每 10 秒 15M gas 不變。