在zkSync鏈上進行了大規模交易的壓力測試,結果表明其性能非常出色,TPS飆升、Gas穩定,表現完美。作者進一步解釋了zkSync備份出塊的工作原理,以及使用者和瀏覽器端可能遇到的體驗問題,並指出這些問題其實並不影響zkSync鏈的處理能力。作者也強調了zkSync鏈的運轉性能,並討論了銘文事件對layer2公鏈的影響。總的來說,zkSync的表現非常出色,為layer2公鏈帶來了更多的信心。
撰文:浩天
在zkSync鏈上刻銘文,短時湧入的天量交易,確實是一次layer2公鏈性能的“壓力測試”,不過結果並不是“宕機”,其實,這是一次zkSync的公開練兵,結果是TPS飆升、GAS穩定性等都完美經受了考驗。
接下來,用技術邏輯,我來跟大家澄清一下:
zkSync 備份出區塊的工作原理,簡單來說:使用者建構交易進入zkSync Sequencer 的排序序列,然後Sequencer 根據Gas Fee 高低排序備份進區塊,然後再把區塊形成證明系統驗證,最後提交到主網完成finality確認。
這裡邊有2 個關鍵點,很容易製造「體驗糟糕」的假象:
1)用戶建構交易階段:大部分用戶都會透過Metamask等錢包端發起交易,而透過錢包端向zkSync發送交易,交易會先進入RPC遠端呼叫伺服器裡,然後Sequencer接收這些交易進入佇列序列。這裡的隊列時間短則幾秒,長則三十,人如果等待時間靜止,MetaMask 就會認定該筆交易已經失敗,然後前置返回交易失敗的提示。
然而,這並不意味著交易真是失敗了,而只是因為Metamask 的RPC 回應時間和回饋邏輯和zkSync 的Sequencer 預留資源交易邏輯存在「不相容」導致。這就是為什麼,有一些明顯MetaMask 顯示失敗的原因交易,在等待一段時間後,伺服器端顯示又成功的原因。
如果使用者不走錢包管道,直接使用報表代碼呼叫zkSync 的RPC,就不會存在回應時間逾時以及提示失敗的問題,體驗相對會很絲滑。這確實會讓一些可使用報表程式碼指令「科學家」取得了優勢,但本質上屬於錢包體驗端的問題,和zkSync 鏈的處理能力無關。
2)Sequencer 排序排序:當使用者短暫向RPC 佇列發出交易時,每一筆交易都會從nonce 值為0 開始加重,如果上一筆交易仍在佇列狀態,nonce 為0,接下來使用者又發起完成了新交易nonce為1,zkSync的Sequencer會根據時間來給這些交易分配nonce,然後依照順序排序。
但如果,用戶在MetaMask 前段看到上一筆交易顯示失敗後,同時又提交新的交易,很可能新提交的交易是由於錢包端和zkSync API 接口調用的問題,有部分交易最終並沒有成功提交到RPC 的佇列序列中。用戶以為提交了很多交易,實際上zkSync 只收到了其中一部分,而只要他們收到就會去排序處理。
看吧,用戶看到MetaMask 提交交易失敗,不斷提交新交易行為的進而造成大量交易失敗,根本上就沒有提交到zkSync 鏈的控制台,只是你在前端這麼以為自己提交了。
整體而言,MetaMask 錢包的RPC 響應時間邏輯問題和用戶急向鏈上大量交易的行為,都會造成大量的交易“失敗”,如果說清楚zkSync 的後台交易處理工作流程的話,相對更容易忽視這些優化體驗問題。
基於以上科普,接下來又搞定了下「停機」問題:
zkSync 鏈嚴重「宕機」,只是瀏覽器前置顯示問題,因為瀏覽器會透過zkSync 的RPC 介面拉取最新數據,但介面回應會出現延遲,大量新交易會使回應變慢。
總之,瀏覽器的拉取資料同步速度跟不上排隊交易的速度,這是瀏覽器前置的問題,與鏈的運作沒有關係。通常等交易速度適當調整,瀏覽器可以抓取到新資料之後,問題就會解決。
當遇到瀏覽器不工作的時候,可以透過其他同步zkSync區塊資料資訊的瀏覽器來交叉驗證,例如:https://hyperscan.xyz
鏈的真實「運轉性能」情況如何呢?
1)在稱停機突發爆出後,zkSync 的官方工作人員Anthony Rose 在推特卻頻頻發布TPS 刷新捷報。實際上,zkSync TPS 飆到了187.9 的高峰,正常情況下,TPS 只有50-100 左右,這說明大量的新交易湧入,zkSync其實抗住了壓力。這確實也為未來幾千甚至上萬的TPS做了充分一次的「壓力測試」。
2)ZK-Rollup的特殊機制決定了,處理的交易量更大,Gas費則越便宜,事實上,zkSync的Gas費確實更便宜了,因為交易成本也被分攤了,根據growthepie數據顯示,近24小時,zkSync的Gas隨手還降低了5.2%,平均在$0.19左右,這個數據每個人的體驗可能不太一樣,但綜合鏈的運行數據,確實是便宜了。佐證了ZK-Rollup的更順暢的體驗需要將現有的使用者規模提升到一個量級。
銘文事件對layer2公鏈的影響?
根據沙丘數據顯示,同步的銘文鑄造,14小時新增了5M筆交易,已有65575個持有者參加。誠如上述所言,zkSync官方已經了維護社區發起的「壓力測試」活動,也採取緊急措施確保zkSync鏈的小區進行。
這個數據對zkSync而言確實是更好的一次壓力測試實驗,其正向影響更大損失。長期看,銘文事件並非傳言中把layer2性能打回了原型,反倒給layer2的進一步性能優化提供了實踐經驗。
據我了解,除了Sync之外,還有其他銘文正在鑄造,雖然不及Sync現在fomo,但也給這個壓力測試加了一把火。
無論如何,結果整體來說是好的,大家若釐清zkSync後台排序出塊的技術邏輯,再撥開其中存在的「體驗較差」錯誤會,就應該理解,一切運作安好,我們得給layer2多一點信心。
資訊來源:0x資訊編譯自網際網路。版權歸作者鏈上觀所有,未經許可,不得轉載