@okdok/phase2cli
TypeScript icon, indicating that this package has built-in type declarations

2.0.2 • Public • Published

Phase2 CLI 👨‍💻

All-in-one command line tool for interfacing with Groth16 zkSNARKs Phase 2 Trusted Setup ceremonies

Github License NPM Version Downloads Linter Prettier

The interaction with Trusted Setup ceremonies commonly involves the usage of different tools according to the roles (coordinator vs. participants) and ceremony stages (setup, contribution, finalization). The Phase2 CLI acts as an all-in-one independent interface with a custom set of user-friendly and interactive commands.

Rounding up the option of using a unique tool for different ceremony stages makes it possible to reduce the context switch, level of expertise, and bug exposure. This standard tool (built on top of the actions package) contains only the core commands for interfacing with one or more Trusted Setup Phase 2 ceremonies. You could get advantage from these commands and customize (or extend them) based on your unique ceremony needs. By using the CLI, the computing power of the contributor's machine could be fully exploited thus enabling contributions up to larger sizes than with ordinary web-browser clients.

🛠 Installation

Install the @p0tion/phase2cli package globally

npm i -g @p0tion/phase2cli

or run specific commands with npx:

npx @p0tion/phase2cli contribute

Please note that phase2cli only runs on Linux or Mac systems. If a Windows user, please install WSL2 first.

📜 Usage

Local Development

Prerequisites

  • Node.js version 16.0 or higher.
  • Yarn version 3.5.0 or higher.

Copy the .env.default file as .env:

cp .env.default .env

And add your environment variables.

⚠️ Your environment variables must match the corresponding properties values inside the .env file of the actions package ⚠️

Core Commands

Usage: phase2cli [options] [command]

All-in-one command line tool for interfacing with Groth16 zkSNARKs Phase 2 Trusted Setup ceremonies

Options:
  -V, --version   output the version number
  -h, --help      display help for command

Commands:
  auth            authenticate yourself using your Github Account (Device Flow OAuth 2.0)
  contribute      compute contributions for a Phase2 Trusted Setup ceremony circuits
  clean           clean up output generated by commands from the current working directory
  logout          sign out from Firebae Auth service and delete Github OAuth 2.0 token from your machine
  coordinate      special subset of commands for coordinating a ceremony (coordinator only)
  help [command]  display help for command

Coordinator Commands

Usage: phase2cli coordinate [options] [command]

special subset of commands for coordinating a ceremony (coordinator only)

Options:
  -h, --help      display help for command

Commands:
  setup           setup a Groth16 Phase 2 Trusted Setup ceremony for zk-SNARK circuits
  observe         real-time updates about queue status for each ceremony circuit
  finalize        finalize a Phase2 Trusted Setup ceremony (beacon + artifacts exports)
  help [command]  display help for command

Package Sidebar

Install

npm i @okdok/phase2cli

Weekly Downloads

4

Version

2.0.2

License

MIT

Unpacked Size

2.12 MB

Total Files

56

Last publish

Collaborators

  • d.kolezhniuk