Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make proving/verifying work in SnarkyJS with kimchi #49

Closed
mitschabaude opened this issue Dec 21, 2021 · 7 comments
Closed

Make proving/verifying work in SnarkyJS with kimchi #49

mitschabaude opened this issue Dec 21, 2021 · 7 comments
Assignees
Milestone

Comments

@mitschabaude
Copy link
Member

No description provided.

@mitschabaude mitschabaude self-assigned this Dec 21, 2021
@mitschabaude mitschabaude added this to the Berkeley milestone Feb 4, 2022
@mitschabaude
Copy link
Member Author

mitschabaude commented Mar 10, 2022

Matt fixed the proving bug, and proving works for the low-level Circuit interface now.

However, this isn't quite done, because recursive pickles proofs don't work yet (which are the ones we need for snapps). The issue is that they get returned as a Deferred, but deferred's never actually finish in JS, because there is no "scheduler" for them. I'm trying to solve that now.

@mitschabaude
Copy link
Member Author

Pushed a branch which seems to solve the problem described above: https://github.com/MinaProtocol/mina/tree/feature/snarkyjs-pickles-proof
This makes a fairly wide-reaching change to the code base, and still has to be consolidated with develop

However, a new issue turned up - a missing implementation of Kimchi.Oracles.create in the Wasm version

@mitschabaude
Copy link
Member Author

Set up this PR to fix the async prover issue: MinaProtocol/mina#10454

@mitschabaude
Copy link
Member Author

mitschabaude commented Mar 10, 2022

Multiple Wasm / bindings issues are fixed, and the proof seems to work - there's only an issue with asyncness left, where the proof is computed, but the promise that should hold it resolves early with a value of undefined

@mitschabaude
Copy link
Member Author

Proving works 🎉 I'll devote another morning to see if I can get pickles verifying to work in JS as well, because that would be a nice sanity check. (Verifying already works for non-recursive proofs, so we shouldn't be too far off)

@mitschabaude
Copy link
Member Author

Verify works as well now 🎉

The only remaining TODO is to fix the regressions that come up when merging develop in the branch where it works (MinaProtocol/mina#10267)

@mitschabaude
Copy link
Member Author

As snarkyjs is being merged in a version where everything works and is tested in CI, this can be closed :)

mitschabaude added a commit that referenced this issue Sep 5, 2023
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

No branches or pull requests

1 participant