雙區塊架構
HyperEVM 的總吞吐量分配給以較快速率生成的小區塊和以較慢速率生成的大區塊。
雙區塊架構的主要動機是在分配吞吐量改進時將區塊速度與區塊大小解耦。用戶希望更快的區塊,以縮短確認時間。Builder 希望更大的區塊,以容納更大的交易,例如更複雜的合約部署。雙區塊系統避免了被迫取捨,允許沿兩個維度同時改進。
相對於整體的 L1 執行,HyperEVM 的"mempool"仍是鏈上狀態,但被拆分爲兩個獨立的記憶體池,分別爲兩種區塊類型提供交易來源。兩種區塊類型以唯一遞增的 EVM 區塊號交錯出現。鏈上記憶體池實現僅接受每個地址接下來的 8 個 nonce。記憶體池中超過 1 天的交易會被修剪。
初始配置較爲保守,吞吐量預計將隨着後續的技術升級而提升。快速區塊時長設爲 1 秒,Gas 上限爲 3M。慢速區塊時長設爲 1 分鐘,Gas 上限爲 30M。
更準確地說,在上文的定義中,x 的區塊時長表示對每個 l1_block_time % x 的取值,首個 L1 區塊會產生一個 EVM 區塊。
開發者可以按以下方式部署更大的合約:
- 提交操作
{"type": "evmUserModify", "usingBigBlocks": true},將 HyperEVM 交易導向大區塊而非小區塊。注意,該用戶狀態標誌設定在 HyperCore 用戶級別,若要重新以小區塊爲目標,必須再次取消該標誌。與任何操作一樣,這需要已存在的 Core 用戶發送。與任何 EOA 一樣,部署者地址可以通過接收 Core 資產(例如 USDC)轉變爲 Core 用戶。 - 可選:使用 JSON-RPC 方法
bigBlockGasPrice代替gasPrice來估算下一個大區塊的基礎 Gas 費。