Skip to content

Latest commit

 

History

History
100 lines (67 loc) · 3.65 KB

CONTRIBUTING.md

File metadata and controls

100 lines (67 loc) · 3.65 KB

Contributing

Thank you for considering making a contribution to SocialConnect and the Celo community! Everyone is encouraged to contribute, even the smallest fixes are welcome.

If you'd like to contribute to Celo, please fork, fix, write a changeset, commit, and send a pull request for the maintainers to review.

If you wish to submit more complex changes, please sync with a core developer first. This will help ensure those changes are in line with the general philosophy of the project and enable you to get some early feedback.

See the community contribution guide for details on how to participate.

Directory Structure

├── docs: Documentation on how SocialConnect works and how to use it
├── kubernetes-deployments: YAML config files and instructions for ODIS deployment
├── apps: Contains deployed componentes of Oblivious Decentralized Identifier Service (ODIS) for SocialConnect
│   ├── combiner: Orchestrates distributed BLS threshold signing with the set of ODIS signers - requests and combines partial signatures
│   ├── monitor: Monitoriing service that sends health checks to deployed ODIS instances. Also contains code for load testing
│   ├── signer: Generates unique partial signatures for blinded messages
├── packages: Contains all published SocialConnect components
│   ├── common: Contains common logic for ODIS, including API schemas
│   ├── encrypted-backup: PEAR account recovery SDK, powered by ODIS
│   ├── identity: SDK for using SocialConnect
│   ├── odis-identifiers: Contains identifier prefixes and hashing functions for ODIS
├── scripts: Misc. deployment and release scripts

Dev Setup

Pre-requisites

Setup

Clone the repository and open it:

git clone [email protected]:celo-org/social-connect.git
cd social-connect

Install the Correct Version of NodeJS

Install the correct node version with nvm

nvm use

Install node modules and build with yarn

First, run

corepack enable

This will setup the required yarn version

To install dependencies, run

yarn

To build all components (in both /apps and /packages) run

yarn build

Running tests

Our testing suite uses unit, integration and e2e tests. Integration tests spin up and run against local ODIS instances with in-memory DBs, while e2e tests run against actual deployed ODIS instances in staging, alfajores or mainnet environments.

To run all unit and integration tests (in both /apps and /packages) run

yarn test

To run ODIS e2e tests, navigate to the desired ODIS component subdirectory (either the Combiner or Signer) and run yarn test:e2e. You can specify the environment to run against as in the following example (see the relevant package.json file for all available test commands).

cd apps/signer
yarn test:e2e:alfajores

For load tests, checkout apps/monitor

PRs and Releases

See Release.md and kubernetes-deployment