Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/privacy-scaling-explorations/maci
Minimal Anti-Collusion Infrastructure (MACI)
https://github.com/privacy-scaling-explorations/maci
circom ethereum maci solidity typescript
Last synced: 5 days ago
JSON representation
Minimal Anti-Collusion Infrastructure (MACI)
- Host: GitHub
- URL: https://github.com/privacy-scaling-explorations/maci
- Owner: privacy-scaling-explorations
- License: other
- Created: 2019-06-16T17:01:15.000Z (over 5 years ago)
- Default Branch: dev
- Last Pushed: 2024-08-20T20:06:49.000Z (6 months ago)
- Last Synced: 2024-08-24T03:01:34.917Z (5 months ago)
- Topics: circom, ethereum, maci, solidity, typescript
- Language: TypeScript
- Homepage: https://maci.pse.dev/
- Size: 259 MB
- Stars: 505
- Watchers: 19
- Forks: 128
- Open Issues: 55
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-dao-zh - Minimal Anti-Collusion Infrastructure (MACI) - 最小化反共谋基础设施 ([中文介绍](https://medium.com/taipei-ethereum-meetup/zkp-%E8%AE%80%E6%9B%B8%E6%9C%83-maci-1faa658a026)) (反女巫攻击)
README
# Minimal Anti-Collusion Infrastructure
[![CI][cli-actions-badge]][cli-actions-link]
[![License](https://img.shields.io/badge/license-MIT-green)](https://github.com/privacy-scaling-explorations/maci/blob/dev/LICENSE)Minimal Anti-Collusion Infrastructure (MACI) is an on-chain voting protocol which protects privacy and minimizes the risk of collusion and bribery.
**MACI blog, resources, and documentation for developers and integrators can be found here:
https://maci.pse.dev/**We welcome contributions to this project. Please join our
[Discord server](https://discord.com/invite/sF5CT5rzrR) (in the `#🗳️-maci` channel) to discuss.## Packages
Below you can find a list of the packages included in this repository.
| package | npm | tests |
| ------------------------------------------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| [maci-circuits][circuits-package] | [![NPM Package][circuits-npm-badge]][circuits-npm-link] | [![Actions Status][circuits-actions-badge]][circuits-actions-link] |
| [maci-cli][cli-package] | [![NPM Package][cli-npm-badge]][cli-npm-link] | [![Actions Status][cli-actions-badge]][cli-actions-link] |
| [maci-contracts][contracts-package] | [![NPM Package][contracts-npm-badge]][contracts-npm-link] | [![Actions Status][contracts-actions-badge]][contracts-actions-link] |
| [maci-core][core-package] | [![NPM Package][core-npm-badge]][core-npm-link] | [![Actions Status][core-actions-badge]][core-actions-link] |
| [maci-crypto][crypto-package] | [![NPM Package][crypto-npm-badge]][crypto-npm-link] | [![Actions Status][crypto-actions-badge]][crypto-actions-link] |
| [maci-domainobjs][domainobjs-package] | [![NPM Package][domainobjs-npm-badge]][domainobjs-npm-link] | [![Actions Status][domainobjs-actions-badge]][domainobjs-actions-link] |
| [maci-integrationTests][integrationTests-package] | [![NPM Package][integrationTests-npm-badge]][integrationTests-npm-link] | [![Actions Status][integrationTests-actions-badge]][integrationTests-actions-link] |
| [maci-subgraph][subgraph-package] | [![NPM Package][subgraph-npm-badge]][subgraph-npm-link] | [![Actions Status][subgraph-actions-badge]][subgraph-actions-link] |## Development and testing
### Branches
The base branch of the project is `dev`, which is used for ongoing development.
This project uses tags for releases. [View all MACI releases](https://github.com/privacy-scaling-explorations/maci/releases).
To contribute to MACI, create feature/fix branches, then open PRs into `dev`. [Learn more about contributing](https://maci.pse.dev/docs/guides/compile-circuits#installation).
### Local development
For installation and local development instructions, please see our [installation docs](https://maci.pse.dev/docs/quick-start/installation/).
This repository is organized as pnpm workspace. Each package contains its
own unit tests.- `crypto`: low-level cryptographic operations.
- `circuits`: zk-SNARK circuits.
- `contracts`: Solidity contracts and deployment code.
- `domainobjs`: Classes which represent high-level [domain
objects](https://wiki.c2.com/?DomainObject) particular to this project.
- `core`: Business logic functions for message processing, vote tallying,
and circuit input generation through `MaciState`, a state machine
abstraction.
- `cli`: A command-line interface with which one can deploy and interact with
an instance of MACI.
- `integrationTests`: Integration tests which use the command-line interface
to perform end-to-end tests.
- `subgraph`: The subgraph for the MACI contracts.
- `website`: The documentation website.### Testing
Please refer to the [testing documentation](https://maci.pse.dev/docs/guides/testing/testing-in-detail) for more information.
### CI pipeline
CI pipeline ensures that we have automated tests that constantly validate. For more information about pipeline workflows, [read our CI documentation](https://maci.pse.dev/docs/processes/ci-pipeline).
[telegram-badge]: https://badges.aleen42.com/src/telegram.svg
[telegram-link]: https://t.me/joinchat/LUgOpE7J2gstRcZqdERyvw
[circuits-package]: ./packages/circuits
[circuits-npm-badge]: https://img.shields.io/npm/v/maci-circuits.svg
[circuits-npm-link]: https://www.npmjs.com/package/maci-circuits
[circuits-actions-badge]: https://github.com/privacy-scaling-explorations/maci/actions/workflows/circuit-build.yml/badge.svg
[circuits-actions-link]: https://github.com/privacy-scaling-explorations/maci/actions?query=workflow%3ACircuit
[cli-package]: ./packages/cli
[cli-npm-badge]: https://img.shields.io/npm/v/maci-cli.svg
[cli-actions-badge]: https://github.com/privacy-scaling-explorations/maci/actions/workflows/e2e.yml/badge.svg
[cli-npm-link]: https://www.npmjs.com/package/maci-cli
[cli-actions-link]: https://github.com/privacy-scaling-explorations/maci/actions?query=workflow%3ACI
[contracts-package]: ./packages/contracts
[contracts-npm-badge]: https://img.shields.io/npm/v/maci-contracts.svg
[contracts-npm-link]: https://www.npmjs.com/package/maci-contracts
[contracts-actions-badge]: https://github.com/privacy-scaling-explorations/maci/actions/workflows/contracts-build.yml/badge.svg
[contracts-actions-link]: https://github.com/privacy-scaling-explorations/maci/actions?query=workflow%3Acontracts
[core-package]: ./packages/core
[core-npm-badge]: https://img.shields.io/npm/v/maci-core.svg
[core-npm-link]: https://www.npmjs.com/package/maci-core
[core-actions-badge]: https://github.com/privacy-scaling-explorations/maci/actions/workflows/core-build.yml/badge.svg
[core-actions-link]: https://github.com/privacy-scaling-explorations/maci/actions?query=workflow%3Acore
[crypto-package]: ./packages/crypto
[crypto-npm-badge]: https://img.shields.io/npm/v/maci-crypto.svg
[crypto-npm-link]: https://www.npmjs.com/package/maci-crypto
[crypto-actions-badge]: https://github.com/privacy-scaling-explorations/maci/actions/workflows/crypto-build.yml/badge.svg
[crypto-actions-link]: https://github.com/privacy-scaling-explorations/maci/actions?query=workflow%3Acrypto
[domainobjs-package]: ./packages/domainobjs
[domainobjs-npm-badge]: https://img.shields.io/npm/v/maci-domainobjs.svg
[domainobjs-npm-link]: https://www.npmjs.com/package/maci-domainobjs
[domainobjs-actions-badge]: https://github.com/privacy-scaling-explorations/maci/actions/workflows/domainobjs-build.yml/badge.svg
[domainobjs-actions-link]: https://github.com/privacy-scaling-explorations/maci/actions?query=workflow%3Adomainobjs
[integrationTests-package]: ./packages/integrationTests
[integrationTests-npm-badge]: https://img.shields.io/npm/v/maci-integrationtests.svg
[integrationTests-npm-link]: https://www.npmjs.com/package/maci-integrationtests
[integrationTests-actions-badge]: https://github.com/privacy-scaling-explorations/maci/actions/workflows/e2e.yml/badge.svg
[integrationTests-actions-link]: https://github.com/privacy-scaling-explorations/maci/actions?query=workflow%3ACI
[subgraph-package]: ./apps/subgraph
[subgraph-npm-badge]: https://img.shields.io/npm/v/maci-subgraph.svg
[subgraph-npm-link]: https://www.npmjs.com/package/maci-subgraph
[subgraph-actions-badge]: https://github.com/privacy-scaling-explorations/maci/actions/workflows/subgraph-build.yml/badge.svg
[subgraph-actions-link]: https://github.com/privacy-scaling-explorations/maci/actions?query=workflow%3Asubgraph