Repository navigation
Bring the README, docs and help texts up to date, and check their claims - #25
Merged
Merged
Conversation
Rewrite the README for both verifiers, all three bindings and both frontends, with a regtest walkthrough whose commands were run as written. Re-measure or remove every number in docs/, drop obsolete material (the old architecture diagram, the "before and after" table, the Liquid testnet spend of an earlier verifier, a link to a private repository), and say that the code has not been independently audited. Fix what the review found besides the text: tools/regtest.sh failed on a node set up as documented (no txindex), demo.py sized the Groth16 ptau below snarkjs's bound, and examples/fp_mul.py multiplied words it did not range-check. Docstrings, comments and --help match the code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
An end-to-end review of the repository's documentation after the fflonk, Noir and refactor work. Every number and command in the README and
docs/was checked against the code or re-measured on this branch, and the stale parts were rewritten or removed.Generated programs are unchanged, except
examples/fp_mul.simpl(below): the code changes are in comments, docstrings, help texts,tools/regtest.shandtools/demo.py's ptau sizing.README
ci/and.github/.docs/
--deny-warnings, plus the scan of stderr for any bug, error or warning line. With--deny-warnings, nargo needs// Safety:comments.x.r1csthatcompilewrote.Examples
examples/fp_mul.py/.simpl. The example multiplied unchecked witness words. That relies on the bound the verifiers enforce, but the example didn't show it. It now checks that both words are below 2^254, as the verifiers do (23 lines, 22,994 mWU). Without the check, a crafted pair of words near 2^256 gives the expected word for the wrong product.make examplepasses.examples/README.md.fp_mulnode by node.w_in,wl0–wl87,wq; 37 of the 88 Miller values committed).Code comments, docstrings and help
groth/andtests/to match the code: node names, bounds, the witness layout, the binding, the degree cap. UnusedGroth16.rootis removed; its callers usebinding.bound_signal.--help.groth16_snarkjs.py's per-input cost note is aligned with the measurements.deployUSAGE. It now lists all three bindings and the key flags that address, sighash, spend and keyspend take.tools/regtest.sh.getrawtransaction.anyonecanspend_aremineline is removed from the documented conf.tools/demo.py. It sized the Groth16 powers-of-tau file by constraints + 2. snarkjs needs 2^power > constraints + public inputs + outputs (zkey_new.js), so the demo now uses that.test_tools.py's stub is updated.pyproject.tomlandcircuits/package.jsonnow describe both verifiers..gitignoreadds*.ptau.partand*.secret.Verification
tools/regtest.shdocuments it.regtest.shpassed for all three toy circuits: proof spend, rejected redirect, and key path. The README's manual steps 2 to 5 were also run as written, and the spend was accepted.docs/fflonk.md.cargo fmtand clippy pass, and so does the full test suite: all layers withhand, plustest_bn254_refagainst py_ecc.make examplereproducesexamples/byte for byte.🤖 Generated with Claude Code