diff options
| author | Adam Soltys <[email protected]> | 2026-06-27 17:17:58 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-06-27 17:17:58 -0700 |
| commit | 56a2736be51d2f35d68ca88b477a948efe3398ce (patch) | |
| tree | 9506c94c067f34ac5561f8d00a43f454c5956d6a /src/app.js | |
| parent | ef183514e078169bf171e29b88c85aa16c8ecc75 (diff) | |
| download | coinosv3-56a2736be51d2f35d68ca88b477a948efe3398ce.tar.gz coinosv3-56a2736be51d2f35d68ca88b477a948efe3398ce.zip | |
Catch-up scaling: dust filter + per-block Bloom filters
silentpay.js: silentPaymentCandidate() (our P_0 for a tweak) + buildBloom/bloomHas
(double-hashed sha256, ~0.8% FP). Validated: candidate == P_0 on all no-label
vectors.
Indexer /scan now returns, per block, the tweaks + a Bloom over that block's
taproot output keys (no outputs), with an optional dustLimit. The wallet derives
a candidate per tweak, tests the filter, and only fetches /block on a hit — so a
big historical scan costs candidate math + a handful of fetches instead of
downloading and scanning every block. Live WS pushes still carry full items.
SP_DUST_LIMIT defaults to 0 (receive everything; the indexer honors any value).
Verified end-to-end on regtest: the filter flow finds the output.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Diffstat (limited to 'src/app.js')
0 files changed, 0 insertions, 0 deletions
