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/base
folder. Additionally, provide a commentedmain
file following the appropriate formatting. -
Easy Customization: You can effortlessly customize circuit values using Python. Just make the necessary changes in the files
test_circuits.py
to adapt it to the new circuit.
Getting Started:
- Clone this repository to your local system.
- Add new circuits to the
circuits/base
folder. - Modify the
main
line of the circuit with the correct formatting and values to be customized in Python. - Edit the files
test_circuits.py
to 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_PATH
path. Ifcircomlib
is not installed, run:npm install circomlib
. - In
test_circuits.py
, properly setPOT
variable with the path to the*.ptau
file (download it from here). It should be inpoweroftau
directory but it can be elsewhere. - In
scripts/proving_system/prover.sh
, properly setRAPIDSNARK
variable with the path to thebuild/prover
executable. 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.