This repository is dedicated to a powerful and user-friendly framework designed for testing various circuits using Circom. Our main objective is to simplify the testing process, allowing developers to easily add new circuits and conduct reliable tests.
Key features of the framework:
-
Extensibility: The framework is highly extensible. To add new circuits, simply follow a few clear rules and place the circuits in the
circuits/basefolder. Additionally, provide a commentedmainfile following the appropriate formatting. -
Easy Customization: You can effortlessly customize circuit values using Python. Just make the necessary changes in the files
test_circuits.pyto adapt it to the new circuit.
Getting Started:
- Clone this repository to your local system.
- Add new circuits to the
circuits/basefolder. - Modify the
mainline of the circuit with the correct formatting and values to be customized in Python. - Edit the files
test_circuits.pyto adapt it to the new circuit, updating the circuit name, powersoftau, and other parameters as needed. - Run the benchmark to ensure the circuit functions correctly.
Troubleshooting If you get any error, take care of properly set the following parameters:
- In
scripts/compile_circuit.sh, properly setCIRCOMLIB_PATHpath. Ifcircomlibis not installed, run:npm install circomlib. - In
test_circuits.py, properly setPOTvariable with the path to the*.ptaufile (download it from here). It should be inpoweroftaudirectory but it can be elsewhere. - In
scripts/proving_system/prover.sh, properly setRAPIDSNARKvariable with the path to thebuild/proverexecutable. For information on how to install Rapidsnark visit here
Contributions are Welcome:
We are open to contributions from the community to improve this framework and make it even more useful. Feel free to open issues, propose enhancements, or submit pull requests.
Thank you for choosing our framework. We hope it simplifies your Circom testing work and contributes to your success in developing secure and efficient circuits.