1个不稳定版本

0.1.0 2024年7月22日

761Rust模式

Download history 127/week @ 2024-07-20 35/week @ 2024-07-27

每月162次下载
用于 mopro-ffi

Apache-2.0

255KB
313

rust-witness

一个Rust库,用于原生生成circom证明。此库将wasm证明生成器转换为C语言,然后提供宏以方便调用C函数。

用法

  1. rust-witness作为依赖项和构建依赖项添加。将paste作为依赖项添加。
  2. 编写一个类似以下内容的build.rs
use rust_witness::transpile::transpile_wasm;

fn main() {
    // This function will recursively search the target directory
    // for any files with the `wasm` extension and compile
    // them to C and link them
    transpile_wasm("my/path/to/wasm/");
}
  1. 计算以下类似的证明
use rust_witness::witness;

// Use this macro to generate a function that can be
// used to build a witness for the target circuit
//
witness!(circuitname);
// The name should be the name of the wasm file all lowercase
// with all special characters removed
//
// e.g. 
// multiplier2 -> multiplier2
// keccak_256_256_main -> keccak256256main
// aadhaar-verifier -> aadhaarverifier
// 

fn build_proof() {
    let inputs: HashMap<String, Vec<BigInt>>;
    // The generated function will be the name of the circuit
    // followed by _witness
    let witness = circuitname_witness(inputs);
}

设置

克隆仓库然后在仓库目录中运行以下命令

cargo test

加快构建速度

默认情况下,如果您的PATH中不存在二进制文件,此包将从源代码构建w2c2。在开发时频繁重建可能会很慢。要将w2c2安装到您的cargo bin,请运行以下命令

sh ./install_w2c2.sh

transpile_wasm将自动使用您的PATH中的w2c2,如果可能的话。

依赖关系

~0.6–7.5MB
~52K SLoC