Contract Verification Results (draft SEP) #2037
jia57b
started this conversation in
Stellar Ecosystem Proposals
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This thread is to discuss a new draft SEP: Contract Verification Results.
Draft: https://github.com/jia57b/stellar-protocol/blob/sep-contract-verification-results/ecosystem/sep-contract-verification-results.md
PR: #2038
Note
This standardises only what a verifier publishes and the read routes that serve it, so Lab, explorers, wallets and the Stellar CLI can read any verifier's results with one reader. It does not constrain how a verifier performs a verification or who may request one.
It builds on the Contract Verification Registry API draft by @fnando (#1944) and the discussion in #1945, and carries SEP-58's build vocabulary unchanged. A companion proposal, Contract Verification Aggregation, covers combining several verifiers into one view, in its own thread: https://github.com/orgs/stellar/discussions/2039 (PR #2040).
In one paragraph. A verifier publishes static JSON under a result root, and the root's URL is its identity.
wasms/{wasm_hash}.jsonis astellar-verification-statusdocument: the verdict (verified,mismatchedorunverified), the SEP-58 recipe that produced it, where the recipe came from (recipe_source), how far the build image can be trusted (image_trust_level), and hash-anchored links to the report and its archive copies.GET /v1/wasms/{hash}.jsonserves the same bytes and adds202while a verification is in flight.GET /v1/wasmsstreams the corpus for indexers. Every non-2xx response uses one error envelope.Decisions worth challenging
sha256on everyresults_urlsentry gives offline integrity for mirrored reports. A signature would mostly re-assert what TLS to the result root already gives. Is there a threat this misses?nameis display only.status.Out of scope (deliberately): submission, aggregation across verifiers (the companion proposal), signatures, verifier internals.
Implementation. The proposal is implemented, and every example body in the draft is one that implementation emits. Its source will be published once an external security audit completes.
Feedback from anyone who would consume this (Lab, StellarExpert, StellarChain, CLI, wallets) is especially useful: does one reader per this shape cover what you need to display?
All reactions