Skip to content

noir-r1cs prove no longer accepts Prover.toml #117

@recmo

Description

@recmo

Previously the noir-r1cs prove command accepted inputs in the Noir Prover.toml format:

https://github.com/worldfnd/ProveKit/blob/d8a1bab16b8d68db2e42e1b2d05ae3d9d05f1d0c/noir-r1cs/src/cli/cmd/prove.rs#L49-L54

Currently (despite the comment saying otherwise) it requires a fully prepared witness as input. Effectively outsourcing the work of witness generation:

https://github.com/worldfnd/ProveKit/blob/9a9656a8fab1ceca3b539e65003f2a21ec675894/noir-r1cs/src/cli/cmd/prove.rs#L50-L53

It is a critical requirement that the library can do the entire witness generation from only inputs. 'Inputs' here meaning inputs to the noir program main function (which can be both public and private). It is less important how the inputs are provided, but the Prover.toml file is the Noir native way to do that, and we can re-use it until we decide on an internal API. (Obviously when we ship this library we don't want the user to need to generate a file just to call a function).

Until this bug is fixed all benchmark results are worthless as they omit a key part of the proving process. So it blocks the optimization and benchmarking work.

It is also a blocker for any production usage.

Metadata

Metadata

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions