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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions