Skip to content

ConfidentiDemokratia/maci

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minimal Anti-Collusion Infrastructure

CI 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 (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 NPM Package Actions Status
maci-cli NPM Package Actions Status
maci-contracts NPM Package Actions Status
maci-core NPM Package Actions Status
maci-crypto NPM Package Actions Status
maci-domainobjs NPM Package Actions Status
maci-integrationTests NPM Package Actions Status

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.

To contribute to MACI, create feature/fix branches, then open PRs into dev. Learn more about contributing.

Local development

For installation and local development instructions, please see our installation docs.

This repository is organized as Lerna submodules. Each submodule contains its own unit tests.

  • audit: Documentation surrounding the audit performed on v1
  • crypto: low-level cryptographic operations.
  • circuits: zk-SNARK circuits.
  • contracts: Solidity contracts and deployment code.
  • domainobjs: Classes which represent high-level domain objects 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.

Testing

Please refer to the testing documentation for more information.

Docker

Run docker build -t maci . to build all stages.

To run a specific build step docker build --target circuits -t maci . Note: a cached version of builder job must be on your system prior as it relies on existing artifacts

CI pipeline

CI pipeline ensures that we have automated tests that constantly validate. For more information about pipeline workflows, read our CI documentation.

About

Minimal anti collusion infrastructure

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 73.6%
  • Solidity 11.9%
  • Circom 10.3%
  • JavaScript 3.2%
  • Shell 0.6%
  • CSS 0.3%
  • Dockerfile 0.1%