- .gitignore no longer excludes Cargo.lock; track it (standard for a service crate)
- drop the unused GRINLWS_SCAN_BATCH_BLOCKS config field (the scanner pages by a
fixed PAGE_MAX, never read this) and its .env.example line
- remove the unused Error::NotImplemented variant and its match arm
- replace the crate-level #![allow(dead_code)] with a targeted allow on
mark_unspent (the single-commit un-spend counterpart to mark_spent; the reorg
path un-spends in bulk via rollback_to)
- doc drift: ready() returns 502 when the node is down (not 503); main.rs status
reflects the functional, in-production service
A standalone, self-hostable Grin light-wallet-server mirroring the Monero LWS:
register a view/rewind credential, run a background chain scanner, rewind outputs
against registered keys, store per-account matches in a DB, and serve balance /
outputs / broadcast / height fast (vs the current on-demand stateless scan proxy).
This is the scaffold — README (architecture + HTTP surface + DB schema + how a
wallet backend proxies to it), Cargo skeleton, migrations sketch, and route/scanner
stubs. Public-clean: no operator-specific infra, hosts, or secrets.