我正在尝试用ZoKrates库进行实验。当我使用./zokrate安装命令时,它会警告我gm16的可塑性。因此,我试图将证明方案改为gm17。但是我一直得到“后端gm17不受支持”的错误。以前有人遇到过这个问题吗?我正在使用MacOS。我看到gm17需要libsnark。我检查了libsnark的github回购,如果他们有在Mac中激活libsnark的指令。但是,我没有看到任何指示。
提前谢谢你的帮助。
发布于 2019-12-06 08:48:19
通用17是唯一一个默认支持的后端。要启用GM16 (和PHGR13),您必须使用适当的标志从源构建Zokrate。
cargo +nightly -Z package-features build --release --package zokrates_cli --features="libsnark"
在Mac上安装这个是有问题的。OSX不支持Super,它是libsnark的构建依赖项,因此您必须在构建配置中禁用它。
let libsnark = cmake::Config::new(libsnark_source_path)
.define("WITH_SUPERCOP", "OFF") ==> Add this line.
.define("WITH_PROCPS", "OFF")
.define("CURVE", "ALT_BN128")
.define("USE_PT_COMPRESSION", "OFF")
.define("MONTGOMERY_OUTPUT", "ON")
.define("BINARY_OUTPUT", "ON")
.build();
要记住的另一件事是,您需要为设置添加正确的标志,生成验证器命令,即--proving-scheme(or -s) gm17
。
./zokrates setup --proving-scheme gm17
./zokrates generate-proof -s gm17
./zokrates export-verifier -s gm17
https://ethereum.stackexchange.com/questions/72493
复制相似问题