Fetch git-submodule of test traces
git submodule init
git submodule update --checkout
Download all setup params, degree 20
, 24
and 26
are used in config.
Could only download params of degree 26
, but it may affect performance (when dowsizing params).
make download-setup -e degree=20
make download-setup -e degree=24
make download-setup -e degree=26
Or specify other degree and target directory to download.
# As default `degree=26` and `params_dir=./integration/test_params`.
make download-setup -e degree=DEGREE params_dir=PARAMS_DIR
make test-chunk-prove
and make test-agg-prove
are the main testing entries for multi-level circuit constraint system of scroll-prover. Developers could understand how the system works by reading the codes of these tests.
Besides it, make test-inner-prove
could be used to test the first-level circuit, and make test-batch-prove
could be used to test the final two levels.
This repository is designed to be used as a Rust crate, rather than a standalone running process. However, you can still use the following command to run binaries locally.
If you run into linking issues you may need to run
cp `find ./target/release/ | grep libzktrie.so` /usr/local/lib/
To move the zktrielib into a path where your linker could locate it.
Run zkevm prover to generate chunk proof (the word-dir is ./integration
)
cargo build --release --bin zkevm_prove
./target/release/zkevm_prove --help
Could specify arguments as
# Proof data will be saved to `./integration/proof_data`.
export OUTPUT_DIR="proof_data"
# Params file should be located in `./integration/test_params`.
cargo run --release --bin zkevm_prove -- --params=test_params --trace=tests/traces/erc20/10_transfer.json
Run zkevm verifier to verify chunk proof (the word-dir is ./integration
)
cargo build --release --bin zkevm_verify
./target/release/zkevm_verify --help
Could specify arguments as
cargo run --release --bin zkevm_verify -- --params=test_params --proof=proof_data
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.