Skip to content

Commit 1b3d0f7

Browse files
psytoclaude
andcommitted
lessons: fix 15 broken external URLs surfaced by the new link checker (EN+JA)
Fixes all broken external URLs the new external-link CI script flagged on first run. After fixes: 0 broken out of 162 checked. Real link rot — content moved or repos renamed: - vitalik.ca/.../rollup.html → vitalik.eth.limo (Vitalik's blog migrated to eth.limo years ago) - paradigm.xyz/2023/11/shared-sequencer (removed) → Astria docs intro on shared sequencer - docs.optimism.io/builders/chain-operators/architecture → docs.optimism.io/op-stack/protocol/getting-started - paradigmxyz/op-rbuilder → flashbots/op-rbuilder (link text also updated to match) - paradigmxyz/rbuilder → flashbots/rbuilder - paradigmxyz/reth/tree/main/crates/optimism (extracted/restructured) → paradigmxyz/reth root - paradigmxyz/reth/tree/main/crates/ress/protocol → paradigmxyz/ress (already-extracted crate) - paradigmxyz/revm-rs (never existed; link-text mismatch) → bluealloy/revm - ethereum/tests/tree/develop/GeneralStateTests (reorganized) → ethereum/execution-spec-tests (new canonical tests repo) - sei-protocol/revm → sei-protocol/sei-chain (main repo) - flashbots/mev-boost-spec → flashbots/mev-boost (main repo) - hyperliquid.gitbook.io/.../consensus → hyperliquid.gitbook.io/.../about-hyperliquid (consensus page consolidated into about) - docs.cosmos.network/v0.50/learn/advanced/upgrade → docs.cosmos.network/ (v0.50 path restructured) - docs.flashbots.net/.../architecture-overview → docs.flashbots.net/flashbots-mev-boost/introduction - coinbase/sponsored-erc20 (deleted repo; link text was mislabeled "Soneium" — never matched the URL) → removed reference, kept the OpenZeppelin citation Also expanded check-external-links.ts EXCLUDE_PATTERNS with 3 more illustrative/RPC URLs (api.hyperliquid.xyz, aviationstack.mpp.tempo.xyz, crates.io with bot-protection 403). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent d9d35b1 commit 1b3d0f7

15 files changed

Lines changed: 51 additions & 48 deletions

.github/scripts/check-external-links.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,14 @@ const EXCLUDE_PATTERNS = [
5151
/^https:\/\/mpp\.dev\/api/,
5252
/^https:\/\/eth\.llamarpc\.com/,
5353
/^https:\/\/ethereum-rpc\.url/,
54+
/^https:\/\/api\.hyperliquid\.xyz/,
55+
/^https:\/\/aviationstack\.mpp\.tempo\.xyz/,
5456

5557
// Sites with aggressive bot protection — false-positive 403/429 in CI but
5658
// resolve fine for humans. Trade-off: occasional real rot here goes uncaught.
5759
/^https:\/\/www\.coinbase\.com\/blog/,
5860
/^https:\/\/www\.coindesk\.com/,
61+
/^https:\/\/crates\.io/,
5962
];
6063

6164
const CONCURRENCY = 8;

prisma/seed-reth-building-en.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1834,7 +1834,7 @@ Walk:
18341834
- **\`SignedAuthorization::decode_2718\`** — the inverse of the \`encoded_2718\` the user sent. **One round-trip, no manual byte fiddling.**
18351835
- **\`from = sponsor, to = user\`** — this is the heart of the design. The tx is *from the sponsor* (paying gas, signing the outer envelope) but *to the user's EOA* (which now executes as if it were the delegate). Anyone watching the tx sees Bob as initiator and Alice's address as the call target — and the **logs come from Alice's address** because that's the address running the delegate's code.
18361836
- **\`with_authorization_list(vec![signed_auth])\`** — the line that makes this a Type 4. Add multiple \`SignedAuthorization\`s here and you're now batching multiple users into one tx (drill 3).
1837-
- **The delegate's \`executeBatch\` is a convention, not a protocol mandate.** Most EIP-7702 delegate contracts in the wild expose a similar method (see [Soneium](https://github.com/coinbase/sponsored-erc20)'s pattern, OpenZeppelin's reference impl). Pick the convention your delegate uses.
1837+
- **The delegate's \`executeBatch\` is a convention, not a protocol mandate.** Most EIP-7702 delegate contracts in the wild expose a similar method (see OpenZeppelin's reference impl). Pick the convention your delegate uses.
18381838
18391839
> 🛑 **Anti-fluency check.** Without scrolling: when Bob (sponsor) submits this tx, **whose nonce increments**? Bob's, Alice's, both? Hint: think about which nonce is in the outer tx envelope vs. what the authorization's \`nonce\` field is for.
18401840

prisma/seed-reth-building-ja.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1834,7 +1834,7 @@ Walk:
18341834
- **\`SignedAuthorization::decode_2718\`** — ユーザが送った \`encoded_2718\` の逆操作。**1 往復、手動の byte いじりなし。**
18351835
- **\`from = sponsor、to = user\`** — これがデザインの心臓部。tx は *sponsor から* 出る (ガス支払い、外側の envelope に署名) が、*user の EOA に向かう* (今や delegate であるかのように実行する)。tx を観察する誰もが Bob を発信者、Alice のアドレスを call ターゲットと見る — そして **ログは Alice のアドレスから出る**。delegate のコードを走らせているのがそのアドレスだからだ。
18361836
- **\`with_authorization_list(vec![signed_auth])\`** — これを Type 4 にする 1 行。複数の \`SignedAuthorization\` をここに足せば、複数ユーザを 1 つの tx にバッチしていることになる (drill 3)。
1837-
- **delegate の \`executeBatch\` は慣例であってプロトコル必須ではない。** 実運用される EIP-7702 delegate コントラクトの大半が似たようなメソッドを公開する ([Soneium](https://github.com/coinbase/sponsored-erc20) のパターン、OpenZeppelin の参照実装等を参照)。あなたの delegate が使う慣例を選ぶ。
1837+
- **delegate の \`executeBatch\` は慣例であってプロトコル必須ではない。** 実運用される EIP-7702 delegate コントラクトの大半が似たようなメソッドを公開する (OpenZeppelin の参照実装等を参照)。あなたの delegate が使う慣例を選ぶ。
18381838
18391839
> 🛑 **理解度チェック。** スクロールを戻さずに: Bob (sponsor) がこの tx を提出する時、**誰の nonce が増える** か? Bob、Alice、両方? ヒント: 外側の tx envelope に入るのはどの nonce か、authorization の \`nonce\` フィールドは何のためかを考えてみる。
18401840

prisma/seed-reth-consensus-engineering-en.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ For each chain, identify the consensus family and one design choice:
597597
## 8. Reading list
598598
599599
- [HotStuff paper](https://arxiv.org/abs/1803.05069) — the original 2018
600-
- [Hyperliquid whitepaper](https://hyperliquid.gitbook.io/hyperliquid-docs/about-hyperliquid/consensus) — what's public
600+
- [Hyperliquid whitepaper](https://hyperliquid.gitbook.io/hyperliquid-docs/about-hyperliquid) — what's public
601601
- [DiemBFT spec](https://developers.diem.com/docs/technical-papers/the-diem-blockchain-paper/) — the production HotStuff variant (defunct project but public docs)
602602
603603
> Final check: in one sentence, what makes HotStuff superior to PBFT for chains like Hyperliquid? **If your answer is just "faster," go deeper — name the specific structural change.** Reference §2 if needed.`,

prisma/seed-reth-consensus-engineering-ja.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ Tendermint との比較: Tendermint のほうが単純だが pipelining は積
597597
## 8. 読み物
598598
599599
- [HotStuff 論文](https://arxiv.org/abs/1803.05069) — 2018 の原典
600-
- [Hyperliquid ホワイトペーパー](https://hyperliquid.gitbook.io/hyperliquid-docs/about-hyperliquid/consensus) — 公開情報
600+
- [Hyperliquid ホワイトペーパー](https://hyperliquid.gitbook.io/hyperliquid-docs/about-hyperliquid) — 公開情報
601601
- [DiemBFT 仕様](https://developers.diem.com/docs/technical-papers/the-diem-blockchain-paper/) — 本番 HotStuff variant (廃止プロジェクトだが公開文書あり)
602602
603603
> 最終チェック: 一文で、Hyperliquid のような chain で HotStuff が PBFT より優れている理由は? **「速い」だけなら掘り下げる — 具体的な構造的変更を名指しで挙げる**。必要なら §2 を参照。`,

prisma/seed-reth-expert-en.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,7 +1258,7 @@ Two production Rust stateless clients exist as of 2026. They were built by diffe
12581258
- **Repo:** [\`paradigmxyz/ress\`](https://github.com/paradigmxyz/ress)
12591259
- **Target chain:** Ethereum mainnet, fully validating.
12601260
- **Disk:** 14 GB (vs ~3 TB for full Reth).
1261-
- **Witness source:** any full Reth node running with \`--ress.enable\`. Ress peers with it over a dedicated RLPx subprotocol named \`ress\` — see [\`crates/ress/protocol\` in Reth](https://github.com/paradigmxyz/reth/tree/main/crates/ress/protocol).
1261+
- **Witness source:** any full Reth node running with \`--ress.enable\`. Ress peers with it over a dedicated RLPx subprotocol named \`ress\` — see [\`crates/ress/protocol\` in Reth](https://github.com/paradigmxyz/ress).
12621262
- **Witness format:** Merkle Patricia Trie proofs (the format you saw in the MPT lesson — same \`AccountProof\` / \`StorageProof\` shape).
12631263
- **Bytecode:** fetched from the stateful peer **on demand** (via a separate \`GetBytecode\` message). Ress caches what it has seen; missing entries pull from the peer.
12641264
- **Validation flow:** consensus client sends \`NewPayload\` → ress requests witness + missing bytecode from a Reth peer → validates payload in memory → returns \`PayloadStatus\`.
@@ -1341,7 +1341,7 @@ If 1–4 are shaky, scroll back. If you can't argue 5, **you haven't internalize
13411341
## Further reading
13421342
13431343
- [Paradigm blog: Stateless Reth Nodes](https://www.paradigm.xyz/2025/03/stateless-reth-nodes) — the use-case framing in Section 1 comes from here.
1344-
- [\`paradigmxyz/ress\`](https://github.com/paradigmxyz/ress) — README, then \`bin/\` entry point, then the RLPx subprotocol in [\`paradigmxyz/reth/crates/ress/protocol\`](https://github.com/paradigmxyz/reth/tree/main/crates/ress/protocol).
1344+
- [\`paradigmxyz/ress\`](https://github.com/paradigmxyz/ress) — README, then \`bin/\` entry point, then the RLPx subprotocol in [\`paradigmxyz/reth/crates/ress/protocol\`](https://github.com/paradigmxyz/ress).
13451345
- [\`megaeth-labs/stateless-validator\`](https://github.com/megaeth-labs/stateless-validator) — README, then \`crates/stateless-core/src/pipeline\`, then \`crates/stateless-core/src/executor.rs\`.
13461346
- [\`megaeth-labs/salt\`](https://github.com/megaeth-labs/salt) — the authenticated KV store that replaces the MPT in MegaETH's witness format.`,
13471347
},
@@ -1915,7 +1915,7 @@ After drill 5, you have the full mental model for shipping a Revm/Reth fork with
19151915
## 📺 Further reading
19161916
19171917
- [execution-spec-tests docs](https://eest.ethereum.org/) — the spec-test framework
1918-
- [\`paradigmxyz/revm-rs\` fuzzing harnesses](https://github.com/paradigmxyz/revm-rs) — reference implementations of the differential pattern
1918+
- [\`bluealloy/revm\` test crates](https://github.com/bluealloy/revm) — reference implementations of the differential pattern
19191919
- The historical [Geth Yellow Paper Test Suite](https://github.com/ethereum/tests) — for understanding test-corpus evolution
19201920
19211921
`,
@@ -2405,7 +2405,7 @@ Everything else (P2P, MDBX storage, staged sync, ExEx, trie commitments) **comes
24052405
24062406
Order them from "shipped to mainnet" → "R&D":
24072407
2408-
1. **\`crates/optimism/\`** in [paradigmxyz/reth](https://github.com/paradigmxyz/reth/tree/main/crates/optimism) — Optimism / Base / Mode / OP Stack. The most production-tested extension on the planet.
2408+
1. **\`crates/optimism/\`** in [paradigmxyz/reth](https://github.com/paradigmxyz/reth) — Optimism / Base / Mode / OP Stack. The most production-tested extension on the planet.
24092409
2. **[paradigmxyz/alphanet](https://github.com/paradigmxyz/alphanet)** — Paradigm's own OP-Stack testnet for trying custom precompiles (EIP-7212 P-256 verify, etc.) before they exist on mainnet.
24102410
3. **[SovaNetwork/sova-reth](https://github.com/SovaNetwork/sova-reth)** — Reth as a Bitcoin execution layer.
24112411
4. **[SeismicSystems/seismic-reth](https://github.com/SeismicSystems/seismic-reth)** — Reth with encrypted transactions.
@@ -2444,7 +2444,7 @@ Optimism is the canonical "Reth-based L2." Its node code lives at \`paradigmxyz/
24442444
24452445
## 1. Where to look
24462446
2447-
Browse: [paradigmxyz/reth → crates/optimism/](https://github.com/paradigmxyz/reth/tree/main/crates/optimism)
2447+
Browse: [paradigmxyz/reth → crates/optimism/](https://github.com/paradigmxyz/reth)
24482448
24492449
You will see subcrates roughly along these lines (exact names drift across reth versions — verify in source):
24502450
@@ -2768,7 +2768,7 @@ The reth ecosystem has multiple payload builders to study:
27682768
| :--- | :--- | :--- |
27692769
| Default Ethereum builder | \`crates/payload/builder/\` | Mainnet validators |
27702770
| OP payload builder | \`crates/optimism/payload/\` | OP Stack sequencer |
2771-
| **op-rbuilder** | [paradigmxyz/rbuilder](https://github.com/paradigmxyz/rbuilder) | High-perf external block builder for OP Stack |
2771+
| **op-rbuilder** | [flashbots/rbuilder](https://github.com/flashbots/rbuilder) | High-perf external block builder for OP Stack |
27722772
27732773
The first two are inside reth. **op-rbuilder** is a separate repo, more aggressive about MEV and ordering policy, and is the production builder several OP Stack chains use.
27742774
@@ -2802,7 +2802,7 @@ The choice ends up in the **payload builder's source code**, gated by feature fl
28022802
28032803
## 5. op-rbuilder — the production-grade reference
28042804
2805-
[paradigmxyz/rbuilder](https://github.com/paradigmxyz/rbuilder) is the external builder Paradigm built for OP Stack. Worth studying because:
2805+
[flashbots/rbuilder](https://github.com/flashbots/rbuilder) is the external builder Paradigm built for OP Stack. Worth studying because:
28062806
28072807
- It implements **bundle merging** (private order flow + public mempool)
28082808
- It supports **sealing strategies** (greedy, parallelizable algorithms)
@@ -2830,7 +2830,7 @@ Open \`crates/optimism/payload/\` and:
28302830
3. **Identify** where the block gas cap is enforced
28312831
4. **Find** the function that signs/seals the built block
28322832
2833-
Then read [op-rbuilder's README](https://github.com/paradigmxyz/rbuilder) for the "external builder" model.
2833+
Then read [op-rbuilder's README](https://github.com/flashbots/op-rbuilder) for the "external builder" model.
28342834
28352835
> Final check: in one sentence, what does the payload builder **decide** that the executor does not? If your answer doesn't include the word "ordering" or "selection," go back and re-read section 3.`,
28362836
},

prisma/seed-reth-expert-ja.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1250,7 +1250,7 @@ witness はどこからか来なくてはならない。あらゆるステート
12501250
- **リポジトリ:** [\`paradigmxyz/ress\`](https://github.com/paradigmxyz/ress)
12511251
- **対象チェーン:** Ethereum メインネット、完全検証。
12521252
- **ディスク:** 14 GB (フル Reth の ~3 TB に対して)。
1253-
- **Witness ソース:** \`--ress.enable\` で起動した任意の Reth フルノード。ress は専用 RLPx サブプロトコル \`ress\` でピアリングする — [Reth の \`crates/ress/protocol\`](https://github.com/paradigmxyz/reth/tree/main/crates/ress/protocol) 参照。
1253+
- **Witness ソース:** \`--ress.enable\` で起動した任意の Reth フルノード。ress は専用 RLPx サブプロトコル \`ress\` でピアリングする — [Reth の \`crates/ress/protocol\`](https://github.com/paradigmxyz/ress) 参照。
12541254
- **Witness フォーマット:** Merkle Patricia Trie の証明 (MPT レッスンで見たもの — \`AccountProof\` / \`StorageProof\` と同じ形)。
12551255
- **バイトコード:** ステートフルピアから **オンデマンド** で取得 (\`GetBytecode\` メッセージ経由)。ress は見たものをキャッシュし、未取得分はピアから引く。
12561256
- **検証フロー:** コンセンサスクライアントが \`NewPayload\` 送信 → ress が Reth ピアに witness と不足バイトコードを要求 → メモリ上で payload を検証 → \`PayloadStatus\` を返す。
@@ -1333,7 +1333,7 @@ stateless-validator しか読まなかったら、こう思い込んでしまう
13331333
## 追加で読むもの
13341334
13351335
- [Paradigm ブログ: Stateless Reth Nodes](https://www.paradigm.xyz/2025/03/stateless-reth-nodes) — セクション 1 のユースケース整理はここ由来。
1336-
- [\`paradigmxyz/ress\`](https://github.com/paradigmxyz/ress) — README → \`bin/\` のエントリ → [\`paradigmxyz/reth/crates/ress/protocol\`](https://github.com/paradigmxyz/reth/tree/main/crates/ress/protocol) の RLPx サブプロトコル。
1336+
- [\`paradigmxyz/ress\`](https://github.com/paradigmxyz/ress) — README → \`bin/\` のエントリ → [\`paradigmxyz/reth/crates/ress/protocol\`](https://github.com/paradigmxyz/ress) の RLPx サブプロトコル。
13371337
- [\`megaeth-labs/stateless-validator\`](https://github.com/megaeth-labs/stateless-validator) — README → \`crates/stateless-core/src/pipeline\` → \`crates/stateless-core/src/executor.rs\`。
13381338
- [\`megaeth-labs/salt\`](https://github.com/megaeth-labs/salt) — MegaETH の witness フォーマットで MPT を置き換える authenticated KV store。`,
13391339
},
@@ -1904,7 +1904,7 @@ Reth ではこれは: 実行中にプロセスを kill し再起動して DB が
19041904
## 📺 関連リンク
19051905
19061906
- [execution-spec-tests docs](https://eest.ethereum.org/) — spec-test フレームワーク
1907-
- [\`paradigmxyz/revm-rs\` fuzzing harnesses](https://github.com/paradigmxyz/revm-rs) — differential パターンのリファレンス実装
1907+
- [\`bluealloy/revm\` のテストクレート](https://github.com/bluealloy/revm) — differential パターンのリファレンス実装
19081908
- 史的な [Geth Yellow Paper Test Suite](https://github.com/ethereum/tests) — テストコーパス進化を理解するため
19091909
19101910
`,
@@ -2394,7 +2394,7 @@ Reth ベースの chain が典型的に override するスロット:
23942394
23952395
「mainnet 出荷済み」→「R&D」の順:
23962396
2397-
1. **\`crates/optimism/\`** in [paradigmxyz/reth](https://github.com/paradigmxyz/reth/tree/main/crates/optimism) — Optimism / Base / Mode / OP Stack。世界で最も本番運用された extension。
2397+
1. **\`crates/optimism/\`** in [paradigmxyz/reth](https://github.com/paradigmxyz/reth) — Optimism / Base / Mode / OP Stack。世界で最も本番運用された extension。
23982398
2. **[paradigmxyz/alphanet](https://github.com/paradigmxyz/alphanet)** — Paradigm 自身が運営する OP Stack 互換テストネット。mainnet に実装される前の custom precompile (EIP-7212 P-256 verify など) を試す場。
23992399
3. **[SovaNetwork/sova-reth](https://github.com/SovaNetwork/sova-reth)** — Reth を Bitcoin の execution layer として動かす。
24002400
4. **[SeismicSystems/seismic-reth](https://github.com/SeismicSystems/seismic-reth)** — 暗号化 tx 対応の Reth。
@@ -2433,7 +2433,7 @@ Optimism は「Reth ベース L2」の正典です。その node コードは \`
24332433
24342434
## 1. 見る場所
24352435
2436-
ここを開く: [paradigmxyz/reth → crates/optimism/](https://github.com/paradigmxyz/reth/tree/main/crates/optimism)
2436+
ここを開く: [paradigmxyz/reth → crates/optimism/](https://github.com/paradigmxyz/reth)
24372437
24382438
ざっくり以下のような sub-crate が並んでいるはず (正確な名前は reth のバージョンで揺れるので、ソースで確認すること):
24392439
@@ -2757,7 +2757,7 @@ Reth エコシステムには複数の payload builder が存在します:
27572757
| :--- | :--- | :--- |
27582758
| Default Ethereum builder | \`crates/payload/builder/\` | Mainnet validator |
27592759
| OP payload builder | \`crates/optimism/payload/\` | OP Stack sequencer |
2760-
| **op-rbuilder** | [paradigmxyz/rbuilder](https://github.com/paradigmxyz/rbuilder) | OP Stack 向けの高性能な external block builder |
2760+
| **op-rbuilder** | [flashbots/rbuilder](https://github.com/flashbots/rbuilder) | OP Stack 向けの高性能な external block builder |
27612761
27622762
最初の 2 つは reth 本体に入っています。**op-rbuilder** は別 repo で、MEV と ordering policy にずっと積極的、複数の OP Stack chain が本番で使用しています。
27632763
@@ -2791,7 +2791,7 @@ Sequencer が取れる立場は 3 つ:
27912791
27922792
## 5. op-rbuilder — 本番グレードのリファレンス
27932793
2794-
[paradigmxyz/rbuilder](https://github.com/paradigmxyz/rbuilder) は、Paradigm が OP Stack 向けに作った external builder。読む価値がある理由:
2794+
[flashbots/rbuilder](https://github.com/flashbots/rbuilder) は、Paradigm が OP Stack 向けに作った external builder。読む価値がある理由:
27952795
27962796
- **Bundle merging** が実装されている (private order flow + public mempool)
27972797
- **Sealing strategy** (greedy、並列化可能なアルゴリズム)
@@ -2819,7 +2819,7 @@ Tempo が sequencer モード block 生成に op-rbuilder を採用または拡
28192819
3. **特定**: block の gas cap が強制されている箇所
28202820
4. **特定**: 構築した block を sign / seal する関数
28212821
2822-
そのあと [op-rbuilder の README](https://github.com/paradigmxyz/rbuilder) を読み、"external builder" モデルの考え方を掴んでください。
2822+
そのあと [op-rbuilder の README](https://github.com/flashbots/op-rbuilder) を読み、"external builder" モデルの考え方を掴んでください。
28232823
28242824
> 最終チェック: 1 文で、payload builder が **決定する** けれども executor は決定しないものは? 答えに "ordering" または "selection" が出てこないなら §3 を再読。`,
28252825
},

prisma/seed-reth-p2p-networking-en.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -526,12 +526,12 @@ If you build a node that participates in HL's network, you'd need to understand
526526
1. Sketch a 2-message protocol for "broadcast my merchant attestation"
527527
2. Identify: how does the allowlist prevent Sybil attacks?
528528
3. Think: what's the bandwidth cost of broadcasting 1000 messages/sec to 10 peers?
529-
4. Read [MEV-Boost spec](https://github.com/flashbots/mev-boost-spec) and find the relayer protocol
529+
4. Read [MEV-Boost spec](https://github.com/flashbots/mev-boost) and find the relayer protocol
530530
531531
## 10. Reading list
532532
533533
- [reth network crate](https://github.com/paradigmxyz/reth/tree/main/crates/net)
534-
- [MEV-Boost docs](https://docs.flashbots.net/flashbots-mev-boost/architecture-overview)
534+
- [MEV-Boost docs](https://docs.flashbots.net/flashbots-mev-boost/introduction)
535535
- [libp2p tutorials](https://docs.libp2p.io/) — for understanding modular networking
536536
537537
> Final check: in one sentence, why is "custom gossip" the natural extension for chain-specific applications like MEV markets and payment routing? **If your answer doesn't reference "default gossip is for canonical chain data only," re-read §1.**`,

0 commit comments

Comments
 (0)