FABRKNT
Inside Reth — シンク・拡張・SDK
Reth スタック — シンク・拡張・SDK
レッスン 16 / 17·CONTENT10 分20 XP
コース
Inside Reth — シンク・拡張・SDK
レッスンの役割
CONTENT
順序
16 / 17

レッスン12 — 次のティアへの橋渡し — Advanced (L1 Architect) と Expert

問い

Alloy → Revm → Reth(Staged Sync、ExEx、カスタム NodeBuilder) の階段を上ってきた。「読める」は半分、次のティアは何を教え、どこから始めるか?

原理(最小モデル)

  • ゲートチェック 5 問. popn_top! 展開 / Database vs DatabaseRef 非対称 / ExExEvent::FinishedHeight 役割 / MerkleStage の位置 / Tempo のコンポーネント差し替え。4 未満なら戻る
  • Advanced ティア = L1 を architect. 5 コース(Consensus Engineering / Cross-Chain Bridges / Sequencer & Rollup / P2P Networking / Validator Operations)、難易度 ADVANCED。
  • Expert ティア = 本番に出す. 2 コース(Reth Expert / Building with the Stack)、難易度 EXPERT。
  • マインドセット転換. Intermediate = 構造 を教える / 次ティア = その構造の 背後にある決定 を教える。
  • 「なぜ」を読む前に意見を持つ. インフラ出荷エンジニアの規律、間違っていても先に意見。
  • 両ティア独立、興味と project に合うほうから.

具体例

ゲートチェック 5 問:

  1. popn_top! は何に展開される? なぜ unsafe 内で unwrap_unchecked() を使うのか?
  2. DatabaseDatabaseRef がなぜ別トレイト? auto_impl リストの非対称(&mut, Box vs &, &mut, Box, Rc, Arc)が何を語るか?
  3. ExExEvent::FinishedHeight が Reth pruner に何を伝えるか — 忘れた場合のディスク帰結は?
  4. なぜ MerkleStage がハッシング後で、間に挟まれていないのか?
  5. Tempo のような purpose-built L1 を出荷するために Reth のどのコンポーネントを差し替えるか?

4 正解未満なら進まない、該当 Inside Reth レッスンに戻る。

Advanced ティア(5 コース、ADVANCED):

コース焦点
Consensus EngineeringPoS / BFT / Tendermint 内部、レイテンシ・ライブネス・finality
Cross-Chain BridgesCCIP・OP Standard Bridge・light client、自分で書く
Sequencer & Rollup アーキテクチャ中央集権 sequencer → 共有 sequencer、MEV 防衛、forced inclusion
P2P Networking Internalsdevp2p・libp2p・gossip サブプロトコル・ピアスコアリング
Validator Operations鍵管理、slashing 条件、協調アップグレード

Expert ティア(2 コース、EXPERT):

コース焦点
Reth Expertパフォーマンス、MDBX、Tokio 内部、手続きマクロ、カスタム precompile、MPT、本番 MEV、zkEVM、Reth フォーク運用
Building with the Stack動くアプリ 10 本 — MEV searcher、indexer、wallet backend、cheatcode、swap aggregator、order router capstone、cross-client 検証、HTTP 402 / MPP machine-payments

順序:

  • Advanced を先に: 自分で L1 を architect したい、Hyperliquid / Tempo を理解したい
  • Expert を先に: 既存 chain で本番アプリを ship したい、運用 / 性能エンジニアリングが必要
  • 両方終えれば「読める + 設計できる + 出荷できる」の三拍子

マインドセット転換 — 「なぜ」を予測:

  • MDBX vs RocksDB: コンパクションストールでの読み取りレイテンシ
  • pop-1-write-through: ADD あたりメモリ書き込みが 1 回減る
  • #[track_caller]: パニックのバックトレースがトレイトメソッドではなく、バグった呼び出し元を指す
  • cheatcodes が precompile: バニラ EVM とのコンセンサス互換性(precompile は予約アドレス、新 Opcode ではない)

ポイントは私の言い回しと一致したかではなく: 読む前に意見があったか? 一度この なぜ を内部化すれば、Paradigm のエンジニアや Hyperliquid validator 運用者と設計判断を議論可能 = grant 応募可能な仕事への入口。

失敗例(誤解)

「ゲートで 3 問正解なら進んで良い」— 間違い。次ティアは「再調査する概念」ではなく「流暢な語彙」として前提する。4 未満で進むと密度に詰まる。

「Advanced を先に Expert を後にすべき」— 半分間違い。両ティア独立、興味と project 次第。Hyperliquid / Tempo 理解優先なら Advanced、本番アプリ出荷優先なら Expert。

「『なぜ』を予測しなくても読めば分かる」— 間違い。インフラ出荷エンジニアの規律 = 読む前に意見を持つ、間違っていても先に。「内部化」が grant 応募可能な仕事への入口。

ステップで組み立てる

Step 1: ゲートチェック 5 問

popn_top! / Database 非対称 / FinishedHeight / MerkleStage 位置 / Tempo コンポーネント差し替え。

Step 2: 4 未満なら戻る

該当 Inside Reth レッスンを再読、次ティア前提を満たす。

Step 3: Advanced or Expert を選ぶ

architect 優先 = Advanced / 出荷優先 = Expert。

Step 4: マインドセット転換

構造 → 構造の背後の決定。「なぜ」を予測してから読む

Step 5: 両ティア完走を目指す

「読める + 設計できる + 出荷できる」三拍子。

答え合わせ

  • ゲートチェック 4 未満で戻るべき理由: 次ティアは「流暢な語彙」前提、再調査する概念扱いではない。密度高 + リンクされたコード再現が必須 + デフォルトで言える状態でないと付いていけない。前提を満たすことが進む条件
  • マインドセット転換の意味: Intermediate = 構造を教える(Stage trait、ExEx API、NodeBuilder の形)/ 次ティア = 構造の 背後にある決定 を教える(なぜ MDBX、なぜ pop-1-write-through、なぜ #[track_caller]、なぜ cheatcodes が precompile)。意見 → 検証 → 内部化のサイクル。
  • 「読める + 設計できる + 出荷できる」の三拍子の意味: Inside Reth で読める / Advanced (L1 Architect) で設計できる / Expert で出荷できる。3 つ揃って Paradigm / Hyperliquid / Tempo エンジニアと議論可能 = grant 応募可能な仕事の入口。

合格基準

  • ゲートチェック 5 問に答えられる。
  • Advanced ティア 5 コースと Expert ティア 2 コースを役割で言える。
  • マインドセット転換(構造 → 背後の決定)を 1 文で説明できる。
  • 「なぜ」を予測する規律の意味を言える。
  • 「読める + 設計できる + 出荷できる」三拍子を即答できる。

まとめ(3行)

  • Inside Reth 完走後 = Advanced (L1 Architect, 5 コース) / Expert (本番に出す, 2 コース) の 2 ティアに進む、両ティア独立で興味と project 次第。
  • ゲートチェック 5 問で 4 未満なら戻る、次ティアは「流暢な語彙」前提で密度高 + リンクコード再現必須。
  • マインドセット転換 = 構造(Intermediate)→ 構造の背後の決定(次ティア)、「なぜ」を予測してから読む規律 = grant 応募可能な仕事への入口。