GasNow:為DeFi農民尋找最優的Gas Price

買賣虛擬貨幣

DeFi挖礦火爆持續至今,以太坊作為DeFi最主要的陣地,吞吐量又一次成為瓶頸,其中最重要的表現就是以太坊的Gas價格(Gas Price)不斷創新高,從原本的40-50 Gwei,飆漲到最高時400-500 Gwei。

Gas 本質上是一種拍賣機制,區塊空間有限,當交易數量過多時,礦工會優先打包給出更高手續費的交易。而流動性挖礦超高收益的背後,每個農民都在爭分奪秒的挖提賣。DeFi玩家對交易打包上鍊的速度要求,變得異常敏感。

想要更快的完成交易,就需要付出更高的Gas價格。那麼究竟多少Gas Price是合適的呢?一般圈內人習慣透過etherscan或者eth gas station檢視Gas費,但很多人不知道的是,這些資料其實都有一定的滯後性,不一定是精準的。

橙皮書最近接觸到的一款產品叫 GasNow,它是星火礦池團隊面向普通使用者的一個實驗性小產品,希望為DeFi農民提供實時的Gas價格,讓交易者找到最合算的手續費定價。GasNow 基於星火礦池內部的資料,透過待處理交易佇列,試圖得出一個實時性和準確度更高的Gas價格,這與基於鏈上歷史資料的計算方式有明顯區別。

這篇文章橙皮書找到了星火礦池(SparkPool)的產品負責人喵叔,一起聊了聊GasNow的產品設計。以下是採訪正文。

橙皮書:GasNow這個專案最早是怎麼發起的?

喵叔:一開始我們也是去etherscan或者gas station上查Gas價格,後面發現它們的資料都不太準確,很多時候上面顯示的Gas價格非常高,但我們發現,星火礦池上可能更低手續費的交易已經被打包上了。於是我們就想,能不能透過礦池的資料做一個更精準的資料展示。最初純粹是為了解決自己的需求。後面發現開放出來給普通使用者也挺好的,所以就做成了現在的GasNow,是一個極簡風格的小工具。

現階段因為DeFi流動性挖礦非常火,如果去看Gas價格的歷史資料,其實是比之前 ICO 那階段還要高出更多的。當時 ICO 時期,Gas價格也有一個小幅度的上升,但漲得沒有現在這麼猛。當然,Gas Limit 其實一直都是接近滿負荷的。也就是說,以太坊一直以來就比較擁堵,只是最近這個階段,在擁堵的同時,人們對速度要求更高,“插隊”的需求增多了。這是跟以往比較不同的地方。

橙皮書:GasNow是基於星火礦池待處理交易佇列去計算得到的Gas價格。相比之下,其他家的資料為什麼會沒那麼精準呢?

喵叔:一般計算Gas價格有兩種方法,一種是根據鏈上資料,比如過去100區塊裡Gas Limit和Gas Price的使用情況,去推測現在的Gas費應該是多少,依據歷史資料做模型推測。另一種方法就是像我們這樣,以當前正在打包的交易佇列,看每個交易的Gas價格是多少,然後排序找出裡面的中位數、平均值等等,得出一個比較合適的資料。

第二種方法是更接近當前時刻的資料。它的實時性更高。對很多Dex的交易者來說,速度是有很高要求的,他們對能不能第一時間打包上交易非常敏感,GasNow希望能針對這些使用者,為他們提供一個比較準確的Gas價格的參考。

星火礦池本身已經積累下來了這方面的資料,所以我們不需要做二次開發,可以很快做完GasNow。當然反過來說,GasNow這個產品天然適合由礦池來做,因為礦池本身的商業模式比較簡單,就是要儘可能快地去收集全網的交易,更快地去把這些交易打包進區塊。

礦池的職責是守護整個網路的安全,吸引更多人進來挖礦,自己安心做送水的服務掙錢就行了。所以這部分交易的資料,礦池也願意開放出來,不需要遮遮掩掩,對商業模式沒有影響。所以最終,基於礦池開放出GasNow這樣的產品,就非常名正言順了。

橙皮書:這種方式跟我自己執行一個節點,然後透過以太坊的網路協議,去遍歷獲取各個節點Mempool 裡的打包交易有什麼區別嗎?

喵叔:如果是你自己執行一個節點,比如節點設定在杭州,那麼因為以太坊是個全球網路,你最先能獲取到的交易可能是杭州地區,然後是中國地區,最後才是國外地區。國外地區因為網路延時,有些交易資料可能是滯後的。最終你掌握的資料可能只是區域性精準的狀態,這對你最終計算Gas價格的精確度和實時性是有影響的。

而礦池的商業模式決定了它天生就需要更快速、更全面的拿到全網所有待處理的交易資料,所以依附礦池的資料來做會更精準、更快速,同時開發上也更省力。

橙皮書:礦池為什麼能比我單個節點拿到全網交易的速度更快?它做了哪些方面的最佳化呢?

喵叔:其實這是一個非常簡單的成本問題:看你能不能架設足夠多的節點。礦池為了更快拿到全網的交易資料,它會在全球很多個地方架設不同的節點,速度就更快。相比之下,一個單獨的節點肯定是比不過的。礦池的優勢在於它可以承擔架設這些節點的成本。

橙皮書:所以你們現在全球有多少個節點?這些節點是基於雲服務的節點,還是物理節點嗎?

喵叔:這個資料現在應該還不方便透露。節點型別的話,只能說各種型別都會有。架設多少節點這個事,主要還是看價效比。它不但跟地理位置有關,也跟不同地區發出交易的頻次有關。假設一個極端情況,在北極有一個以太坊的節點,那你不可能為了它在北極專門放一臺伺服器做監測,而且這個北極節點可能幾天才發一筆交易,頻次很低,那可能就會相應地做一些取捨。相反,其他地區可能發出的交易非常密集,那麼就需要在那裡布更多的節點監測。

橙皮書:GasNow的產品設計非常極簡,上面現在就四個數字(極速、高速、一般、緩慢),普通使用者怎麼來用呢?

喵叔:首先要了解一點,每個區塊 Gas Limit 的上限是1250萬,不同型別的交易所需要的gas數量不同,普通的ETH轉賬需要21000個Gas,複雜的合約交易可能需要幾百萬個Gas,所以每個區塊實際打包到的交易筆數是變化的,最低幾十筆甚至幾筆交易,最高則可以有600多筆交易(1250萬/21000)。

GasNow的計算方法,第一步是先把待打包佇列中的2000筆交易全部列出來(tx1,tx2,tx3,tx4,……txn……tx2000),然後按Gas價格從高到低排列。下一個區塊能夠打包的是其中的N筆交易(tx1,tx2,tx3,tx4……txn),注意這裡的N是不確定的。

在這一基礎上,我們計算出了這四個數字,含義分別如下:“極速”模式,代表的是(tx1,tx2,tx3,tx4……txn)中位數交易的Gas價格,“高速”是txn的Gas價格。“一般”是第max(tx2n,500)筆交易的Gas價格,“緩慢”則是第max(tx5n,1000)筆交易的Gas價格。假如下個區塊能夠打包300筆交易,即n=300,那麼“一般”表示第600筆交易的gas價格,“緩慢”則表示第1500筆交易的gas價格。

其實更極簡一點,我覺得可能只放前兩個數字(極速、高速)就夠了。

橙皮書:是不是隻要我給出的Gas價格跟第二個數字(高速模式,即txn的Gas價格)一樣,就肯定能被打包進當前的區塊?

喵叔:這其實有非常多種可能性,因為牽涉到Gas Limit的問題。比如你給的Gas價格跟當前正在打包的塊中的最後一筆交易相同,如果這筆交易被打包進去後,剛好用完了這個區塊的Gas Limit,那你就得挪到下一個塊。

到了第二個塊,如果這時又有人出更高的Gas價格,那它又排在了你的前面。你又沒法第一時間打包上去了。所以為什麼GasNow不根據歷史資料去做預測呢?因為預測交易被打包的排序真的非常難。我們還是聚焦於當前這一時刻的資料,專注去解決實時性的問題。

橙皮書:除了四個數字,GasNow上還有一個Pending Transactions 的圖表,能解釋下這個圖表的含義嗎?

喵叔:這個圖表橫軸代表的是交易的Gas價格,縱軸是大於等於這個Gas價格的交易筆數。所以pending transactions 實際上代表了一個全域性的資訊,囊括所有待處理交易的Gas價格資訊。我們選出來的四個數字,只是這個全域性資訊座標裡的四個點而已。

橙皮書:GasNow這個小產品,後續在商業模式上是怎麼考慮的?

喵叔:目前GasNow是免費開放給所有使用者使用。像 imToken、MYKEY、MathWallet、TokenPocket 這些錢包也已經支援了。目前我們的伺服器還應付得過來,如果後面資料請求壓力太大,可能才會考慮開始收費。GasNow的網頁現在是8秒自動重新整理一次的,也是基於免費模式價效比的一個考慮。如果我們改用websocket長連結的方式,那伺服器可以直接把實時的資料推送到前端頁面,不過這樣我們的開銷也會更大一些。

商業模式上,GasNow沒法干涉使用者的操作,所以它是很難收費的。對不同的使用者來說,發交易時參考一眼我們產品給出的Gas價格,這個資料也很難量化出一個固定的價值。我覺得也不是很容易去收費。所以暫且就是免費模式。後面有什麼可能性,暫時不知道。

橙皮書:感覺有點像etherscan?他們好像也沒有商業模式,就是在頁面上掛一些廣告而已。

喵叔:嗯,這種基礎性質的資料服務確實不好收費。相比之下,infura 就比較好收費了,它也不用面向普通使用者收費,直接賺企業客戶的錢,比較好定價。

橙皮書:GasNow接下來有什麼打算?

喵叔:應該會繼續保持一個比較極簡的產品形式。核心就是提供這四個資料,所以你現在看到的產品,可能已經完成90%了,剩下的10%是怎樣把這四個資料做得更平滑、更精準,但大的方面不會變了。

當然,做了網頁版之後,我們發現使用者經常需要開啟這個頁面,然後看一眼Gas費,再點開metamask發起交易,這樣操作會有一箇中斷,不是很方便,所以我們又開發了一個mac版的桌面端小外掛,它可以常駐在桌面通知欄,實時顯示這四個資料,比較方便。

另一方面,單純給出這四個數字,很多使用者理解起來還是有困難,用文字做解釋又需要理解,所以我們現在還在補充一些資料視覺化的功能,讓使用者更直觀的看懂這四個資料代表的含義,幫助他們更快速地找到適合自己的Gas價格。

橙皮書:Metamask在發起交易的時候,也有一個Gas價格的估算。他們有沒有可能去採用你們的資料?

喵叔:Metamask現在算是最大的瀏覽器錢包了吧,所以嚴格來說,不管他們的產品體驗做到什麼程度,其實使用者都必須去使用,沒有太多選擇。暫時他們還沒有聯絡我們。當然,我們也希望有更多產品能接入我們的資料,讓使用者在桌面端、移動端都能看到更精準的Gas價格。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;