Skip to content

Add opt-in public pool snapshots for Pali privacy preparation - #46

Merged
sidhujag merged 1 commit into
mainfrom
codex/privacy-pool-index
Oct 25, 2026
Merged

sidhujag merged 1 commit into
mainfrom
codex/privacy-pool-index

Conversation

@sidhujag

@sidhujag sidhujag commented Oct 25, 2026 •

Copy link
Copy Markdown
Member

Add an anonymous, opt-in Tornado Classic ETH pool snapshot API so Pali can download pool-wide public leaves and verify its Merkle tree locally. The endpoint supports only four pinned Ethereum pools; it accepts no notes, wallet addresses, leaf-specific queries or caller-selected RPC endpoints.

Stacked on #47, which fixes the pre-existing parser/validation dependency audit failures. Merge #47 first.

The index runs bounded, deduplicated jobs only after requests, verifies finalized block anchors and pool metadata, and publishes complete snapshots atomically. Separate rebuildable files preserve checkpoints across restarts without changing the account database or schema. Refresh failures retain a complete snapshot with an explicit stale marker; reorgs invalidate affected snapshots. ETags support conditional reads.

The feature is disabled by default. Enabling it requires PRIVACY_INDEX_ENABLED=true, an HTTPS PRIVACY_INDEX_RPC_URL with historical Ethereum reads, writable data/privacy-index/, and the documented nginx route. Automatic deployment does not configure the environment or nginx. The server returns on-chain root metadata; Pali must independently reconstruct and authenticate the tree before use.

Validation:

  • Node 22.23.4: all 1,506 Jest tests passed across 75 suites, including 41 privacy tests covering restart/resume, malformed files, gaps, reorgs, concurrent requests, provider limits, RPC validation, anonymous routing and ETags.
  • Sentry codec integration: 12 tests passed.
  • Read-only Ethereum smoke: confirmed chain 1, finalized pool configuration, count and root for the pinned 0.1 ETH pool. No claim, proof submission or transaction broadcast.
  • git diff --check passed. The feature commit does not change dependency or database/schema files; its tested base includes the separate parser/validation security patch.
  • npm run audit:prod passed: 0 high/critical findings; 4 low and 5 moderate findings remain.

@sidhujag
sidhujag force-pushed the codex/privacy-pool-index branch from b5ad9e2 to 0ad8b46 Compare October 25, 2026 05:49
@sidhujag
sidhujag changed the base branch from main to codex/fix-parser-validation-dependencies October 25, 2026 05:49
@sidhujag
sidhujag changed the base branch from codex/fix-parser-validation-dependencies to main October 25, 2026 05:50
@sidhujag
sidhujag marked this pull request as ready for review October 25, 2026 05:55
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-25T05:56:01.759814Z 0ad8b46 Draft marked ready
🔒 Security Review ✅ Completed 2026-10-25T05:58:16.995976Z 0ad8b46 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@sidhujag
sidhujag merged commit 2ee82a4 into main Oct 25, 2026
12 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant