worldfnd / provekit
Client side zero-knowledge proving.
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing worldfnd/provekit in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewProveKit A modular zero-knowledge proof toolkit optimized for mobile devices. Requirements This project makes use of Noir's to compile circuits and generate test artifacts. Make sure to walk through the Quick Start section to install the noir toolchain. Note that we require a specific version of the toolchain, so make sure to override the version with the following command. Demo instructions > _NOTE:_ The example below is being run for single example . You can use different example to run same commands. Compile the Noir circuit: Prepare the Noir program (generates prover and verifier files): Generate the Noir Proof using the input Toml: Verify the Noir Proof: Generate inputs for Gnark circuit: Analyze circuit statistics and R1CS complexity: Analyze PKP file size breakdown: Show public inputs with variable names: Recursively verify in a Gnark proof: Benchmarking Benchmark against Barretenberg: > _Note_: You can install Barretenberg from here. > _Note_: You can install hyperfine using brew on OSX: . Profiling Custom built-in profile (Memory usage) The application has written custom memory profiler that prints basic info about memory usage when application runs. To run binary with profiling enabled run it with cargo param or compile with it. Using tracy (CPU and Memory usage) Tracy tool website. To install tracy tool on OSX use brew: . > **Important**: integration is done with . It is newest version available from brew. Newer > version may require updating dependencies as tracy is using its own protocol between app and tracy tool that changes > with each major version. TLDR; Tracy is an interactive tool to profile application. There is integration plugin for rust that works with standard tracing annotation. For now it is integrated into binary only. Collecting profiling data requires tracy to run during application profiling. You may noticed that it makes application to run much longer but mostly due to data transfer between the application and the tracy running along. Usage: • Start tracy from command line • Leave all fields with defaults and just click button. It will cause tracy to start listening on the localhost for incoming data. • Compile binary. • (OSX only) If you want to check call stacks additional command needs to be run (base on tracy instruction). The command must be run against each binary that is being profiled by tracy. This will create directory next to the binary provided with suffix (ex. ). Directory will contain the debug symbols and paths extracted with different format that is compatible with tracy tool. It must be rerun after each changes made to app. • Now start the application to profile: • Go back to tracy tool. You should see that it receives data. App is interactive. Using samply (CPU usage) Samply tool website with instructions to install. It will start local server and open a webpage with interactive app to view results. This does not require to run binary with profiling enabled. Using instruments (Memory usage) - OSX only Cargo instruments tool website with instructions to install. It will open results using built-in Instruments app. Results are interactive. Samply tool website with instructions to install. It will start local server and open a webpage with interactive app to view results. This does not require to run binary with profiling enabled. Demo instructions for Mavros > _NOTE:_ The example below is being run for single example . You can use different example to run same commands. Compile the Noir circuit: mavros bin is a prerequisite. You should follow the build instructions in the Mavros repository at https://github.com/reilabs/mavros Prepare the Noir program (generates prover and verifier files): Generate the Noir Proof using the input Toml: Verify the Noir Proof: Benchmarking Benchmark against Barretenberg: > _Note_: You can install Barretenberg from here. > _Note_: You can install hyperfine using brew on OSX: . Profiling Custom built-in profile (Memory usage) The application has written custom memory profiler that prints basic info about memory usage when application runs. To run binary with profiling enabled run it with cargo param or compile with it. Using tracy (CPU and Memory usage) Tracy tool website. To install tracy tool on OSX use brew: . > **Important**: integration is done with . It is newest version available from brew. Newer > version may require updating dependencies as tracy is using its own protocol between app and tracy tool that changes > with each major version. TLDR; Tracy is an interactive tool to profile application. There is integration plugin for rust that works with standard tracing annotation. For now it is integrated into binary only. Collecting profiling data requires tracy to run during application profiling. You may noticed that it makes application to run much longer but mostly due to data transfer between the application and the tracy running along. Usage: • Start tracy from command line • Leave all fields with defaults and just click button. It will cause tracy to start listening on the localhost for incoming data. • Compile binary. • (OSX only) If you want to check call stacks additional command needs to be run (base on tracy instruction). The command must be run against each binary that is being profiled by tracy. This will create directory next to the binary provided with suffix (ex. ). Directory will contain the debug symbols and paths extracted with different format that is compatible with tracy tool. It must be rerun after each changes made to app. • Now start the application to profile: • Go back to tracy tool. You should see that it receives data. App is interactive. Using samply (CPU usage) Samply tool website with instructions to install. It will start local server and open a webpage with interactive app to view results. This does not require to run binary with profiling enabled. Using instruments (Memory usage) - OSX only Cargo instruments…