加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > AVAX > Info

開發人員應如何處理Solana區塊鏈中被丟棄的交易?_RPC:French Connection Finance

Author:

Time:1900/1/1 0:00:00

本文主要概述了關于Solana如何處理交易的技術,以及關于開發人員如何處理丟失交易。

這篇文章最初發表于TheSolanaCookbook。

簡介

在某些情況下,一個看似有效的交易在被納入區塊之前可能會被丟棄。這種情況最常發生在網絡擁堵時期,當RPC節點未能將交易重新廣播給領導者的時候。對于終端用戶來說,他們的交易似乎完全消失了。雖然RPC節點配備了通用的重播算法,但應用程序開發人員也能夠開發自己的自定義重播邏輯。

交易的歷程

客戶如何提交交易

在Solana區塊鏈中,不存在mempool的概念。所有的交易,無論它們是以編程方式還是由終端用戶發起的,都被有效地路由到領導者,以便被處理成一個區塊。將交易發送給領導者有兩種主要方式:

通過RPC服務器和sendTransactionJSON-RPC方法進行代理通過TPU客戶端直接傳送給領導者絕大多數的終端用戶會通過RPC服務器提交交易。當客戶端提交交易時,接收的RPC節點將反過來嘗試將交易廣播給當前和下一個領導者。在交易被領導者處理之前,除了客戶和轉發的RPC節點知道這筆交易以外,沒有任何關于交易的記錄。在TPU客戶端發送交易的情況下,重播和領導者的轉發完全由客戶端軟件處理。

Ceramic推出ComposeDB,優化開發人員訪問構建功能:3月9日消息,去中心化內容計算網絡Ceramic發布ComposeDB,使開發人員能夠更輕松地在網絡上進行構建。ComposeDB的推出是使開發人員可以輕松訪問該網絡的關鍵一步,使其他項目能夠使用它來存儲自己的數據或訪問已經存在的數據。

據悉,Ceramic是一個開放網絡,專為web3應用程序設計,用于存儲任何人都可以訪問的數據。[2023/3/9 12:52:18]

RPC節點如何廣播交易

在RPC節點通過sendTransaction收到交易后,它將把交易轉換成UDP數據包,然后轉發給相關的領導者。UDP允許驗證器彼此之間快速通信,但不提供任何關于交易交付的保證。

由于Solana的領導者時間表在每個紀元之前就已被知道,RPC節點將直接向當前和下一個領導者廣播其交易。這與其他協議相反,后者在整個網絡中隨機和廣泛地傳播交易。在默認情況下,RPC節點將嘗試每兩秒鐘將交易轉發給領導者,直到交易最終完成或交易的區塊鏈過期。如果未完成的重播隊列大小超過10000個交易,新提交的交易將被丟棄。RPC操作員可以調整一些命令行參數,從而改變這種重試邏輯的默認行為。

Fantom 2022年網絡上的月平均活躍開發人員增長41%:金色財經報道,Fantom基金會的Andre Cronje發布了一份2022年的績效評估。根據Cronje分享的FTMScan數據,在2021年至2022年期間,Fantom網絡的日交易量年增長率達到131%。這遠遠落后于2020-2021年該網絡12998%的年增長率。Cronje指出,每日交易表明用戶在鏈上進行的活動量。

Fantom網絡的平均區塊大小的年增長率在2022年達到163%,而2021年為25%。Fantom的鎖定總價值(TVL)在2021-2022年躍升了216%。2021-2022年,Fantom的日活躍用戶(DAU)激增41%,而前一年為5589%。此外,2022年網絡上的月平均活躍開發人員增長了41%,而2020-2021年增長了50%。[2022/12/26 22:06:55]

當一個RPC節點廣播一個交易時,它將試圖把交易轉發給領導者的交易處理單元。TPU在五個不同的階段處理交易。

獲取階段簽名驗證階段銀行業務階段歷史服務證明廣播階段

圖片來源:JitoLabs在這五個階段中,“獲取”階段負責接收交易。在獲取階段,驗證器將根據三個端口對匯入的交易進行分類。

數據隱私平臺Aleo將分三個階段推出測試網3,已啟動面向開發人員的第1階段:8月3日消息,數據隱私平臺Aleo宣布分三個階段推出Aleo測試網3,Aleo測試網3分為3個階段,第1階段已啟動,面向開發人員;第2階段于9月推出,面向證明者;第3階段于10月推出,面向證驗證者。Aleo將在測試網3的3個階段將2500萬個Aleo積分(ALEO)分發給開發者、證明者和驗證者社區。同時鼓勵Aleo的開發者和愛好者參與即將推出的漏洞賞金計劃。

Aleo測試網3的新功能包括:在Aleo虛擬機 (AVM) 上部署和執行程序、證明Coinbase謎題 (PoSW) 以產生新的學分、Marlin + Plookup證明系統上進行批量證明和驗證、支持使用FROST閾值簽名的多簽名錢包等。

此前消息,今年2月份,Aleo Systems Inc曾完成2億美元B輪融資,a16z等參投。[2022/8/3 2:54:55]

tpu處理常規交易,如代幣轉移、NFT鑄造和程序指令。tpu_vote只關注投票交易如果當前領導者無法處理所有交易,tpu_forwards將未處理的數據包轉發給下一個領導者。關于TPU的更多信息,請參考JitoLabs的這篇文章?。

交易如何被丟棄

在交易的整個過程中,有幾種情況下,交易可能被無意中從網絡中刪除。

Web開發人員管理平臺Convex完成2600萬美元融資,a16z領投:金色財經報道,Web 開發人員管理平臺 Convex 宣布完成 2600 萬美元 A 輪融資,本輪融資由 a16z 領投,a16z 普通合伙人 Martin Casado 將加入 Convex 董事會。天使投資人包括 GitHub 前 CEO Nat Friedman、Alphabet 董事會成員 Ram Shriram,以及 Creative Artists Agency 創始人 Michael Ovitz 等。Convex 預計將在接下來幾周時間內向更多開發者開放測試版。

Convex 是面向 Web 開發人員的全球狀態管理平臺,旨在讓世界各地的開發人員無需任何后端工程即可構建復雜、動態、全局狀態的應用程序。[2022/4/28 2:35:09]

在處理一項交易之前

如果網絡丟棄了一個交易,它很可能在交易被領導者處理之前就被丟棄了。UDP數據包丟失是可能發生這種情況的最簡單原因。在網絡負荷很高的時候,驗證器也有可能被需要處理的交易數量所淹沒。雖然驗證器有能力通過tpu_forwards轉發多余的交易,但可以轉發的數據量是有限制的。此外,每個轉發被限制在單獨兩個驗證器之間進行。也就是說,在tpu_forwards端口上收到的交易不會被轉發到其他驗證器上。

動態 | Cosmos核心開發人員Zaki Manian已辭去相關職務:Cosmos 核心開發人員Zaki Mania 表示他已于上周辭去了在 Cosmos 負責所有開發工作的職務和董事職務。他曾是與 Cosmos 區塊鏈開發有關的所有事情的負責人。辭職后 Zaki Manian仍將繼續在 Cosmos 工作。此前,Manian曾譴責Cosmos CEO離職,稱其逃避項目責任。(decrypt)[2020/2/18]

還有兩種不太為人所知的原因,即交易在被處理之前可能被丟棄。第一種情況涉及通過RPC池提交的交易。在一些非常罕見的情況下,RPC池的一部分可以充分領先于池的其他部分。當池內的節點被要求一起工作時,這可能會導致問題。在這個例子中,交易的最近區塊哈希是由池的高級部分查詢的。當交易被提交到池子的滯后部分時,節點將無法識別領先的區塊哈希,從而放棄交易。如果開發者在sendTransaction上啟用預檢檢查,就可以在交易提交時檢測到這一點。

暫時性的網絡分叉也會導致交易被丟棄。如果一個驗證器在銀行階段內重放區塊的速度很慢,它可能最終會創建一個少數分叉。當客戶建立一筆交易時,該交易有可能引用一個只存在于少數分叉上的最近區塊哈希。在交易被提交后,交易集群可以在交易被處理前從其少數分叉中切換出來。在這種情況下,交易會因為找不到區塊哈希而被丟棄。

在交易被處理后,在交易被最終確定前被丟棄

如果一個交易引用了少數分叉的最近區塊哈希,該交易仍有可能被處理。然而,在這種情況下,它將由少數分叉的領導者處理。當這個領導者試圖與網絡的其他成員分享其處理的交易時,它將無法與大多數不承認少數分叉的驗證器達成共識。這時,交易將在最終完成之前被丟棄。

處理被丟棄的交易

雖然RPC節點會嘗試重新廣播交易,但他們采用的算法是通用的,往往不適合特定應用的需要。為了應對網絡擁堵時期,應用開發者應該定制自己的重播邏輯。

深入了解sendTransaction

當涉及到提交交易時,開發人員可用的主要工具是sendTransactionRPC方法。sendTransaction只負責將交易從客戶端轉發到RPC節點。如果節點收到交易,sendTransaction將返回交易ID,可以用來跟蹤交易。一個成功的響應并不表明該交易是否會被集群處理或最終完成。

請求參數

transaction:string——完全簽名的交易,作為編碼的字符串

configurationobject:object

skipPreflight:bolean——如果為真,則跳過預檢交易檢查。preflightCommitment:string——對bankslot進行Preflight模擬時使用的承諾級別。encoding:string——用于交易數據的編碼。要么是"base58",要么是"base64"。。maxRetries:usize——RPC節點重試向領導發送交易的最大次數。如果不提供這個參數,RPC節點將重試交易,直到交易最終完成,或者直到區塊哈希過期。響應

transactionid:string-——嵌入在交易中的第一個交易簽名,以base-58編碼的字符串。這個交易ID可以與getSignatureStatuses一起使用,輪詢狀態的更新。

自定義重播邏輯

為了開發自己的重播邏輯,開發者應該利用sendTransaction的maxRetries參數。如果開發者提供相關參數,maxRetries將覆蓋RPC節點的默認重播邏輯,允許開發者在合理范圍內手動控制重播過程。

手動重試交易的一個常見模式是來自getLatestBlockhash臨時存儲的lastValidBlockHeight。應用程序一旦存儲起來,就可以輪詢交易集群的區塊高度,并在適當的時間間隔內手動重試交易。在網絡擁堵的時候,將maxRetries設置為0并通過自定義算法手動重播是很有利的。雖然一些應用程序可能采用指數退避算法,但其他應用程序,如Mango,選擇以恒定的時間間隔連續重新提交交易,直到發生某種超時。

當通過getLatestBlockhash進行輪詢時,應用程序應指定其預期的承諾水平。通過將其承諾設置為確認或最終確定,應用程序可以避免從少數分叉中輪詢區塊鏈。

如果一個應用程序可以訪問負載均衡器后面的RPC節點,它也可以選擇在特定的節點中劃分其工作負載。服務于數據密集型請求的RPC節點,如getProgramAccounts,可能很容易落后,也不適合轉發交易。對于處理時間敏感的交易的應用程序,謹慎的做法是有專門的節點只處理sendTransaction。

跳過Preflight的代價

默認情況下,sendTransaction將在提交交易前進行三次預檢。具體來說,sendTransaction將:

驗證所有簽名是否有效

檢查引用的區塊鏈是否在最后150個區塊之內

針對preflightCommitment指定的bankslot模擬交易

如果這三個預檢中的任何一個失敗,sendTransaction將在提交交易之前引發一個錯誤。預檢查往往是失去一個交易和允許客戶端優雅地處理一個錯誤之間的區別。為了確保這些常見的錯誤被考慮在內,建議開發者不要將skipPreflight設置為false。

何時重新對交易進行簽名

盡管所有的嘗試都是為了重新廣播,但有時客戶可能需要重新簽署一個交易。在重新簽署任何交易之前,確保初始交易的區塊哈希已經過期是非常重要的。如果最初的區塊鏈仍然有效,那么兩筆交易就有可能被網絡接受。對于終端用戶來說,這就好像他們無意中發送了兩次相同的交易。

在Solana中,一旦一個被丟棄的交易所引用的區塊哈希比從getRecentBlockhash收到的lastValidBlock的時間長,該交易就可以被安全丟棄。開發者可以通過isBlockhashValid方便地檢查給定的區塊鏈的情況。一旦一個區塊鏈失效,客戶可以用新查詢的區塊鏈重新簽名。

鳴謝

非常感謝TrentNelson,JacobCreech,WhiteTiger,LeYafo,Buffalu,和JitoLabs的審查和反饋。

Tags:RPCIONCTIACTRPC價格ORIONFrench Connection FinanceExtractoDAO Bull

AVAX
元宇宙,只是一時興起的想法?_元宇宙:元宇宙賺錢app官方版下載

很難在2021年談論游戲,也很難不提及Metaverse。Fortnite、Roblox和Minecraft都可以聲稱正在構建它,許多其他人試圖參與其中.

1900/1/1 0:00:00
以太坊視頻直播平臺Livepeer完成2000萬美元B+輪融資,Alan Howard、Tiger Global等參投_以太坊:EER

據TheBlock1月5日報道,基于以太坊的去中心化視頻直播平臺Livepeer完成2000萬美元B+輪融資.

1900/1/1 0:00:00
原Facebook加密團隊背景,A16z等資本支持,web3基礎設施Mysten如何實現16萬TPS_區塊鏈:MYS

原文作者:PanteraCapita合伙人PaulVeradittakitMystenLabs是一家新的web3基礎設施公司,正在構建無數的服務來增強現代區塊鏈基礎設施的可擴展性和可編程性.

1900/1/1 0:00:00
A16z分析師:Web3的可組合性造就了加密貓、Axie Infinity等鏈游的成功_ITT:KITTENS幣

原文作者:A16z加密分析師ElenaBurgerweb3獨有的核心價值是可組合性:獲取由一種協議生成的資產或數據并與另一種協議一起使用的能力.

1900/1/1 0:00:00
元宇宙是新紀元的大航海時代,擁抱或是唯一選擇 | 《元宇宙線下有研修班》第二期節后開啟_元宇宙:MODA幣

“最近我壓力太大了,加密領域的變化實在太快。”說這話的人叫寶哥,2021年4月,他買入了人生的第一個加密資產。在此之后,他經歷了這個領域最為瘋狂的半年,世界仿佛被按下了“快進鍵”.

1900/1/1 0:00:00
從微軟收購動視暴雪看 Metaverse未來圖景與產業路徑_MET:METAD幣

來源:光源資本作者:吳建昨日,微軟宣布以687億美元收購動視暴雪,創下游戲行業歷史上最大一筆金額的收購,也是當前科技巨頭為Metaverse布局中最大的一筆投資.

1900/1/1 0:00:00
ads