Sync impact: YES. Touches authoritative paths: checkpoint restore writes side branches into the block tree in crates/chainstate/src/checkpoint/headers.rs and its v2 artifact, and sync request recovery routes unavailable-body retries through the sync owner. Affected clauses: SYNC-04 (recovery closure), SYNC-05 (durable progress), and SYNC-06 (work drivers). Smallest proofs: crates/p2p/src/sync/ body-rejection regressions, crates/chainstate/src/checkpoint/tests/side_branches.rs, and crates/node/tests/overhaul_durable_head.rs.
Confidence Score: 5/5
The PR appears safe to merge; no new blocking issue was established.
Summary
This stack adds checkpoint side-branch retention, routes unavailable block bodies back through sync scheduling, and adds accepted-transaction bodies to ordered mempool notifications.
Checkpoints keep eligible side branches when the node restarts.
Sync retries block bodies after a peer reports that it lacks one.
Locator-based header replies follow the validated applied chain.
Mempool observers can receive accepted transaction bodies for ZMQ rawtx.
sendrawtransaction accepts the legacy false fee argument.
Checkpoint file operations avoid blocking on substituted pipes and limit rename paths.
The contracts and validation notes describe current sync, checkpoint, and tooling behavior.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Peer answers notfound] --> B{Exact current owner?}
B -->|No| C[Leave request unchanged]
B -->|Yes| D[Release owned request]
D --> E[Remember peer cannot serve this hash]
E --> F[Wake sync]
F --> G[Plan request for another peer]
E --> H[Retry interval expires]
H --> I[Original peer becomes eligible again]