groth16-21
在使用 snarkjs 进行 Powers of Tau 仪式时,某些步骤可以通过多线程来加速,特别是生成初始 ptau 文件和进行贡献的步骤。以下是详细说明:
步骤 1: 生成初始 ptau 文件
生成初始 ptau 文件时,可以使用多线程加速。你可以通过添加 -t 参数来指定线程数。例如,使用 4 个线程:
snarkjs powersoftau new bn128 21 pot21_0000.ptau -v -t 4
步骤 2: 进行贡献
进行贡献时同样可以使用多线程。你可以通过添加 -t 参数来指定线程数。例如,使用 4 个线程:
snarkjs powersoftau contribute pot21_0000.ptau pot21_0001.ptau --name="First contribution" -v -t 4
步骤 3: 准备第二阶段
准备第二阶段时目前不支持多线程,因此这个步骤只能单线程执行:
snarkjs powersoftau prepare phase2 pot21_0002.ptau pot21_final.ptau -v
步骤 4: 验证最终 ptau 文件
验证最终 ptau 文件时,目前也不支持多线程,因此这个步骤只能单线程执行:
snarkjs powersoftau verify pot21_final.ptau
完整示例
以下是一个完整的示例,展示了如何在适用的步骤中使用多线程:
# 生成初始 ptau 文件,使用 4 个线程
snarkjs powersoftau new bn128 21 pot21_0000.ptau -v -t 4
# 第一次贡献,使用 4 个线程
snarkjs powersoftau contribute pot21_0000.ptau pot21_0001.ptau --name="First contribution" -v -t 4
# 第二次贡献(可选),使用 4 个线程
snarkjs powersoftau contribute pot21_0001.ptau pot21_0002.ptau --name="Second contribution" -v -t 4
# 准备第二阶段(单线程)
snarkjs powersoftau prepare phase2 pot21_0002.ptau pot21_final.ptau -v
# 验证最终 ptau 文件(单线程)
snarkjs powersoftau verify pot21_final.ptau
通过在适用的步骤中使用多线程,你可以显著加速 Powers of Tau 仪式的执行。如果你有任何进一步的问题或需要具体的帮助,请随时告诉我!