Skip to content

feat(gui): Settings screen — tabs (Node/Connectivity/Services/Privacy/Advanced/Danger) + save/discard states #9

@Noyi-24-7

Description

@Noyi-24-7

Summary

Designed the Settings screen for Floresta GUI (v0) as a tabbed configuration area with:

  • 6 tabs: Node, Connectivity, Services, Privacy, Advanced, Danger
  • A consistent top action pattern: Discard + Save Changes
  • Helper note: “Some changes may require a restart.”

Primary goal: make core configuration discoverable, organized, and safe (especially “Danger” actions).

Parent index: #1


What’s designed (current)

  • Settings — Node tab
  • Settings — Connectivity tab
  • Settings — Services tab
  • Settings — Privacy tab
  • Settings — Advanced tab
  • Settings — Danger tab

Frame(s)

(Links tracked in design/figma-links.md.)


Global layout / patterns

A) Top actions

  • Discard
  • Save Changes

Helper copy (as designed):

  • “Some changes may require a restart.”

B) Tab navigation (6)

Tabs included:

  • Node
  • Connectivity
  • Services
  • Privacy
  • Advanced
  • Danger

Interaction:

  • Clicking a tab swaps the configuration section below.

Per-tab content (as designed)

1) Node

Includes:

  • Network dropdown (shown as “Mainnet”)
  • Note: “Changing networks requires a restart and separate data directories.”
  • Data Directory field + Browse button
  • Pruned Mode (Always On) shown as disabled/locked state

2) Connectivity

Includes:

  • Max Peers numeric input (with stepper)
  • Status card: BIP324 Support Active
    • Copy: “Floresta natively supports v2 P2P transport encryption.”

3) Services

Includes toggles + host/port inputs:

  • Electrum toggle + host/port inputs
  • Wallet Index toggle (copy: “Required for wallet functionality.”)
  • RCP Interface (Advanced Usage) toggle + host/port inputs
  • Prometheus Metrics toggle shown off/disabled (as presented)

4) Privacy

Includes:

  • SOCKSS Proxy toggle + Proxy Address input
  • DNS over HTTPS (DoH) toggle
    • Copy: “Encrypt DNS queries to avoid leaks.”

5) Advanced

Includes:

  • Assume Utreexo toggle
    • Copy: “Fast start by trusting a snapshot.”
  • Background Backfill toggle
    • Copy: “Validate history after startup.”

6) Danger

Includes high-impact actions (red emphasis):

  • Reset Node Data + button Reset Data
    • Copy: “This will delete the data directory and resync from scratch”
  • Rescan Wallet + button Rescan
    • Copy: “Re-processes blocks to find missed transactions.”

(New addition) Settings → Advanced: Assume Utreexo + Accumulator Details

Design refs:

  • Settings (Advanced) (Assume Utreexo Active)
  • Settings (Advanced) (Utreexo Accumulator)

Goal

Expose Utreexo “fast start” controls in Settings, and provide a read-only view for inspecting/exporting the current accumulator roots.


UI (Settings → Advanced)

  • Toggle: Assume Utreexo
    • Helper text: “Fast start by trusting a snapshot.”
    • When ON, show CTA button: View Accumulator Details →
  • Toggle: Background Backfill
    • Helper text: “Validate history after startup.”

Accumulator Details Screen (Settings → Advanced → View Accumulator Details)

Header

  • Title: Utreexo Accumulator
  • Subtitle: “Compact representation of the current UTXO set used for validation. Floresta verifies Bitcoin rules locally without storing the full chain state.”
  • Meta (top-right):
    • Last updated: <time>
    • <N> Leaves

Info banner

  • “This view shows the Utreexo forest roots. Instead of a 5GB+ UTXO set, Floresta only holds these roots (under 1KB).”

Left card: Accumulator Stats

  • Number of Roots: <N>
  • Number of Leaves: <N>
  • Size in Memory: <value>
  • Proof Cache: <Enabled/Disabled>

Primary action

  • Button: Export Accumulator

Right card: Roots table

  • Columns: IDX | Root Hash | Action
  • Row action: Copy button (copies full root hash)
  • Top action: Refresh (re-fetch roots list)

Requirements / Acceptance Criteria

  • Assume Utreexo toggle is available under Settings → Advanced
  • Background Backfill toggle is available under Settings → Advanced
  • View Accumulator Details → is visible when Assume Utreexo is ON (per design)
  • Accumulator Details screen renders:
    • Accumulator Stats card values
    • Roots table (IDX + Root Hash + Copy action)
    • Refresh action for roots table
    • Export Accumulator action
  • Copy action confirms success (toast/snackbar) and copies the full hash
  • Refresh shows loading state and updates table contents
  • Export action triggers export flow (file download / saved file / OS prompt — confirm final behavior)

Edge Cases / Notes

  • When roots contain NULL, display it as NULL (do not crash UI)
  • When accumulator data is unavailable, show an empty/error state with a retry option
  • Clarify export format + destination (file vs copy vs QR) before implementation

States covered (in current design)

Not yet designed (optional):

  • LOADING: UNKNOWN (saving state / applying config)
  • ERROR: UNKNOWN (invalid values / cannot save)
  • LOCKED: UNKNOWN (permissions / config unavailable)

Questions for maintainers

  1. Should Save Changes be enabled only when something changes (dirty state), or always enabled?
  2. Which settings definitely require restart vs apply immediately (so we can reflect it clearly)?
  3. For “Danger” actions: do you want confirmation modals (recommended), or is inline warning enough for v0?

Acceptance notes (implementation later)

  • Tabs switch visible settings sections
  • Save Changes / Discard reflect unsaved edits (dirty state)
  • Node tab supports selecting network + choosing data directory
  • Services tab supports toggles + host/port inputs as shown
  • Danger tab exposes Reset Node Data + Rescan Wallet actions

Image Image Image Image Image Image Image Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions