レッスン0 — Inside Reth へようこそ
問い
これは RethLab の 3 つの独立した中級ティアコースの 1 つ。どこから始め、何を前提に読むか?
原理(最小モデル)
- 3 中級コースは独立だが順序がある. Inside Revm(EVM エンジン)→ Inside Reth(このコース、Staged Sync + ExEx + SDK)→ Inside Alloy(Provider + Network + Signer)。Inside Revm を先に推奨(
Databasetrait + Revm 実行モデルが前提)。 - 3 トピックチェーン. Staged Sync(10 ステージ ETL パイプライン)+ ExEx(インプロセス Rust 注入)+ Reth SDK(自前 App-chain)。各々が「積み上げ → ウォークスルー → クイズ → ドリル」の 4 部構成。
- 前提知識 3 領域. Revm 内部(
Databasetrait の形)+ ブロックレベル Ethereum(header / body / receipts、reorg は通常運用)+ 中級 Rust(generics + trait bounds、Arc、async/Future、auto_impl)。
具体例
3 中級コースの分担:
| コース | 焦点 |
|---|---|
| Inside Revm | EVM エンジン内部 — 未受講なら先に推奨 |
| Inside Reth(ここ) | Reth: Staged Sync・ExEx・Reth SDK |
| Inside Alloy | Alloy: Provider・Network・Signer |
セットアップ(一度だけ):
# 1. paradigmxyz/reth を clone
git clone https://github.com/paradigmxyz/reth
# 2. bluealloy/revm を clone(ExEx / SDK レッスンで横断参照)
git clone https://github.com/bluealloy/revm
# 3. 動く cargo ツールチェイン確認
rustc --version
# 4. cargo-expand(両リポの手続きマクロ)
cargo install cargo-expand
セカンドモニタか分割端末で、レッスンを読みながらソースを参照する形が想定。
ステップで組み立てる
Step 1: Inside Revm への自己チェック
Databasetrait の形、Revm が状態を読む仕組みExecutionStageでStageとDatabaseがどう相互作用するか
不安なら Inside Revm を先に。
Step 2: ブロックレベル Ethereum
- header / body / receipts、reorg は通常運用
- sender 復元、tx body デコード、receipt の中身
中級への橋渡し でカバー済。
Step 3: 中級 Rust 語彙
- Generics + trait bounds、
?Sized、dyn Traitvsimpl Trait Arc<T>、Mutex<T>、RwLock<T>async/Future/Streamの基礎auto_implマクロと手続き属性
このコース内の Rust: ライフタイム・Box・Arc・dyn Trait レッスンが自己チェック用。
Step 4: コース構造を把握
3 トピックチェーン(Staged Sync / ExEx / SDK)+ Testing + Bridge to Expert。各チェーンは「buildup → walkthrough → quiz → drill」の 4 段。
まとめ(3行)
- Inside Reth は RethLab の 3 中級コースの 1 つ、
Databasetrait と Revm 実行モデルへの慣れを前提(不安なら Inside Revm を先に)。 - 3 トピックチェーン(Staged Sync 10 ステージ ETL / ExEx インプロセス注入 / SDK 自前 App-chain)、各々が「積み上げ → ウォークスルー → クイズ → ドリル」の 4 部構成。
- セットアップ(reth + revm clone + cargo-expand)を済ませて Lesson 1 「
Stageトレイトをステップで組み立てる」から始める。