Skip to content

Solution: LP-0017 — Whistleblower#61

Open
edenbd1 wants to merge 1 commit into
logos-co:masterfrom
edenbd1:lp-0017-whistleblower-submission
Open

Solution: LP-0017 — Whistleblower#61
edenbd1 wants to merge 1 commit into
logos-co:masterfrom
edenbd1:lp-0017-whistleblower-submission

Conversation

@edenbd1
Copy link
Copy Markdown

@edenbd1 edenbd1 commented May 23, 2026

Implementation of LP-0017: censorship-resistant document upload and indexing on the Logos stack.

✅ Deployed live on the public Logos Execution Zone testnet

  • Sequencer: https://testnet.lez.logos.co
  • Block explorer: https://explorer.testnet.lez.logos.co
  • Registry PDA: A9ewyji3THdFGqLAtAd9GkoPX9B9R6yb5LZCfWLxbAeH — holds 51 anchored CIDs in 6583 bytes (Borsh-encoded, exactly 4 + 51 × 129)
  • ProgramId (hex): b904baea7e1adc245a6cd0802fb3c016eaf9bbcaec90989a9a51c75ac6064217

6 public on-chain transactions — each independently verifiable via the public sequencer's getTransaction JSON-RPC or the explorer link:

# Instruction Explorer link
1 wallet auth-transfer init (signer account) dd55dd1e…7b97f0
2 wallet pinata claim (faucet → 150 tokens) 40b7966d…7476b4
3 wallet deploy-program 9e499b12…48c8a
4 spel init-registry ae57ff1b…131d9
5 spel index_batch n=1 (real Logos Storage CID) 1257c61c…ef55b
6 spel index_batch n=50 (50 CIDs anchored atomically — 5× the spec's ≥10 requirement) 2af12289…9d531

Full deployment record (with the exact reproduction commands) in docs/DEPLOYMENT.md.

Summary

A Basecamp Qt6/QML plugin uploads a file to Logos Storage, broadcasts the resulting CID over Logos Delivery, and optionally anchors it on-chain via a SPEL LEZ registry program. A permissionless batch-anchor CLI subscribes to the Delivery topic, deduplicates CIDs against the on-chain registry state, and commits batches of up to 50 CIDs in a single transaction.

The whole pipeline runs without mock layers between the application and Logos infrastructure: batch-anchor refuses to start without a reachable nwaku endpoint, Codex uploads go through the real REST API, and the e2e CI workflow asserts the RISC0_DEV_MODE=0 banner is present in stdout before passing.

Highlights vs the spec

  • Verifiable public-testnet deployment — the 6 tx hashes above, all live on https://testnet.lez.logos.co. Anyone can getTransaction them or open the explorer link.
  • Real Delivery integrationbatch-anchor subscribes to a live nwaku node via the REST relay + store-protocol catch-up. No mock-delivery shortcuts at any layer.
  • Agnostic indexing modulecrates/indexing/ is a standalone trait crate with zero whistleblower:: imports. Any Logos application can drop it in as a single dep.
  • E2E in CI with RISC0_DEV_MODE=0.github/workflows/e2e.yml spawns nwaku, Codex storage, and a sequencer, deploys the guest with real proofs, and runs a 50-CID round-trip. Asserts the RISC0_DEV_MODE=0 banner is in stdout before passing.
  • Reproducible demoscripts/demo.sh exports RISC0_DEV_MODE=0 as its first non-comment line, runs in under 30 seconds from a clean clone against the public testnet, requires only curl, python3, jq, and cargo.
  • CU benchmarks measured live on this testnetinit_registry 3.30 ms, n=1 4.12 ms, n=50 36.27 ms (0.73 ms/CID amortised — 5.6× win over serial). See docs/BENCHMARKS.md.
  • Basecamp .lgx plugin publishedv0.1.0-rc1 release, 489 KB, built against the real logos-cpp-sdk (not stubbed).

Per-criterion compliance map

See docs/SPEC_COMPLIANCE.md for the row-by-row mapping. Headline: Functionality 6/6, Usability 3/3, Reliability 3/3, Performance 1/1, Supportability 6/6, Submission requirements 9/9.

Architecture

LEZ registry as a SPEL program (justified vs zone-SDK in ADR-004): single PDA holding a Borsh Registry { entries: BTreeMap<String, CidRecord> }. index_batch accepts three parallel vectors (cids, metadata_hashes, anchor_timestamps), in-guest dedup via contains_key, MAX_BATCH = 50. Storage layout write-up: ADR-001.

Envelope schema locked at v=1 with cid, metadata_hash: "v1:<hex>", timestamp, plus optional discovery metadata. Hash is over the canonical (fixed key order) discovery-metadata JSON, so any two implementations produce byte-identical hashes for identical inputs. Decision: ADR-002.

CI strategy: fast tier on every push (<4 min), e2e tier on schedule + dispatch with the full sequencer + nwaku + storage stack and the real-proofs assertion. Decision: ADR-003.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 23, 2026

✅ Validation passed

A reviewer will assess against the prize criteria.
ℹ️ Solution submission for LP-0017.
ℹ️ Checking repo: https://github.com/edenbd1/lp-0017-whistleblower


Automated check. See solution template and TERMS.

@edenbd1 edenbd1 force-pushed the lp-0017-whistleblower-submission branch from 2c355c0 to b106e19 Compare May 24, 2026 12:13
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