Skip to content

fast-sync 5/7: fast-sync client + provisional serving + background reconciliation #116

Description

@LiranCohen

Part of #111. Depends on 2/7, 4/7. The trust-then-verify core.

  • Pull: request anchor bundles over a height range from one or more ION peers; verify each bundle's inclusion proof against the node's own PoW header chain; apply its own validity rules (scan: non-canonical operation counts ('+5','007','0') are accepted, diverging from canonical ION #99 op-count, Phase B2: derive transaction writer + drop non-P2PKH-writer anchors (live consensus parity) #69 writer) to the provided txs; project the resulting anchors as provisional (published:false, reusing the late-publishing model). Take the union across diverse peers (safe — each anchor is inclusion-proven).
  • Background reconciliation: run the normal full-block scan in the background; reconcile against the fast-synced set; a discovered omission → ban/deprioritize that peer + correct state. When the background scan catches up, drop provisional → fully trustless.
  • Always full-verify the live tip (never fast-sync the un-final region).
    Tests: a peer that omits an anchor is caught by reconciliation and banned; inclusion-proof failure rejects a bundle; provisional flips to final after background catch-up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions