Skip to content

Commit 7e11ce5

Browse files
authored
Merge pull request #1433 from o1-labs/feat/update-docs
Updated circuit generation process
2 parents af33a9c + e2aac14 commit 7e11ce5

File tree

1 file changed

+42
-4
lines changed

1 file changed

+42
-4
lines changed

website/docs/developers/circuits.md

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,11 +233,49 @@ proof types:
233233
- Protocol compliance validation
234234
- Regression testing for circuit changes
235235

236-
## Circuit Constraint Extraction
236+
### Circuit Generation Process
237+
238+
Since these constraint capabilities are missing, the Mina rust nodes require
239+
externally generated circuit data. The following process describes how circuits
240+
are created and distributed using the original Mina codebase:
241+
242+
:::warning Work in Progress
243+
244+
This should be updated when a release of the OCaml node happens that contains code to
245+
export circuits, and when command to export circuits is added, and CI is updated
246+
to check for latest circuits
247+
248+
:::
249+
250+
1. Build mina <b>OCaml</b> node from source with commit after
251+
[`6961849`](https://github.com/MinaProtocol/mina/commit/6961849f17d564c39e7d45e01e3ddda9a09602a4)
252+
253+
2. Running the circuit generation process using the branch above
254+
- Launch the OCaml node which produces circuit cache data in
255+
`/tmp/coda_cache_dir`
256+
- The branch dumps the usual circuit data plus extra data specifically
257+
required by the Mina rust nodes, see
258+
[Circuit somponents](#circuit-components)
259+
- The process also dumps blocks for use in tests, see
260+
[Testing strategy](#testing-strategy)
261+
- Integration with mainline Mina would streamline future circuit generation
262+
263+
3. The generated circuit blobs are then:
264+
- Committed to the dedicated repository:
265+
https://github.com/o1-labs/circuit-blobs
266+
- Released as GitHub releases for versioning and distribution
267+
268+
### Circuit Components
269+
270+
Each circuit consists of multiple components that are loaded and cached
271+
independently:
237272

238-
For a comprehensive technical overview of circuit constraint extraction, see the
239-
[circuit_blobs module documentation](https://o1-labs.github.io/mina-rust/api-docs/ledger/proofs/circuit_blobs/index.html)
240-
in the ledger crate.
273+
- **Gates**: Circuit constraint definitions in JSON format (`*_gates.json`)
274+
- **Internal Variables**: Constraint variable mappings in binary format
275+
(`*_internal_vars.bin`)
276+
- **Rows Reverse**: Row-wise constraint data in binary format (`*_rows_rev.bin`)
277+
- **Verifier Indices**: Pre-computed verification data with SHA256 integrity
278+
checks
241279

242280
### Overview
243281

0 commit comments

Comments
 (0)