作者:Keeper DAO
翻譯:Olivia
什么是Mempool(內存池)
Mempool是一組已經廣播到網路并等待被打包進區塊的以太坊交易,Mempool服務可以直接追蹤交易的生命周期,當交易被用戶廣播到節點后,會在Mempool中進行等待,然后交易會被打包進一個區塊,或者被網路放棄,一個好的Mempool服務會為你監控這個過程中存在的每一筆交易。你可以在這里了解更多關于Mempool的資訊。
Mempool是如何用于DeFi交易的?
交易者分析以太坊 Mempool,以大幅提高獲取MEV(礦工可提取價值)的幾率,Mempool可以應用的交易策略有多種不同類型,這些策略中的一部分會涉及尋找原本不存在的交易機會,因此,自這些 Mempool 服務進入市場以來,DeFi 交易生態系統已經發生了巨大的變化,
- Front running:確定贏得Gas拍賣所需的Gas price。
- Back running:根據另一個用戶的交易結果,預測交易機會,并將其打包進未來的區塊,
- Sandwiching:預測交易機會,通過將另一個用戶的交易機會推到最大滑點極限,從而預測未來的區塊,這將導致在以后的時間(通常是在同一區塊內)出現套利機會,
- Generic predator(掠奪者):劫持交易調用,希望能在Front running中運行Gas拍賣,從而獲取MEV(礦工可提取價值)。這通常是通過用Predator的地址替換原始交易者的地址,并以更高的Gas price提交新的交易來完成的,
參賽者
雖然我們下面討論的公司和產品提供了各式各樣的產品和服務,但我們這次討論的重點是他們的以太坊 Mempool功能,
BloXroute
BloXroute是一個區塊鏈加速網路(BDN),利用全球服務器網路優化網路性能,他們投入了大量的資源,為以太坊 DeFi交易者和構建者構建網路基礎設施,你可以在他們的部落格上了解他們的發展,他們的Mempool功能叫做 “訂閱 NewTX 流”,可以在他們的產品定價頁面上找到。在那里你會發現各種其他有用的功能,其中許多功能將幫助您建立一個更強大的DeFi產品,并在市場上獲得交易優勢,
BloXroute通過websocket連接向您發送Mempool事件,它們的速度非常快并且包含所有資訊,這意味著你可以在你的終端進行交易過濾,因此,如果你正在關注Uniswap上的交易,那么你可以簡單地根據感興趣的Uniswap地址進行過濾。
Blocknative
Blocknative運營著一個橫跨比特幣和以太坊的全球Mempool數據平臺,他們專門為以太坊 DeFi交易者和構建者提供Mempool服務。你可以在他們的部落格上閱讀他們的最新發展。他們的Mempool功能叫做 “Mempool 瀏覽器”,相關資訊你可以在他們的產品上找到。
Blocknative會根據你的觀察列表,專門通過webhooks向你發送Mempool事件,該列表托管在Blocknative的服務器上,因此,如果你正在關注Uniswap上的交易,就可以簡單地將Uniswap地址添加到自己的觀察列表中,然后就能開始接收webhook事件,
Alchemy
Alchemy會提供基本的比特幣和以太坊節點設施服務,他們為以太坊 DeFi交易者和構建者提供了一個非常方便的API端點。他們的Mempool功能叫做 “alchemy_newFullPendingTransactions”,可以在他們的文檔中找到,
Alchemy通過websocket連接向你發送Mempool事件,這些事件包含了所有資訊,這意味著你要在你的終端進行過濾。因此,如果您正在關注Uniswap上的交易,您可以簡單地根據感興趣的Uniswap地址進行過濾。
性能基準
我們在DeFi交易中廣泛地使用了這三種服務,并看到了它們在性能上的巨大差異,下面概述了性能測試結果和獲得的所有數據,其中性能是以毫秒為單位的延遲來度量的,我們將所有三個服務連接到我們的keeper機器人上,并監控Uniswap的路由器合同,以及記錄每個服務報告傳入交易的時間。一旦記錄下來,這些資訊就被繪制出來,并對公眾開放,
假設每筆交易的基線為第一個Mempool服務發現該交易時的基線,所以,第一個發現交易的服務將被定位零延遲,而之后每個服務的延遲將等于它發現它與第一個服務的時間差。
這張圖中的數據描繪了一幅非常清晰的圖景。 BloXroute的延遲始終運行在零線上。Blocknative的延遲始終比BloXroute的稍差,Alchemy的情況很糟糕,有時甚至會比其他服務晚好幾秒,
我們進一步放大來看,Blocknative始終比BloXroute落后175ms左右。如果你正在操作一個每天交易數百或數千次的大型交易,這就會造成很大的差異。
BloXroute在235次交易中率先檢測到228次交易。
為什么擁有最快的Mempool服務很重要?
以上實驗結果表明,交易者的Mempool服務選擇直接影響其盈利能力,根據ethstats.net的數據顯示,現在以太坊區塊時間平均只有13秒多,落后180ms,或者更糟糕的是1000多ms時將大大削減你的交易利潤,減少交易被打包下一個區塊的可能性。同時滯后也會減少你在Gas拍賣中的反應時間。
Websockets與Webhooks的比較
值得比較的是這些Mempool服務使用的兩種事件交付方式。從技術上講,Websocket應該更快,然而它的可靠性可能稍差。使用Websocket連接,客戶端有可能在斷開連接時錯過一個事件。而使用Webhooks連接時,你收到的每個Mempool事件都有自己的網路連接,該連接為每個Mempool事件進行事件推送。這可能會增加少量的延遲開銷,但同時也增加了一些可靠性。值得一提的是,交易員可能更喜歡較低的延遲,而DeFi產品構建者可能更喜歡相對可靠的。
最佳性能和冗余解決方案
如果您是一名交易員,并且希望在性能和可靠性方面兩全其美,這里有一些可能適合你的冗余解決方案。
解決方案A)使用最快的服務,BloXroute,并連接到多個網關。你可以在自己的服務器上運行自己的 BDN 網關,也可以連接到多個托管網關。你也可以指定這些網關分布在不同的地區,這樣如果一個地區的網路出現問題,你就不會在一段時間內完全失去Mempool的訪問權。
解決方案B)使用多個Mempool服務,這樣你就能以盡可能快的速度獲取數據,如果一個服務因為任何原因宕機,你還有另一個服務可以依靠,這里唯一的缺點是,它使你的Mempool服務費用成倍增加。
價格比較
所有價格比較均以2020-12-4為基準。請注意,每個服務的功能列表和價格結構是隨時可變的。
與其他服務相比,BloXroute的定價是非常大方的。240美元的專業版是非常有價值的,考慮到你得到的是性能最好的Mempool服務與零費率限制,以及大量的其他有用功能,
Blocknative的定價很難與BloXroute的定價相比,原因有幾個:首先,他們只提供Mempool服務,所以你不會像BloXroute那樣得到任何額外的東西。其次,他們規定了每天的API事件限制,乍一看可能不像是個問題,但實際上是一個巨大的限制,讓我們來看看這如何發揮出上面這個基準測試中的資訊。
假設你是一個DeFi交易員,你正在利用Back running,你將希望監控所有傳入Uniswap的Mempool交易。實際上,你會想在大量的協議上做這件事,比單純的Uniswap要多得多,但讓我們保持簡單化,只關注上面使用的一個單一的Uniswap路由器,在基準測試的數據中,讓我們把重點放在第一個和最后一個數據輸入上,這樣我們就可以得到每天的大概交易量,以便與Blocknative的API事件每天的限制進行比較。
測試從這第一筆交易開始,到這最后一筆交易結束,也就是從11381311塊到11381328塊,時間跨度約為4分鐘。在這段時間里,我們評估了235筆交易。大約每秒鐘就有一筆交易,由于每天有86400秒,這意味著每天大約有86400筆交易,這大約是Blocknative生產計劃的8倍速率限制,這就把你推到了增長計劃(Growth),每月833美元。但這其中是有問題的,因為如果Uniswap變得更受歡迎,你會受到速率限制,并被迫跳到每月8300美元的領導者計劃(Leader),這很快就會變得很昂貴。
Alchemy的定價通常是非常靈活的,然而,Mempool特定的定價對你的速率限制表現的不友好,如果你想跟蹤交易,這需要你監控所有傳入的交易到Uniswap,你會在很短的時間內吃掉你的速率限制,Alchemy甚至在他們的文檔中提到了這一點,
alchemy_newFullPendingTransactions 訂閱類型的維護成本超級高,而且需要大量的計算單位,因為它發出的是完整的交易資訊,而不僅僅是交易哈希。我們不建議非企業層用戶長期保持該訂閱類型的開放。
使用這些服務 VS 運營自己的節點
一般來說,運行和維護自己的節點并不困難,特別是如果你只是單純的使用它來進行以太坊調用,然而,Mempool則是一個不同的運行方式。在Mempool交易的早期,交易者會從自己的節點上獲取Mempool資訊,這就是競爭激烈的地方,誰擁有更好的Mempool基礎設施,誰就能在每一次交易機會中比別人略占優勢。而當你把這種微弱的優勢乘以成百上千的日常交易機會,就會產生巨大的優勢。
假如你不想使用這些服務之一,你想自己運營這個網路。你將需要一個散布在世界各個地區的節點網路。理想情況下,你還需要GETH和Parity節點,因為它們的行為有些不同。你甚至可能想要以不同的方式配置各種節點,以反映你預測礦工可能會配置他們的節點的方式。今天大多數礦工都運行GETH,所以你可能可以只運行GETH。但當你有一個大的交易操作時,你要盡可能地覆蓋你的基礎。
成本也是一個重要因素。你必須考慮到在世界各地的服務器上運行自己的節點的成本。同時也要考慮到你開發一個系統的時間成本,這個系統能夠將所有這些交易從你的節點網路路由到你的交易機器人,
結論
BloXroute毫無疑問是最好的以太坊Mempool服務,適用于大規模交易操作的自動化DeFi交易者,他們不僅提供最低的延遲,而且還擁有最友好的速率限制(幾乎沒有)以及合理的價格。而且雖然我們相信你自己運行的節點,但大多數交易者都不太可能像BloXroute那樣低成本、高性能地運營自己的Mempool基礎設施。