Skip to content

core: reuse existing chain data via AssumeUTXO, not Core's Intro #302

Open

Description

@BenWestgate

Users have asked to start from blockchain data they already have instead of syncing from scratch. This issue records how CipherStick should support that, and why it should not use Bitcoin-Qt's first-run Intro dialog to do it.

Decision

  1. Keep CipherStick's own Welcome dialog. Don't show Core's Intro.
    • Bails passes -datadir, so Core never shows the Intro.
    • The Intro can't be locked down:
      • Its folder picker accepts any path, including amnesic RAM or an unencrypted drive.
      • -prune locks only the on/off checkbox. Core force-applies the GB value the user types, overriding bitcoin.conf, and saves it to settings.json.
      • The dialog is modal, so syncing only starts after OK.
    • Keep the Core-derived paragraphs in the Welcome dialog. Users may never have synced Core before, let alone to a USB stick.
  2. AssumeUTXO is the supported fast path (core: Add AssumeUTXO snapshot bootstrap #220).
    • Core accepts only snapshots whose hash is compiled into the release, so the snapshot's source needs no trust.
    • It works with pruning, at about 9 GB.
    • The FAQ lists it before manual copies.
  3. A manual blocks/ + chainstate/ copy stays documented, not automated.
    • Core does not fully revalidate a copied chainstate, so the source must be trusted.
    • It only fits a small stick if the source node is itself pruned.
    • Revisit a guarded import action (Core stopped, destination fixed to Persistent, wallets/ excluded) only if users still ask after core: Add AssumeUTXO snapshot bootstrap #220 ships.
  4. Not doing: copying blocks/ and running -reindex-chainstate. Core rejects it while pruning is on, so it can't help most installs.

Done when

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions