Skip to content

Solution: LP-0017 — Whistleblower#48

Closed
Thompsonmina wants to merge 4 commits into
logos-co:masterfrom
Thompsonmina:lp-0017-whistleblower
Closed

Solution: LP-0017 — Whistleblower#48
Thompsonmina wants to merge 4 commits into
logos-co:masterfrom
Thompsonmina:lp-0017-whistleblower

Conversation

@Thompsonmina

Copy link
Copy Markdown

@github-actions

github-actions Bot commented May 12, 2026

Copy link
Copy Markdown

⚠️ Warnings

Warnings (non-blocking):

  • ⚠️ Prize references a Logos mini-app; no module.json found.

ℹ️ Solution submission for LP-0017.
ℹ️ Checking repo: https://github.com/Thompsonmina/WhistleBlower-Logos-


Automated check. See solution template and TERMS.

@weboko

weboko commented May 19, 2026

Copy link
Copy Markdown
Collaborator

Hi! Thank you for your submission. I will review later this week and will try to come back with concrete comment.

Comment thread solutions/LP-0017.md
- [x] **Broadcast dedup**: chronicle keeps a per-CID publish ledger; subscribers (incl. `batch-anchor`) skip duplicates.
- [x] **Batch tool resume after interruption**: seeded from chain at startup + Waku store-protocol catch-up over a configurable lookback window.
- [x] **CU benchmarks (1 + 50 CID)**: documented in `README_CHRONICLE_REGISTRY.md` § Compute units (cold n=1 = 2,240 cycles; cold n=50 = 178,646 cycles).
- [x] **Local LEZ deployment**: chronicle-registry deploys to a local LEZ devnet via `make deploy`; `scripts/setup.sh` does so end-to-end.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to have it tested on the testnet/devnet as per criteria here
https://github.com/logos-co/lambda-prize/blob/master/prizes/LP-0017.md#supportability

have you tried?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At the time I submitted i wasnt aware there was a publicly available devnet.

I have just now deployed the registry and tested it on there

The deploy transaction is a752b72b95ed607f9c7238a042d62639a3cad2d8a2772ec5b047a07e17d7cf11,
the registry was opened in cebc71807de8a04dd2ab1e15026602b697329a2fdceaf80dfe22ac5e59958d7a,
an n=1 index_batch ran in ef7abccab98859028a608b3a4e7abeb355bb4a67fa48d0c5cc76e25ab8fdba26,

and an n=50 index_batch ran in 0eddbf2e877430e073a59c6e27842da07b4f34e0b733e4d24643d7074d9cb6cc

Comment thread solutions/LP-0017.md
- [x] **Batch tool resume after interruption**: seeded from chain at startup + Waku store-protocol catch-up over a configurable lookback window.
- [x] **CU benchmarks (1 + 50 CID)**: documented in `README_CHRONICLE_REGISTRY.md` § Compute units (cold n=1 = 2,240 cycles; cold n=50 = 178,646 cycles).
- [x] **Local LEZ deployment**: chronicle-registry deploys to a local LEZ devnet via `make deploy`; `scripts/setup.sh` does so end-to-end.
- [ ] **E2E integration tests in CI**: IT contract sketched in `integration-test.toml`; chronicle smoke test on the IT topic; that runs against a real local sequencer; `RISC0_DEV_MODE` left unset so the prover runs in production mode CI runner that runs lez and logoscore environment pending.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure on this step. Were you able to validate E2E?
https://github.com/logos-co/lambda-prize/blob/master/prizes/LP-0017.md#supportability

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To clarify what I meant by "E2E validated": the publish + anchor flows are both exercised by
reproducible smoke tests packaged as Nix flake apps, runnable from a fresh clone with:

nix run .#smoke-publish # upload → broadcast → status → restart-persistence
nix run .#smoke-anchor # full publish + on-chain registry round-trip

Both run against actual nwaku and (for anchor) an actual LEZ sequencer + on-chain
chronicle-registry SPEL program — no mocks. The publish smoke also drops and restarts the
daemon mid-test to verify ledger reload. They're driven by the same chronicle plugin a basecamp
user runs, so passing locally means the whole pipeline works end-to-end.

The reason was scope: smoke-anchor needs the LEZ sequencer running, which is
non-trivial to provision on a stock runner. I'd been validating both manually on every push and
treating that as sufficient for the prize submission.

I'm pushing a commit now that should adds them to CI — it brings up nwaku via docker-compose, builds the modules via Nix,
and runs nix run

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, while manually everything must be working we still need to have tests and green CI (as per criteria in the link)

Comment thread solutions/LP-0017.md

Worst-case (n=50 near the 100 KiB account-data cap) is ~288k cycles — well under 1 Mi, ~3 % of the NSSA 32 Mi per-tx budget.

### Supportability

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't find in this document mentioning of CI is green on the default branch but it is a criteria listed in https://github.com/logos-co/lambda-prize/blob/master/prizes/LP-0017.md#supportability

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What i had on CI, was tests for the anchor tool were green. But as referenced above i shall push the remaining e2e tests up.

Comment thread solutions/LP-0017.md
@@ -0,0 +1,141 @@
# Solution: LP-0017 — Whistleblower

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overall, in this submission I see you are missing GitHub issues filed for any problems encountered with Logos technology

have you had no problems? was everything smooth?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I shall add that to documentation, but the one issue in did encounter i made a pr for it
logos-co/spel#189
its just around serialisation of string vecs in spel cli

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please, add it
any other issues have you had?

@weboko

weboko commented May 25, 2026

Copy link
Copy Markdown
Collaborator

I left some comments, please, let me know if you have questions

Meanwhile I will try to play with your submitted software

@weboko

weboko commented May 26, 2026

Copy link
Copy Markdown
Collaborator

I have checked https://github.com/Thompsonmina/WhistleBlower-Logos- and here are some comments:

  • you have custom pin on SPEL to your fork, is it because of Solution: LP-0017 — Whistleblower #48 (comment) ? For submission we want to have main SPEL be used
  • in batch anchor you have program_id hardcoded because of which I wasn't able to run
  • also, my AI noticed that you have mismatch with how cids are passed to spel which would fail if more than one is passing

@Thompsonmina

Thompsonmina commented May 27, 2026

Copy link
Copy Markdown
Author

I have checked https://github.com/Thompsonmina/WhistleBlower-Logos- and here are some comments:

Yes the custom pin is because of the fix. Without it i cant use the cli to populate the cids into the registries, hence the pr. But if you look at the scope of the pr, it basically on touches the part needed for that. Once accepted it should be trivial to point back to regular spel.

  • in batch anchor you have program_id hardcoded because of which I wasn't able to run

Thanks for flagging this. The program_id is set in one place in batch-anchor:

batch-anchor/batch-anchor.toml — production config
It pins 6ac5aa11b87bcd1961c7b5294b8d01e8746b2103e3beb665202a0299d2cf0252, which is the risc0 ImageID of methods/guest/. Since the guest is built via make build (risc0's docker-based reproducible build), the ImageID is deterministic — I confirmed locally that a fresh rebuild produces the identical hash, and scripts/setup.sh uses make build then make deploy for that exact binary, so the pinned ID should match whatever your deploy produces.

If your build does produce a different program_id for any reason (e.g. modified guest deps, different risc0 toolchain, or cargo build instead of make build), the fix is just to swap the line in batch-anchor.toml to whatever ID make deploy reports — no code change needed.

If you can share the program_id make deploy produced (or the error you hit), happy to dig into the divergence.

  • also, my AI noticed that you have mismatch with how cids are passed to spel which would fail if more than one is passing

When you say "mismatched CIDs" — is that about this project and my open PR to spel (logos-co/spel#189), or about plain upstream spel?

If plain spel: as I noted earlier, upstream spel currently has no way to invoke a method with a Vec argument — that's the whole problem the PR solves.
If this project + my PR: during review I was asked to switch the parsing from a comma-separated list to repeated invocations of the same arg, which I did. This project (whistleblower) is still pinned to the older CSV-format commit of spel, I have now pushed an update that uses the multiple flag syntax. So everything should work as intended and whne it gets merged i can trivially pin back to the actual spel

@mart1n-xyz

Copy link
Copy Markdown
Collaborator

It appears there are multiple loose ends here. We'll close this submission, and we'll be looking forward to your resubmission once these are addressed. Please understand that we're able to provide only basic feedback here, so do not expect the reviewer to engage further in a back-and-forth discussion.

@mart1n-xyz mart1n-xyz closed this May 27, 2026
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.

3 participants