高吞吐量區塊鏈的核心在於其能夠快速安全地處理大量交易。然而,當 Sui 中的交易涉及寫入同一共享對象時,它們必須按順序執行。這可能導致檢查點時間更長,從而降低狀態同步效率。

共享對象擁塞控制的首要目標是提高檢查點執行效率。通過控制每個檢查點內接觸擁塞或熱共享對象的事務數量,系統可確保處理時間保持一致,從而避免延遲。

該機制還通過確保 Gas 費用較高的交易在檢查點納入時獲得優先處理,從而促進了交易公平性。用戶將期望成本更高的交易能夠更快地得到處理。

解決 Sui 早期的侷限性

Sui 以前通過其事務管理器管理共享對象擁塞。該系統監控待執行事務的總數,等待所需對象可用。如果待執行事務超過閾值,事務管理器將停止接受新的事務簽名或執行請求。

之前的機制雖然在某些情況下有效,但在幾個方面存在不足。例如,由於驗證器之間的不一致,它經常導致部分交易被拒絕和對象鎖定。它沒有準確估計相關交易序列的執行時間,導致效率低下和潛在的處理擁塞。最後,當一個對象擁塞時,以前的解決方案會拒絕所有傳入的交易,直到當前交易被執行,這意味着無法使用 gas 支付來優先納入。

深入瞭解擁塞控制

新的共識處理程序設計引入了一種更細緻的方法來管理熱共享對象之間的執行依賴關係。這包括添加到驗證器邏輯的兩個新功能:

  1. 延遲交易的能力:共識處理程序現在可以將交易延遲到未來的共識提交,從而更有效地管理檢查點中的執行依賴關係。

  2. 主動取消交易:驗證者現在可以主動取消被過度推遲的交易。當交易被取消時,它仍會被處理,但會向執行引擎發出命令,要求其立即停止。一旦收到此指令,執行引擎就會釋放其鎖定的所有對象,並迅速向客戶端發回取消錯誤,而不會完成交易。

共識處理器對交易進行排序和管理。此圖使用彩色圓圈表示具有不同 gas 量的交易。

當共識處理程序收到共識提交時,它首先將提交中的交易與之前推遲的交易合併,並按 gas 價格對它們進行排序。然後,它會逐一檢查每筆交易,創建一個每個對象的執行依賴關係圖,概述檢查點執行所需的關鍵步驟。此過程可確保交易得到高效處理並按其成本排序。​

要將事務添加到依賴關係圖中,處理程序會評估事務中涉及的所有共享對象。它會識別隊列最長的對象以啓動事務的執行,並將所有涉及的對象的隊列對齊到此最大長度。然後將事務的成本添加到每個對象的隊列中,更新執行順序。

依賴關係圖根據最長隊列爲每個對象提供執行延遲的估計,這也表明了共識提交的總體延遲。每個共識提交的隊列長度都有最大限制。如果交易超過此限制,則會將其推遲到未來的提交。如果多次推遲超過某個閾值,則交易將被取消並從處理中移除。這通常發生在交易針對需求量很大的對象但提供的 gas 價格太低而缺乏競爭力時。

新設計通過監控執行依賴關係並限制每個共識提交中涉及高需求共享對象的事務來提高效率,從而保護檢查點執行。至關重要的是,不涉及這些高需求對象的事務不受這些限制的影響。

解決先前的挑戰

如上所述,以前的系統難以跟蹤每個對象的交易隊列,導致效率低下。共享對象擁塞控制機制不僅解決了這些挑戰,還引入了重大改進以簡化流程。新方法確保所有驗證者在執行、推遲或取消交易方面做出統一的決策。這一變化有效地消除了與鎖定對象相關的問題,並允許快速釋放優先級較低的交易持有的對象。

擁塞控制機制還通過跟蹤每個共識提交中的完整事務依賴關係圖來提高準確性。這意味着它會仔細記錄事務的順序和依賴關係,從而更清楚地瞭解執行檢查點所需的實際時間。通過這樣做,它解決了以前被忽視的複雜性和低效率問題。

此外,通過推遲交易並在後續共識提交中將其與新交易合併,新方法支持本地費用市場。這種設置有利於 Gas 價格較高的交易,確保它們在繁忙時段有更好的機會得到處理。用戶獲得了支付納入費用的能力,這對於 DeFi 活動尤其有用。

最後,新方法傾向於在檢查點執行出現任何性能下降之前在熱共享對象工作負載中實現更好的性能。這種改進源於驗證者的一致和集體決策,從而導致更高效的交易處理和更高的整體網絡吞吐量。這種一致性確保系統可以在出現任何性能問題之前處理更多交易。

隋文靜掃清道路

共享對象擁塞控制的實現不僅僅是技術升級,更是戰略增強,顯著提高了 Sui 的可擴展性和效率。有了這個基礎,Sui 上的用戶和應用現在可以享受更高的交易效率和可靠性。精簡的擁塞控制機制爲部署更復雜、響應更快的應用程序提供了跳板,進一步擴展了生態系統的功能。