Skip to content

Commit

Permalink
Merge branch 'recursive' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
krlosMata committed Nov 14, 2022
2 parents b8dafb2 + 6a04380 commit f755551
Show file tree
Hide file tree
Showing 30 changed files with 3,224 additions and 422 deletions.
107 changes: 73 additions & 34 deletions package.json

Large diffs are not rendered by default.

112 changes: 93 additions & 19 deletions pil/basic_main.pil
Original file line number Diff line number Diff line change
Expand Up @@ -275,8 +275,6 @@ namespace Main(%N);
zkPC' = doJMP * (addr - (zkPC+1)) +
(zkPC+1) ;



(A0-op0)*assert = 0;
(A1-op1)*assert = 0;
(A2-op2)*assert = 0;
Expand All @@ -286,23 +284,99 @@ namespace Main(%N);
(A6-op6)*assert = 0;
(A7-op7)*assert = 0;

public globalHash0 = FREE0(0);
public globalHash1 = FREE1(0);
public globalHash2 = FREE2(0);
public globalHash3 = FREE3(0);
public globalHash4 = FREE4(0);
public globalHash5 = FREE5(0);
public globalHash6 = FREE6(0);
public globalHash7 = FREE7(0);

Global.L1 * (FREE0 - :globalHash0) = 0;
Global.L1 * (FREE1 - :globalHash1) = 0;
Global.L1 * (FREE2 - :globalHash2) = 0;
Global.L1 * (FREE3 - :globalHash3) = 0;
Global.L1 * (FREE4 - :globalHash4) = 0;
Global.L1 * (FREE5 - :globalHash5) = 0;
Global.L1 * (FREE6 - :globalHash6) = 0;
Global.L1 * (FREE7 - :globalHash7) = 0;
public oldStateRoot0 = B0(0);
public oldStateRoot1 = B1(0);
public oldStateRoot2 = B2(0);
public oldStateRoot3 = B3(0);
public oldStateRoot4 = B4(0);
public oldStateRoot5 = B5(0);
public oldStateRoot6 = B6(0);
public oldStateRoot7 = B7(0);
Global.L1 * (B0 - :oldStateRoot0) = 0;
Global.L1 * (B1 - :oldStateRoot1) = 0;
Global.L1 * (B2 - :oldStateRoot2) = 0;
Global.L1 * (B3 - :oldStateRoot3) = 0;
Global.L1 * (B4 - :oldStateRoot4) = 0;
Global.L1 * (B5 - :oldStateRoot5) = 0;
Global.L1 * (B6 - :oldStateRoot6) = 0;
Global.L1 * (B7 - :oldStateRoot7) = 0;

public oldAccInputHash0 = C0(0);
public oldAccInputHash1 = C1(0);
public oldAccInputHash2 = C2(0);
public oldAccInputHash3 = C3(0);
public oldAccInputHash4 = C4(0);
public oldAccInputHash5 = C5(0);
public oldAccInputHash6 = C6(0);
public oldAccInputHash7 = C7(0);
Global.L1 * (C0 - :oldAccInputHash0) = 0;
Global.L1 * (C1 - :oldAccInputHash1) = 0;
Global.L1 * (C2 - :oldAccInputHash2) = 0;
Global.L1 * (C3 - :oldAccInputHash3) = 0;
Global.L1 * (C4 - :oldAccInputHash4) = 0;
Global.L1 * (C5 - :oldAccInputHash5) = 0;
Global.L1 * (C6 - :oldAccInputHash6) = 0;
Global.L1 * (C7 - :oldAccInputHash7) = 0;

public oldBatchNum = SP(0);
Global.L1 * (SP - :oldBatchNum) = 0;

public chainId = GAS(0);
Global.L1 * (GAS - :chainId) = 0;

public newStateRoot0 = SR0(%N-1);
public newStateRoot1 = SR1(%N-1);
public newStateRoot2 = SR2(%N-1);
public newStateRoot3 = SR3(%N-1);
public newStateRoot4 = SR4(%N-1);
public newStateRoot5 = SR5(%N-1);
public newStateRoot6 = SR6(%N-1);
public newStateRoot7 = SR7(%N-1);
Global.LLAST * (SR0 - :newStateRoot0) = 0;
Global.LLAST * (SR1 - :newStateRoot1) = 0;
Global.LLAST * (SR2 - :newStateRoot2) = 0;
Global.LLAST * (SR3 - :newStateRoot3) = 0;
Global.LLAST * (SR4 - :newStateRoot4) = 0;
Global.LLAST * (SR5 - :newStateRoot5) = 0;
Global.LLAST * (SR6 - :newStateRoot6) = 0;
Global.LLAST * (SR7 - :newStateRoot7) = 0;

public newAccInputHash0 = D0(%N -1);
public newAccInputHash1 = D1(%N -1);
public newAccInputHash2 = D2(%N -1);
public newAccInputHash3 = D3(%N -1);
public newAccInputHash4 = D4(%N -1);
public newAccInputHash5 = D5(%N -1);
public newAccInputHash6 = D6(%N -1);
public newAccInputHash7 = D7(%N -1);
Global.LLAST * (D0 - :newAccInputHash0) = 0;
Global.LLAST * (D1 - :newAccInputHash1) = 0;
Global.LLAST * (D2 - :newAccInputHash2) = 0;
Global.LLAST * (D3 - :newAccInputHash3) = 0;
Global.LLAST * (D4 - :newAccInputHash4) = 0;
Global.LLAST * (D5 - :newAccInputHash5) = 0;
Global.LLAST * (D6 - :newAccInputHash6) = 0;
Global.LLAST * (D7 - :newAccInputHash7) = 0;

public localExitRoot0 = E0(%N-1);
public localExitRoot1 = E1(%N-1);
public localExitRoot2 = E2(%N-1);
public localExitRoot3 = E3(%N-1);
public localExitRoot4 = E4(%N-1);
public localExitRoot5 = E5(%N-1);
public localExitRoot6 = E6(%N-1);
public localExitRoot7 = E7(%N-1);
Global.LLAST * (E0 - :localExitRoot0) = 0;
Global.LLAST * (E1 - :localExitRoot1) = 0;
Global.LLAST * (E2 - :localExitRoot2) = 0;
Global.LLAST * (E3 - :localExitRoot3) = 0;
Global.LLAST * (E4 - :localExitRoot4) = 0;
Global.LLAST * (E5 - :localExitRoot5) = 0;
Global.LLAST * (E6 - :localExitRoot6) = 0;
Global.LLAST * (E7 - :localExitRoot7) = 0;

public newBatchNum = PC(%N-1);
Global.LLAST * (PC - :newBatchNum) = 0;

pol commit sKeyI[4];
pol commit sKey[4];
Expand Down
1 change: 1 addition & 0 deletions pil/global.pil
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
namespace Global(%N);
pol constant L1; // 1, 0, 0, 0, 0,
pol constant LLAST; // 0,0,0,0,0, ...., 0, 1
pol constant BYTE;
pol constant BYTE2;
112 changes: 95 additions & 17 deletions pil/main.pil
Original file line number Diff line number Diff line change
Expand Up @@ -308,23 +308,101 @@ namespace Main(%N);
(A6-op6)*assert = 0;
(A7-op7)*assert = 0;

public globalHash0 = FREE0(0);
public globalHash1 = FREE1(0);
public globalHash2 = FREE2(0);
public globalHash3 = FREE3(0);
public globalHash4 = FREE4(0);
public globalHash5 = FREE5(0);
public globalHash6 = FREE6(0);
public globalHash7 = FREE7(0);

Global.L1 * (FREE0 - :globalHash0) = 0;
Global.L1 * (FREE1 - :globalHash1) = 0;
Global.L1 * (FREE2 - :globalHash2) = 0;
Global.L1 * (FREE3 - :globalHash3) = 0;
Global.L1 * (FREE4 - :globalHash4) = 0;
Global.L1 * (FREE5 - :globalHash5) = 0;
Global.L1 * (FREE6 - :globalHash6) = 0;
Global.L1 * (FREE7 - :globalHash7) = 0;
public oldStateRoot0 = B0(0);
public oldStateRoot1 = B1(0);
public oldStateRoot2 = B2(0);
public oldStateRoot3 = B3(0);
public oldStateRoot4 = B4(0);
public oldStateRoot5 = B5(0);
public oldStateRoot6 = B6(0);
public oldStateRoot7 = B7(0);
Global.L1 * (B0 - :oldStateRoot0) = 0;
Global.L1 * (B1 - :oldStateRoot1) = 0;
Global.L1 * (B2 - :oldStateRoot2) = 0;
Global.L1 * (B3 - :oldStateRoot3) = 0;
Global.L1 * (B4 - :oldStateRoot4) = 0;
Global.L1 * (B5 - :oldStateRoot5) = 0;
Global.L1 * (B6 - :oldStateRoot6) = 0;
Global.L1 * (B7 - :oldStateRoot7) = 0;

public oldAccInputHash0 = C0(0);
public oldAccInputHash1 = C1(0);
public oldAccInputHash2 = C2(0);
public oldAccInputHash3 = C3(0);
public oldAccInputHash4 = C4(0);
public oldAccInputHash5 = C5(0);
public oldAccInputHash6 = C6(0);
public oldAccInputHash7 = C7(0);
Global.L1 * (C0 - :oldAccInputHash0) = 0;
Global.L1 * (C1 - :oldAccInputHash1) = 0;
Global.L1 * (C2 - :oldAccInputHash2) = 0;
Global.L1 * (C3 - :oldAccInputHash3) = 0;
Global.L1 * (C4 - :oldAccInputHash4) = 0;
Global.L1 * (C5 - :oldAccInputHash5) = 0;
Global.L1 * (C6 - :oldAccInputHash6) = 0;
Global.L1 * (C7 - :oldAccInputHash7) = 0;

public oldBatchNum = SP(0);
Global.L1 * (SP - :oldBatchNum) = 0;

public chainId = GAS(0);
Global.L1 * (GAS - :chainId) = 0;

public newStateRoot0 = SR0(%N-1);
public newStateRoot1 = SR1(%N-1);
public newStateRoot2 = SR2(%N-1);
public newStateRoot3 = SR3(%N-1);
public newStateRoot4 = SR4(%N-1);
public newStateRoot5 = SR5(%N-1);
public newStateRoot6 = SR6(%N-1);
public newStateRoot7 = SR7(%N-1);
Global.LLAST * (SR0 - :newStateRoot0) = 0;
Global.LLAST * (SR1 - :newStateRoot1) = 0;
Global.LLAST * (SR2 - :newStateRoot2) = 0;
Global.LLAST * (SR3 - :newStateRoot3) = 0;
Global.LLAST * (SR4 - :newStateRoot4) = 0;
Global.LLAST * (SR5 - :newStateRoot5) = 0;
Global.LLAST * (SR6 - :newStateRoot6) = 0;
Global.LLAST * (SR7 - :newStateRoot7) = 0;

public newAccInputHash0 = D0(%N -1);
public newAccInputHash1 = D1(%N -1);
public newAccInputHash2 = D2(%N -1);
public newAccInputHash3 = D3(%N -1);
public newAccInputHash4 = D4(%N -1);
public newAccInputHash5 = D5(%N -1);
public newAccInputHash6 = D6(%N -1);
public newAccInputHash7 = D7(%N -1);
Global.LLAST * (D0 - :newAccInputHash0) = 0;
Global.LLAST * (D1 - :newAccInputHash1) = 0;
Global.LLAST * (D2 - :newAccInputHash2) = 0;
Global.LLAST * (D3 - :newAccInputHash3) = 0;
Global.LLAST * (D4 - :newAccInputHash4) = 0;
Global.LLAST * (D5 - :newAccInputHash5) = 0;
Global.LLAST * (D6 - :newAccInputHash6) = 0;
Global.LLAST * (D7 - :newAccInputHash7) = 0;

public localExitRoot0 = E0(%N-1);
public localExitRoot1 = E1(%N-1);
public localExitRoot2 = E2(%N-1);
public localExitRoot3 = E3(%N-1);
public localExitRoot4 = E4(%N-1);
public localExitRoot5 = E5(%N-1);
public localExitRoot6 = E6(%N-1);
public localExitRoot7 = E7(%N-1);
Global.LLAST * (E0 - :localExitRoot0) = 0;
Global.LLAST * (E1 - :localExitRoot1) = 0;
Global.LLAST * (E2 - :localExitRoot2) = 0;
Global.LLAST * (E3 - :localExitRoot3) = 0;
Global.LLAST * (E4 - :localExitRoot4) = 0;
Global.LLAST * (E5 - :localExitRoot5) = 0;
Global.LLAST * (E6 - :localExitRoot6) = 0;
Global.LLAST * (E7 - :localExitRoot7) = 0;

public newBatchNum = PC(%N-1);
Global.LLAST * (PC - :newBatchNum) = 0;



// Check that the calculated hash is well formed
sWR + hashPDigest {
Expand Down
2 changes: 1 addition & 1 deletion pil/padding_kk.pil
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ namespace PaddingKK(%N);
pol constant crValid;

/* Read Data output
crLatch * crValid {addr, crOffset - crLen -1, crLen, crV0C, crV1C, crV2C, crV3C, crV4C, crV5C, crV6C, crV7C}
crLatch * crValid {addr, PaddingKK.len - PaddingKK.rem - PaddingKK.crLen + 1, crLen, crV0C, crV1C, crV2C, crV3C, crV4C, crV5C, crV6C, crV7C}
*/

/* Read Len output
Expand Down
39 changes: 39 additions & 0 deletions pre.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,40 @@
checkMandatoryOptArg() {
argname=$3
[ "$2" = "true" ] && echo "ERROR: --$1 without mandatory argument. usage: --$1=<${argname:=value}>" && exit 1
}

checkAllMandatoryOptArgs() {
checkMandatoryOptArg build $npm_config_build buildpath
checkMandatoryOptArg pil $npm_config_pil file.pil
checkMandatoryOptArg pilconfig $npm_config_pilconfig pilconfig.json
checkMandatoryOptArg bctree $npm_config_bctree constanttreebuilder
checkMandatoryOptArg nth $npm_config_nth
checkMandatoryOptArg starkstruct $npm_config_starkstruct debug
checkMandatoryOptArg input $npm_config_input input
checkMandatoryOptArg from $npm_config_from step
checkMandatoryOptArg to $npm_config_to step
checkMandatoryOptArg step $npm_config_step step
}

usage() {
echo "options:"
echo " --build=<buildpath> folder were outputs was stored."
echo " --pil=<file.pil>"
echo " --pilconfig=<pilconfig.json>"
echo " --bctree=<builder> alternative binary to generate constanttree (ex: ../zkevm-prover/build/bctree)"
echo " --nth=<sufix> suffix used on commited files and derivated (ex: _0)"
echo " --starkstruct=debug auto-generate starkstruct, used in non-stardard pil as basic."
echo " --input=<input.json> input used in execution/proof."
echo " --from=<step> where start the process (ex: buildconstanttree)"
echo " --to=<step> where fiuish the process (ex: pilverify)"
echo " --step=<step> execute only one step of proccess (ex: exec)"
echo " --continue restart process from last step wellprocessed"
}

checkAllMandatoryOptArgs

[ ! -z $npm_config_help ] && usage && exit 1

BDIR="${npm_config_build:=build/proof}"
mkdir -p $BDIR
# NODE="--trace-gc --trace-gc-ignore-scavenger --max-semi-space-size=1024 --max-old-space-size=524288"
Expand All @@ -11,4 +48,6 @@ PILSTARK="node $NODE node_modules/pil-stark/src"
PILCOM="node $NODE node_modules/pilcom/src"
SNARKJS="node $NODE node_modules/snarkjs/cli.js"
BCTREE="${npm_config_bctree:=$PILSTARK/main_buildconsttree.js}"
# [ ! -z $npm_config_nth ] &&
NTH="${npm_config_nth}"
true
Loading

0 comments on commit f755551

Please sign in to comment.