Firo Spark Sync Monitor by panagot

Goal: 3200 FIRO ($2017.18) Committee
Proposal Work in Progress

Why?

Firo's light and mobile wallets don't talk to a full node directly - they sync through public Electrum (ElectrumX) backends. When a Spark sync is slow or fails, users and wallet developers can't tell whether the fault is a backend that's offline, one that's lagging, or one serving stale / inconsistent Spark state.

Existing trackers (e.g. 1209k) only check header height. But Firo's real pain is the Spark anonymity set: the active coin group is tens of thousands of coins / tens of MB and can take 15-40s+ to serve. A backend can look perfectly healthy on height yet be unusable for a real Spark sync. There is no neutral, public place to see this today.

How much?

  • Total: $2,000 USD = ~3,200 FIRO (exchange rate $0.63/FIRO on 20 Jul 2026; final FIRO amount set to the live rate at approval).
  • Effort: ~50 hours of engineering over ~3 weeks.
  • Blended rate: ~$36/hr = $1,800.
  • Infrastructure: domain + VPS hosting, 12 months = $200.
Item USD
Milestone 1 - production engineering + deploy 800
Milestone 2 - detail pages, alerting, operator tooling, upstream 1,000
Domain + VPS hosting (12 months) 200
Total 2,000

What?

A neutral, always-on health dashboard + public JSON API for the public Firo Electrum backends. It tracks reachability, chain lag, and latency - and, uniquely, Spark anonymity-set fetch health: how long each backend takes to serve the active Spark coin group, how large it is, and whether every backend serves the same set (setHash consistency). All probes are privacy-safe (server.version, blockchain.headers.subscribe, spark.getsparklatestcoinid, spark.getsparkanonymityset) - no addresses, keys, or wallet data, ever.

A working prototype already probes the live fleet: live preview -> https://firo-spark-sync-monitor.vercel.app. Representative live figures (active coin group 10): ~18,400 coins, 18-32 MB per full fetch, ~12-37s serve time, setHash identical across all 6 backends. All code will be open-sourced under MIT at kickoff.

Screenshots of the anonymity-set fetch-health view and a per-backend detail page are available on the live preview linked above.

Milestones?

Milestone 1 - Production launch - Week 1 - $1,000 (~1,600 FIRO) (released at kickoff; covers domain + 12-month hosting + core build)

  • Public MIT GitHub repo (README, methodology docs, contribution guide)
  • Own domain + HTTPS + always-on VPS hosting
  • Production dashboard: reachability, height, lag vs reference tip, latency, version, TLS cert expiry
  • Spark coin-group consistency cross-checked fleet-wide
  • Live anon-set fetch-health (time, size/coins, setHash consistency)
  • Durable history storage (SQLite/Postgres) -> real 24h/7d uptime %
  • Public JSON API + Firo forum thread
  • Acceptance: live public URL, public MIT repo, API returning real fleet data, anon-set health populated for all backends, continuous history recording.

Milestone 2 - Durability, alerting & upstream - Weeks 2-3 - $1,000 (~1,600 FIRO) (on delivery)

  • Per-backend detail pages + 24h/7d/30d charts
  • Anon-set growth tracker (coins / MB / fetch-time over time)
  • Opt-in alerting (Telegram / Discord / webhook) for red status or inconsistent Spark state
  • Operator tooling ("add/verify your server" + self-check page)
  • Embeddable status badge for operator/wallet READMEs
  • =1 upstream PR to Firo wallet/docs (e.g. a Spark health-check script)

  • Public incident log + sustainability/handover runbook
  • Acceptance: detail pages + 30-day charts live, alerting demonstrable within one poll cycle, >=1 upstream PR opened/merged, handover doc + incident log published.

Total duration: ~3 weeks of work, completed within one month of funding.

Outcomes?

  • A live, public, MIT-licensed monitor at its own domain covering the full Firo Electrum fleet.
  • The first tool to measure Spark anonymity-set fetch health and cross-check setHash - catching backends that are green on height but broken for Spark wallets, and forked/stale Spark state.
  • A public JSON API wallet teams and operators can consume.
  • Durable uptime history, per-backend detail pages, opt-in alerting, and an operator self-service flow.
  • =1 upstream contribution back to Firo, plus a handover runbook so the tool outlives the grant.

Why you?

I'm an independent full-stack engineer focused on privacy-tech infrastructure (Node.js, serverless, TLS/Electrum protocol, data dashboards). I've already built and deployed the working prototype linked above - it probes the live Firo fleet today and demonstrates the Spark anon-set metric end-to-end. Running cost is a single small VPS + domain, and everything ships MIT-licensed and documented so it can be maintained or taken over by anyone, including the Firo team.

Events
  • Proposal created 2026-07-20 14:06
  • Discourse topic posted 2026-07-20 14:06
  • Proposal markdown updated 2026-07-20 14:16
  • Category changed from 'Miscellaneous' to 'Wallets' 2026-07-20 14:16
  • Proposal markdown updated 2026-07-20 14:16
  • Category changed from 'Wallets' to 'Committee' 2026-08-06 17:30
  • Status changed from 'idea' to 'Funding Required' 2026-08-06 17:30
  • Donation address generated 2026-08-06 17:30
Meta
firo
4 individual contribution(s) Details...

3200.0000315 FIRO Raised (100.0%)

0 FIRO Paid out (0.0%)

3200.0000315 FIRO Available for payout :-)
This proposal is fully funded and in development.
Transactions

  • Amount: 200.0000315 FIRO
  • TXID: 28ee281b50f2ecb8ccac66f54203dcd3960387a8587ba99d3d557c59d9e23f8f
  • Blockheight: 1354677
  • Confirmations: 734

  • Amount: 1000.0 FIRO
  • TXID: b8c24251b99c728271e0e6770e4e7cc2e3cd857673a35ef27229579f263e11d4
  • Blockheight: 1354677
  • Confirmations: 734

  • Amount: 1000.0 FIRO
  • TXID: 7420096650b3d6b910f13197ef00d8fd0b8b0b8bb4bdf195f8a519cf2c75c719
  • Blockheight: 1354676
  • Confirmations: 735

  • Amount: 1000.0 FIRO
  • TXID: b7c974fc2e88592625acf85ac748cae4c9ee6908d44615c13caa8cdf056aff93
  • Blockheight: 1354676
  • Confirmations: 735