BTC $86,473.26 +0.02%
ETH $2,760.57 -0.50%
BNB $791.83 -0.87%
XRP $1.58 +3.17%
SOL $118.97 -0.04%
TRX $0.3422 -0.98%
DOGE $0.1006 -0.28%
ADA $0.2548 +3.14%
BCH $343.92 +27.79%
LINK $13.10 -0.66%
HYPE $97.58 +3.71%
AAVE $149.31 +1.79%
SUI $1.02 -3.17%
XLM $0.2171 +0.24%
ZEC $1,619.85 +10.33%
AAPL $339.78 +0.36%
AMZN $255.42 -1.47%
GOOGL $352.20 -1.08%
MSFT $500.15 -0.22%
META $739.50 +0.04%
NVDA $228.55 +0.36%
TSLA $378.88 +0.79%
SNDK $1,885.36 +5.31%
INTC $123.91 +0.08%
SPCX $154.34 +0.90%
MU $1,092.63 +4.01%
AMD $621.98 -0.10%
BTC $86,473.26 +0.02%
ETH $2,760.57 -0.50%
BNB $791.83 -0.87%
XRP $1.58 +3.17%
SOL $118.97 -0.04%
TRX $0.3422 -0.98%
DOGE $0.1006 -0.28%
ADA $0.2548 +3.14%
BCH $343.92 +27.79%
LINK $13.10 -0.66%
HYPE $97.58 +3.71%
AAVE $149.31 +1.79%
SUI $1.02 -3.17%
XLM $0.2171 +0.24%
ZEC $1,619.85 +10.33%
AAPL $339.78 +0.36%
AMZN $255.42 -1.47%
GOOGL $352.20 -1.08%
MSFT $500.15 -0.22%
META $739.50 +0.04%
NVDA $228.55 +0.36%
TSLA $378.88 +0.79%
SNDK $1,885.36 +5.31%
INTC $123.91 +0.08%
SPCX $154.34 +0.90%
MU $1,092.63 +4.01%
AMD $621.98 -0.10%

深度解析:Solana 究竟是如何堵上的?

Summary: 由於 Solana 採用了連續出塊機制,且不存在用以暫存未確認交易的 mempool,這意味著一旦連接丟失,交易將再也不會被包含至某個區塊之內。
OdailyNews
2024-04-08 16:42:02
由於 Solana 採用了連續出塊機制,且不存在用以暫存未確認交易的 mempool,這意味著一旦連接丟失,交易將再也不會被包含至某個區塊之內。

作者:Nishil Jain(Biconomy 生態合作負責人)

編譯:Odaily 星球日報 Azuma

為什麼當前 Solana 之上的交易總是在失敗?

讓我們從最基本的概念開始逐步解析。

從用戶的角度來看,當我們在 Solana 上進行交易時,本質上會出現三種潛在結果:

  • 交易執行成功 ,一切正常;

  • 交易執行失敗 ,用戶已支付 gas 費用,但執行結果返還錯誤。當交易未滿足條件時,就會發生這種情況,例如用戶嘗試購買的代幣已售罄,或者價格波動過快(超出了預設滑點)等等;

  • 交易丟失(Dropped) :交易無跡可尋,即交易未能抵達"區塊領導節點"(Odaily 注:每 4 個區塊輪值一次的當值節點)。這是當前大多數用戶正在遇到的情況,本質上這是一個網絡層的問題,而非共識層或執行層的問題。

執行問題並非擁堵主因

現在你可能會問,什麼是網絡層?交易為什麼會丟失?為什麼說它們才是當前 Solana 擁堵的主要原因?

我們暫且把這些最重要的問題拋在一邊,先來看看那些執行失敗的交易(即第二種情況),並解釋為什麼說執行失敗的交易並非擁堵的主因。

結合鏈上數據可見,所有執行失敗的交易中,只有約 8% 係由真實用戶提交,剩餘的都是鏈上機器人所發起的套利交易。

深度解析:Solana究竟是如何堵上的?

套利者之所以會持續不斷地發起"垃圾"交易,是因為與成功套利可所得的潛在利潤相比,頻繁發起交易的成本可以說是微乎其微。

具體而言,套利者可以在一天時間內持續不斷地發起交易,這麼做的成本大概是每天幾百美元(因為 Solana 的網絡費用較低),但只要能成功一筆,就可能賺到數十萬美元級別的利潤。

需要注意的是,這些失敗的交易並不意味著 Solana 網絡出現了故障,區塊鏈依舊在正常運行,這些只不過是一些因為條件未達成而失敗的機器人交易。這也不是 Solana 當下體驗糟糕的主因。

實際上,自去年 11 月以來,Solana 的交易失敗率一直保持在大約 50% 左右。

深度解析:Solana究竟是如何堵上的?

真正的主因:交易被丟棄於網絡層

現在,讓我們來討論一下 Solana 在過去幾天裡擁堵的真正主因------"交易丟失"。

如前文所述,這些都是未能抵達"區塊領導節點"的交易,而交易之所以未能到達,是因為它們在網絡層中被丟棄了。

網絡層是互聯網的通信層,它被用來將數據包從一個端點發送至另一個端點,常見的網絡層協議包括 TCP、UDP、QUIC(由谷歌開發)等等。Solana 此前將其網絡層協議升級成了 QUIC,這有助於在用戶與"區塊領導節點"之間建立連接。

由於 Solana 採用了連續出塊機制,且不存在用以暫存未確認交易的 mempool,這意味著一旦連接丟失,交易將再也不會被包含至某個區塊之內。

深度解析:Solana究竟是如何堵上的?

QUIC 協議的優勢在於,"區塊領導節點"可藉此獲得一種新功能:根據特定的標準來切斷某些用戶的連接,或限制它們的數據傳輸速率。

這一功能的意義在於,當網絡需求高峰期出現時,"區塊領導節點"可以主動切斷某些連接,從而防止了 Solana 會因網絡活動增加而完全宕機。

你可能又要疑惑了,如果 QUIC 協議的設計這麼完善,為什麼 Solana 現在還是這麼堵呢?

真正的問題在於,儘管"區塊領導節點"現在可以選擇主動調節某些連接,但決定哪些連接需要被調節的邏輯卻存在問題。

深度解析:Solana究竟是如何堵上的?

為了更具象地理解這一問題,我們可以腦補這麼一種情況,每個"區塊領導節點"都有著 X 個可以進行通信的連接,可當網絡需求高峰期出現時,該節點所接受到的連接請求是其承載能力的 10 至 100 倍……這時該節點就需要去選擇切斷某些連接。然而當前的情況是,如何選擇將被切斷的連接並沒有一套既定的標準(比如切斷所有費用低於 xxx 的連接),所有連接是否會被切斷都是隨機性的……

說到底,當前情況下如果你想要交易被確認,你能做的就是發送更多的交易請求,但由於有許多機器人也會不斷地向網絡發送大量的連接請求,普通用戶建立連接並完成交易就變得越來越困難。

如何修復?需要多久?

這就是 Solana 現在所面臨的問題。

當下,Jump (Firedancer 客戶端開發團隊)、Anza(Agave 客戶端開發團隊)、Solana Labs 等團隊正致力於對網絡層進行修復。修復補丁將在本週逐步推出,據悉在未來幾週內還會有一些重量級的更新發布。

這能夠有效解決問題嗎?Solana 會再次" to da moon"嗎……這並沒有絕對答案。

為什麼當前仍存在著許多不確定性,主要有三個原因:

  • 一是關於即將的修復補丁究竟能否生效,沒有人能夠保證。只有在它實際運作起來後,我們才能觀察實際情況。

  • 二是 Jump 開發的 Firedancer 客戶端看起來似乎能夠解決問題,但它要到今年年底才能正式發布。

  • 三是關於"垃圾"交易的問題,Solana 的經濟機制使得該網絡很難阻止惡意行為者對鏈持續進行"垃圾"交易攻擊。

最後,我想呼籲大家認識到一件事:我相信 Solana 正在為做出正確的權衡(Odaily 注:因指設定合理的連接切斷標準)而戰鬥,就像以太坊曾經擺脫了諸多問題一樣,Solana 也終會擺脫這些問題。

關聯標籤
warnning 風險提示
app_icon
ChainCatcher 與創新者共建Web3世界