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

Remove the pasta fork #332

Closed
huitseeker opened this issue Feb 18, 2024 · 0 comments · Fixed by #333
Closed

Remove the pasta fork #332

huitseeker opened this issue Feb 18, 2024 · 0 comments · Fixed by #333

Comments

@huitseeker
Copy link
Contributor

huitseeker commented Feb 18, 2024

Anyone that imports Arecibo (and Lurk) needs to include the following lines:

[patch.crates-io]
pasta_curves = { git = "https://github.com/lurk-lab/pasta_curves", branch = "dev" }

These lines are needed because both {Lurk, Arecibo} x { halo2curves } use pasta_curves, and more importantly traits defined in pasta_curves (because zkcrypto/group#48 is not resolved). Yet {Arecibo, Lurk} is using a fork of pasta_curves, whereas halo2curves isn't, so they disagree on the definition of those traits. This is solved for Arecibo by adding a patch stanza here:
https://github.com/lurk-lab/arecibo/blob/5bdc0ee4b2434dd998679b8e36b5b0b6d2588019/Cargo.toml#L120-L122
But that's not transitive, so it has to be reproduced here in lurk :
https://github.com/lurk-lab/lurk-rs/blob/f2d70f4f7c295cde6f07ae391f601a0d49c3965e/Cargo.toml#L189-L191
... and so it goes for any downstream dependency.

The reason we use a pasta_curves fork is that to implement something like microsoft/Nova#179, we needed uncompressed point encoding to be actually implemented for the curves in question, and that's not the case for pasta_curves ( zcash/pasta_curves#73 is still opened and unreviewed ). Hence a fork.

The real solution for us at this stage, since we mostly depend on bn254/grumpkin, is to move out of pasta_curves. We should:

  1. excise the fork from our dependency suite,
  2. rebase [Do not merge until Git dependencies removed] Uncompressed Encoding for Affine Points microsoft/Nova#179 on arecibo, which can actually use it on bn254/grumpkin (for which uncompressed encodings are available),
  3. This would probably close [Zeromorph] Avoid decompressing G2 points #91
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant