You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Backend:
- Extend payment_links with mode, donation_config, total_raised columns
- Extend invoices with payment_link_id, is_donation, campaign_counted
- Make price_id nullable for donation links (no product required)
- Add POST /donation-links, GET /payment-links/{slug}/info endpoints
- Fork resolve endpoint for donation vs payment flow
- Increment total_raised on confirmed donation (idempotent via campaign_counted)
- Support editing donation_config via PATCH /payment-links/{id}
- Add cover_image_position field for image focus control
- Add validation for all donation config fields
Frontend roadmap update with Phase 3.5 / 3.6 donation infrastructure.
- Single persistent connection per CipherPay instance
44
+
-[x]**CipherScan WebSocket stream** (real-time mempool push via service key)
45
+
- CipherScan receives mempool events from Zebra gRPC indexer
46
+
- Service clients subscribe to `raw_mempool` channel via `X-Service-Key` header
47
+
- Raw tx hex pushed to CipherPay on every mempool event — zero HTTP overhead
48
+
- Sub-second payment detection (was 5s polling)
49
+
- 30s polling retained as resilience fallback
50
+
- Auto-reconnect with exponential backoff (3s → 30s cap)
51
+
-[ ]**hasOrchard early filter** — skip non-Orchard txs before trial decryption (CipherPay side). Quick win at scale.
52
+
-[ ]**Cached pending invoices + merchant keys** — refresh every 2–5s instead of per-WS-push DB query. Removes SQLite bottleneck under high mempool throughput.
53
+
-[ ]**Parallel trial decryption** with `rayon` (.par_iter() over merchants × actions). Near-linear speedup across CPU cores.
49
54
-[ ]**CipherScan batch raw tx endpoint** (`POST /api/tx/raw/batch`)
50
55
- Accept array of txids, return array of hex
51
-
- Single HTTP round-trip instead of N calls
56
+
- Single HTTP round-trip instead of N calls (for polling fallback path)
52
57
-[ ] Mempool deduplication improvements (bloom filter for seen txids)
53
58
-[ ] Sapling trial decryption support (currently Orchard-only)
These are changes needed in the CipherScan explorer/indexer to support CipherPay at scale:
147
196
148
197
-[x]`GET /api/tx/{txid}/raw` -- raw hex endpoint for trial decryption
198
+
-[x]**WebSocket mempool stream with tiered broadcast** -- service clients (authenticated via `X-Service-Key`) subscribe to `raw_mempool` channel and receive `mempool_tx` events enriched with `raw_hex`. Regular browser clients receive the slim payload. Powered by Zebra gRPC indexer (`MempoolChange` + `ChainTipChange` streams).
149
199
-[ ]`POST /api/tx/raw/batch` -- batch raw hex endpoint (Phase 2)
0 commit comments