diff --git a/integrationTests/ts/__tests__/data/suites.json b/integrationTests/ts/__tests__/data/suites.json index 9315e6fb98..a8d161db97 100644 --- a/integrationTests/ts/__tests__/data/suites.json +++ b/integrationTests/ts/__tests__/data/suites.json @@ -27,6 +27,47 @@ "expectedSpentVoiceCredits": [4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "expectedTotalSpentVoiceCredits": 4 }, + { + "name": "10 Users test", + "description": "Should signup 10 users, submit 10 votes and tally the results", + "numUsers": 10, + "numVotesPerUser": 1, + "votes": { + "0": { + "0": { "voteOptionIndex": 0, "voteWeight": 5 } + }, + "1": { + "0": { "voteOptionIndex": 0, "voteWeight": 9 } + }, + "2": { + "0": { "voteOptionIndex": 5, "voteWeight": 3 } + }, + "3": { + "0": { "voteOptionIndex": 3, "voteWeight": 2 } + }, + "4": { + "0": { "voteOptionIndex": 0, "voteWeight": 1 } + }, + "5": { + "0": { "voteOptionIndex": 9, "voteWeight": 1 } + }, + "6": { + "0": { "voteOptionIndex": 4, "voteWeight": 7 } + }, + "7": { + "0": { "voteOptionIndex": 7, "voteWeight": 5 } + }, + "8": { + "0": { "voteOptionIndex": 3, "voteWeight": 10 } + }, + "9": { + "0": { "voteOptionIndex": 8, "voteWeight": 2 } + } + }, + "expectedTally": [15, 0, 0, 12, 7, 3, 0, 5, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0], + "expectedSpentVoiceCredits": [107, 0, 0, 104, 49, 9, 0, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "expectedTotalSpentVoiceCredits": 299 + }, { "name": "Reverse processing", "description": "2 batches, 1 briber", diff --git a/integrationTests/ts/__tests__/utils/interfaces.ts b/integrationTests/ts/__tests__/utils/interfaces.ts index 4394d7b8d2..b1d2285c38 100644 --- a/integrationTests/ts/__tests__/utils/interfaces.ts +++ b/integrationTests/ts/__tests__/utils/interfaces.ts @@ -5,7 +5,6 @@ export interface IVote { voteOptionIndex: number; voteWeight: number; nonce: number; - valid: boolean; } /** diff --git a/integrationTests/ts/__tests__/utils/utils.ts b/integrationTests/ts/__tests__/utils/utils.ts index e2365c5123..9d90e46b82 100644 --- a/integrationTests/ts/__tests__/utils/utils.ts +++ b/integrationTests/ts/__tests__/utils/utils.ts @@ -40,7 +40,6 @@ const getTestVoteValues = ( const useVotes = votes && userIndex in votes; let { voteOptionIndex } = defaultVote; let { voteWeight } = defaultVote; - let valid = true; // if we have bribers if (bribers && userIndex in bribers) { @@ -63,10 +62,9 @@ const getTestVoteValues = ( if (useVotes) { voteWeight = votes[userIndex][voteIndex].voteWeight; - valid = votes[userIndex][voteIndex].valid; } - return { voteOptionIndex, voteWeight, valid }; + return { voteOptionIndex, voteWeight }; }; /** @@ -89,12 +87,11 @@ export const genTestUserCommands = ( const votes: IVote[] = []; for (let j = 0; j < numVotesPerUser; j += 1) { - const { voteOptionIndex, voteWeight, valid } = getTestVoteValues(i, j, numVotesPerUser, presetVotes, bribers); + const { voteOptionIndex, voteWeight } = getTestVoteValues(i, j, numVotesPerUser, presetVotes, bribers); const vote = { voteOptionIndex, voteWeight, nonce: j + 1, - valid, }; votes.push(vote); diff --git a/website/versioned_docs/version-v1.x/audit.md b/website/versioned_docs/version-v1.x/audit.md index dd1c9677b3..0051fc9688 100644 --- a/website/versioned_docs/version-v1.x/audit.md +++ b/website/versioned_docs/version-v1.x/audit.md @@ -2,7 +2,7 @@ title: MACI Security Audits description: In the summer of 2022, MACI v1 was audited by HashCloak. The audit covered both the zk-SNARK circuits and the Solidity smart contracts. sidebar_label: Security Assessments -sidebar_position: 11 +sidebar_position: 12 --- # Security Audits diff --git a/website/versioned_docs/version-v1.x/ci-pipeline.md b/website/versioned_docs/version-v1.x/ci-pipeline.md index e328c3e950..27e3e6d5d9 100644 --- a/website/versioned_docs/version-v1.x/ci-pipeline.md +++ b/website/versioned_docs/version-v1.x/ci-pipeline.md @@ -2,7 +2,7 @@ title: CI Pipeline description: Introduction to how MACI's CI works sidebar_label: CI -sidebar_position: 12 +sidebar_position: 13 --- # Continuous Integration (CI) Pipeline diff --git a/website/versioned_docs/version-v1.x/coordinator-processing.md b/website/versioned_docs/version-v1.x/coordinator-processing.md index a26df3b258..9c17725830 100644 --- a/website/versioned_docs/version-v1.x/coordinator-processing.md +++ b/website/versioned_docs/version-v1.x/coordinator-processing.md @@ -2,7 +2,7 @@ title: Coordinator local processing description: How does the coordinator process and tallies messages locally sidebar_label: Coordinator local processing -sidebar_position: 13 +sidebar_position: 14 --- # Coordinator local processing diff --git a/website/versioned_docs/version-v1.x/integrating.md b/website/versioned_docs/version-v1.x/integrating.md index 83c8c362b5..eb67fbe989 100644 --- a/website/versioned_docs/version-v1.x/integrating.md +++ b/website/versioned_docs/version-v1.x/integrating.md @@ -2,7 +2,7 @@ title: Integrating MACI description: How to integrate MACI into your application sidebar_label: Integrating -sidebar_position: 10 +sidebar_position: 11 --- # Integrating MACI diff --git a/website/versioned_docs/version-v1.x/key-change.md b/website/versioned_docs/version-v1.x/key-change.md index fde3570164..4583baf98c 100644 --- a/website/versioned_docs/version-v1.x/key-change.md +++ b/website/versioned_docs/version-v1.x/key-change.md @@ -2,7 +2,7 @@ title: MACI key change description: How key change messages work sidebar_label: Key change -sidebar_position: 15 +sidebar_position: 16 --- # MACI Key Change diff --git a/website/versioned_docs/version-v1.x/spec.md b/website/versioned_docs/version-v1.x/spec.md index 4fb4f828b7..d2b77a327e 100644 --- a/website/versioned_docs/version-v1.x/spec.md +++ b/website/versioned_docs/version-v1.x/spec.md @@ -2,7 +2,7 @@ title: MACI v1.0 Specification description: A detailed specification meant to assist auditors in reviewing MACI version 1.0 sidebar_label: Specification -sidebar_position: 14 +sidebar_position: 15 --- # MACI v1.0 Specification diff --git a/website/versioned_docs/version-v1.x/testing-in-details.md b/website/versioned_docs/version-v1.x/testing-in-details.md new file mode 100644 index 0000000000..636ad78001 --- /dev/null +++ b/website/versioned_docs/version-v1.x/testing-in-details.md @@ -0,0 +1,184 @@ +--- +title: MACI Testing in Details +description: How MACI tests work in details +sidebar_label: How Our Test Suites Work +sidebar_position: 10 +--- + +# Testing + +This doc extends on the [Testing](https://maci.pse.dev/docs/testing.md) doc and explains how MACI tests work in details. This information should be used by MACI's maintainers as well as contributors. + +### CLI tests + +MACI's CLI provides a series of commands that can be used by both the coordinator and voters, to interact with MACI, from deploying smart contracts to submitting a vote. + +Currently, there are a number of test cases that are available inside the cli tests folder. The tests are split into two categories: + +- e2e tests that include the entire MACI stack, from deploying the contracts to submitting a vote and tallying all results. +- e2e tests as above, but with the subsidy feature enabled. + +The goal of these tests is to ensure that the MACI stack works as expected, and that the coordinator and voters can interact with the system as expected. They currently do not attempt to verify whether the tally results are expected, or that all votes were accounted for. On the other hand, they test different scenarios, mixing different numbers of voters and messages. + +### Integration Tests + +Integration tests follow a similar fashion of the CLI tests, though they also ensure that the tally results are as expected. + +Currently, tests are defined using a JSON file, here is one example: + +```json +{ + "name": "Happy path", + "description": "Full tree, 4 batches, no bribers", + "numVotesPerUser": 1, + "numUsers": 15, + "expectedTally": [15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "expectedSpentVoiceCredits": [15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "expectedTotalSpentVoiceCredits": 15 +} +``` + +This test will generate 15 signups (as expressed in `numUsers`), and submit one vote (`numVotesPerUser`) for each of the users. As we did not provide any vote detail, it will use the default: `weight = 1`, `option = 0` for all voters. This will result of course in a tally result of 15 for option 0, and 0 for all other options. + +Finally, the whole process of merging the state and message trees is performed, proofs are generated and the tally result is verified against the expected result. + +#### How to implement a new test case + +To add a new test cases, it is quite simple. You can amend the `integrationTests/ts/__tests__/data/suites.json` file and add your test declaration in there. + +```json +{ + "name": "Subsidy test", + "description": "has subsidy result", + "numUsers": 4, + "numVotesPerUser": 1, + "votes": { + "0": { + "0": { "voteOptionIndex": 0, "voteWeight": 1, "valid": true } + }, + "1": { + "0": { "voteOptionIndex": 0, "voteWeight": 1, "valid": true } + }, + "2": { + "0": { "voteOptionIndex": 0, "voteWeight": 1, "valid": true } + }, + "3": { + "0": { "voteOptionIndex": 0, "voteWeight": 1, "valid": true } + } + }, + "expectedTally": [4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "expectedSpentVoiceCredits": [4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "expectedTotalSpentVoiceCredits": 4, + "subsidy": { + "enabled": true, + "expectedSubsidy": [117636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + } +} +``` + +Let's look at the fields in detail: + +- `name`: the name of the test case +- `description`: a description of the test case +- `numUsers`: the number of users to generate +- `numVotesPerUser`: the number of votes to generate for each user +- `votes`: the votes to generate. This is an object where the key is the user index, and the value is another object where the key is the message index, and the value is the vote details. If you do not provide any vote details, the default will be used: `weight = 1`, `option = 0` for all voters. +- `expectedTally`: the expected tally result for each vote option (in order) +- `expectedSpentVoiceCredits`: the expected spent voice credits for each vote option (in order) +- `expectedTotalSpentVoiceCredits`: the expected total spent voice credits +- `subsidy`: an object that contains the subsidy details. If you do not provide any subsidy details, the default will be used: `enabled = false`, `expectedSubsidy = []`. If you do provide subsidy details, you must provide both fields. + +As an example, let's try to implement a test given the following criterias: + +1. We want 10 users to signup +2. We want each user to publish a different vote +3. We want to verify that the tally result is as expected +4. We will not use the subsidy feature + +```json +{ + "name": "10 Users test", + "description": "Should signup 10 users, submit 10 votes and tally the results", + "numUsers": 10, + "numVotesPerUser": 1, + "votes": { + "0": { + "0": { "voteOptionIndex": 0, "voteWeight": 5 } + }, + "1": { + "0": { "voteOptionIndex": 0, "voteWeight": 9 } + }, + "2": { + "0": { "voteOptionIndex": 5, "voteWeight": 3 } + }, + "3": { + "0": { "voteOptionIndex": 3, "voteWeight": 2 } + }, + "4": { + "0": { "voteOptionIndex": 0, "voteWeight": 1 } + }, + "5": { + "0": { "voteOptionIndex": 9, "voteWeight": 1 } + }, + "6": { + "0": { "voteOptionIndex": 4, "voteWeight": 7 } + }, + "7": { + "0": { "voteOptionIndex": 7, "voteWeight": 5 } + }, + "8": { + "0": { "voteOptionIndex": 3, "voteWeight": 10 } + }, + "9": { + "0": { "voteOptionIndex": 8, "voteWeight": 2 } + } + }, + "expectedTally": [15, 0, 0, 12, 7, 3, 0, 5, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0], + "expectedSpentVoiceCredits": [107, 0, 0, 104, 49, 9, 0, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "expectedTotalSpentVoiceCredits": 299 +} +``` + +**Why expectedTally as above** + +[(5 + 9 + 1), 0, 0, (2 + 10), 7, 3, 0, 5, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0] -> [15, 0, 0, 12, 7, 3, 0, 5, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0] + +**Why 299 voice credits spent** + +- 5 ** 2 + 9 ** 2 + 3 ** 2 + 2 ** 2 + 1 ** 2 + 1 ** 1 + 7 ** 2 + 5 ** 2 + 10 ** 2 + 2 ** 2 = 25 + 81 + 9 + 4 + 1 + 1 + 49 + 25 + 100 + 4 = 299 + +**Why expectedSpentVoiceCredits as above** + +[(25 + 81 + 1), 0, 0, (4 + 100), 49, 0, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] -> [107, 0, 0, 104, 49, 0, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + +#### MACI keys integration tests + +Another test file which is found inside the integration tests folder is the `maciKeys.test.ts` file. This file contains a number of tests that are used to verify that the MACI keys work as expected. These tests are written in TypeScript and use the `mocha` and `chai` frameworks. + +They are testing that between the `contracts`, `domainobjs` and `crypto` packages, the MACI keys are working correctly, and are serialized/deserialized as expected. This is particularly important to test due to different data formats for keys, especially when parsed from the smart contract events. + +### Contract tests + +Within the contracts folder, there are a number of tests that are used to verify that the contracts work as expected. These tests are written in TypeScript and use the `hardhat` framework. + +These tests interact with all other packages, such as crypto, domainobjs and core, where mock data comes from. Their main goal is to ensure that the smart contracts have the correct parameters when deployed, privileged functions cannot be called by non-privileged users, and that the contract state is as expected after a series of operations. + +### Circuits tests + +Within the circuits folder, there are a number of tests that are used to verify that the circuits work as expected. These tests are written in TypeScript and use the `circom_tester` (which runs on top of `mocha` and `chai`). + +These tests often use mock data from the `core` package. For instance, when testing the `processMessages` circuit, we are required to generate the parameters from the `core` packing, using the `Poll:processMessages` function. The same applies to vote tallying, where we need the `Poll:tally` function to be run first with mock users and vote messages. + +All of the tests run using test parameters, usually `10, 2, 1, 2`, aside from the tests inside: [`ceremonyParam`](https://github.com/privacy-scaling-explorations/maci/blob/dev/circuits/ts/__tests__/CeremonyParams.test.ts) which use the parameters of the latest MACI ceremony. More details on the trusted setup can be found [here](https://maci.pse.dev/docs/trusted-setup). + +### Core + +The core package contains a number of tests that are used to verify that the core functions work as expected. These tests are written in TypeScript and use the `mocha` and `chai` frameworks. + +These tests interact with the crypto and dombinobjs packages, where mock data comes from. Their main goal is to ensure that the core functions work as expected, and that the state is as expected after a series of operations. + +Currently, there is a blend of e2e and unit tests, where e2e tests are used to verify that the entire MACI local processing works as expcted (users signup, publish votes, messages are processed and finally these votes are tallied). Unit tests on the other hand are used to verify that the core functions work as expected, such as `processMessage` and `tallyVotes`. You will find them in separate files, with e2e being [here](https://github.com/privacy-scaling-explorations/maci/blob/dev/core/ts/__tests__/e2e.test.ts) and unit tests in the other files. + +### Domainobjs/Crypto tests + +These tests are used to verify that MACI's primitives such as private keys work as expected. They are written in TypeScript and use the `mocha` and `chai` frameworks. diff --git a/website/versioned_docs/version-v1.x/testing.md b/website/versioned_docs/version-v1.x/testing.md index 985b201ad6..05a614f779 100644 --- a/website/versioned_docs/version-v1.x/testing.md +++ b/website/versioned_docs/version-v1.x/testing.md @@ -7,7 +7,7 @@ sidebar_position: 9 # Testing -### Unit tests +## Unit tests Unit tests within the project are built using [Mocha](https://mochajs.org/) and [Chai](https://www.chaijs.com/). Mocha is a test framework that provides the environment to write and run JavaScript tests, while Chai is an assertion library that allows us to write assertions in a more expressive and readable way. @@ -31,12 +31,12 @@ You can also run individual tests within submodules, for example: ```bash cd contracts -npm run test-accQueue +npm run test:accQueue ``` This test command will run `AccQueue.test.ts` -## Contracts +### Contracts First, compile the contracts. @@ -53,7 +53,7 @@ To run Contracts only tests, run: npm run test ``` -## Circuits +### Circuits To test the circuits, from the main `maci/` directory, run: @@ -67,11 +67,13 @@ Tests are run using [Mocha](https://mochajs.org/) and [`circom_tester`](https:// ## CLI You can test the CLI locally. First, you need to either generate `.zkey` files, -or download them. Do not use these testing `.zkey` files in production. +or download them. Please remember to not use these testing `.zkey` files in production. ### Download `.zkey` files or the witness generation binaries -MACI has three zk-SNARK circuits. Each circuit is parameterised. There should one +MACI has two main zk-SNARK circuits, `processMessages` and `tallyVotes` (`subsidyPerBatch` is optional). + +Each circuit is parameterised and there should be one `.zkey` file for each circuit and set of parameters. Unless you wish to generate a fresh set of `.zkey` files, you should obtain @@ -81,9 +83,10 @@ circuits. Note the locations of the `.zkey` files as the CLI requires them as command-line flags. -You cand download a `.zkey` files and associated `.r1cs` file with witness generation binaries from [here](https://github.com/privacy-scaling-explorations/maci/wiki/Download-Precompiled-Circuit-and-Zkeys). +For testing purposes you can download the required artifacts using the [`download_zkeys``](https://github.com/privacy-scaling-explorations/maci/blob/dev/integrationTests/scripts/download_zkeys.sh) script inside the `integrationTests/scripts` folder. The script will place all required artifacts inside the `cli/zkeys` folder. +You can run the script directly with bash or use npm: `npm run download-zkeys`. -### Compile the witness generation binaries +### Compile the witness generation binaries (if generating from scratch) From the main `maci/cli` directory, run: @@ -122,11 +125,23 @@ TallyVotes_10-1-2_test_js Next, ensure that the `prover` binary of `rapidsnark` is in `~/rapidsnark/build/prover`. +:::info +This step is only required if you wish to use rapidsnark, for faster proof generation. You can also use the WASM witnesses provided in the `cli/zkeys` folder. +::: + ### Run CLI tests You can find the tests in `maci/cli/tests`. -To run all tests: +To run the tests first start a hardhat node in the background: + +```bash +cd contracts +npm run hardhat & +cd ../cli +``` + +Then run the tests (this will run all tests): ```bash npm run test @@ -144,8 +159,6 @@ To run e2e with subsidy: npm run test:e2e-subsidy ``` -> Please note that these require a hardhat node running in the background for local testing. You can start one with `npm run hardhat` within the **contracts** folder. - ### Run integration tests You can find the tests in `maci/integrationTests/`. @@ -170,7 +183,7 @@ The followingcompiled circuits and zkeys are available to download: - glibc 2.11 (Default of Ubuntu 20.04 LTS) -## Prod Size +#### Prod Size - [zkeys-7-9-3-4.tar.gz](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/7-9-3-4/zkeys_7-9-3-4_glibc-211.tar.gz) (2.8 GB) - [ProcessMessages_7-9-3-4_test.0.zkey](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/7-9-3-4/ProcessMessages_7-9-3-4_test.0.zkey) (3.8 GB) @@ -178,7 +191,7 @@ The followingcompiled circuits and zkeys are available to download: - [TallyVotes_7-3-4_test.0.zkey](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/7-9-3-4/TallyVotes_7-3-4_test.0.zkey) (8.5 GB) - generated using `powersOfTau28_hez_final_23.ptau` -### Message processing +##### Message processing | Parameter | Value | Description | | ------------------------ | ----- | ---------------------------------------------- | @@ -187,7 +200,7 @@ The followingcompiled circuits and zkeys are available to download: | Message batch tree depth | 3 | Allows 125 messages to be processed per batch. | | Vote option tree depth | 4 | Allows 625 vote options. | -### Vote tallying +##### Vote tallying | Parameter | Value | Description | | ------------------------ | ----- | -------------------------------------------------- | @@ -195,7 +208,7 @@ The followingcompiled circuits and zkeys are available to download: | State leaf batch depth | 3 | Allows 125 user's votes to be processed per batch. | | Message batch tree depth | 4 | Allows 625 messages to be processed per batch. | -## Micro size +#### Micro size - [zkeys_10-2-1-2_glibc-211.tar.gz](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/10-2-1-2/zkeys_10-2-1-2_glibc-211.tar.gz) (403 MB) - [ProcessMessages_10-2-1-2_test.0.zkey](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/10-2-1-2/ProcessMessages_10-2-1-2_test.0.zkey) (190 MB) @@ -204,7 +217,7 @@ The followingcompiled circuits and zkeys are available to download: `*.zkey` files are generated using `powersOfTau28_hez_final_20.ptau` -### Message processing +##### Message processing | Parameter | Value | Description | | ------------------------ | ----- | -------------------------------------------- | @@ -213,7 +226,7 @@ The followingcompiled circuits and zkeys are available to download: | Message batch tree depth | 1 | Allows 5 messages to be processed per batch. | | Vote option tree depth | 2 | Allows 25 vote options. | -### Vote tallying +##### Vote tallying | Parameter | Value | Description | | ------------------------ | ----- | ------------------------------------------------ | @@ -221,7 +234,7 @@ The followingcompiled circuits and zkeys are available to download: | State leaf batch depth | 1 | Allows 5 user's votes to be processed per batch. | | Message batch tree depth | 2 | Allows 25 messages to be processed per batch. | -## Small size +#### Small size - [zkeys_4-6-3-4_glibc-211.tar.gz](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/4-6-3-4/zkeys_4-6-3-4_glibc-211.tar.gz) (2.6 GB) - [ProcessMessages_4-6-3-4_test.0.zkey](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/4-6-3-4/ProcessMessages_4-6-3-4_test.0.zkey) (2.9 GB) @@ -229,7 +242,7 @@ The followingcompiled circuits and zkeys are available to download: - [TallyVotes_4-3-4_test.0.zkey](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/4-6-3-4/TallyVotes_4-3-4_test.0.zkey) (8.5 GB) - generated using `powersOfTau28_hez_final_23.ptau` -### Message processing +##### Message processing | Parameter | Value | Description | | ------------------------ | ----- | ---------------------------------------------- | @@ -238,7 +251,7 @@ The followingcompiled circuits and zkeys are available to download: | Message batch tree depth | 3 | Allows 125 messages to be processed per batch. | | Vote option tree depth | 4 | Allows 625 vote options. | -### Vote tallying +##### Vote tallying | Parameter | Value | Description | | ------------------------ | ----- | -------------------------------------------------- | @@ -246,7 +259,7 @@ The followingcompiled circuits and zkeys are available to download: | State leaf batch depth | 3 | Allows 125 user's votes to be processed per batch. | | Message batch tree depth | 4 | Allows 625 messages to be processed per batch. | -## Medium size +#### Medium size - [zkeys_7-7-3-3_glibc-211.tar.gz](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/7-7-3-3/zkeys_7-7-3-3_glibc-211.tar.gz) (4.9 GB) - [ProcessMessages_7-7-3-3_test.0.zkey](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/7-7-3-3/ProcessMessages_7-7-3-3_test.0.zkey) (2.2 GB) @@ -254,7 +267,7 @@ The followingcompiled circuits and zkeys are available to download: - [TallyVotes_7-3-3_test.0.zkey](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/7-7-3-3/TallyVotes_7-3-3_test.0.zkey) (884 MB) - generated using `powersOfTau28_hez_final_22.ptau` -### Message processing +##### Message processing | Parameter | Value | Description | | ------------------------ | ----- | ---------------------------------------------- | @@ -263,7 +276,7 @@ The followingcompiled circuits and zkeys are available to download: | Message batch tree depth | 3 | Allows 125 messages to be processed per batch. | | Vote option tree depth | 3 | Allows 125 vote options. | -### Vote tallying +##### Vote tallying | Parameter | Value | Description | | ------------------------ | ----- | -------------------------------------------------- | @@ -271,7 +284,7 @@ The followingcompiled circuits and zkeys are available to download: | State leaf batch depth | 3 | Allows 125 user's votes to be processed per batch. | | Message batch tree depth | 3 | Allows 125 messages to be processed per batch. | -## 6-8-3-3 +#### 6-8-3-3 - [zkeys_6-8-3-3_glibc-211.tar.gz](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/6-8-3-3/zkeys_6-8-3-3_glibc-211.tar.gz) (1.1 GB) - [ProcessMessages_6-8-3-3_test.0.zkey](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/6-8-3-3/ProcessMessages_6-8-3-3_test.0.zkey) (3.4 GB) @@ -279,7 +292,7 @@ The followingcompiled circuits and zkeys are available to download: - [TallyVotes_6-3-3_test.0.zkey](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/6-8-3-3/TallyVotes_6-3-3_test.0.zkey) (1.8 MB) - generated using `powersOfTau28_hez_final_22.ptau` -### Message processing +#### Message processing | Parameter | Value | Description | | ------------------------ | ----- | ---------------------------------------------- | @@ -288,7 +301,7 @@ The followingcompiled circuits and zkeys are available to download: | Message batch tree depth | 3 | Allows 125 messages to be processed per batch. | | Vote option tree depth | 3 | Allows 125 vote options. | -### Vote tallying +#### Vote tallying | Parameter | Value | Description | | ------------------------ | ----- | -------------------------------------------------- | @@ -296,7 +309,7 @@ The followingcompiled circuits and zkeys are available to download: | State leaf batch depth | 3 | Allows 125 user's votes to be processed per batch. | | Message batch tree depth | 3 | Allows 125 messages to be processed per batch. | -## contents of `*.tar.gz` +#### contents of `*.tar.gz` It contains compiled result of the circuit: @@ -356,7 +369,7 @@ zkeys/TallyVotes_7-3-4_test --- -## Contribution Hash +##### Contribution Hash - [ProcessMessages_4-6-3-4_test.0.zkey](#ProcessMessages_4-6-3-4_test0zkey) - [TallyVotes_4-3-4_test.0.zkey](#TallyVotes_4-3-4_test0zkey) @@ -368,7 +381,7 @@ zkeys/TallyVotes_7-3-4_test - [ProcessMessages_7-7-3-3_test.0.zkey](#ProcessMessages_7-7-3-3_test0zkey) - [TallyVotes_7-3-3_test.0.zkey](#TallyVotes_7-3-3_test0zkey) -### ProcessMessages_4-6-3-4_test.0.zkey +###### ProcessMessages_4-6-3-4_test.0.zkey ``` 2d29ddba 11e5292e b20f681d 3ade88cd @@ -377,7 +390,7 @@ zkeys/TallyVotes_7-3-4_test 325cfc06 cb1ac909 38b2e5ff 22b34333 ``` -### TallyVotes_4-3-4_test.0.zkey +##### TallyVotes_4-3-4_test.0.zkey ``` d2d88532 c2e1e7bd 3c7be3fb f85da2e2 @@ -386,7 +399,7 @@ d2d88532 c2e1e7bd 3c7be3fb f85da2e2 f3a8a155 cd338e2c 5f364836 bfd7913d ``` -### ProcessMessages_7-9-3-4_test.0.zkey +##### ProcessMessages_7-9-3-4_test.0.zkey ``` 75256709 6e8a034e a067ea67 16192fb2 @@ -395,7 +408,7 @@ f3a8a155 cd338e2c 5f364836 bfd7913d b1094e74 b8aaa9a3 9af75b22 0d9229e6 ``` -### TallyVotes_7-3-4_test.0.zkey +##### TallyVotes_7-3-4_test.0.zkey ``` f44cf32e 1709e2c4 c8dbe8dc 5b6de4be @@ -404,7 +417,7 @@ f44cf32e 1709e2c4 c8dbe8dc 5b6de4be 9b6ced66 c970a87d 745d35e4 5f47d7f9 ``` -### ProcessMessages_10-2-1-2_test.0.zkey +##### ProcessMessages_10-2-1-2_test.0.zkey ``` 23eb4980 d584c7ef 647478b9 dea49a6d @@ -413,7 +426,7 @@ f44cf32e 1709e2c4 c8dbe8dc 5b6de4be 1c2c2662 20e0df3d 12a057f3 2a071937 ``` -### TallyVotes_10-1-2_test.0.zkey +##### TallyVotes_10-1-2_test.0.zkey ``` ae12edd2 6f7f1d25 530177ab 27483fe0 @@ -422,7 +435,7 @@ ce9a8c26 9f015c49 203376da 911e295c 61be4031 56220ca7 06ed3b9f e8504f11 ``` -### SubsidyPerBatch_10-1-2_test.0.zkey +##### SubsidyPerBatch_10-1-2_test.0.zkey ``` 16dfc388 eda0bfd7 ff529e42 505ed6b7 @@ -431,7 +444,7 @@ cbffbb79 9218b09b cfa2fe29 0806097a c84bb980 a1346082 fb00a947 3c97d99e ``` -### ProcessMessages_7-7-3-3_test.0.zkey +##### ProcessMessages_7-7-3-3_test.0.zkey ``` e688264b e1326553 b58492d4 7c2028bc @@ -440,7 +453,7 @@ cda175f9 b786c4eb 44453080 369ab861 a0f752f8 413a81ba f481d335 187e0091 ``` -### TallyVotes_7-3-3_test.0.zkey +##### TallyVotes_7-3-3_test.0.zkey ``` 6869646d 1faf2aec d8c70c85 0021858f diff --git a/website/versioned_docs/version-v1.x/troubleshooting.md b/website/versioned_docs/version-v1.x/troubleshooting.md index 81dd1bc0fd..f6c0f0d7e8 100644 --- a/website/versioned_docs/version-v1.x/troubleshooting.md +++ b/website/versioned_docs/version-v1.x/troubleshooting.md @@ -2,7 +2,7 @@ title: Troubleshooting description: How to troubleshoot MACI's failures sidebar_label: Troubleshooting -sidebar_position: 16 +sidebar_position: 17 --- # Troubleshooting diff --git a/website/versioned_docs/version-v1.x/versioning.md b/website/versioned_docs/version-v1.x/versioning.md index 9edd8047b2..13063ec114 100644 --- a/website/versioned_docs/version-v1.x/versioning.md +++ b/website/versioned_docs/version-v1.x/versioning.md @@ -2,7 +2,7 @@ title: MACI versioning and release process description: How MACI's versioning and release process works sidebar_label: MACI versioning -sidebar_position: 13 +sidebar_position: 18 --- # MACI versioning and release process