Skip to main content

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 仪式的执行。如果你有任何进一步的问题或需要具体的帮助,请随时告诉我!