新聞加密貨幣Solana 啟用 Alpenglow 後 TPS 下降,驗證者投票退出交易計數

Solana 啟用 Alpenglow 後 TPS 下降,驗證者投票退出交易計數

作者: Coindoo·

重點速覽

  • •Solana 於 10 月 21 日啟用 Alpenglow 升級,以 Votor 協議取代 TowerBFT;在 Votor 之下,驗證者投票被打包成存放於區塊頁尾的證書,而非記錄為交易。
  • •最後一個 TowerBFT 區塊中約五分之三的交易——共 649 筆——是驗證者投票,而第一個 Alpenglow 區塊雖然不含任何投票交易,體積卻仍是兩者中較大的。
  • •Solana 基金會將升級後的 TPS 下降定性為會計口徑的變更而非吞吐量倒退,但 10 月 21 日之後公布的數字採用的是與先前所有數字不同的定義。
  • •在第一個 Alpenglow 區塊中,1,701 筆交易裡有 844 筆遇到執行錯誤,因此即使剔除投票的統計,仍包含已支付手續費但未完成任何支付或交易行為的失敗交易。
  • •先前透過 Vote 程式指令追蹤驗證者參與情況的監控工具必須重新改寫,改為讀取區塊頁尾中的投票證書;任何跨越 10 月 21 日的 TPS 圖表,都將記帳變更與真實使用量變化混為一談。
Solana 啟用 Alpenglow 後 TPS 下降,驗證者投票退出交易計數

Solana 於 10 月 21 日啟用 Alpenglow 後,其交易數量以及表面的每秒交易數(TPS)隨之下降。Solana 基金會的升級文檔將此降幅稱為「會計口徑的變更,而非吞吐量倒退」。這種說法仍留下一個問題,供任何查看 Solana 圖表的人思考:實際活動究竟下降了,還是只是計數方式改變?答案超越單一升級日,因為 TPS 是區塊鏈報導中被引用最多的吞吐量指標之一,而 Solana 在 10 月 21 日之後的統計數字,採用的是與此前所有已公布數字不同的定義。

Alpenglow 從交易列表中移除了什麼

在 TowerBFT——即 Solana 在 10 月 21 日之前運行的共識系統——之下,驗證者以普通交易的形式投出選票。區塊在支付、兌換與其他應用流量之外,還承載了數以百計的這類交易,而任何交易總數的統計都包含這些投票流量。由於這些選票來自驗證者而非用戶,升級前的每一個 TPS 數字中,都有一部分反映的是網路的共識機制,而非對其應用的需求。

Alpenglow 以 Votor 取代了這一機制。在 Votor 協議中,驗證者直接交換選票並將其打包成證書。這些證書存放在每個區塊的頁尾而非交易列表中,因此從切換的那一刻起,統計交易數量的工具便不再看到投票。

交接區塊顯示了什麼

Coindoo 透過 Solana 的公共主網 RPC——節點暴露用於讀取鏈上數據的介面——使用其 getBlock 方法,檢視了切換兩側的區塊。每個區塊佔據一個,即約 400 毫秒的時間窗口。TowerBFT 在該 epoch 的前 5,000 個 slot 中運行,隨後被 Alpenglow 取代。

最後一個 TowerBFT 區塊於 10 月 21 日 13:54:00 UTC 產出,第一個 Alpenglow 區塊於 13:54:03 跟進,兩者之間的八個 slot 沒有產出任何區塊。最後一個 TowerBFT 區塊中約五分之三的交易——共 649 筆——是驗證者投票;一個區塊之後,這類交易為零。儘管如此,Alpenglow 區塊仍是兩者中較大的一個。單一對區塊無法顯示網路活動是上升還是下降;它展示的是機制本身。衡量趨勢需要數千個區塊。

投票並非計數中唯一的噪音

失敗的交易構成第二層因素。透過讀取每筆交易元數據中的錯誤欄位,Coindoo 發現第一個 Alpenglow 區塊的 1,701 筆交易中,有 844 筆遇到執行錯誤,成功者為 857 筆。失敗的交易仍會被收取手續費,且仍存在於區塊中,但並未完成任何支付或交易。「會計口徑變更」的說法僅涵蓋投票這一層,因此即使剔除投票後的統計,仍需經過錯誤欄位過濾,才能描述實際完成的工作。

成功的交易也不等同於真實用戶。一個自動化交易帳戶可以大量發送交易,而單筆交易也可能包含多條指令。統計交易實際完成的內容——例如已完成的兌換或代幣轉移——比任何原始交易總數更接近真實使用情況。

比較數據在哪裡

Solana 的 getRecentPerformanceSamples 方法會針對每個樣本,回報交易總數、非投票交易數以及樣本時長(秒)。將數量除以時長,即可得出該窗口的平均速率。

該方法最多回傳 720 個約一分鐘的樣本,約涵蓋最近 12 小時。在交接超過半天後進行的查詢,已無法回溯至 TowerBFT 時期,因此任何比較的升級前一側,都必須取自較早儲存的樣本或歷史區塊。

在切換前後以相同方式套用以下三項過濾條件,才能使比較具有意義:

  1. 剔除驗證者投票。Alpenglow 在新數據這一側已自動完成;舊數據一側則需手動處理。
  2. 使用每筆交易的錯誤欄位剔除失敗交易。API 的非投票計數仍包含這些交易。
  3. 比較相同的窗口:一分鐘平均值對一分鐘平均值,切勿以儀表板峰值對比每日總量。

讀取投票的工具需要重新改寫

投票交易的作用不只是推高 TPS。監控工具會從交易列表中讀取 Vote 程式的指令,以追蹤哪些驗證者正在參與。在 Alpenglow 之下,這一輸入來源已消失,基金會將這些工具導向區塊頁尾中的投票證書。仍讀取舊來源的追蹤工具,會在驗證者持續投票的同時,顯示它們已經沉默。

對於 Solana 的使用量數據,有用的數字要等到數天的成功非投票交易數據能與涵蓋相同時段的升級前儲存數據進行比對時才會出現。在此之前,任何跨越 10 月 21 日的表面 TPS 圖表,都將記帳方式的變更與真實使用量的變化混為一談。

來源:Coindoo