zkEVM proof generator reference written in Javascript
$ npm install
$ npm run build
Basic usage:
$ node src/main_executor <input.json> -r <rom.json> -o <proof.json>
Example:
$ node src/main_executor tools/build-genesis/input_executor.json -r ../zkevm-rom/build/rom.json -o tmp/commit.bin
Additional parameters:
-t <test.json>
: test-l <logs.json>
: logs-s
: skip compile pil-d
: debug mode-p
: select pilprogram.pil-P
: load pilConfig.json file-u
: unsigned transactions mode-e
: skip assertsnewStateRoot
andnewLocalExitRoot
-v
: verbose mode PIL-T
: enable tracer-c
: disable zk-counters-N <number>
: override number of steps-V <verbose-config.json>
: verbode executor & full-tracer. Loadsverbose-config.json
-S <stats.json>
: save stats to a file
fulltracer.enable
: prints events originated in the full tracerfulltracer.printOpcodes
: print opcodesfulltracer.filterOpcodes
: string filter when printing opcodesfulltracer.initFinalState
: print pre/post state of touched addressesfulltracer.bytecode
: add bytecode to pre/post statefulltracer.saveInitFinalState
: save file with pre/post statezkPC
: print info program counterbatchL2Data
: print info about batch L2 datastep
: print executor step
npm run buildsetup --build=build/v0.7.0.0-rc.1 --bctree=../zkevm-prover/build/bctree
npm run buildall
npm run buildall --pil=pil/basic_main.pil --starkstruct=debug
npm run buildall --pilconfig=testvectors/pilconfig.pil --starkstruct=debug
from: syntax is --from=<step> to indicate step where start build/rebuild
npm run buildsetup --from=c12setup
continue: this option hasn't additional argument. With this option buildall detected last step well done and continues from next step.
npm run buildsetup --continue
step: syntax is --step=<step> to indicate step to execute (one step only)
npm run buildsetup --step=c12setup
steps: to show list of steps
npm run buildsetup --steps
pil: syntax is --pil=<main.pil> where main.pil was name of pil to compile. For debugging could use basic_main.pil. See --starkstruct option
npm run buildsetup --pil=pil/basic_main.pil --starkstruct=debug
pilconfig: syntax is --pilconfig=<pilconfig.json> where pilconfig.json was name of config used in pil compilation. See --starkstruct option
npm run buildall --pilconfig=testvectors/pilconfig.json --starkstruct=debug
starkstruct: syntax is --startstruct=debug to generates automatic starkstruct adapted to pil bits number. Only for debugging. This option shall used with --pil or pilconfig if number of bits change.
npm run buildall --starkstruct=debug
build: with this option could change build directory, by default build directory is build/proof.
npm run buildall --build=build/basic_proof
input: with this option indicates input file to use.
npm run buildall --input=test/myinputfile.json
bctree: syntax is --bctree=<bctree_exec> specify an external binary (executable) to generate build constanttree
npm run buildall --bctree=../zkevm-prover/build/bctree
Region (base-to) | Size | Content |
---|---|---|
0x000000 - 0x03FFFF | 8MiB | |
0x040000 - 0x07FFFF | 8MiB | First context |
0x080000 - 0x0BFFFF | 8MiB | Second context |
: | 8MiB | : |
Region (base-to) | Size | Content |
---|---|---|
CTX.base + [0x000000 - 0x00FFFF] | 2MiB | Context specific variables |
CTX.base + [0x010000 - 0x01FFFF] | 2MiB | EVM Stack |
CTX.base + [0x020000 - 0x03FFFF] | 4MiB | EVM Memory |