EVM Perp · サンドボックス合格
Single-block cascade
単一ブロックに圧縮したカスケード——ブロック単位のスキャナパイプラインが、再入なしに1つのコンセンサスティックで全クローズ注文を処理できることを検証。
`cascade` と同じアカウント。ただしセットアップ+クラッシュの全てがブロック1で発火する。
何が起きるか
`cascade` と同じ5人トレーダーのカスケードだが、全イベント——入金、待機売り、成行買い——がブロック1で一度に着地する。清算エンジンは1度だけ走り、オラクル下落で脆弱になった全員を1tickでクリアする。『一発のストレステスト』と段階的なマルチブロック版を比較するのに有用:両者は同じ最終状態を生むが、マルチブロック経路ではカスケードに先行するポジション構築フェーズを見られる。
宣言された結果
宣言した各結果は、実行時の実際の状態に対して ✓ 合格 / ✗ 不合格 で採点されます。
- 単一ブロックのセットアップ後、トレーディングアカウントが5件存在する
- 約定4件(4件の成行買いが待機売りとクロス)
- マークブックが確定した後、清算スキャナがアカウントを検知する
- 清算は2件を超えない——ライトバックが再検知を防ぐ
4件中4件の結果を検証
実行を1ブロックずつ辿る
マーク96ソースclob取引8約定4入金5清算2ADLyes
ここで 2 件の清算+ADL が発火
検証レポート(原文)
ツールが出力する英語の原文レポート(5セクション)——毎回同一です。
─── scenario: single-block-cascade ────────────────────────────────────
HEADLINE ✓: Same accounts as `cascade`, but the entire setup + crash fires on block 1.
DESCRIPTION:
The same five-trader cascade as `cascade`, but every event lands in block 1 — deposits, resting sells, market buys all at once. The liquidation engine then runs once and clears everyone the oracle drop made vulnerable, in a single tick. Useful for comparing 'one-shot stress test' vs the staggered multi-block version: both produce the same final state, but the multi-block path lets you see the position-building phase that precedes the cascade.
TIMELINE (per-block):
height mark src trades fills deposits liqs adl fund
------ ------ --------------- ------ ----- -------- ---- --- ----
1 96 clob 8 4 5 2 yes —
2 96 clob 0 0 0 0 — —
3 96 clob 0 0 0 0 — —
ACCOUNT DELTA (final − initial):
account collateral position avg_entry
------- ---------- -------- ---------
10 200 10 110
20 0 0 110
30 0 0 110
40 300 0 110
50 444 0 110
(initial account count: 0, final account count: 5)
OUTCOMES:
✓ Five trading accounts exist after the single-block setup
✓ Four fills (the four market buys crossing the resting sells)
✓ The liquidation scanner flags accounts after the mark-book settles
✓ No more than 2 liquidations fire — write-back prevents re-flagging
4 of 4 outcome(s) verified.
NOTE: v1 runs the scenario in-process against a unit-provider
`LiveRethEvmBridge<()>` (no Reth boot). For the production-shape
run (real Reth + Malachite + JSON-RPC), use:
openhl reth-devnet --chain-history scenarios/single-block-cascade.json --rounds 3
NEXT:
• Adopt this engine : https://github.com/psyto/rdk
• Custom build : https://fabrknt.com/waitlist.html?product=evm-perp&intent=build
• Hosted access : https://fabrknt.com/waitlist.html?product=evm-perp&intent=hosted