This PoC integrated proof generation into an API server. The completion of this phase initiates the next steps in development. It allows users to generate proofs by simply sending a request to https://maci-coordinator.jetzt/ or a locally spun-up instance. This simplifies the process of MACI proof generation.
PoC Objectives
The main goals of this PoC included:
- Generating and Validating Proofs: Utilize
go-rapidsnark
for the creation of witnesses and proofs, and confirm their correctness. - API Implementation: Develop a basic API endpoint to handle proof generation requests, retrieve the generated proof, and provide prover status with the 10-2-1-2 parameters of MACI V1.
- CI/CD Integration: Establish a CI/CD pipeline to provide real-time functionality checks and easy access to the latest container image.
Key Features
Containerization
The implementation of containerization within the Coordinator Service reduces the technical barriers to generating zk-SNARK proofs. Users simply provide the circuit to the service and obtain the proof, bypassing the need for manual file downloading, configuration, OS compatibility checks, and dependency management.
Efficient API
A simple and efficient API has been implemented for managing proof generation requests and retrieving the generated proofs. This approach provides a simplified and efficient user experience.
Continuous Integration and Deployment
The integration of a CI/CD pipeline allows for continuous checks on the system's functionality and facilitates access to the latest container image.
Forward Path
Embracing the Unix philosophy of simplicity and modularity, the design of the Coordinator Service's API will be guided by these principles. The main objective will be to create an API that enables parallel proof generation while offering a simplified configuration for the proving key. This approach ensures that the complexity of generating proofs is abstracted away, making the service more user-friendly and efficient.
Furthermore, to facilitate easy integration and usage in web applications, a Node.js Software Development Kit (SDK) will be developed. This will provide developers with a toolkit to leverage the Coordinator Service's functionality, streamlining the process of implementing and utilizing MACI within their applications. This SDK aims to make the power of MACI more accessible and easier to wield, opening up opportunities for broader use and application.
Here's What Changed
- Initialize project using notsatan/go-template β @gurrpi (#3)
π Updates
- Generate proof of TallyVotes circuit β @gurrpi (#15)
- Implement updated API design and revise demo HTML β @gurrpi (#14)
- Add API endpoints β @gurrpi (#7)
π¦ Dependencies
- Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 β @dependabot (#8)
π€ CI/CD and Pipelines
- Add nightly run β @gurrpi (#16)
- Add GitHub Actions workflow for building and deploying Docker images with flyctl β @gurrpi (#12)
- Build and publish Docker image to GHCR β @gurrpi (#11)
- Add pr-labeler β @gurrpi (#5)
Current Release: 0.0.1