Skip to content

LP-0023: LEZ Program Registry - #127

Open
fryorcraken wants to merge 18 commits into
masterfrom
lp-0023-program-registry
Open

LP-0023: LEZ Program Registry#127
fryorcraken wants to merge 18 commits into
masterfrom
lp-0023-program-registry

Conversation

@fryorcraken

@fryorcraken fryorcraken commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Drafts LP-0023, a LEZ program registry with source verification.

Fixes logos-co/ecosystem#196

Number choice

LP-0023. LP-0000–0017 are merged; 0018–0020 are in open PRs (#90, #75, #71, #36, #83, #82); 0021–0022 are in #122.

Shape

Modelled on the existing prior art — jimmy-claw/spelbook (Rust core, on-chain SPEL program, CLI, FFI) and jimmy-claw/logos-lez-registry-module (Qt6 Logos Core module) — extended to cover what that prototype does not yet do.

Working in the prior art: register, author-gated update, lookup by program ID, IDL upload/download to Logos Storage, CLI, browse/detail/register GUI.

Not implemented there, and therefore where this prize puts the work:

  • Enumeration and searchlez_registry_list returns only a count, and get_by_name is a hardcoded stub; both are marked "requires an off-chain indexer in v1".
  • Claim authorisation — registration is currently first-come-first-claim, so anyone can claim a program ID they do not control and permanently own the entry wallets will display.
  • Source verification — absent entirely; no reproducible builds, no source pointer, no byte-code matching.
  • Real timestampsregistered_at is hardcoded to 0.
  • End-to-end tests — the e2e_tests crate is a placeholder.

The criteria have since been revised (during review) to specify product-level outcomes rather than implementation mechanisms — e.g. "clients must be able to tell a deployer entry from a third-party one" rather than prescribing a specific PDA seeding scheme. Source and IDL storage is now an explicit requirement (off-chain, on Logos Storage) rather than left open. Source verification also moved from a formal four-state on-chain status to a simpler local, self-attested model: a user rebuilds an entry's recorded source themselves and marks it "locally verified" for their own use, rather than the registry maintaining a canonical on-chain verification state. The Performance criterion now points at LEZ's own cycle_bench tool and cycle-count terminology, not a compute-unit or gas analogy borrowed from elsewhere in the stack.

Adoption criteria

Scaled down from the original LP-0021/LP-0022-modelled numbers to match this prize's current Small effort tier: 5 third-party integrations (each shipping as a Logos UI Module), 50 registered programs from ≥20 distinct authors, sustained ≥2 months at ≥10/month, 20 Discord + 20 Twitter/X testimonials. 20 entries carrying verified source claims is still counted separately — registering metadata is cheap, so the count that signals trustworthiness deserves its own line.

Open points for review

  • Prize pool set to $2000 / Small effort (previously $X / Large in the initial draft).
  • Relationship to the prior art. Written as a competitive prize that credits and may build on the existing repos. If it would be better treated as productionizing that specific work, the framing should change.
  • The remaining open questions (where verified source lives, whether there's a trusted-signer overlay) are deliberately left to the submitter in a Design Decisions section rather than pre-decided.
  • The original Risks and Dependencies note (reproducible builds as a hard dependency on the LEZ toolchain) has been removed from the prize doc as no longer needed; flag if that risk should be tracked elsewhere instead.

🤖 Generated with Claude Code

@github-actions

Copy link
Copy Markdown

✅ Validation passed

A reviewer will assess against the prize criteria.
ℹ️ Prize proposal for LP-0023.


Automated check. See solution template and TERMS.

@fryorcraken
fryorcraken requested a review from vpavlin August 17, 2026 05:22
fryorcraken added a commit that referenced this pull request Aug 24, 2026
LP-0023 (Program Registry — Verified Builds for LEZ Programs, PR
#127) is now open and follows the LP-0021/LP-0022 adoption pattern.
Firm up the prior speculative "not yet written" placeholder into a
real dependency: add LP-0023 to both files' dependencies:
frontmatter, and change the approval-prompt criterion from
optional ("MAY use... not required") to required ("must show the
registry's verified source status") for programs registered in it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@fryorcraken
fryorcraken marked this pull request as ready for review August 26, 2026 07:14
@fryorcraken
fryorcraken force-pushed the lp-0023-program-registry branch from 7ab1875 to 790fb4e Compare August 26, 2026 07:15
Comment thread prizes/LP-0023.md

### Functionality

- [ ] **On-chain registry**: entry metadata is stored on-chain as a LEZ program built with the [SPEL framework](https://github.com/logos-co/spel), with a published IDL. Source code and the entry's own IDL live off-chain on Logos Storage; on-chain storage is limited to metadata and pointers, mindful of gas cost.

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.

do we have concept of gas cost to refer to on LEZ?

@fryorcraken fryorcraken Aug 27, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Checking with @davidrusu to confirm but I expect gas in 0.3. AFAIK the tokenomics are ready.

edit: will be delivered in 0.3

Comment thread prizes/LP-0023.md Outdated

### Performance

- [ ] Document compute unit usage for each on-chain operation (register, update).

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.

can we clarify what CU means here? since it is about registry maybe size limits is an option

additionally, my AI advices to refer to RISC0 cycle counts

@fryorcraken fryorcraken Aug 27, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Indeed, execution gas and storage gas seem to be the terminology used: https://lip.logos.co/blockchain/raw/analysis-gas-cost-determination.html

edit: indeed, "cycle count" is the right terminology: https://github.com/logos-blockchain/logos-execution-zone/tree/dev/tools

Comment thread prizes/LP-0023.md

### Adoption

> These metrics measure traction attributable to a given submission for this prize.

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.

do we need to refer to this quote in LPs now?

@fryorcraken fryorcraken Aug 27, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

(edited) I don't think we "need" per se, but I think it is a good introduction to have.

Comment thread prizes/LP-0023.md
- [ ] README documents setup, the deployed program ID, and step-by-step usage via CLI and Logos Core Module.
- [ ] SDK documentation covers resolving a program ID to metadata and IDL as a worked example, since that is the integration path most consumers will take.

### Adoption

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.

this is $1000 LP and there are 6 adoption criteria

are all 6 criteria needed for selection of a submission or only a sub set of them, say, 4 out of 6 needs to be met?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I did think when leaving my computer that $2000 would be more appropriate (chnaged).

Also, considering how gamable this could be, I think 6/6 is fair. Do you disagree?

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.

ok to go with 6/6, we need to test at least something in the direction of adoption criteria

Comment thread prizes/LP-0023.md Outdated

## Risks and Dependencies

Reproducible builds are a hard requirement on the LEZ compiler toolchain, not something this prize can bolt on from the outside. If the toolchain does not yet build LEZ programs deterministically, that must be resolved before this prize opens: otherwise the verification criteria are unsatisfiable through no fault of the submitter. This should be confirmed before moving the prize out of Draft, and may warrant a `dependencies:` entry once the owning work item is identified.

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.

reading this it seems more a concern to us (owners of LP) rather than to implementers of it

Comment thread prizes/LP-0023.md

- The on-chain LEZ registry (register, update), built with SPEL.
- IDL publishing to Logos Storage and resolution from the on-chain entry.
- Reproducible builds for LEZ programs, and the source-verification tooling and on-chain fields backing it.

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.

here I copy paste my AI's comment:

A submitter doing spel init → make build today gets host-dependent, non-reproducible image IDs.

It's in-scope work: generalise that pipeline into a reusable spel build --reproducible. That's a better prize, and it matters because a submitter reading the current Risks section may conclude the criterion is unsatisfiable. Worth pinning the container tag, --locked, and the packager step in the criteria — all three affect the image ID.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

AI is incorrect, but scaffold needs to be fixed: logos-co/scaffold#259

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'll check that for scaffold but why it is not correct for spel?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

because spel uses cargo risczero build with does deterministic builds

see logos-co/spel#265

@fryorcraken fryorcraken changed the title LP-0023: Program Registry — Verified Builds for LEZ Programs LP-0023: LEZ Program Registry Aug 28, 2026
@edenbd1

edenbd1 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Hey @fryorcraken @weboko i've got some good ideas for LP-0023 and have already made solid progress, with a full implementation running on LEZ v0.2.4. Quick question on the testnet 0.3 requirement, is testnet 0.3 already live somewhere or when is it expected? And does our current deployment on testnet 0.2.4 count in the meantime since the code is ready?
Just want to clear up the ambiguity

@fryorcraken

Copy link
Copy Markdown
Collaborator Author

Hey @fryorcraken @weboko i've got some good ideas for LP-0023 and have already made solid progress, with a full implementation running on LEZ v0.2.4.

Hi @edenbd1, that's great to hear.

Quick question on the testnet 0.3 requirement, is testnet 0.3 already live somewhere or when is it expected?

Testnet 0.3 is planned for end of September.

And does our current deployment on testnet 0.2.4 count in the meantime since the code is ready?

The λ-Prize is not published yet. The existence of this PR is not a guarantee of it happening, proper review need to happen.

Deployment on testnet 0.2.4 does not count as we are likely to reset the chain from testnet 0.3.

I hope it helps and could luck with the prize!

@mart1n-xyz

Copy link
Copy Markdown
Collaborator

LGTM

fryorcraken and others added 7 commits September 3, 2026 14:26
Adds a draft prize for an on-chain LEZ program registry: register/update
of program metadata with IDLs on Logos Storage, enumeration and search,
a claim-authorisation model, and reproducible-build bytecode-to-source
verification.

Adoption criteria follow the LP-0021/LP-0022 wallet pattern, with a
separate count for entries carrying verified source claims.

Refs logos-co/ecosystem#196

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Compares against otter-verify, program-metadata, solana-verify and the
Explorer's verification UI, and tightens the criteria accordingly:

- Replace the open-ended claim model with the canonical/non-canonical
  PDA pattern from solana-program/program-metadata.
- Four verification states rather than three, adding the "claim present
  but hash mismatched" case the Explorer treats separately.
- Require an answer to the build.rs provenance attack, where a matching
  hash was produced from an attacker-controlled repository.
- Require a documented staleness window and last-verified point.
- Require the signer behind a claim to be surfaced, not a bare badge,
  and a "verified is not audited" caveat.

Adds a prior-art comparison table and Solana references.

Refs logos-co/ecosystem#196

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Rewrite Success Criteria to specify product-level requirements instead
of prescribing implementation mechanisms (PDA derivation, singleton
accounts, host-timestamp handling). Rename canonical/third-party split
to deployer/third-party with a simpler authorization model. Make
off-chain storage of source and IDL on Logos Storage an explicit
requirement rather than a design choice left to the submitter. Trim
FURPS bullets already covered by the Adoption bars, and tighten prose
throughout (overstated claims, em-dash density, unrelated citations).
The registry points to both the IDL and source code; the Overview only
named the IDL.
Replace prose em-dashes with commas/colons/periods per sentence
context. Keep the [text](url) — description convention in reference
lists, which reads as normal markdown-list style, not an AI tell.
Revert an unnecessary "per the standard adoption evaluation policy"
addition from the prior pass.
Restore blank lines before headers that were missing (### Reliability,
### Performance, ### Supportability, ## Resources, and before the
"Solana prior art" paragraph), which were breaking rendering. Fix a
dangling "see the comparison above" reference to a Solana comparison
table that no longer exists in the doc. Resolve inconsistent tags
references (Register dropped tags but Update/Discovery/Scope still
mentioned it) and standardize "Basecamp app" vs "Core Module" naming
on Logos Core Module throughout. Clean up unclear/ungrammatical
wording in the Source verification and adoption-criteria bullets.
Each of the 5 third-party SDK integrations must ship as a Logos Core
Module, not just any tool/library that happens to link the SDK.
fryorcraken and others added 11 commits September 3, 2026 14:26
A Core Module is backend/business-logic; the registry's app deliverable
(browse, search, register) is a user-facing UI Module.
The registry itself ships as a Logos Core Module (backend/business
logic, consumed via SDK). The 5 third-party adoption integrations
must each be a Logos UI Module (user-facing app). The prior commit
incorrectly collapsed both into "UI Module".
Logos Blockchain's gas model uses Execution Gas and Permanent Storage
Gas, not "compute units" (that's Solana's term). Link the Gas Cost
Determination doc from both the Performance criterion and Resources.
The gas-cost-determination doc is for the L1 blockchain layer, not
LEZ. LEZ's own benchmarking tool (cycle_bench) measures cycle counts;
point to that instead.
"Verified Builds" overstated what the prize now requires — source
verification is a local, best-effort check, not the headline feature.
Also fixes the README table row, which still said Large effort after
the prize was scaled down to Small.
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…tion-first table

README's prize index now splits into adoption-first vs legacy tables (merged
separately); place LP-0023 under adoption-first. Also align the disclaimer
block with the format landed in prizes/LP-0000.md (--- separator, bold Note
lead-in, markdown link to TERMS.md).
fryorcraken added a commit that referenced this pull request Sep 3, 2026
LP-0023 (Program Registry — Verified Builds for LEZ Programs, PR
#127) is now open and follows the LP-0021/LP-0022 adoption pattern.
Firm up the prior speculative "not yet written" placeholder into a
real dependency: add LP-0023 to both files' dependencies:
frontmatter, and change the approval-prompt criterion from
optional ("MAY use... not required") to required ("must show the
registry's verified source status") for programs registered in it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@fryorcraken
fryorcraken force-pushed the lp-0023-program-registry branch from d8501f8 to a091aa8 Compare September 3, 2026 04:30
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.

[LP] Program Registry: verified builds for LEZ programs

4 participants