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

Refactoring of Circuits package #816

Closed
7 tasks done
ctrlc03 opened this issue Nov 7, 2023 · 2 comments · Fixed by #832
Closed
7 tasks done

Refactoring of Circuits package #816

ctrlc03 opened this issue Nov 7, 2023 · 2 comments · Fixed by #832
Assignees
Labels
circuits Related to the Circom circuits dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation

Comments

@ctrlc03
Copy link
Collaborator

ctrlc03 commented Nov 7, 2023

Refactor the package:

  • clean up unused dependencies
  • update dependencies
  • docs improvements
  • monolith file to multiple files
  • circuits comments
  • usage instructions
  • build scripts cleanup
@ctrlc03 ctrlc03 added this to MACI Nov 7, 2023
@ctrlc03 ctrlc03 converted this from a draft issue Nov 7, 2023
@ctrlc03 ctrlc03 added this to the MACI v1.1.1 refactor milestone Nov 7, 2023
@samajammin
Copy link
Member

docs improvements

I'd love to see the circuits doc page updated/expanded to cover for each circuit:

  • What is the high-level purpose of this circuit? Why is a circuit needed here, vs. using some other process (e.g. on-chain execution)? i.e. what problem is this circuit uniquely solving, that couldn't be solved without a SNARK?
  • How does this circuit interact with the rest of the MACI system? e.g. is the circuit changing any smart contract state? Or just returning values that are used elsewhere?
  • How does the circuit fit into the lifecycle of MACI (e.g. which step of a poll)?
  • How is the circuit executed (e.g. via a CLI command? If so, which)? Which role is interacting with the circuits (I think it's the coordinator for all, correct?)
  • What are the inputs for the circuit? What are the outputs? I think the parameters are already mentioned in docs, but could use expansion
  • How & where are proofs generated for this circuit? How & where are the proofs verified (e.g. on-chain?)?
  • How to test? How are the tests set up?

Some general information I think would be useful for n00bs like me:

Perhaps the docs work can be a separate issue? LMK what you think @ctrlc03

@samajammin samajammin added the circuits Related to the Circom circuits label Nov 14, 2023
@ctrlc03 ctrlc03 moved this from Todo to In Progress in MACI Nov 22, 2023
@ctrlc03 ctrlc03 self-assigned this Nov 26, 2023
@ctrlc03
Copy link
Collaborator Author

ctrlc03 commented Nov 26, 2023

docs work can be a separate issue?

totally missed this! definitely can add all of the above, I would probably keep it all in one PR as anyways there really isn't much that's gonna change code wise, just one typescript file being a little bit re-organized 🙂

@ctrlc03 ctrlc03 added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file labels Nov 26, 2023
@ctrlc03 ctrlc03 moved this from In Progress to PR Ready to Review in MACI Nov 27, 2023
@0xmad 0xmad moved this from PR Ready to Review to In Progress in MACI Dec 8, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in MACI Dec 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
circuits Related to the Circom circuits dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation
Projects
Status: Done
2 participants