FABRKNT
Reth Fundamentals — Alloy で動かす最初の一歩
EVM の中身を覗く
レッスン 10 / 11·CONTENT10 分20 XP
コース
Reth Fundamentals — Alloy で動かす最初の一歩
レッスンの役割
CONTENT
順序
10 / 11

レッスン10 — Foundry — Rust EVMツールチェイン

問い

Foundry = Rust 製の Solidity 開発ツールチェインforge(テスト + ビルド)/ cast(chain CLI)/ anvil(ローカルノード)/ chisel(Solidity REPL)の 4 binary、すべて Revm を内部で使う。Hardhat / Truffle が JS だったところを、Foundry は Rust ネイティブで 20-30 倍速い

原理(最小モデル)

  • 4 binary. forge(テスト + コンパイル)/ cast(curl + jq for EVM)/ anvil(local node、--fork-url で mainnet fork)/ chisel(Solidity REPL)。
  • foundryup でインストール. curl -L https://foundry.paradigm.xyz | bash && foundryup の 1 行、ツールチェイン全体を更新。
  • forge test = Solidity 版 cargo test. .t.sol ファイル + test* 関数を自動発見、in-process REVM で sub-second フィードバック。
  • Cheatcodes = precompile. vm.warp / vm.deal / vm.prank がアドレス 0x71097... の precompile call、Hardhat の evm_snapshot JSON-RPC とは同一プロセス + IPC なしで根本差。
  • Foundry を極めるコース(中級). 規律の transfer(Rust proptest! → forge fuzz / forge invariant、Capstone で InsuranceFund 2 言語証明)、本レッスンはその入口。

具体例 + ステップで組み立てる

Foundry — Rust EVMツールチェイン(導線)

Foundry は Reth / Revm / Alloy と同じ Rust EVM 系譜のツールチェインで、主に次の 4 つから成る。

ツール役割
forgeSolidity の build / test
castRPC / calldata / storage の検査
anvilローカルノード(fork 含む)
chiselSolidity REPL

最小セットアップ:

curl -L https://foundry.paradigm.xyz | bash
foundryup
forge init counter && cd counter
forge test

ここで理解すべき要点は 1 つだけ: forge test は Revm の上で実行される
つまり Foundry は、ノード開発と分断された別世界ではなく、同じ実行基盤の開発者向けインターフェースである。

この先の学習導線

  • 詳細な Foundry 全体像: /courses/mastering-foundry-ja/lessons/foundry-orientation-ja
  • Cheatcode の内部機構: /courses/mastering-foundry-ja/lessons/foundry-anvil-cheatcodes-ja
  • 実務レベルのテスト規律: fuzz / invariant / cheatcode は Foundry 本編へ

テスト観点(このページで最低限)

Foundry テストの型は 3 つだけ覚える:

  1. unitforge test
  2. fuzz(入力空間の探索)
  3. invariant(呼び出し順序を跨ぐ保存則)

最小サイクル:

forge test
forge test -vvv
forge snapshot

本番前の最低基準:

  • 失敗パスを vm.expectRevert で確認
  • 重要イベントを vm.expectEmit で確認
  • 算術を含む public 入力を fuzz
  • 会計保存則を invariant で確認

ここから先(重複回避のため専用コースへ)

  • テスト規律の全体像: /courses/mastering-foundry-ja/lessons/foundry-orientation-ja
  • fuzz 実践: /courses/mastering-foundry-ja/lessons/foundry-forge-fuzz-ja
  • invariant 実践: /courses/mastering-foundry-ja/lessons/foundry-forge-invariant-ja
  • cheatcode / fork 実践: /courses/mastering-foundry-ja/lessons/foundry-anvil-cheatcodes-ja

まとめ(3行)

  • Foundry = Rust 製 Solidity ツールチェイン、4 binary(forge / cast / anvil / chisel)、内部で Revm 使用、JS 系(Hardhat / Truffle)より 20-30 倍速い。
  • forge test = cargo test 等価、in-process REVM、cheatcode は precompile(vm.warp / vm.deal / vm.prank 等)。
  • 中級 Foundry コースで規律の transfer を深掘り、次は Fundamentals まとめクイズ。