FABRKNT
← EVM Perp
EVM Perp · サンドボックス合格

Bring-up

ジェネシス → 最初のブロック生成 → 最初のオーダーブック投入 → 最初の約定。ストレス適用前に、エンジンが既知の正常状態へ起動することを検証。

openhl が起動し、最初の入金が着地。PDA の割り当てはゼロ——ブリッジの状態こそが市場そのもの。

何が起きるか

openhl perp 市場をゼロから立ち上げる。EVM 側ではこれは*暗黙的*:`LiveRethEvmBridge<()>` は市場 struct を初期状態で持って構築され、最初の入金はブリッジの `accounts` マップへのエントリにすぎない。市場ごとに割り当てる PDA も、別途初期化する Market ヘッダも、導出する vault PDA もない——ブリッジが市場そのものである。同じ状態に到達するのに5つのオンチェーン命令と約4つの異なるアカウント(生の Market alloc、Initialize、invoke_signed による市場 PDA、(market,mint) ごとの vault PDA、CPI 入金)を要する `openhl-solana/bring-up`(同じ `compare_key`)と対比せよ。差はアカウントモデルにある。

宣言された結果

宣言した各結果は、実行時の実際の状態に対して ✓ 合格 / ✗ 不合格 で採点されます。

4件中4件の結果を検証

実行を1ブロックずつ辿る
マーク100ソースstub-empty-book取引0約定0入金1清算0ADL

検証レポート(原文)

ツールが出力する英語の原文レポート(5セクション)——毎回同一です。

─── scenario: bring-up ────────────────────────────────────
HEADLINE ✓: openhl is up; the first deposit lands. Zero PDAs allocated — the bridge state IS the market.

DESCRIPTION:
  Stand up an openhl perp market from zero. On the EVM side this is *implicit*: the `LiveRethEvmBridge<()>` is constructed with the market struct already in its initial state, and the first deposit is just an entry in the bridge's `accounts` map. There is no per-market PDA to allocate, no Market header to initialize separately, no vault PDA to derive — the bridge IS the market. Contrast this with `openhl-solana/bring-up` (same `compare_key`), where reaching the same state requires 5 on-chain instructions and ~4 distinct accounts (raw Market alloc, Initialize, market PDA via invoke_signed, per-(market,mint) vault PDA, CPI deposit). The diff is the account model.

TIMELINE (per-block):
  height  mark    src              trades  fills  deposits  liqs  adl  fund
  ------  ------  ---------------  ------  -----  --------  ----  ---  ----
       1     100  stub-empty-book       0      0         1     0    —     —
       2     100  stub-empty-book       0      0         0     0    —     —
       3     100  stub-empty-book       0      0         0     0    —     —

ACCOUNT DELTA (final − initial):
  account  collateral  position  avg_entry
  -------  ----------  --------  ---------
       10         100         0          0
  (initial account count: 0, final account count: 1)

OUTCOMES:
  ✓ Single deposit lands a single trading account — no per-account PDA allocation along the way.
  ✓ Bring-up emits no fills (no orders submitted).
  ✓ Quiet bring-up — the scanner finds nothing to flag.
  ✓ Account 10's post-bring-up collateral equals the deposited amount; nothing has moved it.

  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/bring-up.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

他のシナリオ