Skip to content

Commit

Permalink
Merge pull request #216 from 0xPolygonHermez/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
krlosMata committed Sep 22, 2023
2 parents 71632a8 + 527b1ca commit 84ca95f
Show file tree
Hide file tree
Showing 327 changed files with 2,011,875 additions and 456 deletions.
25 changes: 0 additions & 25 deletions .github/main.yml

This file was deleted.

47 changes: 47 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Main CI

on:
pull_request:
branches:
- main
- develop
push:
branches:
- main
- develop

jobs:
build:
runs-on: ubuntu-latest
services:
act:
image: lucasalt/act_base:latest
ports:
- 8545:8545
steps:
- name: Checkout code
uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Clone repos
run: |
cd ..
git clone https://github.com/0xPolygonHermez/zkevm-testvectors.git --branch v2.0.0-fork.5
cd zkevm-testvectors/tools/ethereum-tests
git clone https://github.com/0xPolygonHermez/ethereum-tests tests
cd tests
git checkout test-vectors
cd ../../../../zkevm-proverjs
- name: setup zkevm-proverjs
run: |
npm i
- name: Run full tracer tests
run: |
chmod -R 777 tools
npm run test:full-tracer
- name: eslint:tracer
run: npm run eslint:tracer
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ tmp
pil-config.json
parallel-tests
verbose-config.json
*.stats
*.stats
22 changes: 13 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,25 +52,25 @@
"verify": ". ./pre.sh && $PILSTARK/main_verifier.js -p $PIL -s $BDIR/zkevm.starkinfo.json -o $BDIR/zkevm$NTH.proof.json -b $BDIR/zkevm$NTH.public.json -v $BDIR/zkevm.verkey.json",
"gencircom": ". ./pre.sh && $PILSTARK/main_pil2circom.js -p $PIL -s $BDIR/zkevm.starkinfo.json -v $BDIR/zkevm.verkey.json -o $BDIR/zkevm.verifier.circom",
"compilecircom": ". ./pre.sh && circom --O1 --prime goldilocks --r1cs --sym --wasm --c --verbose $BDIR/zkevm.verifier.circom -o $BDIR -l node_modules/pil-stark/circuits.gl",
"c12a_setup": ". ./pre.sh && $PILSTARK/compressor12/main_compressor12_setup.js -r $BDIR/zkevm.verifier.r1cs -p $BDIR/c12a.pil -c $BDIR/c12a.const -e $BDIR/c12a.exec",
"c12a_setup": ". ./pre.sh && $PILSTARK/compressor/main_compressor_setup.js -r $BDIR/zkevm.verifier.r1cs -p $BDIR/c12a.pil -c $BDIR/c12a.const -e $BDIR/c12a.exec --cols=18",
"c12a_buildstarkinfo": ". ./pre.sh && $PILSTARK/main_genstarkinfo.js -p $BDIR/c12a.pil -s $BDIR/c12a.starkstruct.json -i $BDIR/c12a.starkinfo.json",
"c12a_buildchelpers": ". ./pre.sh && $PILSTARK/main_buildchelpers.js -m -p $BDIR/c12a.pil -s $BDIR/c12a.starkinfo.json -c $BDIR/c12a.chelpers/c12a.chelpers.cpp -C C12aSteps",
"c12a_exec": ". ./pre.sh && $PILSTARK/compressor12/main_compressor12_exec.js -i $BDIR/zkevm.zkin.proof.json -w $BDIR/zkevm.verifier_js/zkevm.verifier.wasm -p $BDIR/c12a.pil -e $BDIR/c12a.exec -m $BDIR/c12a.commit",
"c12a_exec": ". ./pre.sh && $PILSTARK/compressor/main_compressor_exec.js -i $BDIR/zkevm.zkin.proof.json -w $BDIR/zkevm.verifier_js/zkevm.verifier.wasm -p $BDIR/c12a.pil -e $BDIR/c12a.exec -m $BDIR/c12a.commit",
"c12a_pilverify": ". ./pre.sh && $PILCOM/main_pilverifier.js $BDIR/c12a.commit -c $BDIR/c12a.const -p $BDIR/c12a.pil",
"c12a_buildconstanttree": ". ./pre.sh && $BCTREE -c $BDIR/c12a.const -p $BDIR/c12a.pil -s $BDIR/c12a.starkstruct.json -t $BDIR/c12a.consttree -v $BDIR/c12a.verkey.json",
"c12a_prove": ". ./pre.sh && $PILSTARK/main_prover.js -m $BDIR/c12a.commit -c $BDIR/c12a.const -t $BDIR/c12a.consttree -p $BDIR/c12a.pil -s $BDIR/c12a.starkinfo.json -o $BDIR/c12a.proof.json -z $BDIR/c12a.zkin.proof.json -b $BDIR/c12a.public.json",
"c12a_verify": ". ./pre.sh && $PILSTARK/main_verifier.js -p $BDIR/c12a.pil -s $BDIR/c12a.starkinfo.json -o $BDIR/c12a.proof.json -b $BDIR/c12a.public.json -v $BDIR/c12a.verkey.json",
"c12a_gencircom": ". ./pre.sh && $PILSTARK/main_pil2circom.js --skipMain -p $BDIR/c12a.pil -s $BDIR/c12a.starkinfo.json -v $BDIR/c12a.verkey.json -o $BDIR/c12a.verifier.circom",
"recursive1_gencircom": ". ./pre.sh && cp recursive/recursive1.circom $BDIR",
"recursive1_compile": ". ./pre.sh && circom --r1cs --sym --wasm --c --verbose --O1 --prime goldilocks $BDIR/recursive1.circom -o $BDIR -l node_modules/pil-stark/circuits.gl",
"recursive1_setup": ". ./pre.sh && $PILSTARK/compressor12/main_compressor12_setup.js -r $BDIR/recursive1.r1cs -p $BDIR/recursive1.pil -c $BDIR/recursive1.const -e $BDIR/recursive1.exec",
"recursive1_setup": ". ./pre.sh && $PILSTARK/compressor/main_compressor_setup.js -r $BDIR/recursive1.r1cs -p $BDIR/recursive1.pil -c $BDIR/recursive1.const -e $BDIR/recursive1.exec --cols=18",
"recursive1_buildstarkinfo": ". ./pre.sh && $PILSTARK/main_genstarkinfo.js -p $BDIR/recursive1.pil -s $BDIR/recursive.starkstruct.json -i $BDIR/recursive1.starkinfo.json",
"recursive1_buildchelpers": ". ./pre.sh && $PILSTARK/main_buildchelpers.js -m -p $BDIR/recursive1.pil -s $BDIR/recursive1.starkinfo.json -c $BDIR/recursive1.chelpers/recursive1.chelpers.cpp -C Recursive1Steps",
"recursive1_buildconstanttree": ". ./pre.sh && $BCTREE -c $BDIR/recursive1.const -p $BDIR/recursive1.pil -s $BDIR/recursive.starkstruct.json -t $BDIR/recursive1.consttree -v $BDIR/recursive1.verkey.json",
"recursive1_verifier_gencircom": ". ./pre.sh && $PILSTARK/main_pil2circom.js --skipMain --verkeyInput -p $BDIR/recursive1.pil -s $BDIR/recursive1.starkinfo.json -v $BDIR/recursive1.verkey.json -o $BDIR/recursive1.verifier.circom",
"recursive2_gencircom": ". ./pre.sh && node $NODE src/main_genrecursive.js -v $BDIR/recursive1.verkey.json -o $BDIR/recursive2.circom",
"recursive2_compile": ". ./pre.sh && circom --r1cs --sym --wasm --c --verbose --O1 --prime goldilocks $BDIR/recursive2.circom -o $BDIR -l node_modules/pil-stark/circuits.gl",
"recursive2_setup": ". ./pre.sh && $PILSTARK/compressor12/main_compressor12_setup.js -r $BDIR/recursive2.r1cs -p $BDIR/recursive2.pil -c $BDIR/recursive2.const -e $BDIR/recursive2.exec",
"recursive2_setup": ". ./pre.sh && $PILSTARK/compressor/main_compressor_setup.js -r $BDIR/recursive2.r1cs -p $BDIR/recursive2.pil -c $BDIR/recursive2.const -e $BDIR/recursive2.exec --cols=18",
"recursive2_buildstarkinfo": ". ./pre.sh && $PILSTARK/main_genstarkinfo.js -p $BDIR/recursive2.pil -s $BDIR/recursive.starkstruct.json -i $BDIR/recursive2.starkinfo.json",
"recursive2_buildchelpers": ". ./pre.sh && $PILSTARK/main_buildchelpers.js -m -p $BDIR/recursive2.pil -s $BDIR/recursive2.starkinfo.json -c $BDIR/recursive2.chelpers/recursive2.chelpers.cpp -C Recursive2Steps",
"recursive2_buildconstanttree": ". ./pre.sh && $BCTREE -c $BDIR/recursive2.const -p $BDIR/recursive2.pil -s $BDIR/recursive.starkstruct.json -t $BDIR/recursive2.consttree -v $BDIR/recursive2.verkey.json",
Expand All @@ -79,7 +79,7 @@
"recursive_verifier_check": ". ./pre.sh && F1=$BDIR/recursive1.verifier.circom && F2=$BDIR/recursive2.verifier.circom && diff $F1 $F2 || (echo \"ERROR: $F1 $F2 are different\"; exit 1)",
"recursivef_gencircom": ". ./pre.sh && node $NODE src/main_genrecursivef.js --verkey1 $BDIR/recursive1.verkey.json --verkey2 $BDIR/recursive2.verkey.json -o $BDIR/recursivef.circom",
"recursivef_compile": ". ./pre.sh && circom --r1cs --sym --wasm --c --verbose --O1 --prime goldilocks $BDIR/recursivef.circom -o $BDIR -l node_modules/pil-stark/circuits.gl -l node_modules/circomlib/circuits",
"recursivef_setup": ". ./pre.sh && $PILSTARK/compressor12/main_compressor12_setup.js -r $BDIR/recursivef.r1cs -p $BDIR/recursivef.pil -c $BDIR/recursivef.const -e $BDIR/recursivef.exec",
"recursivef_setup": ". ./pre.sh && $PILSTARK/compressor/main_compressor_setup.js -r $BDIR/recursivef.r1cs -p $BDIR/recursivef.pil -c $BDIR/recursivef.const -e $BDIR/recursivef.exec --cols=12",
"recursivef_buildstarkinfo": ". ./pre.sh && $PILSTARK/main_genstarkinfo.js -p $BDIR/recursivef.pil -s $BDIR/recursivef.starkstruct.json -i $BDIR/recursivef.starkinfo.json",
"recursivef_buildchelpers": ". ./pre.sh && $PILSTARK/main_buildchelpers.js -m -p $BDIR/recursivef.pil -s $BDIR/recursivef.starkinfo.json -c $BDIR/recursivef.chelpers/recursivef.chelpers.cpp -C StarkRecursiveFSteps",
"recursivef_buildconstanttree": ". ./pre.sh && $BCTREE -c $BDIR/recursivef.const -p $BDIR/recursivef.pil -s $BDIR/recursivef.starkstruct.json -t $BDIR/recursivef.consttree -v $BDIR/recursivef.verkey.json",
Expand Down Expand Up @@ -111,26 +111,30 @@
"test:counters:poseidon": "mocha test/counters/poseidon.js",
"test:counters:storage": "mocha test/counters/storage.js",
"test:all-inputs": "mocha --timeout 0 --max-old-space-size=8000 tools/run-test/run-inputs-mocha.test.js",
"test:full-tracer": "node --max-old-space-size=16000 tools/full-tracer-tests/full-tracer-tests.js",
"eslint:tracer": "npx eslint src/sm/sm_main/debug/**.js"
},
"author": "Jordi Baylina",
"license": "UNLICENSED",
"dependencies": {
"@0xpolygonhermez/zkasmcom": "https://github.com/0xPolygonHermez/zkasmcom.git#v1.0.0",
"@0xpolygonhermez/zkevm-commonjs": "https://github.com/0xpolygonhermez/zkevm-commonjs.git#v1.0.0",
"@0xpolygonhermez/zkevm-rom": "https://github.com/0xPolygonHermez/zkevm-rom.git#v1.1.0-fork.4",
"@0xpolygonhermez/zkevm-commonjs": "https://github.com/0xPolygonHermez/zkevm-commonjs.git#v2.0.0-fork.5",
"@0xpolygonhermez/zkevm-rom": "https://github.com/0xPolygonHermez/zkevm-rom.git#v2.0.0-fork.5",
"@0xpolygonhermez/zkevm-storage-rom": "https://github.com/0xPolygonHermez/zkevm-storage-rom.git#v1.0.0-fork.3",
"@grpc/grpc-js": "^1.8.14",
"chalk": "^3.0.0",
"circomlib": "^2.0.3",
"circomlibjs": "^0.1.1",
"docker-compose": "^0.23.19",
"ejs": "^3.1.6",
"ethers": "^5.4.7",
"ffjavascript": "^0.2.55",
"fs": "^0.0.1-security",
"json-bigint": "^1.0.0",
"pil-stark": "0.0.56",
"lodash": "^4.17.21",
"pil-stark": "https://github.com/0xPolygonHermez/pil-stark.git#develop",
"pilcom": "0.0.23",
"snarkjs": "0.6.9",
"snarkjs": "0.7.0",
"yargs": "^17.4.0"
},
"devDependencies": {
Expand Down
23 changes: 12 additions & 11 deletions recursive/final.circom
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,13 @@ template Main() {
signal input root3;
signal input root4;

signal input evals[70][3];
signal input evals[86][3]; // Evaluations of the set polynomials at a challenge value z and gz

// Leaves values of the merkle tree used to check all the queries
signal input s0_vals1[32][12];
signal input s0_vals3[32][9];
signal input s0_vals4[32][24];
signal input s0_valsC[32][34];
signal input s0_vals3[32][21];
signal input s0_vals4[32][21];
signal input s0_valsC[32][39];

signal input s0_siblings1[32][6][16];
signal input s0_siblings3[32][6][16];
Expand All @@ -61,18 +62,18 @@ template Main() {
signal input s4_root;
signal input s5_root;

signal input s1_vals[32][24];
signal input s1_vals[32][48];
signal input s1_siblings[32][5][16];
signal input s2_vals[32][48];
signal input s2_vals[32][24];
signal input s2_siblings[32][4][16];
signal input s3_vals[32][48];
signal input s3_vals[32][24];
signal input s3_siblings[32][3][16];
signal input s4_vals[32][48];
signal input s4_vals[32][24];
signal input s4_siblings[32][2][16];
signal input s5_vals[32][48];
signal input s5_siblings[32][1][16];
signal input s5_vals[32][24];
signal input s5_siblings[32][2][16];

signal input finalPol[16][3];
signal input finalPol[32][3];


component sv = StarkVerifier();
Expand Down
32 changes: 17 additions & 15 deletions recursive/recursive1.circom
Original file line number Diff line number Diff line change
Expand Up @@ -12,32 +12,34 @@ template Main() {
signal input root2[4];
signal input root3[4];
signal input root4[4];
signal input evals[94][3];
signal input evals[146][3]; // Evaluations of the set polynomials at a challenge value z and gz

signal input s0_vals1[64][12];
signal input s0_vals3[64][41];
// Leaves values of the merkle tree used to check all the queries
signal input s0_vals1[64][18];
signal input s0_vals3[64][78];
signal input s0_vals4[64][12];
signal input s0_valsC[64][34];
signal input s0_siblings1[64][24][4];
signal input s0_siblings3[64][24][4];
signal input s0_siblings4[64][24][4];
signal input s0_siblingsC[64][24][4];
signal input s0_valsC[64][52];

signal input s0_siblings1[64][22][4];
signal input s0_siblings3[64][22][4];
signal input s0_siblings4[64][22][4];
signal input s0_siblingsC[64][22][4];

signal input s1_root[4];
signal input s2_root[4];
signal input s3_root[4];
signal input s4_root[4];

signal input s1_vals[64][48];
signal input s1_siblings[64][20][4];
signal input s2_vals[64][96];
signal input s2_siblings[64][15][4];
signal input s3_vals[64][96];
signal input s1_siblings[64][18][4];
signal input s2_vals[64][48];
signal input s2_siblings[64][14][4];
signal input s3_vals[64][48];
signal input s3_siblings[64][10][4];
signal input s4_vals[64][96];
signal input s4_siblings[64][5][4];
signal input s4_vals[64][48];
signal input s4_siblings[64][6][4];

signal input finalPol[32][3];
signal input finalPol[64][3];



Expand Down
76 changes: 40 additions & 36 deletions recursive/recursive2.circom.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -23,32 +23,34 @@ template Main() {
signal input a_root3[4];
signal input a_root4[4];

signal input a_evals[70][3];
signal input a_evals[118][3];

signal input a_s0_vals1[32][12];
signal input a_s0_vals3[32][9];
signal input a_s0_vals4[32][24];
signal input a_s0_valsC[32][34];
signal input a_s0_siblings1[32][24][4];
signal input a_s0_siblings3[32][24][4];
signal input a_s0_siblings4[32][24][4];
signal input a_s0_siblingsC[32][24][4];
signal input a_s0_vals1[43][18];
signal input a_s0_vals3[43][39];
signal input a_s0_vals4[43][21];
signal input a_s0_valsC[43][52];
signal input a_s0_siblings1[43][20][4];
signal input a_s0_siblings3[43][20][4];
signal input a_s0_siblings4[43][20][4];
signal input a_s0_siblingsC[43][20][4];

signal input a_s1_root[4];
signal input a_s2_root[4];
signal input a_s3_root[4];
signal input a_s4_root[4];

signal input a_s1_vals[32][96];
signal input a_s1_siblings[32][19][4];
signal input a_s2_vals[32][96];
signal input a_s2_siblings[32][14][4];
signal input a_s3_vals[32][96];
signal input a_s3_siblings[32][9][4];
signal input a_s4_vals[32][48];
signal input a_s4_siblings[32][5][4];

signal input a_finalPol[32][3];
signal input a_s1_vals[43][48];
signal input a_s1_siblings[43][16][4];
signal input a_s2_vals[43][48];
signal input a_s2_siblings[43][12][4];
signal input a_s3_vals[43][24];
signal input a_s3_siblings[43][9][4];
signal input a_s4_vals[43][24];
signal input a_s4_siblings[43][6][4];


signal input a_finalPol[64][3];



Expand All @@ -58,32 +60,34 @@ template Main() {
signal input b_root2[4];
signal input b_root3[4];
signal input b_root4[4];
signal input b_evals[70][3];
signal input b_evals[118][3];

signal input b_s0_vals1[32][12];
signal input b_s0_vals3[32][9];
signal input b_s0_vals4[32][24];
signal input b_s0_valsC[32][34];
signal input b_s0_siblings1[32][24][4];
signal input b_s0_siblings3[32][24][4];
signal input b_s0_siblings4[32][24][4];
signal input b_s0_siblingsC[32][24][4];
signal input b_s0_vals1[43][18];
signal input b_s0_vals3[43][39];
signal input b_s0_vals4[43][21];
signal input b_s0_valsC[43][52];
signal input b_s0_siblings1[43][20][4];
signal input b_s0_siblings3[43][20][4];
signal input b_s0_siblings4[43][20][4];
signal input b_s0_siblingsC[43][20][4];

signal input b_s1_root[4];
signal input b_s2_root[4];
signal input b_s3_root[4];
signal input b_s4_root[4];

signal input b_s1_vals[32][96];
signal input b_s1_siblings[32][19][4];
signal input b_s2_vals[32][96];
signal input b_s2_siblings[32][14][4];
signal input b_s3_vals[32][96];
signal input b_s3_siblings[32][9][4];
signal input b_s4_vals[32][48];
signal input b_s4_siblings[32][5][4];

signal input b_finalPol[32][3];
signal input b_s1_vals[43][48];
signal input b_s1_siblings[43][16][4];
signal input b_s2_vals[43][48];
signal input b_s2_siblings[43][12][4];
signal input b_s3_vals[43][24];
signal input b_s3_siblings[43][9][4];
signal input b_s4_vals[43][24];
signal input b_s4_siblings[43][6][4];


signal input b_finalPol[64][3];

component vA = StarkVerifier();

Expand Down
Loading

0 comments on commit 84ca95f

Please sign in to comment.