デュアルブロックアーキテクチャ
HyperEVM の総スループットは、高速なレートで生成される小さなブロックと、より遅いレートで生成される大きなブロックに分割されます。
デュアルブロックアーキテクチャの主な動機は、スループットの改善を割り当てる際に、ブロック速度とブロックサイズを分離することです。ユーザーは確認までの時間を短縮するために、より速いブロックを求めます。ビルダーは、より複雑なコントラクトデプロイなどの大きなトランザクションを含めるために、より大きなブロックを求めます。デュアルブロックシステムは、強制的なトレードオフの代わりに、両方の軸に沿った同時改善を可能にします。
HyperEVM の「メモリプール」は、アンブレラ L1 実行においては依然としてオンチェーンの状態ですが、2 種類のブロックのためにトランザクションを供給する 2 つの独立したメモリプールに分割されています。2 種類のブロックタイプは、一意の増加する EVM ブロック番号のシーケンスとインターリーブされます。オンチェーンのメモリプール実装は、各アドレスについて次の 8 個の nonce のみを受け付けます。メモリプール内の 1 日より古いトランザクションは削除されます。
初期設定は保守的に設定されており、スループットは今後の技術アップグレードを通じて増加すると予想されます。ファストブロックの持続時間は 1 秒、ガス制限は 3M に設定されています。スローブロックの持続時間は 1 分、ガス制限は 30M に設定されています。
より正確には、上記の定義において、x のブロック持続時間とは、l1_block_time % x の各値について最初の L1 ブロックが EVM ブロックを生成することを意味します。
開発者は以下のようにしてより大きなコントラクトをデプロイできます:
- アクション
{"type": "evmUserModify", "usingBigBlocks": true}を送信して、HyperEVM トランザクションをスモールブロックではなくビッグブロックに向けるようにします。このユーザーステートフラグは HyperCore のユーザーレベルで設定され、スモールブロックを対象とするには再度解除する必要があることに注意してください。他のアクションと同様、これには既存の Core ユーザーが送信する必要があります。他の EOA と同様に、デプロイヤーアドレスは USDC などの Core 資産を受け取ることで Core ユーザーに変換できます。 - 必要に応じて、次のビッグブロックのベースガス代を見積もるために、
gasPriceの代わりに JSON-RPC メソッドbigBlockGasPriceを使用します。