Groups are an important concept when we speak about privacy and zero knowledge technologies. They can be thought of as anonymity sets, and are a way to establish necessary trust between a set of participants while letting users keep control over how their identities are stored and used. Semaphore groups uses incremental binary Merkle trees, Poseidon hashes and Semaphore identity commitments as tree leaves. The goal of this project is to provide a comprehensive infrastructure to allow anyone to create their own groups. |
---|
Clone this repository:
git clone https://github.com/semaphore-protocol/zk-groups.git
and install the dependencies:
cd zk-groups && yarn
Run the following commands to start the applications:
yarn start:all # To start all the applications
yarn start <app-name> # For specific apps
Run Webpack to build the applications:
yarn build:all
yarn build <app-name> # For specific apps
A dist
folder will be created.
Run Jest to test the code with coverage:
yarn test:all
yarn test <app-name> # For specific apps
Run ESLint to analyze the code and catch bugs:
yarn lint
Run Prettier to check formatting rules:
yarn prettier
or to automatically format the code:
yarn prettier:write
Semaphore uses conventional commits. A command line utility to commit using the correct syntax can be used by running:
yarn commit
It will also automatically check that the modified files comply with ESLint and Prettier rules.