1个不稳定版本
0.1.0 | 2024年7月22日 |
---|
761 在 Rust模式
每月162次下载
用于 mopro-ffi
255KB
313 行
rust-witness
一个Rust库,用于原生生成circom证明。此库将wasm证明生成器转换为C语言,然后提供宏以方便调用C函数。
用法
- 将
rust-witness
作为依赖项和构建依赖项添加。将paste
作为依赖项添加。 - 编写一个类似以下内容的
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/");
}
- 计算以下类似的证明
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