作者:nishil,加密分析師;翻譯:0xjs@金色財經
1、讓我們從最基礎的開始。從用戶的角度來看,當他們進行交易時,本質上可能會發生三件事:
a. Tx 成功執行,沒有任何錯誤。
b. 執行但失敗-支付了gas,但執行回傳錯誤。當條件可能未滿足時,就會發生這種情況,例如他們試圖購買的mint已售完,或者由於價格變動非常快而導致滑點超過等等。
c. 丟棄的交易:tx 沒有出現在任何地方,在這種情況下,tx 尚未到達區塊leader。這是目前大多數用戶看到的情況。這是一個網路層問題,而不是共識/執行問題。
2. 現在你可能會問什麼是網路層,但稍後我們將討論這些丟棄的交易,以及為什麼它們是 Solana網路最近擁塞的主要原因。
首先讓我們了解失敗的交易是怎麼產生的,因為這對理解為什麼失敗的交易不是主要問題很重要。
3.你會驚訝地發現,這些失敗的交易中只有大約 8% 是由實際用戶進行的,其餘的都是由鏈上機器人進行的失敗的套利交易。套利者在鏈上發送垃圾郵件,因為與成功套利的最終回報相比,垃圾郵件的成本微乎其微。
4.例如:他們每天可以向鏈上發送多次垃圾郵件,這將花費他們幾百美元(因為Solana 的費用較低),而他們只需要完成一筆交易即可賺取超過10 萬美元的利潤。
5.因此,值得注意的是,這些失敗的交易並不意味著區塊鏈失敗,區塊鏈正在按預期運行,這些只是少數機器人交易,最終因交易條件不符合而導致失敗。這並不是Solana上用戶體驗現在不佳的原因。
6.事實上,自去年 11 月以來,Solana 的交易失敗率一直維持在 50% 左右。如果你回顧我上面列出的失敗與成功圖表,你會發現之前也很類似。
7.現在讓我們討論過去幾天 Solana擁塞的主要原因——「從未成功的交易」。正如本文前面提到的,這些交易未能到達區塊leader,並且由於網路層的問題而被丟棄。
8.網路層是互聯網的通訊層,它用於將資料包從一個連接發送到另一個連接。例如 – TCP、UDP、QUIC(由google設計)等。
9.Solana最近升級為QUIC作為其網路層,它有助於在用戶和區塊leader之間建立連接。由於 Solana 具有連續的區塊生產並且沒有內存池,因此失去連接將意味著 tx 不會落在區塊上。
10、QUIC 使區塊leader能夠根據特定標準切斷某些用戶連線或對其進行速率限制。因此,區塊leader現在可以在高需求期間斷開某些連接。
11.這種新架構可防止Solana在網路活動增加期間停機。雖然可能會塞得無法使用,但至少這次不會宕機吧?
12、所以你可能會問,如果 QUIC 的一切都設計得這麼好,為什麼 Solana 這麼糟糕?因此,問題在於,儘管區塊leader現在可以限制某些連接,但限制連接的邏輯實現得很差並且存在錯誤。
13.為了更好地理解,讓我們想像這樣一種情況:每個區塊leader都有 X 個可以與之通訊的連結。現在在活動高峰期,區塊leader開始收到 10-100 倍連線數的請求…
14.這是區塊leader可以選擇放棄某些連結的時候。然而,目前這些連接不會按照設定的標準被丟棄(例如丟棄所有費用低於 x 的連接),而是隨機丟棄…
15、從本質上講,要獲勝,你必須比其他人發送更多垃圾郵件,並且由於有多個機器人會透過連線請求向網路發送垃圾郵件,因此普通用戶建立連線並完成交易變得越來越困難。
16、這就是主要問題的要點。像是來自jump的firedancer、Anz和Solana等團隊正在努力向網路層提供修復。就在本人寫作時,這些補丁正在推出,據說一些主要補丁將在未來幾週內發布。
17.那麼這就能解決問題嗎? Solana會再次大漲?嗯,不完全是。前面的路還很長,有 3 個原因:
a、無法保證目前修復措施在防止 Solana
下一次擁堵問題方面的效率如何。只有當我們看到它的實際效果時我們才能知道。
b、Firedancer確實可能解決這些問題,但要到今年年底才會出現。
C、網路垃圾郵件問題:Solana 上的交易經濟性存在多個問題,無法防止不良行為者向鏈上發送垃圾郵件。
18、最後,我想以這樣的一句話結束:我相信Solana正在為捍衛正確權衡而奮鬥。就像以太坊擺脫了其應有的問題一樣,Solana也應該如此。