前序博客:
实操主要见:
相关代码见:
pil-stark代码库的主要作用是:
Polygon zkEVM中借用了iden3的circom工具,其与snarkjs的关系为:
测试用例见pil-stark/test
文件夹,以其中的sm_fibonacci
为例:
1)创建tmp文件夹,用于存储编译输出文件:mkdir tmp
2)debug运行fibonacci buildconst
:运行状态机中main_buildconst_fibonacci.js
,输出为fibonacci.const
/usr/local/bin/node --max-old-space-size=32000 test/sm_fibonacci/main_buildconst_fibonacci.js -o tmp/fibonacci.const
file Generated Correctly
3)debug运行fibonacci exec
:运行main_exec_fibonacci.js
,输入有fibonacci.input.json
,输出为fibonacci.commit
:
/usr/local/bin/node --max-old-space-size=32000 test/sm_fibonacci/main_exec_fibonacci.js -i test/sm_fibonacci/fibonacci.input.json -o tmp/fibonacci.commit
Result: 74469561660084004
file Generated Correctly
4)debug运行fibonacci PIL verify
:运行node_modules/pilcom/src/main_pilverifier.js
,输入有:
fibonacci.commit
:为基于fibonacci.input.json
运行状态机中main_exec_fibonacci.js
获得的输出。【对pil中的commit多项式赋值】fibonacci_main.pil
程序。fibonacci.const
:为运行状态机中main_buildconst_fibonacci.js
获得的输出。【对pil中的const多项式赋值】/usr/local/bin/node --max-old-space-size=32000 node_modules/pilcom/src/main_pilverifier.js tmp/fibonacci.commit -p test/sm_fibonacci/fibonacci_main.pil -c tmp/fibonacci.const
loading tmp/fibonacci.const.. 0 of 0.001953125
loading tmp/fibonacci.commit.. 0 of 0.001953125
Preparing public 1/3
calculateExpression: 0
Preparing public 2/3
Preparing public 3/3
Checking identities 1/5
calculateExpression: 1
Checking identities 2/5
calculateExpression: 3
calculateExpression: 2
Checking identities 3/5
calculateExpression: 4
Checking identities 4/5
calculateExpression: 5
Checking identities 5/5
calculateExpression: 6
PIL OK!!
其中,verifyPil
主要流程为:
pols.cm[pil.publics[i].polId].v_n[pil.publics[i].idx]
;若源自imP,则先调用calculateExpression(pil.publics[i].polId)
计算相应的expression值,然后赋值pols.exps[pil.publics[i].polId].v_n[pil.publics[i].idx]
。for (let i=0; i<pil.publics.length; i++) {
console.log(`Preparing public ${i+1}/${pil.publics.length}`);
if (pil.publics[i].polType == "cmP") {
pols.publics[i] = pols.cm[pil.publics[i].polId].v_n[pil.publics[i].idx];
} else if (pil.publics[i].polType == "imP") {
await calculateExpression(pil.publics[i].polId);
pols.publics[i] = pols.exps[pil.publics[i].polId].v_n[pil.publics[i].idx];
delete pols.exps[pil.publics[i].polId].v_n;
} else {
throw new Error(`Invalid public type: ${polType.type}`);
}
}
=
polIdentities约束,依次calculateExpression(pil.polIdentities[i].e)
,逐个判断结算结果pols.exps[pil.polIdentities[i].e].v_n[j]是否为0,若为非零值则说明有错误。若全部为0值,则说明verifyPil
验证通过。5)debug运行fibonacci build constree
:运行main_buildconsttree.js
,输入有:【pil中的所有const多项式构建一个merkle tree。详细参看 STARKs and STARK VM: Proofs of Computational Integrity,本质为将const多项式在trace domain的evaluation值扩展到low degree extension domain的evaluation值,然后将所有const多项式的low degree extension domain的evaluation值构建一棵merkle tree。】
fibonacci.const
:为运行状态机中main_buildconst_fibonacci.js
获得的输出。【为pil中的const多项式赋值】fibonacci_main.pil
程序fibonacci.starkstruct.json
,为:{
"nBits": 10,
"nBitsExt": 11,
"nQueries": 8,
"verificationHashType": "GL",
"steps": [
{"nBits": 11},
{"nBits": 7},
{"nBits": 3}
]
}
输出为:
fibonacci.consttree
:为常量多项式在Low Degree Extension domain evaluation值的Merkle树。fibonacci.verkey.json
:为常量多项式在Low Degree Extension domain evaluation值的Merkle树 的root。/usr/local/bin/node --max-old-space-size=32000 src/main_buildconsttree.js -c /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.const -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci_main.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.starkstruct.json -t /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.consttree -v /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verkey.json
loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.const.. 0 of 0.001953125
Interpolating reverse....
Layer ifft0
start block 10 0
end block 10 0
Interpolating prepare....
linear interpolatePrepare start.... 0/0
linear interpolatePrepare end.... 0/0
Bit reverse....
Layer fft 0
start block 11 0
end block 11 0
interpolation terminated
pool terminated
Start merkelizing..
slicing buff 0
creating thread 0
waiting..
linear hash start.... 0/2048
merkelizing hash start.... 0/1024
merkelizing hash end.... 0/1024
merkelizing hash start.... 0/512
merkelizing hash end.... 0/512
merkelizing hash start.... 0/256
merkelizing hash end.... 0/256
merkelizing hash start.... 0/128
merkelizing hash end.... 0/128
merkelizing hash start.... 0/64
merkelizing hash end.... 0/64
merkelizing hash start.... 0/32
merkelizing hash end.... 0/32
merkelizing hash start.... 0/16
merkelizing hash end.... 0/16
merkelizing hash start.... 0/8
merkelizing hash end.... 0/8
merkelizing hash start.... 0/4
merkelizing hash end.... 0/4
merkelizing hash start.... 0/2
merkelizing hash end.... 0/2
merkelizing hash start.... 0/1
merkelizing hash end.... 0/1
writting tree.. 0 / 4096
writting tree.. 0 / 16380
files Generated Correctly
6)debug运行fibonacci prove
:运行main_prover.js
,输入有:
fibonacci.commit
:为基于fibonacci.input.json
运行状态机中main_exec_fibonacci.js
获得的输出。fibonacci.const
:为运行状态机中main_buildconst_fibonacci.js
获得的输出。fibonacci.consttree
:为运行main_buildconsttree.js
获得的输出。fibonacci_main.pil
:状态机程序fibonacci.starkstruct.json
:状态机STARK结构配置文件输出有:
fibonacci.proof.json
:STARK证明fibonacci.proof.zkin.json
:zk输入,供fibonacci C12 exec使用。fibonacci.public.json
:公开输入/usr/local/bin/node --max-old-space-size=32000 src/main_prover.js -m /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.commit -c /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.const -t /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.consttree -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci_main.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.starkstruct.json -o /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.proof.json -z /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.proof.zkin.json -b /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.public.json
loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.const.. 0 of 0.001953125
loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.commit.. 0 of 0.001953125
Loading tree.. 0/4096
Loading tree.. 0/16380
Merkelizing 1....
Interpolating reverse....
Layer ifft0
start block 10 0
end block 10 0
Interpolating prepare....
linear interpolatePrepare start.... 0/0
linear interpolatePrepare end.... 0/0
Bit reverse....
Layer fft 0
start block 11 0
end block 11 0
interpolation terminated
pool terminated
slicing buff 0
creating thread 0
waiting..
linear hash start.... 0/2048
merkelizing hash start.... 0/1024
merkelizing hash end.... 0/1024
merkelizing hash start.... 0/512
merkelizing hash end.... 0/512
merkelizing hash start.... 0/256
merkelizing hash end.... 0/256
merkelizing hash start.... 0/128
merkelizing hash end.... 0/128
merkelizing hash start.... 0/64
merkelizing hash end.... 0/64
merkelizing hash start.... 0/32
merkelizing hash end.... 0/32
merkelizing hash start.... 0/16
merkelizing hash end.... 0/16
merkelizing hash start.... 0/8
merkelizing hash end.... 0/8
merkelizing hash start.... 0/4
merkelizing hash end.... 0/4
merkelizing hash start.... 0/2
merkelizing hash end.... 0/2
merkelizing hash start.... 0/1
merkelizing hash end.... 0/1
start exec step2prev... 0/1024
end exec step2prev... 0/1024
Merkelizing 2....
Interpolating reverse....
Layer ifft0
start block 10 0
end block 10 0
Interpolating prepare....
Bit reverse....
Layer fft 0
linear interpolatePrepare start.... 0/0
linear interpolatePrepare end.... 0/0
start block 11 0
end block 11 0
interpolation terminated
pool terminated
slicing buff 0
creating thread 0
waiting..
linear hash start.... 0/2048
merkelizing hash start.... 0/1024
merkelizing hash end.... 0/1024
merkelizing hash start.... 0/512
merkelizing hash end.... 0/512
merkelizing hash start.... 0/256
merkelizing hash end.... 0/256
merkelizing hash start.... 0/128
merkelizing hash end.... 0/128
merkelizing hash start.... 0/64
merkelizing hash end.... 0/64
merkelizing hash start.... 0/32
merkelizing hash end.... 0/32
merkelizing hash start.... 0/16
merkelizing hash end.... 0/16
merkelizing hash start.... 0/8
merkelizing hash end.... 0/8
merkelizing hash start.... 0/4
merkelizing hash end.... 0/4
merkelizing hash start.... 0/2
merkelizing hash end.... 0/2
merkelizing hash start.... 0/1
merkelizing hash end.... 0/1
start exec step3prev... 0/1024
end exec step3prev... 0/1024
Merkelizing 3....
Interpolating reverse....
Layer ifft0
start block 10 0
end block 10 0
Interpolating prepare....
Bit reverse....
linear interpolatePrepare start.... 0/0
linear interpolatePrepare end.... 0/0
Layer fft 0
start block 11 0
end block 11 0
interpolation terminated
pool terminated
slicing buff 0
creating thread 0
waiting..
linear hash start.... 0/2048
merkelizing hash start.... 0/1024
merkelizing hash end.... 0/1024
merkelizing hash start.... 0/512
merkelizing hash end.... 0/512
merkelizing hash start.... 0/256
merkelizing hash end.... 0/256
merkelizing hash start.... 0/128
merkelizing hash end.... 0/128
merkelizing hash start.... 0/64
merkelizing hash end.... 0/64
merkelizing hash start.... 0/32
merkelizing hash end.... 0/32
merkelizing hash start.... 0/16
merkelizing hash end.... 0/16
merkelizing hash start.... 0/8
merkelizing hash end.... 0/8
merkelizing hash start.... 0/4
merkelizing hash end.... 0/4
merkelizing hash start.... 0/2
merkelizing hash end.... 0/2
merkelizing hash start.... 0/1
merkelizing hash end.... 0/1
start exec step4... 0/1024
end exec step4... 0/1024
Interpolating reverse....
Layer ifft0
start block 10 0
end block 10 0
linear interpolatePrepare start.... 0/1
linear interpolatePrepare end.... 0/1
start block 11 0
Interpolating prepare....
Bit reverse....
Layer fft 0
end block 11 0
interpolation terminated
pool terminated
start exec step42ns... 0/2048
end exec step42ns... 0/2048
Merkelizing 4....
slicing buff 0
creating thread 0
waiting..
linear hash start.... 0/2048
merkelizing hash start.... 0/1024
merkelizing hash end.... 0/1024
merkelizing hash start.... 0/512
merkelizing hash end.... 0/512
merkelizing hash start.... 0/256
merkelizing hash end.... 0/256
merkelizing hash start.... 0/128
merkelizing hash end.... 0/128
merkelizing hash start.... 0/64
merkelizing hash end.... 0/64
merkelizing hash start.... 0/32
merkelizing hash end.... 0/32
merkelizing hash start.... 0/16
merkelizing hash end.... 0/16
merkelizing hash start.... 0/8
merkelizing hash end.... 0/8
merkelizing hash start.... 0/4
merkelizing hash end.... 0/4
merkelizing hash start.... 0/2
merkelizing hash end.... 0/2
merkelizing hash start.... 0/1
merkelizing hash end.... 0/1
start exec step52ns... 0/2048
end exec step52ns... 0/2048
slicing buff 0
creating thread 0
waiting..
linear hash start.... 0/128
linear hash end.... 0/128
merkelizing hash start.... 0/64
merkelizing hash end.... 0/64
merkelizing hash start.... 0/32
merkelizing hash end.... 0/32
merkelizing hash start.... 0/16
merkelizing hash end.... 0/16
merkelizing hash start.... 0/8
merkelizing hash end.... 0/8
merkelizing hash start.... 0/4
merkelizing hash end.... 0/4
merkelizing hash start.... 0/2
merkelizing hash end.... 0/2
merkelizing hash start.... 0/1
merkelizing hash end.... 0/1
slicing buff 0
creating thread 0
waiting..
linear hash start.... 0/8
linear hash end.... 0/8
merkelizing hash start.... 0/4
merkelizing hash end.... 0/4
merkelizing hash start.... 0/2
merkelizing hash end.... 0/2
merkelizing hash start.... 0/1
merkelizing hash end.... 0/1
files Generated Correctly
7)debug运行fibonacci verify proof
:运行main_verifier.js
,输出为验证是否通过,输入有:
fibonacci_main.pil
:状态机程序。fibonacci.starkstruct.json
:状态机STARK结构配置文件。fibonacci.proof.json
:STARK证明。fibonacci.public.json
:公开输入。fibonacci.verkey.json
:验证密钥。/usr/local/bin/node --max-old-space-size=32000 src/main_verifier.js -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci_main.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci//fibonacci.starkstruct.json -o /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.proof.json -b /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.public.json -v /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verkey.json
Query:1419
Query:837
Query:685
Query:1624
Query:1237
Query:7
Query:672
Query:827
Verification Ok!!
8)debug运行fibonacci generate circom
:运行main_pil2circom.js
,输出为fibonacci.verifier.circom
文件,输入有:
fibonacci_main.pil
:状态机程序。fibonacci.starkstruct.json
:状态机STARK结构配置文件。fibonacci.verkey.json
:验证密钥。/usr/local/bin/node --max-old-space-size=32000 src/main_pil2circom.js -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci_main.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.starkstruct.json -v /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verkey.json -o /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verifier.circom
file Generated Correctly
9)scripts运行fibonacci_compileverifier
:调用circom
,输入为fibonacci.verifier.circom
,输出有:
fibonacci.verifier.r1cs
:为电路的r1cs 约束系统,以二进制表示。fibonacci.verifier.sym
:为在注释模式下调试和打印约束系统所需的符号文件。ffibonacci.verifier.wasm
:为生成witness的wasm代码。generate_witness.js
witness_calculator.js
。$ npm run fibonacci_compileverifier
Debugger attached.
> [email protected] fibonacci_compileverifier
> circom --O1 --prime goldilocks --r1cs --sym --wasm --verbose tmp/fibonacci.verifier.circom -o tmp
template instances: 29
non-linear constraints: 216090
linear constraints: 115823
public inputs: 3
public outputs: 0
private inputs: 2280
private outputs: 0
wires: 496743
labels: 678212
Written successfully: tmp/fibonacci.verifier.r1cs
Written successfully: tmp/fibonacci.verifier.sym
Written successfully: tmp/fibonacci.verifier_js/fibonacci.verifier.wasm
Everything went okay, circom safe
Waiting for the debugger to disconnect...
10)debug运行fibonacci C12 setup
:运作compressor12/main_compressor12_setup.js
,输入为fibonacci.verifier.r1cs
,输出有:
fibonacci.c12.pil
fibonacci.c12.const
fibonacci.c12.exec
/usr/local/bin/node --max-old-space-size=32000 src/compressor12/main_compressor12_setup.js -r /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verifier.r1cs -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -c /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.const -e /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.exec
undefined: Loading constraints: 0/331913
undefined: Loading constraints: 100000/331913
undefined: Loading constraints: 200000/331913
undefined: Loading constraints: 300000/331913
undefined: Loading custom gate uses: 0/13845
Plonk info constraint processing... 0/339443
Plonk info constraint processing... 10000/339443
Plonk info constraint processing... 20000/339443
Plonk info constraint processing... 30000/339443
Plonk info constraint processing... 40000/339443
Plonk info constraint processing... 50000/339443
Plonk info constraint processing... 60000/339443
Plonk info constraint processing... 70000/339443
Plonk info constraint processing... 80000/339443
Plonk info constraint processing... 90000/339443
Plonk info constraint processing... 100000/339443
Plonk info constraint processing... 110000/339443
Plonk info constraint processing... 120000/339443
Plonk info constraint processing... 130000/339443
Plonk info constraint processing... 140000/339443
Plonk info constraint processing... 150000/339443
Plonk info constraint processing... 160000/339443
Plonk info constraint processing... 170000/339443
Plonk info constraint processing... 180000/339443
Plonk info constraint processing... 190000/339443
Plonk info constraint processing... 200000/339443
Plonk info constraint processing... 210000/339443
Plonk info constraint processing... 220000/339443
Plonk info constraint processing... 230000/339443
Plonk info constraint processing... 240000/339443
Plonk info constraint processing... 250000/339443
Plonk info constraint processing... 260000/339443
Plonk info constraint processing... 270000/339443
Plonk info constraint processing... 280000/339443
Plonk info constraint processing... 290000/339443
Plonk info constraint processing... 300000/339443
Plonk info constraint processing... 310000/339443
Plonk info constraint processing... 320000/339443
Plonk info constraint processing... 330000/339443
ffffffff00000000,0,0,1,0 => 106084
0,ffffffff00000000,1,1,0 => 5913
1,0,0,ffffffff00000000,0 => 3642
0,1,1,ffffffff00000000,0 => 1635
0,ffffffff00000000,0,0,0 => 1517
0,1,ffffffff00000000,1,0 => 1483
0,1,ffffffff00000000,0,0 => 1135
0,1,ffffffff00000000,ffffffff00000000,0 => 766
ffffffff00000000,4a7a08980debbbfc,4a7a08980debbbfc,1,c61bd208ec3c0fa1 => 449
ffffffff00000000,0,4a7a08980debbbfc,1,0 => 449
ffffffff00000000,88b95a9fbc6de52a,88b95a9fbc6de52a,1,75ce679679451a15 => 449
ffffffff00000000,0,88b95a9fbc6de52a,1,0 => 449
ffffffff00000000,4d04f2cd3118664d,4d04f2cd3118664d,1,c3756f9932155297 => 449
ffffffff00000000,0,4d04f2cd3118664d,1,0 => 449
ffffffff00000000,f0989f5a7fcbd82a,f0989f5a7fcbd82a,1,ee347190fb432101 => 449
ffffffff00000000,0,f0989f5a7fcbd82a,1,0 => 449
ffffffff00000000,1ef29998af0b1fef,1ef29998af0b1fef,1,7138c73b09116996 => 449
ffffffff00000000,0,1ef29998af0b1fef,1,0 => 449
ffffffff00000000,7351eb33f82f6410,7351eb33f82f6410,1,18b6d0e3aeec489f => 449
ffffffff00000000,0,7351eb33f82f6410,1,0 => 449
ffffffff00000000,2bc7ac626a09c162,2bc7ac626a09c162,1,71afa5ff39384c97 => 449
ffffffff00000000,0,2bc7ac626a09c162,1,0 => 449
ffffffff00000000,1087e3821ca4b3c4,1087e3821ca4b3c4,1,b500968a50b4639e => 449
ffffffff00000000,0,1087e3821ca4b3c4,1,0 => 449
ffffffff00000000,323b5dc54f3bbbdb,323b5dc54f3bbbdb,1,fddd08812d4e5f9c => 449
ffffffff00000000,0,323b5dc54f3bbbdb,1,0 => 449
ffffffff00000000,d8805df640cc8402,d8805df640cc8402,1,c68b2f87b5ed9227 => 449
ffffffff00000000,0,d8805df640cc8402,1,0 => 449
ffffffff00000000,1e89ac5c625a8760,1e89ac5c625a8760,1,88818136a288ec90 => 449
ffffffff00000000,0,1e89ac5c625a8760,1,0 => 449
ffffffff00000000,3abcfd0cda24d38b,3abcfd0cda24d38b,1,e085319e9b6f3e7a => 449
ffffffff00000000,0,3abcfd0cda24d38b,1,0 => 449
ffffffff00000000,79d787dd08dd3780,79d787dd08dd3780,1,b875ba22cab61421 => 449
ffffffff00000000,0,79d787dd08dd3780,1,0 => 449
ffffffff00000000,a632e574be3e71ac,a632e574be3e71ac,1,57d26c1b01a1d8a => 449
ffffffff00000000,0,a632e574be3e71ac,1,0 => 449
ffffffff00000000,3c46e651b6a23a8d,3c46e651b6a23a8d,1,3b37aa4c7bdbf85b => 449
ffffffff00000000,0,3c46e651b6a23a8d,1,0 => 449
ffffffff00000000,5b7b3b391095f880,5b7b3b391095f880,1,284556ef72cc8092 => 449
ffffffff00000000,0,5b7b3b391095f880,1,0 => 449
ffffffff00000000,cf7442db23abe935,cf7442db23abe935,1,34e12532d49bc4dc => 449
ffffffff00000000,0,cf7442db23abe935,1,0 => 449
ffffffff00000000,91b5bf3d70cf3f65,91b5bf3d70cf3f65,1,26920ca9f36f8dc7 => 449
ffffffff00000000,0,91b5bf3d70cf3f65,1,0 => 449
ffffffff00000000,65d11247f2707307,65d11247f2707307,1,d857a28fb2c421ab => 449
ffffffff00000000,0,65d11247f2707307,1,0 => 449
ffffffff00000000,1c9f391e51b790c9,1c9f391e51b790c9,1,8c74b3f7223aa763 => 449
ffffffff00000000,0,1c9f391e51b790c9,1,0 => 449
ffffffff00000000,2a388e6f4039b806,2a388e6f4039b806,1,9a103489b100a053 => 449
ffffffff00000000,0,2a388e6f4039b806,1,0 => 449
ffffffff00000000,3ca151f7e6fc00f6,3ca151f7e6fc00f6,1,eef35d88a609158 => 449
ffffffff00000000,0,3ca151f7e6fc00f6,1,0 => 449
ffffffff00000000,7b63d9a86963b41a,7b63d9a86963b41a,1,4bba55aa033ecb1a => 449
ffffffff00000000,0,7b63d9a86963b41a,1,0 => 449
ffffffff00000000,3fa8d372f7344454,3fa8d372f7344454,1,eca3e14ceeaeb136 => 449
ffffffff00000000,0,3fa8d372f7344454,1,0 => 449
ffffffff00000000,16059cb4de21ff7f,16059cb4de21ff7f,1,bed7e03755429ce => 449
ffffffff00000000,0,16059cb4de21ff7f,1,0 => 449
ffffffff00000000,a9092b66a659ff4,a9092b66a659ff4,1,fcb9ba16f792d2b7 => 449
ffffffff00000000,0,a9092b66a659ff4,1,0 => 449
ffffffff00000000,828ec16f9c6ee9c,828ec16f9c6ee9c,1,f4e5eac2a11101e8 => 449
ffffffff00000000,0,828ec16f9c6ee9c,1,0 => 449
ffffffff00000000,7d68ecd3cd7da252,7d68ecd3cd7da252,1,e631f0801c4a98b9 => 449
ffffffff00000000,0,7d68ecd3cd7da252,1,0 => 449
ffffffff00000000,5297fa1e1cf4d377,5297fa1e1cf4d377,1,57fb75397922986 => 449
ffffffff00000000,0,5297fa1e1cf4d377,1,0 => 449
ffffffff00000000,53ae26090307aca3,53ae26090307aca3,1,90ba84aaf5e2b8f1 => 449
ffffffff00000000,0,53ae26090307aca3,1,0 => 449
ffffffff00000000,afd52822e73d527a,afd52822e73d527a,1,586ae3c6c944c0b => 449
ffffffff00000000,0,afd52822e73d527a,1,0 => 449
ffffffff00000000,a85eaaf2eef4cfc0,a85eaaf2eef4cfc0,1,ceffc43f9654abbc => 449
ffffffff00000000,0,a85eaaf2eef4cfc0,1,0 => 449
ffffffff00000000,99442cf0931f1a7e,99442cf0931f1a7e,1,f9895cb3b20da4b4 => 449
ffffffff00000000,0,99442cf0931f1a7e,1,0 => 449
ffffffff00000000,f25d540fa7629bb3,f25d540fa7629bb3,1,eb5429158f26a89d => 449
ffffffff00000000,0,f25d540fa7629bb3,1,0 => 449
ffffffff00000000,f9ed8af24eaf2a0,f9ed8af24eaf2a0,1,149a3cd0446e3c87 => 449
ffffffff00000000,0,f9ed8af24eaf2a0,1,0 => 449
ffffffff00000000,d74713c4163d69ce,d74713c4163d69ce,1,c8689c5d0ac80474 => 449
ffffffff00000000,0,d74713c4163d69ce,1,0 => 449
ffffffff00000000,6d58a91881d46bee,6d58a91881d46bee,1,811a3ea0f21d5126 => 449
ffffffff00000000,0,6d58a91881d46bee,1,0 => 449
ffffffff00000000,8f18be1301169a7b,8f18be1301169a7b,1,7c5da2b0db881b7e => 449
ffffffff00000000,0,8f18be1301169a7b,1,0 => 449
ffffffff00000000,fe62a11c507d13e5,fe62a11c507d13e5,1,6230bec05c648678 => 449
ffffffff00000000,0,fe62a11c507d13e5,1,0 => 449
ffffffff00000000,9090d1278db99caf,9090d1278db99caf,1,d574aae62da15a33 => 449
ffffffff00000000,0,9090d1278db99caf,1,0 => 449
ffffffff00000000,830be92f181eb360,830be92f181eb360,1,848d5ca5cc080dfe => 449
ffffffff00000000,0,830be92f181eb360,1,0 => 449
ffffffff00000000,9e20ae83795b9bc8,9e20ae83795b9bc8,1,d7508f949452f707 => 449
ffffffff00000000,0,9e20ae83795b9bc8,1,0 => 449
ffffffff00000000,7a23b663ee28848c,7a23b663ee28848c,1,41713ccda295d50 => 449
ffffffff00000000,0,7a23b663ee28848c,1,0 => 449
ffffffff00000000,b46a64b6463ef8ce,b46a64b6463ef8ce,1,3cdd28d942e7a6c5 => 449
ffffffff00000000,0,b46a64b6463ef8ce,1,0 => 449
ffffffff00000000,1741c1a157fbc1aa,1741c1a157fbc1aa,1,d49067f60471b3ca => 449
ffffffff00000000,0,1741c1a157fbc1aa,1,0 => 449
ffffffff00000000,a3f43e119257968,a3f43e119257968,1,3a2ae8f86f866db5 => 449
ffffffff00000000,0,a3f43e119257968,1,0 => 449
ffffffff00000000,bf4ed33ff6108b42,bf4ed33ff6108b42,1,7f17bb53dd6f1bf7 => 449
ffffffff00000000,0,bf4ed33ff6108b42,1,0 => 449
ffffffff00000000,59c8f6c034d529d0,59c8f6c034d529d0,1,f5198387236dca52 => 449
ffffffff00000000,0,59c8f6c034d529d0,1,0 => 449
ffffffff00000000,c33c076ce7b20bf9,c33c076ce7b20bf9,1,9c767dc4f44e25e6 => 449
ffffffff00000000,0,c33c076ce7b20bf9,1,0 => 449
ffffffff00000000,8ece55b9d9728275,8ece55b9d9728275,1,f3d47e2cc4047246 => 449
ffffffff00000000,0,8ece55b9d9728275,1,0 => 449
ffffffff00000000,6652e553f7ebd7c6,6652e553f7ebd7c6,1,b94ecdd6da4e1492 => 449
ffffffff00000000,0,6652e553f7ebd7c6,1,0 => 449
ffffffff00000000,147b09f625a910b9,147b09f625a910b9,1,b3c8b5917b17a566 => 449
ffffffff00000000,0,147b09f625a910b9,1,0 => 449
ffffffff00000000,8ea632ce3c53ee73,8ea632ce3c53ee73,1,87f3508aa34953b1 => 449
ffffffff00000000,0,8ea632ce3c53ee73,1,0 => 449
ffffffff00000000,2310f8673d49613a,2310f8673d49613a,1,37f56bd3017e8e0b => 449
ffffffff00000000,0,2310f8673d49613a,1,0 => 449
ffffffff00000000,2f89d3427359a8f5,2f89d3427359a8f5,1,873c591232c868b4 => 449
ffffffff00000000,0,2f89d3427359a8f5,1,0 => 449
ffffffff00000000,cf5b97f96cda7c7a,cf5b97f96cda7c7a,1,c387f11c3f3bc078 => 449
ffffffff00000000,0,cf5b97f96cda7c7a,1,0 => 449
ffffffff00000000,ea5e95747cdd2ba9,ea5e95747cdd2ba9,1,14a9dee0c265ab32 => 449
ffffffff00000000,0,ea5e95747cdd2ba9,1,0 => 449
ffffffff00000000,a5c0e44d3ac569bc,a5c0e44d3ac569bc,1,34352e5c2182bffa => 449
ffffffff00000000,0,a5c0e44d3ac569bc,1,0 => 449
ffffffff00000000,88affa66d28b280a,88affa66d28b280a,1,d6df4562ed1103f2 => 449
ffffffff00000000,0,88affa66d28b280a,1,0 => 449
ffffffff00000000,6336a3cd4b3e035,6336a3cd4b3e035,1,79defca543f7451d => 449
ffffffff00000000,0,6336a3cd4b3e035,1,0 => 449
ffffffff00000000,f3b6c9934da17aee,f3b6c9934da17aee,1,ae04f738c32c6592 => 449
ffffffff00000000,0,f3b6c9934da17aee,1,0 => 449
ffffffff00000000,229ee0eeff3e8bbf,229ee0eeff3e8bbf,1,d071730c6e5469fa => 449
ffffffff00000000,0,229ee0eeff3e8bbf,1,0 => 449
ffffffff00000000,fd00788f5a10683d,fd00788f5a10683d,1,bd77aec474c37281 => 449
ffffffff00000000,0,fd00788f5a10683d,1,0 => 449
ffffffff00000000,c2f93741eaeb1d28,c2f93741eaeb1d28,1,c7c9efb5bf14d96 => 449
ffffffff00000000,0,c2f93741eaeb1d28,1,0 => 449
ffffffff00000000,176327aa2a2fe2ce,176327aa2a2fe2ce,1,a3adbd45a0e51f86 => 449
ffffffff00000000,0,176327aa2a2fe2ce,1,0 => 449
ffffffff00000000,131a58e0f301238c,131a58e0f301238c,1,7dd76d457e044b95 => 449
ffffffff00000000,0,131a58e0f301238c,1,0 => 449
ffffffff00000000,6fffb3eb8e476c3c,6fffb3eb8e476c3c,1,bdcd6dfb9d0fb33b => 449
ffffffff00000000,0,6fffb3eb8e476c3c,1,0 => 449
ffffffff00000000,21edd413165c6c99,21edd413165c6c99,1,cc619baac34093c5 => 449
ffffffff00000000,0,21edd413165c6c99,1,0 => 449
ffffffff00000000,b29e1a94ada2dda7,b29e1a94ada2dda7,1,4700e8d31319d68f => 449
ffffffff00000000,0,b29e1a94ada2dda7,1,0 => 449
ffffffff00000000,eb872c9d24406055,eb872c9d24406055,1,2513a2c9380268bd => 449
ffffffff00000000,0,eb872c9d24406055,1,0 => 449
ffffffff00000000,b8a32cdea5c42323,b8a32cdea5c42323,1,602846d4ce6eb6a0 => 449
ffffffff00000000,0,b8a32cdea5c42323,1,0 => 449
ffffffff00000000,e75bdef93ce48179,e75bdef93ce48179,1,af2179964b5ea68e => 449
ffffffff00000000,0,e75bdef93ce48179,1,0 => 449
ffffffff00000000,fdc18bea5099cf99,fdc18bea5099cf99,1,b03801e4f5632daf => 449
ffffffff00000000,0,fdc18bea5099cf99,1,0 => 449
ffffffff00000000,eaeb8ef6ede6982a,eaeb8ef6ede6982a,1,c1bb003281c2c4da => 449
ffffffff00000000,0,eaeb8ef6ede6982a,1,0 => 449
ffffffff00000000,1b5c200d28290108,1b5c200d28290108,1,63963fe4024c4e12 => 449
ffffffff00000000,0,1b5c200d28290108,1,0 => 449
ffffffff00000000,fe572e5977f7a8ca,fe572e5977f7a8ca,1,b85c99621edea1ee => 449
ffffffff00000000,0,fe572e5977f7a8ca,1,0 => 449
ffffffff00000000,ee4b38b0259d4112,ee4b38b0259d4112,1,1387d90e92e5c708 => 449
ffffffff00000000,0,ee4b38b0259d4112,1,0 => 449
ffffffff00000000,1a7833f19658ccbb,1a7833f19658ccbb,1,780eb4774a03351f => 449
ffffffff00000000,0,1a7833f19658ccbb,1,0 => 449
ffffffff00000000,e008cd8ee855d593,e008cd8ee855d593,1,c81b080b62d6609e => 449
ffffffff00000000,0,e008cd8ee855d593,1,0 => 449
ffffffff00000000,a6b1d63adb8c2f96,a6b1d63adb8c2f96,1,cdd2a7b1f9068ba2 => 449
ffffffff00000000,0,a6b1d63adb8c2f96,1,0 => 449
ffffffff00000000,90ce24d7664ed2c,90ce24d7664ed2c,1,9803627abbda779e => 449
ffffffff00000000,0,90ce24d7664ed2c,1,0 => 449
ffffffff00000000,3fd53a1a8ced2c37,3fd53a1a8ced2c37,1,25f48bb1d12cf96d => 449
ffffffff00000000,0,3fd53a1a8ced2c37,1,0 => 449
ffffffff00000000,18fdfe159f348749,18fdfe159f348749,1,eadb3640580ff9c5 => 449
ffffffff00000000,0,18fdfe159f348749,1,0 => 449
ffffffff00000000,906f00c3959a0ef9,906f00c3959a0ef9,1,f208dca724f284ac => 449
ffffffff00000000,0,906f00c3959a0ef9,1,0 => 449
ffffffff00000000,bd8b858cba18057d,bd8b858cba18057d,1,59bc1e23f80e451d => 449
ffffffff00000000,0,bd8b858cba18057d,1,0 => 449
ffffffff00000000,2e0af81ac548b64f,2e0af81ac548b64f,1,e05b7e7a5574f17e => 449
ffffffff00000000,0,2e0af81ac548b64f,1,0 => 449
ffffffff00000000,e3792d990ea8af34,e3792d990ea8af34,1,c1f93cb240c62a80 => 449
ffffffff00000000,0,e3792d990ea8af34,1,0 => 449
ffffffff00000000,c669318b227cd3e5,c669318b227cd3e5,1,c9c2e52cb79d8a03 => 449
ffffffff00000000,0,c669318b227cd3e5,1,0 => 449
ffffffff00000000,718045fc67cddb44,718045fc67cddb44,1,5140cbe776caa63e => 449
ffffffff00000000,0,718045fc67cddb44,1,0 => 449
ffffffff00000000,45f2138dfcdaa22d,45f2138dfcdaa22d,1,a605375c63f9b29b => 449
ffffffff00000000,0,45f2138dfcdaa22d,1,0 => 449
ffffffff00000000,61634286e9d703a6,61634286e9d703a6,1,1e31d83f9b02b400 => 449
ffffffff00000000,0,61634286e9d703a6,1,0 => 449
ffffffff00000000,25179ba56912295c,25179ba56912295c,1,381f86dbdc7b1570 => 449
ffffffff00000000,0,25179ba56912295c,1,0 => 449
ffffffff00000000,2141f7ab4e5e2c89,2141f7ab4e5e2c89,1,ade28607aac4c8b3 => 449
ffffffff00000000,0,2141f7ab4e5e2c89,1,0 => 449
ffffffff00000000,5b6dd62cb2febcbe,5b6dd62cb2febcbe,1,6d6df090b0f7f28c => 449
ffffffff00000000,0,5b6dd62cb2febcbe,1,0 => 449
ffffffff00000000,841a45ff256fa1e5,841a45ff256fa1e5,1,c4c65034b0c58624 => 449
ffffffff00000000,0,841a45ff256fa1e5,1,0 => 449
ffffffff00000000,5c36a1503dbb55d1,5c36a1503dbb55d1,1,2e0bf3e12afb927c => 449
ffffffff00000000,0,5c36a1503dbb55d1,1,0 => 449
ffffffff00000000,fdcf43560b20fabd,fdcf43560b20fabd,1,299b6b8b21a8f90b => 449
ffffffff00000000,0,fdcf43560b20fabd,1,0 => 449
ffffffff00000000,beca3d40401eb73b,beca3d40401eb73b,1,68ec6e0fb071e23b => 449
ffffffff00000000,0,beca3d40401eb73b,1,0 => 449
ffffffff00000000,e9903f32bc75c38f,e9903f32bc75c38f,1,e65a777fabb1fb7 => 449
ffffffff00000000,0,e9903f32bc75c38f,1,0 => 449
ffffffff00000000,c89d4a647517c107,c89d4a647517c107,1,95e9760842338e8c => 449
ffffffff00000000,0,c89d4a647517c107,1,0 => 449
ffffffff00000000,176d75b276eeb8b1,176d75b276eeb8b1,1,99c5a563693eb92c => 449
ffffffff00000000,0,176d75b276eeb8b1,1,0 => 449
ffffffff00000000,d5bbf4ad5b6ba11c,d5bbf4ad5b6ba11c,1,549d995e90e5a918 => 449
ffffffff00000000,0,d5bbf4ad5b6ba11c,1,0 => 449
ffffffff00000000,7f3102d38266007e,7f3102d38266007e,1,cd05ad4d32a887f => 449
ffffffff00000000,0,7f3102d38266007e,1,0 => 449
ffffffff00000000,4467863819e029d7,4467863819e029d7,1,73e617cea734698 => 449
ffffffff00000000,0,4467863819e029d7,1,0 => 449
ffffffff00000000,918370e47bd9afcd,918370e47bd9afcd,1,f8c68091625e5173 => 449
ffffffff00000000,0,918370e47bd9afcd,1,0 => 449
ffffffff00000000,e9b44d20e4412239,e9b44d20e4412239,1,a678b8cb54d0dc1f => 449
ffffffff00000000,0,e9b44d20e4412239,1,0 => 449
ffffffff00000000,c3ed019b2a39ac6,c3ed019b2a39ac6,1,5d9e76ea113ac468 => 449
ffffffff00000000,0,c3ed019b2a39ac6,1,0 => 449
ffffffff00000000,bf4616dc12688e1f,bf4616dc12688e1f,1,81bae26e50afe726 => 449
ffffffff00000000,0,bf4616dc12688e1f,1,0 => 449
ffffffff00000000,aae0a4ef4184e7c1,aae0a4ef4184e7c1,1,9a68a3026f33d89e => 449
ffffffff00000000,0,aae0a4ef4184e7c1,1,0 => 449
ffffffff00000000,dafcd5573b34e7f0,dafcd5573b34e7f0,1,3869b9c560d857a => 449
ffffffff00000000,0,dafcd5573b34e7f0,1,0 => 449
ffffffff00000000,5512cbf7b4e9bcbb,5512cbf7b4e9bcbb,1,2c044589dc37bd07 => 449
ffffffff00000000,0,5512cbf7b4e9bcbb,1,0 => 449
ffffffff00000000,70026943063637e4,70026943063637e4,1,704b8a285661ef76 => 449
ffffffff00000000,0,70026943063637e4,1,0 => 449
ffffffff00000000,8f036e13a6c8f7a5,8f036e13a6c8f7a5,1,40b2e05d2aa456e4 => 449
ffffffff00000000,0,8f036e13a6c8f7a5,1,0 => 449
ffffffff00000000,8086a1d4a06eabc1,8086a1d4a06eabc1,1,70c07dcc64c34324 => 449
ffffffff00000000,0,8086a1d4a06eabc1,1,0 => 449
ffffffff00000000,babc261fab892c36,babc261fab892c36,1,d7f207cc143c06da => 449
ffffffff00000000,0,babc261fab892c36,1,0 => 449
ffffffff00000000,e8d28c0ffb036f4,e8d28c0ffb036f4,1,274afbb35495b542 => 449
ffffffff00000000,0,e8d28c0ffb036f4,1,0 => 449
ffffffff00000000,202e3b004337edc9,202e3b004337edc9,1,2003c4c9174f11d0 => 449
ffffffff00000000,0,202e3b004337edc9,1,0 => 449
ffffffff00000000,4372049c801aa705,4372049c801aa705,1,65385145be4ea9f0 => 449
ffffffff00000000,0,4372049c801aa705,1,0 => 449
0,1,ffffffff00000000,0,2e479dc157bf31bb => 449
0,1,ffffffff00000000,0,6f49de07a6234346 => 449
0,1,ffffffff00000000,0,213ce7bede378d7b => 449
0,1,ffffffff00000000,0,5b0431345d4dea83 => 449
0,1,ffffffff00000000,0,a2de45780344d6a1 => 449
0,1,ffffffff00000000,0,7103aaf94a7bf308 => 449
0,1,ffffffff00000000,0,5326fc0d97279301 => 449
0,1,ffffffff00000000,0,a9ceb74fec024747 => 449
0,1,ffffffff00000000,0,27f8ec88bb21b1a3 => 449
0,1,ffffffff00000000,0,fceb4fda1ded0893 => 449
0,1,ffffffff00000000,0,fac6ff1346a41675 => 449
0,1,ffffffff00000000,0,9351036095630f9f => 449
0,1,ffffffff00000000,0,ad535b24afc26bfb => 449
0,1,ffffffff00000000,0,4627f5c6993e44be => 449
0,1,ffffffff00000000,0,645cf794b8f1cc58 => 449
0,1,ffffffff00000000,0,241c70ed0af61617 => 449
0,1,ffffffff00000000,0,acb8e076647905f1 => 449
0,1,ffffffff00000000,0,3737e9db4c4f474d => 449
0,1,ffffffff00000000,0,e7ea5e33e75fffb6 => 449
0,1,ffffffff00000000,0,90dee49fc9bfc23a => 449
0,1,ffffffff00000000,0,d1b1edf76bc09c92 => 449
0,1,ffffffff00000000,0,b65481ba645c602 => 449
0,1,ffffffff00000000,0,438a7c91d416ca4d => 449
0,1,ffffffff00000000,0,b60de3bcc5ea751c => 449
0,1,ffffffff00000000,0,c99cab6aef6f58bc => 449
0,1,ffffffff00000000,0,69a5ed92a72ee4ff => 449
0,1,ffffffff00000000,0,5e7b329c1ed4ad71 => 449
0,1,ffffffff00000000,0,5fc0ac0800144885 => 449
0,1,ffffffff00000000,0,32db829239774eca => 449
0,1,ffffffff00000000,0,ade699c5830f310 => 449
0,1,ffffffff00000000,0,7cc5583b10415f21 => 449
0,1,ffffffff00000000,0,85df9ed2e166d64f => 449
0,1,ffffffff00000000,0,6604df4fee32bcb1 => 449
0,1,ffffffff00000000,0,da608834c40e603d => 449
0,1,ffffffff00000000,0,8f97fe408061f183 => 449
0,1,ffffffff00000000,0,a93f485c96f37b89 => 449
0,1,ffffffff00000000,0,6704e8ee8f18d563 => 449
0,1,ffffffff00000000,0,cee3e9ac1e072119 => 449
0,1,ffffffff00000000,0,510d0e65e2b470c1 => 449
0,1,ffffffff00000000,0,f6323f486b9038f0 => 449
0,1,ffffffff00000000,0,b508cdeffa5ceef => 449
0,1,ffffffff00000000,0,f2417089e4fb3cbd => 449
0,1,ffffffff00000000,0,60e75c2890d15730 => 449
0,1,ffffffff00000000,0,a6217d8bf660f29c => 449
0,1,ffffffff00000000,0,839b4e8fafead540 => 449
0,1,ffffffff00000000,0,d3f3e5e82920adc => 449
0,1,ffffffff00000000,0,8f7d83bddee7bba8 => 449
0,1,ffffffff00000000,0,780f2243ea071d06 => 449
0,1,ffffffff00000000,0,eb915845f3de1634 => 449
0,1,ffffffff00000000,0,d19e120d26b6f386 => 449
0,1,ffffffff00000000,0,16ee53a7e5fecc6 => 449
0,1,ffffffff00000000,0,cb5fd54e7933e477 => 449
0,1,ffffffff00000000,0,acb8417879fd449f => 449
0,1,ffffffff00000000,0,9c22190be7f74732 => 449
0,1,ffffffff00000000,0,5d693c1ba3ba3621 => 449
0,1,ffffffff00000000,0,3d639263da827b13 => 449
0,1,ffffffff00000000,0,e273fd971bc8d0e7 => 449
0,1,ffffffff00000000,0,418f02702d227ed5 => 449
0,1,ffffffff00000000,0,8c25fda3b503038c => 449
0,1,ffffffff00000000,0,2cbaed4daec8c07c => 449
0,1,ffffffff00000000,0,5f58e6afcdd6ddc2 => 449
0,1,ffffffff00000000,0,284650ac5e1b0eba => 449
0,1,ffffffff00000000,0,635b337ee819dab5 => 449
0,1,ffffffff00000000,0,9f9a036ed4f2d49f => 449
0,1,ffffffff00000000,0,b93e260cae5c170e => 449
0,1,ffffffff00000000,0,b0a7eae879ddb76d => 449
0,1,ffffffff00000000,0,34c6efb812b04bf5 => 449
0,1,ffffffff00000000,0,40bf0ab5fa14c112 => 449
0,1,ffffffff00000000,0,b6b570fc7c5740d3 => 449
0,1,ffffffff00000000,0,5a27b9002de33454 => 449
0,1,ffffffff00000000,0,b1a5b165b6d2b2d2 => 449
0,1,ffffffff00000000,0,8722e0ace9d1be22 => 449
0,1,ffffffff00000000,0,788ee3b37e5680fb => 449
0,1,ffffffff00000000,0,14a726661551e284 => 449
0,1,ffffffff00000000,0,98b7672f9ef3b419 => 449
0,1,ffffffff00000000,0,bb93ae776bb30e3a => 449
0,1,ffffffff00000000,0,28fd3b046380f850 => 449
0,1,ffffffff00000000,0,337dc00c61bd9ce1 => 449
0,1,ffffffff00000000,0,d5eca244c7a4ff1d => 449
0,1,ffffffff00000000,0,7762638264d279bd => 449
0,1,ffffffff00000000,0,c1e434bedeefd767 => 449
0,1,ffffffff00000000,0,299351a53b8ec22 => 449
0,1,ffffffff00000000,0,b2d456e4ad251b80 => 449
0,1,ffffffff00000000,0,3e9ed1fda49cea0b => 449
0,1,ffffffff00000000,0,2972a92ba450bed8 => 449
0,1,ffffffff00000000,0,20216dd77be493de => 449
0,1,ffffffff00000000,0,adffe8cf28449ec6 => 449
0,1,ffffffff00000000,0,1c4dbb1c4c27d243 => 449
0,1,ffffffff00000000,0,388a128b7fd9a609 => 449
0,1,ffffffff00000000,0,2300e5d6baedf0fb => 449
0,1,ffffffff00000000,0,2f63aa8647e15104 => 449
0,1,ffffffff00000000,0,f1c36ce86ecec269 => 449
0,1,ffffffff00000000,0,27181125183970c9 => 449
0,1,ffffffff00000000,0,e584029370dca96d => 449
0,1,ffffffff00000000,0,4d9bbc3e02f1cfb2 => 449
0,1,ffffffff00000000,0,ea35bc29692af6f8 => 449
0,1,ffffffff00000000,0,18e21b4beabb4137 => 449
0,1,ffffffff00000000,0,1e3b9fc625b554f4 => 449
0,1,ffffffff00000000,0,25d64362697828fd => 449
0,1,ffffffff00000000,0,db7f023869fb8d38 => 449
0,1,ffffffff00000000,0,b462065911d4e1fc => 449
0,1,ffffffff00000000,0,49c24ae4437d8030 => 449
0,1,ffffffff00000000,0,d793862c112b0566 => 449
0,1,ffffffff00000000,0,aadd1106730d8feb => 449
0,1,ffffffff00000000,0,c43b6e0e97b0d568 => 449
0,1,ffffffff00000000,0,e29024c18ee6fca2 => 449
0,1,ffffffff00000000,0,5e50c27535b88c66 => 449
0,1,ffffffff00000000,0,10383f20a4ff9a87 => 449
0,1,ffffffff00000000,0,38e8ee9d71a45af8 => 449
0,1,ffffffff00000000,0,dd5118375bf1a9b9 => 449
0,1,ffffffff00000000,0,86ab99b4dde6c8b0 => 449
0,1,ffffffff00000000,0,b1204f603f51c080 => 449
0,1,ffffffff00000000,0,ef61ac8470250ecf => 449
0,1,ffffffff00000000,0,1bbcd90f132c603f => 449
0,1,ffffffff00000000,0,cd1dabd964db557 => 449
0,1,ffffffff00000000,0,11a3ae5beb9d1ec9 => 449
0,1,ffffffff00000000,0,f755bfeea585d11d => 449
0,1,ffffffff00000000,0,a3b83250268ea4d7 => 449
0,1,ffffffff00000000,0,516306f4927c93af => 449
0,1,ffffffff00000000,0,ddb4ac49c9efa1da => 449
0,1,ffffffff00000000,0,64bb6dec369d4418 => 449
0,1,ffffffff00000000,0,8d37f755f4ae9f6 => 449
0,1,ffffffff00000000,0,eec49b613478675b => 449
0,1,ffffffff00000000,0,f143933aed25e0b0 => 449
0,1,ffffffff00000000,0,e4c5dd8255dfc622 => 449
0,1,ffffffff00000000,0,e7ad7756f193198e => 449
0,1,ffffffff00000000,0,92c2318b87fff9cb => 449
0,1,ffffffff00000000,0,739c25f8fd73596d => 449
0,1,ffffffff00000000,0,5636cac9f16dfed0 => 449
0,1,ffffffff00000000,0,dd8f909a938e0172 => 449
0,1,ffffffff00000000,0,c6401fe115063f5b => 449
0,1,ffffffff00000000,0,8ad97b33f1ac1455 => 449
0,1,ffffffff00000000,0,784d3d2f1698309 => 449
0,1,ffffffff00000000,0,530fb67ea1809a81 => 449
0,1,ffffffff00000000,0,410492299bb01f49 => 449
0,1,ffffffff00000000,0,139542347424b9ac => 449
0,1,ffffffff00000000,0,9cb0bd5ea1a1115e => 449
0,1,ffffffff00000000,0,2e3f615c38f49a1 => 449
0,1,ffffffff00000000,0,985d4f4a9c5291ef => 449
0,1,ffffffff00000000,0,775b9feafdcd26e7 => 449
0,1,ffffffff00000000,0,304265a6384f0f2d => 449
0,1,ffffffff00000000,0,593664c39773012c => 449
0,1,ffffffff00000000,0,4f0a2e5fb028f2ce => 449
0,1,ffffffff00000000,0,d8185f9adfea4fd0 => 449
0,1,ffffffff00000000,0,ef87139ca9a3ab1e => 449
0,1,ffffffff00000000,0,3ba71336c34ee133 => 449
0,1,ffffffff00000000,0,7d3a455d56b70238 => 449
0,1,ffffffff00000000,0,660d32e130182684 => 449
0,1,ffffffff00000000,0,297a863f48cd1f43 => 449
0,1,ffffffff00000000,0,90e0a736a751ebb7 => 449
0,1,ffffffff00000000,0,549f80ce550c4fd3 => 449
0,1,ffffffff00000000,0,f73b2922f38bd64 => 449
0,1,ffffffff00000000,0,16bf1f73fb7a9c3f => 449
0,1,ffffffff00000000,0,6d1f5a59005bec17 => 449
0,1,ffffffff00000000,0,c5cb72a2a51159b0 => 449
0,1,ffffffff00000000,0,8470f39d2d5c900e => 449
0,1,ffffffff00000000,0,25abb3f1d39fcb76 => 449
0,1,ffffffff00000000,0,23eb8cc9b372442f => 449
0,1,ffffffff00000000,0,d687ba55c64f6364 => 449
0,1,ffffffff00000000,0,da8d9e90fd8ff158 => 449
0,1,ffffffff00000000,0,e3cbdc7d2fe45ea7 => 449
0,1,ffffffff00000000,0,b9a8c9b3aee52297 => 449
0,1,ffffffff00000000,0,c0d28a5c10960bd3 => 449
0,1,ffffffff00000000,0,45d7ac9b68f71a34 => 449
0,1,ffffffff00000000,0,eeb76e397069e804 => 449
0,1,ffffffff00000000,0,9c9c98207cb10767 => 449
0,1,ffffffff00000000,0,65700b51aedfb5ef => 449
0,1,ffffffff00000000,0,911f451539869408 => 449
0,1,ffffffff00000000,0,7ae6849fbc3a0ec6 => 449
0,1,ffffffff00000000,0,3bb340eba06afe7e => 449
0,1,ffffffff00000000,0,b46e9d8b682ea65e => 449
0,1,ffffffff00000000,0,8dcf22f9a3b34356 => 449
0,1,ffffffff00000000,0,77bdaeda586257a7 => 449
0,1,ffffffff00000000,0,f19e400a5104d20d => 449
0,1,ffffffff00000000,0,c368a348e46d950f => 449
0,1,ffffffff00000000,0,9ef1cd60e679f284 => 449
0,1,ffffffff00000000,0,5cd377dc8bb882a2 => 449
0,1,ffffffff00000000,0,a7b0fb7883eee860 => 449
0,1,ffffffff00000000,0,7684403ec392950d => 449
0,1,ffffffff00000000,0,5fa3f06f4fed3b52 => 449
0,1,ffffffff00000000,0,8df57ac11bc04831 => 449
0,1,ffffffff00000000,0,2db01efa1e1e1897 => 449
0,1,ffffffff00000000,0,54846de4aadb9ca2 => 449
0,1,ffffffff00000000,0,ba6745385893c784 => 449
0,1,ffffffff00000000,0,541d496344d2c75b => 449
0,1,ffffffff00000000,0,e909678474e687fe => 449
0,1,ffffffff00000000,0,dfe89923f6c9c2ff => 449
0,1,ffffffff00000000,0,5ff98fd5d51fe610 => 449
0,1,ffffffff00000000,0,83e8941918964615 => 449
0,1,ffffffff00000000,0,5922040b47f150c1 => 449
0,1,ffffffff00000000,0,f97d750e3dd94521 => 449
0,1,ffffffff00000000,0,5080d4c2b86f56d7 => 449
0,1,ffffffff00000000,0,a7de115b56c78d70 => 449
0,1,ffffffff00000000,0,6a9242ac87538194 => 449
0,1,ffffffff00000000,0,f7856ef7f9173e44 => 449
0,1,ffffffff00000000,0,2265fc92feb0dc09 => 449
0,1,ffffffff00000000,0,17dfc8e4f7ba8a57 => 449
0,1,ffffffff00000000,0,9001a64209f21db8 => 449
0,1,ffffffff00000000,0,b932b7cf752e5545 => 449
0,1,ffffffff00000000,0,a0b1df81b6fe59fc => 449
0,1,ffffffff00000000,0,8ef1dd26770af2c2 => 449
0,1,ffffffff00000000,0,541a4f9cfbeed35 => 449
0,1,ffffffff00000000,0,9e61106178bfc530 => 449
0,1,ffffffff00000000,0,b3767e80935d8af2 => 449
0,1,ffffffff00000000,0,98d5782065af06 => 449
0,1,ffffffff00000000,0,31d191cd5c1466c7 => 449
0,1,ffffffff00000000,0,410fefafa319ac9d => 449
0,1,ffffffff00000000,0,bdf8f242e316c4ab => 449
0,1,ffffffff00000000,0,9e8cd55b57637ed0 => 449
0,1,ffffffff00000000,0,4d001fd58f002526 => 449
0,1,ffffffff00000000,0,ca6637000eb4a9f8 => 449
0,1,ffffffff00000000,0,2f2339d624f91f78 => 449
0,1,ffffffff00000000,0,6d1a7918c80df518 => 449
0,1,ffffffff00000000,0,df9a4939342308e9 => 449
0,1,ffffffff00000000,0,ebc2151ee6c8398c => 449
0,1,ffffffff00000000,0,3cc2ba8a1116515 => 449
0,1,ffffffff00000000,0,d341d037e840cf83 => 449
0,1,ffffffff00000000,0,387cb5d25af4afcc => 449
0,1,ffffffff00000000,0,bba2515f22909e87 => 449
0,1,ffffffff00000000,0,7248fe7705f38e47 => 449
0,1,ffffffff00000000,0,262e963c8da05d3d => 449
0,1,ffffffff00000000,0,59e89b094d220ec2 => 449
0,1,ffffffff00000000,0,55d5b52b78b9c5e => 449
0,1,ffffffff00000000,0,82b27eb33514ef99 => 449
0,1,ffffffff00000000,0,d30094ca96b7ce7b => 449
0,1,ffffffff00000000,0,cf5cb381cd0a1535 => 449
0,1,ffffffff00000000,0,feed4db6919e5a7c => 449
0,1,ffffffff00000000,0,41703f53753be59f => 449
0,1,ffffffff00000000,0,5eeea940fcde8b6f => 449
0,1,ffffffff00000000,0,4cd1f1b175100206 => 449
0,1,ffffffff00000000,0,4a20358574454ec0 => 449
0,1,ffffffff00000000,0,6f02dc07d141875c => 449
0,1,ffffffff00000000,0,296a202ed8e556a2 => 449
0,1,ffffffff00000000,0,2afd67999bf32ee5 => 449
0,1,ffffffff00000000,0,7acfd96efa95491d => 449
0,1,ffffffff00000000,0,6798ba0c0abb2c6d => 449
0,1,ffffffff00000000,0,34c6f57b26c92122 => 449
0,1,ffffffff00000000,0,5736e1bad206b5de => 449
0,1,ffffffff00000000,0,20057d2a0056521b => 449
0,1,ffffffff00000000,0,3dea5bd5d0578bd7 => 449
0,1,ffffffff00000000,0,16e50d897d4634ac => 449
0,1,ffffffff00000000,0,29bff3ecb9b7a6e3 => 449
0,1,1000000000000,ffffffff00000000,0 => 294
0,1,fffeffff00000001,ffffffff00000000,0 => 294
1,0,ffffffff00000000,0,0 => 194
0,ffffffff00000000,ffffffff00000000,0,0 => 132
0,1,fffffffeff000001,ffffffff00000000,0 => 96
0,1,1000000,ffffffff00000000,0 => 96
0,1,fffffeff00000101,ffffffff00000000,0 => 96
0,1,ffffffff00,ffffffff00000000,0 => 96
0,ffffffff00000000,ffffffff00000000,1,0 => 88
0,ffffffff00000000,efffffff10000001,efffffff10000001,0 => 48
0,ffffffff00000000,efffffff10000001,ffffffff0000000,0 => 48
0,ffffffff00000000,efffffff10000001,feffffff00000001,0 => 48
0,ffffffff00000000,efffffff10000001,100000000000000,0 => 48
0,ffffffff00000000,efffffff10000001,fffffffefff00001,0 => 48
0,ffffffff00000000,efffffff10000001,100000,0 => 48
0,ffffffff00000000,efffffff10000001,ffffffff0000,0 => 48
0,ffffffff00000000,efffffff10000001,fffeffff00010001,0 => 48
0,ffffffff00000000,efffffff10000001,100000000000,0 => 48
0,ffffffff00000000,efffffff10000001,ffffefff00000001,0 => 48
0,ffffffff00000000,efffffff10000001,100,0 => 48
0,ffffffff00000000,efffffff10000001,fffffffeffffff01,0 => 48
0,ffffffff00000000,efffffff10000001,ffffffef00000011,0 => 48
0,ffffffff00000000,efffffff10000001,ffffffff0,0 => 48
0,ffffffff00000000,efffffff10000001,fffffffe00000001,0 => 48
0,ffffffff00000000,efffffff10000001,100000000,0 => 48
0,ffffffff00000000,1,ffffffff00000000,0 => 27
200000000000001,0,ffffffff00000000,1,0 => 16
40001,0,ffffffff00000000,1,0 => 16
0,ffffffff00000000,0,0,1 => 16
0,6270d5277401268f,ffffffff00000000,0,0 => 16
c465162d27278a79,0,ffffffff00000000,1,0 => 8
c21e639730b6958e,0,ffffffff00000000,1,0 => 8
e29d1cef5b5b1152,0,ffffffff00000000,1,0 => 8
ffffffffffff1,0,ffffffff00000000,1,0 => 8
6270d52774012690,0,ffffffff00000000,1,0 => 8
e6fa2fd4a3bee0b4,0,ffffffff00000000,1,0 => 8
4086ebc219f3569c,0,ffffffff00000000,1,0 => 8
7fff7fff8000001,0,ffffffff00000000,1,0 => 8
ffffff7f00000002,0,ffffffff00000000,1,0 => 8
ffffbfff00004002,0,ffffffff00000000,1,0 => 8
1000000000000001,0,ffffffff00000000,1,0 => 8
1000001,0,ffffffff00000000,1,0 => 8
fffeffff00000002,0,ffffffff00000000,1,0 => 8
2,0,ffffffff00000000,1,0 => 8
0,ffffffff00000000,0,0,70088f165d151802 => 8
0,ffffffff00000000,0,0,551136b191446c3d => 8
0,ffffffff00000000,0,0,de288a3c6592ec51 => 8
0,ffffffff00000000,0,0,27bb7c3dbd05d4b3 => 8
0,ce2d24dacdd9a6a3,ffffffff00000000,0,4e5e0a72a1f58d10 => 8
0,ecab727d25ca7a5d,ffffffff00000000,0,1c909840d79503bc => 8
0,36058c86abf76f6d,ffffffff00000000,0,31 => 8
0,6270d5277401268f,1,ffffffff00000000,0 => 8
0,1,2,1,0 => 4
0,4,8,1,0 => 4
0,10,20,1,0 => 4
0,40,80,1,0 => 4
0,100,200,1,0 => 4
0,400,800,1,0 => 4
0,1000,2000,1,0 => 4
0,4000,8000,1,0 => 4
0,10000,20000,1,0 => 4
0,40000,80000,1,0 => 4
0,100000,200000,1,0 => 4
0,400000,800000,1,0 => 4
0,1,1,1,0 => 4
0,ffffffff00000000,dfffffff20000001,dfffffff20000001,0 => 3
0,ffffffff00000000,dfffffff20000001,1fffffffe0000000,0 => 3
0,ffffffff00000000,dfffffff20000001,fffffffeffe00001,0 => 3
0,ffffffff00000000,dfffffff20000001,200000,0 => 3
0,ffffffff00000000,dfffffff20000001,200000000000,0 => 3
0,ffffffff00000000,dfffffff20000001,ffffdfff00000001,0 => 3
0,ffffffff00000000,dfffffff20000001,ffffffdf00000021,0 => 3
0,ffffffff00000000,dfffffff20000001,1fffffffe0,0 => 3
0,1000000,2000000,1,0 => 3
0,4000000,8000000,1,0 => 3
0,10000000,20000000,1,0 => 3
0,40000000,80000000,1,0 => 3
0,fffffffeffffffff,fffffffeffffffff,1,0 => 2
2,0,0,ffffffff00000000,0 => 2
0,fffffffefffffffd,fffffffefffffffd,1,0 => 2
4,0,0,ffffffff00000000,0 => 2
0,fffffffefffffff9,fffffffefffffff9,1,0 => 2
8,0,0,ffffffff00000000,0 => 2
0,fffffffefffffff1,fffffffefffffff1,1,0 => 2
10,0,0,ffffffff00000000,0 => 2
0,fffffffeffffffe1,fffffffeffffffe1,1,0 => 2
20,0,0,ffffffff00000000,0 => 2
0,fffffffeffffffc1,fffffffeffffffc1,1,0 => 2
40,0,0,ffffffff00000000,0 => 2
0,fffffffeffffff81,fffffffeffffff81,1,0 => 2
80,0,0,ffffffff00000000,0 => 2
0,fffffffeffffff01,fffffffeffffff01,1,0 => 2
100,0,0,ffffffff00000000,0 => 2
0,fffffffefffffe01,fffffffefffffe01,1,0 => 2
200,0,0,ffffffff00000000,0 => 2
0,fffffffefffffc01,fffffffefffffc01,1,0 => 2
400,0,0,ffffffff00000000,0 => 2
0,fffffffefffff801,fffffffefffff801,1,0 => 2
800,0,0,ffffffff00000000,0 => 2
0,fffffffefffff001,fffffffefffff001,1,0 => 2
1000,0,0,ffffffff00000000,0 => 2
0,fffffffeffffe001,fffffffeffffe001,1,0 => 2
2000,0,0,ffffffff00000000,0 => 2
0,fffffffeffffc001,fffffffeffffc001,1,0 => 2
4000,0,0,ffffffff00000000,0 => 2
0,fffffffeffff8001,fffffffeffff8001,1,0 => 2
8000,0,0,ffffffff00000000,0 => 2
fffffffeffff0001,0,0,1,10000 => 2
fffffffefffe0001,0,0,1,20000 => 2
fffffffefffc0001,0,0,1,40000 => 2
fffffffefff80001,0,0,1,80000 => 2
fffffffefff00001,0,0,1,100000 => 2
fffffffeffe00001,0,0,1,200000 => 2
fffffffeffc00001,0,0,1,400000 => 2
fffffffeff800001,0,0,1,800000 => 2
fffffffeff000001,0,0,1,1000000 => 2
fffffffefe000001,0,0,1,2000000 => 2
fffffffefc000001,0,0,1,4000000 => 2
fffffffef8000001,0,0,1,8000000 => 2
fffffffef0000001,0,0,1,10000000 => 2
fffffffee0000001,0,0,1,20000000 => 2
fffffffec0000001,0,0,1,40000000 => 2
fffffffe80000001,0,0,1,80000000 => 2
0,1,ffffffff00000000,0,ffffffff => 2
0,100000000,ffffffff00000000,1,0 => 2
0,8000000000000000,ffffffff00000000,1,0 => 2
0,ffffffff00000000,ffffffff00000000,0,1 => 2
0,100000000,200000000,1,0 => 1
0,400000000,800000000,1,0 => 1
0,1000000000,2000000000,1,0 => 1
0,4000000000,8000000000,1,0 => 1
0,10000000000,20000000000,1,0 => 1
0,40000000000,80000000000,1,0 => 1
0,100000000000,200000000000,1,0 => 1
0,400000000000,800000000000,1,0 => 1
0,1000000000000,2000000000000,1,0 => 1
0,4000000000000,8000000000000,1,0 => 1
0,10000000000000,20000000000000,1,0 => 1
0,40000000000000,80000000000000,1,0 => 1
0,100000000000000,200000000000000,1,0 => 1
0,400000000000000,800000000000000,1,0 => 1
0,1000000000000000,2000000000000000,1,0 => 1
0,4000000000000000,ffffffff00000000,1,0 => 1
0,1000000,ffffffff00000000,1,0 => 1
0,2000000,4000000,1,0 => 1
0,8000000,10000000,1,0 => 1
0,20000000,40000000,1,0 => 1
0,80000000,100000000,1,0 => 1
0,200000000,400000000,1,0 => 1
0,800000000,1000000000,1,0 => 1
0,2000000000,4000000000,1,0 => 1
0,8000000000,10000000000,1,0 => 1
0,20000000000,40000000000,1,0 => 1
0,80000000000,100000000000,1,0 => 1
0,200000000000,400000000000,1,0 => 1
0,800000000000,1000000000000,1,0 => 1
0,2000000000000,4000000000000,1,0 => 1
0,8000000000000,10000000000000,1,0 => 1
0,20000000000000,40000000000000,1,0 => 1
0,80000000000000,100000000000000,1,0 => 1
0,200000000000000,400000000000000,1,0 => 1
0,800000000000000,1000000000000000,1,0 => 1
0,2000000000000000,4000000000000000,1,0 => 1
0,ffffffff00000000,1,0,ffffffff00000000 => 1
nConstraints: 331913
PLONK nConstraints: 339443
plonkAdditions: 7530
Processing constraint... 0/339443
Processing constraint... 10000/339443
Processing constraint... 20000/339443
Processing constraint... 30000/339443
Processing constraint... 40000/339443
Processing constraint... 50000/339443
Processing constraint... 60000/339443
Processing constraint... 70000/339443
Processing constraint... 80000/339443
Processing constraint... 90000/339443
Processing constraint... 100000/339443
Processing constraint... 110000/339443
Processing constraint... 120000/339443
Processing constraint... 130000/339443
Processing constraint... 140000/339443
Processing constraint... 150000/339443
Processing constraint... 160000/339443
Processing constraint... 170000/339443
Processing constraint... 180000/339443
Processing constraint... 190000/339443
Processing constraint... 200000/339443
Processing constraint... 210000/339443
Processing constraint... 220000/339443
Processing constraint... 230000/339443
Processing constraint... 240000/339443
Processing constraint... 250000/339443
Processing constraint... 260000/339443
Processing constraint... 270000/339443
Processing constraint... 280000/339443
Processing constraint... 290000/339443
Processing constraint... 300000/339443
Processing constraint... 310000/339443
Processing constraint... 320000/339443
Processing constraint... 330000/339443
Processing custom gates... 0/13845
Processing custom gates... 10000/13845
Preparing S... 0/131072
Preparing S... 10000/131072
Preparing S... 20000/131072
Preparing S... 30000/131072
Preparing S... 40000/131072
Preparing S... 50000/131072
Preparing S... 60000/131072
Preparing S... 70000/131072
Preparing S... 80000/131072
Preparing S... 90000/131072
Preparing S... 100000/131072
Preparing S... 110000/131072
Preparing S... 120000/131072
Preparing S... 130000/131072
Connection S... 0/112596
Connection S... 10000/112596
Connection S... 20000/112596
Connection S... 30000/112596
Connection S... 40000/112596
Connection S... 50000/112596
Connection S... 60000/112596
Connection S... 70000/112596
Connection S... 80000/112596
Connection S... 90000/112596
Connection S... 100000/112596
Connection S... 110000/112596
files Generated Correctly
11)debug运行fibonacci C12 genStarkinfo
:运行main_genstarkinfo.js
,输入为fibonacci.c12.pil
和状态机内的fibonacci.c12.starkstruct.json
,输出为fibonacci.c12.starkinfo.json
。
/usr/local/bin/node --max-old-space-size=32000 ./src/main_genstarkinfo.js -p tmp/fibonacci.c12.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.c12.starkstruct.json -i tmp/fibonacci.c12.starkinfo.json
files Generated Correctly
12)debug运行fibonacci C12 exec
:
/usr/local/bin/node --max-old-space-size=32000 src/compressor12/main_compressor12_exec.js -i /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.proof.zkin.json -w /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verifier_js/fibonacci.verifier.wasm -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -e /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.exec -m /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.commit
WebAssembly.instantiate(): Import #1 module="runtime" function="printErrorMessage" error: function import requires a callable
LinkError: WebAssembly.instantiate(): Import #1 module="runtime" function="printErrorMessage" error: function import requires a callable
at builder (/Users/lanyu/zyd/0xPolygonHermez/pil-stark/node_modules/circom_runtime/build/main.cjs:100:40)
at async run (/Users/lanyu/zyd/0xPolygonHermez/pil-stark/src/compressor12/main_compressor12_exec.js:46:16)
Process exited with code 1
解决方案为:在WebAssembly.instantiate()的runtime模块中添加printErrorMessage和writeBufferMessage伪函数实现:【不推荐,等待官方更新】
const instance = await WebAssembly.instantiate(wasmModule, {
env: {
"memory": memory
},
runtime: {
exceptionHandler: function(code) {
let errStr;
if (code == 1) {
errStr = "Signal not found. ";
} else if (code == 2) {
errStr = "Too many signals set. ";
} else if (code == 3) {
errStr = "Signal already set. ";
} else if (code == 4) {
errStr = "Assert Failed. ";
} else if (code == 5) {
errStr = "Not enough memory. ";
} else if (code == 6) {
errStr = "Input signal array access exceeds the size";
} else {
errStr = "Unknown error.";
}
console.log("ERROR: ", code, errStr);
throw new Error(errStr);
},
showSharedRWMemory: function() {
const shared_rw_memory_size = instance.exports.getFieldNumLen32();
const arr = new Uint32Array(shared_rw_memory_size);
for (let j=0; j<shared_rw_memory_size; j++) {
arr[shared_rw_memory_size-1-j] = instance.exports.readSharedRWMemory(j);
}
console.log(ffjavascript.Scalar.fromArray(arr, 0x100000000));
},
error: function(code, pstr, a,b,c,d) {
let errStr;
if (code == 7) {
errStr=p2str(pstr) + " " + wc.getFr(b).toString() + " != " + wc.getFr(c).toString() + " " +p2str(d);
} else if (code == 9) {
errStr=p2str(pstr) + " " + wc.getFr(b).toString() + " " +p2str(c);
} else if ((code == 5)&&(options.sym)) {
errStr=p2str(pstr)+ " " + options.sym.labelIdx2Name[c];
} else {
errStr=p2str(pstr)+ " " + a + " " + b + " " + c + " " + d;
}
console.log("ERROR: ", code, errStr);
throw new Error(errStr);
},
printErrorMessage: function(a) {
console.log(wc.getFr(a).toString());
},
writeBufferMessage: function(a) {
console.log(wc.getFr(a).toString());
},
log: function(a) {
console.log(wc.getFr(a).toString());
},
logGetSignal: function(signal, pVal) {
if (options.logGetSignal) {
options.logGetSignal(signal, wc.getFr(pVal) );
}
},
logSetSignal: function(signal, pVal) {
if (options.logSetSignal) {
options.logSetSignal(signal, wc.getFr(pVal) );
}
},
logStartComponent: function(cIdx) {
if (options.logStartComponent) {
options.logStartComponent(cIdx);
}
},
logFinishComponent: function(cIdx) {
if (options.logFinishComponent) {
options.logFinishComponent(cIdx);
}
}
}
});
然后有:运行compressor12/main_compressor12_exec.js
,输出为:
fibonacci.c12.commit
:fibonacci.proof.zkin.json
:zk输入。fibonacci.verifier_js/fibonacci.verifier.wasm
:生成witness的wasm代码。fibonacci.c12.pil
:fibonacci.c12.exec
:/usr/local/bin/node --max-old-space-size=32000 src/compressor12/main_compressor12_exec.js -i /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.proof.zkin.json -w /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.verifier_js/fibonacci.verifier.wasm -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -e /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.exec -m /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.commit
files Generated Correctly
13)debug运行fibonacci C12 build consstree
:耗资源且生成慢。运行main_buildconsttree.js
,输入有fibonacci.c12.pil
和fibonacci.c12.const
,输出有fibonacci.c12.consttree
和fibonacci.c12.verkey.json
。
/usr/local/bin/node --max-old-space-size=32000 src/main_buildconsttree.js -c /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.const -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.c12.starkstruct.json -t /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.consttree -v /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.verkey.json
loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.const.. 0 of 2.5
Interpolating reverse....
Layer ifft0
start block 15 32768
start block 15 0
start block 15 65536
start block 15 98304
end block 15 65536
end block 15 0
end block 15 32768
end block 15 98304
Layer ifft15
start block 17 0
start block 17 32768
start block 17 65536
start block 17 98304
end block 17 0
end block 17 32768
end block 17 65536
end block 17 98304
Interpolating prepare....
linear interpolatePrepare start.... 0/10
linear interpolatePrepare start.... 1/10
linear interpolatePrepare start.... 2/10
linear interpolatePrepare start.... 3/10
linear interpolatePrepare end.... 3/10
linear interpolatePrepare start.... 7/10
linear interpolatePrepare end.... 2/10
linear interpolatePrepare start.... 8/10
linear interpolatePrepare end.... 1/10
linear interpolatePrepare start.... 9/10
linear interpolatePrepare end.... 0/10
linear interpolatePrepare start.... 10/10
linear interpolatePrepare end.... 10/10
linear interpolatePrepare end.... 8/10
linear interpolatePrepare end.... 7/10
linear interpolatePrepare end.... 9/10
linear interpolatePrepare start.... 5/10
linear interpolatePrepare start.... 6/10
linear interpolatePrepare start.... 4/10
linear interpolatePrepare end.... 5/10
linear interpolatePrepare end.... 6/10
linear interpolatePrepare end.... 4/10
Bit reverse....
Layer fft 0
start block 16 0
start block 16 65536
start block 16 131072
start block 16 196608
start block 16 262144
start block 16 327680
start block 16 393216
end block 16 0
start block 16 458752
end block 16 65536
end block 16 262144
end block 16 393216
end block 16 196608
end block 16 131072
end block 16 327680
end block 16 458752
Layer fft 16
start block 19 0
start block 19 65536
start block 19 131072
start block 19 196608
start block 19 262144
start block 19 327680
start block 19 393216
end block 19 0
start block 19 458752
end block 19 65536
end block 19 262144
end block 19 327680
end block 19 131072
end block 19 196608
end block 19 393216
end block 19 458752
interpolation terminated
pool terminated
Start merkelizing..
linear hash bn128 start.... 0/524288
linear hash bn128 start.... 65536/524288
linear hash bn128 start.... 131072/524288
linear hash bn128 start.... 327680/524288
linear hash bn128 start.... 196608/524288
linear hash bn128 start.... 262144/524288
linear hash bn128 start.... 393216/524288
linear hash bn128 end.... 327680/524288
linear hash bn128 start.... 458752/524288
linear hash bn128 end.... 262144/524288
linear hash bn128 end.... 0/524288
linear hash bn128 end.... 65536/524288
linear hash bn128 end.... 196608/524288
linear hash bn128 end.... 131072/524288
linear hash bn128 end.... 393216/524288
linear hash bn128 end.... 458752/524288
merkelizing bn128 hash start.... 0/32768
merkelizing bn128 hash start.... 4682/32768
merkelizing bn128 hash start.... 9364/32768
merkelizing bn128 hash start.... 14046/32768
merkelizing bn128 hash start.... 18728/32768
merkelizing bn128 hash start.... 23410/32768
merkelizing bn128 hash start.... 28092/32768
merkelizing bn128 hash end.... 9364/32768
merkelizing bn128 hash end.... 4682/32768
merkelizing bn128 hash end.... 14046/32768
merkelizing bn128 hash end.... 0/32768
merkelizing bn128 hash end.... 28092/32768
merkelizing bn128 hash end.... 23410/32768
merkelizing bn128 hash end.... 18728/32768
merkelizing bn128 hash start.... 0/2048
merkelizing bn128 hash end.... 0/2048
merkelizing bn128 hash start.... 0/128
merkelizing bn128 hash end.... 0/128
merkelizing bn128 hash start.... 0/8
merkelizing bn128 hash end.... 0/8
merkelizing bn128 hash start.... 0/1
merkelizing bn128 hash end.... 0/1
writting tree.. 0 / 10485760
writting tree.. 0 / 2236996
files Generated Correctly
14)debug运行fibonacci C12 prove
:耗资源且生成慢。运行main_prover.js
,输入有:
fibonacci.c12.commit
:fibonacci.c12.const
:fibonacci.c12.consttree
:fibonacci.c12.pil
:sm_fibonacci/fibonacci.c12.starkstruct.json
:fibonacci.c12.proof.json
:STARK证明。fibonacci.c12.proof.zkin.json
:隐私输入。fibonacci.c12.public.json
:公开输入。/usr/local/bin/node --max-old-space-size=32000 src/main_prover.js -m /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.commit -c /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.const -t /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.consttree -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci/fibonacci.c12.starkstruct.json -o /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.proof.json -z /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.proof.zkin.json -b /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.public.json --proverAddr=0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.const.. 0 of 2.5
loading /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.commit.. 0 of 1.5
Merkelizing 1....
Interpolating reverse....
Layer ifft0
start block 14 0
start block 14 32768
start block 14 16384
start block 14 98304
start block 14 81920
start block 14 49152
start block 14 65536
end block 14 98304
end block 14 49152
start block 14 114688
end block 14 81920
end block 14 16384
end block 14 65536
end block 14 0
end block 14 32768
end block 14 114688
Layer ifft14
start block 17 0
start block 17 16384
start block 17 32768
start block 17 49152
start block 17 65536
start block 17 81920
end block 17 16384
end block 17 49152
end block 17 65536
start block 17 114688
start block 17 98304
end block 17 81920
end block 17 0
end block 17 32768
end block 17 98304
end block 17 114688
Interpolating prepare....
linear interpolatePrepare start.... 0/6
linear interpolatePrepare start.... 1/6
linear interpolatePrepare start.... 2/6
linear interpolatePrepare start.... 3/6
linear interpolatePrepare start.... 4/6
linear interpolatePrepare start.... 5/6
linear interpolatePrepare end.... 3/6
linear interpolatePrepare end.... 4/6
linear interpolatePrepare end.... 5/6
linear interpolatePrepare start.... 6/6
linear interpolatePrepare end.... 0/6
linear interpolatePrepare end.... 2/6
linear interpolatePrepare end.... 6/6
linear interpolatePrepare end.... 1/6
Bit reverse....
Layer fft 0
start block 16 0
start block 16 65536
start block 16 131072
start block 16 196608
start block 16 262144
start block 16 327680
start block 16 393216
end block 16 0
end block 16 65536
start block 16 458752
end block 16 196608
end block 16 262144
end block 16 393216
end block 16 131072
end block 16 327680
end block 16 458752
Layer fft 16
start block 19 0
start block 19 65536
start block 19 131072
start block 19 196608
start block 19 262144
start block 19 327680
start block 19 393216
end block 19 0
start block 19 458752
end block 19 65536
end block 19 196608
end block 19 131072
end block 19 262144
end block 19 393216
end block 19 327680
end block 19 458752
interpolation terminated
pool terminated
linear hash bn128 start.... 0/524288
linear hash bn128 start.... 131072/524288
linear hash bn128 start.... 65536/524288
linear hash bn128 start.... 196608/524288
linear hash bn128 start.... 393216/524288
linear hash bn128 start.... 327680/524288
linear hash bn128 start.... 262144/524288
linear hash bn128 end.... 65536/524288
linear hash bn128 start.... 458752/524288
linear hash bn128 end.... 131072/524288
linear hash bn128 end.... 393216/524288
linear hash bn128 end.... 262144/524288
linear hash bn128 end.... 196608/524288
linear hash bn128 end.... 327680/524288
linear hash bn128 end.... 0/524288
linear hash bn128 end.... 458752/524288
merkelizing bn128 hash start.... 0/32768
merkelizing bn128 hash start.... 4682/32768
merkelizing bn128 hash start.... 9364/32768
merkelizing bn128 hash start.... 14046/32768
merkelizing bn128 hash start.... 18728/32768
merkelizing bn128 hash start.... 23410/32768
merkelizing bn128 hash start.... 28092/32768
merkelizing bn128 hash end.... 28092/32768
merkelizing bn128 hash end.... 18728/32768
merkelizing bn128 hash end.... 4682/32768
merkelizing bn128 hash end.... 23410/32768
merkelizing bn128 hash end.... 0/32768
merkelizing bn128 hash end.... 9364/32768
merkelizing bn128 hash end.... 14046/32768
merkelizing bn128 hash start.... 0/2048
merkelizing bn128 hash end.... 0/2048
merkelizing bn128 hash start.... 0/128
merkelizing bn128 hash end.... 0/128
merkelizing bn128 hash start.... 0/8
merkelizing bn128 hash end.... 0/8
merkelizing bn128 hash start.... 0/1
merkelizing bn128 hash end.... 0/1
start exec step2prev... 74900/131072
start exec step2prev... 0/131072
start exec step2prev... 18725/131072
end exec step2prev... 18725/131072
end exec step2prev... 0/131072
end exec step2prev... 74900/131072
start exec step2prev... 56175/131072
start exec step2prev... 37450/131072
end exec step2prev... 37450/131072
start exec step2prev... 112350/131072
end exec step2prev... 112350/131072
start exec step2prev... 93625/131072
end exec step2prev... 93625/131072
end exec step2prev... 56175/131072
Merkelizing 2....
Interpolating reverse....
Layer ifft0
start block 12 4096
end block 12 4096
start block 12 28672
end block 12 28672
start block 12 32768
end block 12 32768
start block 12 36864
end block 12 36864
start block 12 40960
end block 12 40960
start block 12 12288
end block 12 12288
start block 12 49152
end block 12 49152
start block 12 53248
end block 12 53248
start block 12 57344
end block 12 57344
start block 12 61440
end block 12 61440
start block 12 65536
end block 12 65536
start block 12 69632
end block 12 69632
start block 12 73728
end block 12 73728
start block 12 77824
end block 12 77824
start block 12 81920
end block 12 81920
start block 12 86016
end block 12 86016
start block 12 94208
end block 12 94208
start block 12 102400
end block 12 102400
start block 12 110592
end block 12 110592
start block 12 118784
end block 12 118784
start block 12 126976
start block 12 45056
end block 12 45056
start block 12 90112
end block 12 90112
start block 12 98304
end block 12 98304
start block 12 106496
end block 12 106496
start block 12 114688
end block 12 114688
start block 12 122880
end block 12 122880
end block 12 126976
start block 12 8192
end block 12 8192
start block 17 8192
start block 12 20480
end block 12 20480
start block 17 20480
start block 12 0
end block 12 0
start block 17 0
Layer ifft12
start block 17 4096
end block 17 4096
start block 17 28672
end block 17 28672
start block 17 32768
end block 17 32768
start block 17 45056
end block 17 45056
start block 17 57344
end block 17 57344
start block 17 65536
start block 17 12288
end block 17 12288
start block 17 36864
end block 17 36864
start block 17 49152
end block 17 49152
start block 17 61440
end block 17 61440
start block 12 16384
end block 12 16384
start block 17 16384
start block 12 24576
end block 12 24576
start block 17 24576
end block 17 8192
start block 17 40960
end block 17 40960
start block 17 53248
end block 17 53248
start block 17 73728
end block 17 73728
start block 17 106496
start block 17 69632
end block 17 69632
start block 17 81920
end block 17 81920
start block 17 94208
end block 17 94208
end block 17 65536
start block 17 77824
end block 17 77824
start block 17 90112
end block 17 90112
start block 17 98304
end block 17 98304
start block 17 114688
end block 17 114688
start block 17 126976
end block 17 126976
end block 17 0
start block 17 86016
end block 17 86016
start block 17 118784
end block 17 118784
linear interpolatePrepare start.... 0/0
linear interpolatePrepare end.... 0/0
end block 17 20480
start block 17 102400
end block 17 102400
start block 17 122880
end block 17 122880
end block 17 24576
start block 17 110592
end block 17 110592
end block 17 106496
end block 17 16384
Interpolating prepare....
Bit reverse....
Layer fft 0
start block 12 0
start block 12 4096
start block 12 16384
start block 12 8192
end block 12 8192
start block 12 28672
end block 12 28672
start block 12 49152
end block 12 49152
start block 12 65536
start block 12 12288
end block 12 12288
start block 12 32768
end block 12 32768
start block 12 53248
end block 12 53248
start block 12 69632
start block 12 24576
end block 12 24576
start block 12 40960
end block 12 40960
start block 12 57344
end block 12 57344
start block 12 73728
end block 12 73728
start block 12 90112
end block 12 90112
start block 12 110592
end block 12 110592
end block 12 16384
start block 12 36864
end block 12 36864
start block 12 45056
end block 12 45056
start block 12 61440
end block 12 61440
start block 12 77824
end block 12 77824
start block 12 94208
end block 12 94208
start block 12 106496
end block 12 106496
start block 12 20480
end block 12 69632
start block 12 81920
end block 12 81920
start block 12 102400
end block 12 102400
start block 12 126976
end block 12 126976
start block 12 147456
end block 12 147456
start block 12 155648
end block 12 65536
start block 12 86016
end block 12 86016
start block 12 98304
end block 12 98304
start block 12 122880
end block 12 122880
start block 12 135168
end block 12 135168
start block 12 159744
end block 12 0
start block 12 114688
end block 12 114688
start block 12 143360
end block 12 143360
start block 12 163840
end block 12 163840
start block 12 172032
end block 12 172032
start block 12 180224
end block 12 180224
start block 12 212992
start block 12 131072
end block 12 131072
start block 12 139264
end block 12 139264
start block 12 151552
end block 12 151552
start block 12 167936
end block 12 167936
start block 12 196608
end block 12 196608
start block 12 204800
end block 12 204800
start block 12 221184
end block 12 159744
start block 12 176128
end block 12 176128
start block 12 188416
end block 12 188416
start block 12 208896
end block 12 208896
start block 12 225280
end block 12 225280
start block 12 241664
end block 12 241664
start block 12 258048
end block 12 258048
start block 12 274432
end block 12 155648
start block 12 192512
end block 12 192512
start block 12 217088
end block 12 217088
start block 12 229376
end block 12 229376
start block 12 245760
end block 12 245760
start block 12 266240
start block 12 118784
end block 12 118784
end block 12 20480
end block 12 212992
start block 12 233472
end block 12 233472
start block 12 253952
end block 12 253952
start block 12 282624
end block 12 282624
start block 12 299008
end block 12 299008
end block 12 221184
start block 12 237568
end block 12 237568
start block 12 249856
end block 12 249856
start block 12 262144
end block 12 262144
start block 12 270336
end block 12 270336
start block 12 286720
end block 12 286720
start block 12 290816
end block 12 290816
start block 12 307200
end block 12 307200
start block 12 311296
end block 12 266240
start block 12 278528
end block 12 278528
start block 12 294912
end block 12 294912
start block 12 319488
end block 12 319488
start block 12 331776
end block 12 331776
start block 12 352256
end block 12 352256
start block 12 364544
end block 12 274432
start block 12 303104
end block 12 303104
start block 12 327680
end block 12 327680
end block 12 311296
start block 12 323584
end block 12 323584
start block 12 335872
end block 12 335872
start block 12 339968
end block 12 339968
start block 12 348160
end block 12 348160
start block 12 368640
end block 12 368640
start block 12 389120
end block 12 389120
start block 12 405504
end block 12 405504
start block 12 315392
end block 12 315392
start block 12 344064
end block 12 344064
start block 12 376832
end block 12 376832
start block 12 393216
end block 12 393216
start block 12 409600
end block 12 409600
start block 12 184320
end block 12 184320
start block 12 200704
end block 12 200704
end block 12 364544
start block 12 385024
end block 12 385024
start block 12 401408
end block 12 401408
start block 12 425984
end block 12 425984
start block 12 446464
end block 12 446464
start block 12 466944
start block 12 360448
end block 12 360448
start block 12 380928
end block 12 380928
start block 12 397312
end block 12 397312
start block 12 421888
end block 12 421888
start block 12 438272
start block 12 356352
end block 12 356352
start block 12 372736
end block 12 372736
start block 12 450560
end block 12 4096
start block 12 417792
end block 12 417792
start block 19 4096
end block 19 4096
start block 19 32768
start block 12 430080
end block 12 430080
start block 12 442368
end block 12 442368
start block 12 458752
end block 12 458752
start block 12 475136
end block 12 475136
start block 12 491520
end block 12 491520
start block 12 499712
end block 12 499712
start block 12 516096
end block 12 516096
start block 19 16384
start block 12 434176
end block 12 434176
start block 12 454656
end block 12 454656
start block 12 471040
end block 12 471040
start block 12 487424
end block 12 487424
start block 12 512000
end block 12 512000
start block 19 24576
end block 12 438272
start block 12 462848
end block 12 462848
start block 12 479232
end block 12 479232
start block 12 495616
end block 12 495616
start block 12 507904
end block 12 507904
start block 19 8192
end block 19 8192
start block 19 40960
end block 12 466944
start block 12 483328
end block 12 483328
start block 12 503808
end block 12 503808
start block 12 520192
end block 12 520192
start block 19 12288
start block 12 413696
end block 12 413696
start block 19 0
end block 19 0
start block 19 28672
end block 19 28672
start block 19 53248
end block 19 53248
start block 19 69632
end block 19 69632
start block 19 81920
end block 12 450560
start block 19 20480
end block 19 20480
start block 19 36864
end block 19 36864
start block 19 57344
end block 19 57344
start block 19 73728
end block 19 73728
start block 19 86016
Layer fft 12
end block 19 24576
start block 19 45056
end block 19 45056
start block 19 61440
end block 19 61440
start block 19 90112
end block 19 32768
start block 19 49152
end block 19 49152
start block 19 65536
end block 19 65536
start block 19 77824
end block 19 77824
start block 19 94208
end block 19 81920
start block 19 98304
end block 19 86016
end block 19 16384
start block 19 106496
end block 19 106496
start block 19 118784
end block 19 12288
start block 19 110592
end block 19 110592
start block 19 122880
end block 19 40960
start block 19 114688
end block 19 114688
start block 19 126976
start block 19 102400
end block 19 102400
start block 19 167936
end block 19 118784
start block 19 131072
end block 19 131072
start block 19 143360
end block 19 143360
start block 19 155648
end block 19 90112
start block 19 135168
end block 19 135168
start block 19 147456
end block 19 147456
start block 19 159744
end block 19 122880
start block 19 139264
end block 19 139264
start block 19 151552
end block 19 126976
start block 19 163840
end block 19 94208
start block 19 172032
end block 19 98304
start block 19 176128
end block 19 167936
start block 19 180224
end block 19 172032
start block 19 184320
end block 19 176128
start block 19 188416
end block 19 151552
start block 19 192512
end block 19 184320
end block 19 180224
start block 19 196608
start block 19 200704
end block 19 163840
start block 19 204800
end block 19 188416
start block 19 208896
end block 19 196608
start block 19 212992
end block 19 200704
start block 19 217088
end block 19 217088
start block 19 229376
end block 19 208896
start block 19 221184
end block 19 212992
start block 19 225280
end block 19 221184
start block 19 233472
end block 19 155648
start block 19 237568
end block 19 192512
start block 19 241664
end block 19 159744
start block 19 245760
end block 19 204800
start block 19 249856
end block 19 245760
start block 19 253952
end block 19 237568
start block 19 258048
end block 19 258048
start block 19 274432
end block 19 241664
start block 19 262144
end block 19 262144
start block 19 278528
end block 19 249856
start block 19 266240
end block 19 253952
start block 19 270336
end block 19 270336
start block 19 282624
end block 19 274432
start block 19 286720
end block 19 278528
start block 19 290816
end block 19 282624
start block 19 294912
end block 19 286720
start block 19 299008
end block 19 266240
start block 19 307200
end block 19 307200
end block 19 225280
start block 19 303104
end block 19 303104
start block 19 319488
end block 19 319488
start block 19 339968
end block 19 229376
start block 19 311296
end block 19 311296
start block 19 335872
end block 19 233472
start block 19 315392
end block 19 315392
start block 19 323584
end block 19 290816
start block 19 327680
end block 19 335872
start block 19 344064
end block 19 344064
start block 19 356352
end block 19 323584
start block 19 348160
end block 19 348160
start block 19 360448
start block 19 331776
end block 19 339968
start block 19 352256
end block 19 352256
start block 19 364544
end block 19 294912
start block 19 368640
end block 19 368640
start block 19 385024
end block 19 299008
start block 19 372736
end block 19 327680
start block 19 376832
end block 19 331776
start block 19 380928
end block 19 360448
start block 19 389120
end block 19 372736
start block 19 393216
end block 19 393216
start block 19 413696
end block 19 413696
start block 19 430080
end block 19 385024
start block 19 397312
end block 19 397312
start block 19 417792
end block 19 417792
start block 19 434176
end block 19 356352
start block 19 401408
end block 19 401408
start block 19 425984
end block 19 425984
start block 19 438272
end block 19 380928
start block 19 405504
end block 19 405504
start block 19 450560
end block 19 376832
start block 19 409600
end block 19 409600
start block 19 421888
end block 19 421888
end block 19 364544
start block 19 446464
start block 19 442368
end block 19 389120
start block 19 454656
end block 19 446464
start block 19 458752
end block 19 430080
end block 19 454656
start block 19 466944
start block 19 462848
end block 19 438272
start block 19 471040
end block 19 450560
end block 19 458752
start block 19 479232
end block 19 466944
start block 19 483328
end block 19 483328
start block 19 495616
end block 19 495616
start block 19 507904
end block 19 479232
start block 19 487424
end block 19 487424
start block 19 503808
start block 19 475136
end block 19 475136
start block 19 516096
end block 19 442368
start block 19 491520
end block 19 491520
end block 19 471040
start block 19 499712
end block 19 499712
end block 19 434176
start block 19 512000
end block 19 512000
end block 19 462848
start block 19 520192
end block 19 520192
end block 19 516096
end block 19 503808
end block 19 507904
interpolation terminated
pool terminated
linear hash bn128 start.... 131072/524288
linear hash bn128 end.... 131072/524288
linear hash bn128 start.... 65536/524288
linear hash bn128 end.... 65536/524288
linear hash bn128 start.... 458752/524288
linear hash bn128 end.... 458752/524288
linear hash bn128 start.... 262144/524288
linear hash bn128 end.... 262144/524288
linear hash bn128 start.... 0/524288
linear hash bn128 start.... 196608/524288
linear hash bn128 end.... 196608/524288
linear hash bn128 end.... 0/524288
linear hash bn128 start.... 327680/524288
linear hash bn128 end.... 327680/524288
linear hash bn128 start.... 393216/524288
linear hash bn128 end.... 393216/524288
merkelizing bn128 hash start.... 18728/32768
merkelizing bn128 hash start.... 0/32768
merkelizing bn128 hash start.... 9364/32768
merkelizing bn128 hash start.... 4682/32768
merkelizing bn128 hash start.... 14046/32768
merkelizing bn128 hash start.... 23410/32768
merkelizing bn128 hash start.... 28092/32768
merkelizing bn128 hash end.... 9364/32768
merkelizing bn128 hash end.... 4682/32768
merkelizing bn128 hash end.... 23410/32768
merkelizing bn128 hash end.... 0/32768
merkelizing bn128 hash end.... 28092/32768
merkelizing bn128 hash end.... 14046/32768
merkelizing bn128 hash end.... 18728/32768
merkelizing bn128 hash start.... 0/2048
merkelizing bn128 hash end.... 0/2048
merkelizing bn128 hash start.... 0/128
merkelizing bn128 hash end.... 0/128
merkelizing bn128 hash start.... 0/8
merkelizing bn128 hash end.... 0/8
merkelizing bn128 hash start.... 0/1
merkelizing bn128 hash end.... 0/1
start exec step3prev... 0/131072
start exec step3prev... 18725/131072
start exec step3prev... 37450/131072
start exec step3prev... 56175/131072
start exec step3prev... 74900/131072
start exec step3prev... 93625/131072
start exec step3prev... 112350/131072
end exec step3prev... 0/131072
end exec step3prev... 18725/131072
end exec step3prev... 56175/131072
end exec step3prev... 37450/131072
end exec step3prev... 74900/131072
end exec step3prev... 93625/131072
end exec step3prev... 112350/131072
Calculating z for connection 0
Merkelizing 3....
Interpolating reverse....
Layer ifft0
start block 12 4096
start block 12 0
start block 12 20480
end block 12 0
start block 12 28672
end block 12 4096
start block 12 32768
end block 12 32768
start block 12 40960
end block 12 28672
start block 12 36864
start block 12 24576
end block 12 20480
start block 12 45056
end block 12 45056
start block 12 49152
start block 12 8192
end block 12 8192
start block 12 77824
end block 12 77824
start block 12 106496
start block 12 12288
end block 12 12288
start block 12 69632
end block 12 69632
start block 12 98304
end block 12 98304
end block 12 36864
start block 12 53248
end block 12 53248
start block 12 61440
end block 12 61440
start block 12 90112
end block 12 90112
start block 12 102400
end block 12 40960
start block 12 57344
end block 12 57344
start block 12 65536
end block 12 65536
start block 12 86016
end block 12 24576
start block 12 94208
end block 12 94208
end block 12 49152
start block 12 73728
end block 12 73728
start block 12 81920
end block 12 81920
start block 12 16384
end block 12 16384
start block 12 110592
end block 12 110592
start block 12 122880
end block 12 122880
end block 12 102400
start block 12 114688
end block 12 114688
end block 12 86016
start block 12 118784
end block 12 118784
end block 12 106496
start block 12 126976
end block 12 126976
Layer ifft12
start block 17 0
end block 17 0
start block 17 32768
start block 17 4096
end block 17 4096
start block 17 36864
start block 17 8192
end block 17 8192
start block 17 28672
start block 17 16384
end block 17 16384
start block 17 12288
end block 17 12288
start block 17 24576
end block 17 24576
start block 17 20480
end block 17 20480
start block 17 49152
start block 17 40960
end block 17 36864
start block 17 57344
start block 17 53248
end block 17 28672
start block 17 45056
end block 17 49152
start block 17 65536
end block 17 53248
start block 17 69632
start block 17 61440
end block 17 65536
start block 17 73728
end block 17 40960
start block 17 77824
end block 17 57344
start block 17 81920
end block 17 81920
start block 17 98304
end block 17 32768
start block 17 86016
end block 17 86016
start block 17 114688
end block 17 73728
start block 17 90112
end block 17 90112
start block 17 102400
end block 17 77824
start block 17 94208
end block 17 45056
start block 17 106496
end block 17 61440
start block 17 110592
end block 17 69632
start block 17 118784
end block 17 106496
start block 17 122880
end block 17 114688
start block 17 126976
end block 17 110592
end block 17 94208
end block 17 98304
end block 17 118784
end block 17 126976
end block 17 122880
end block 17 102400
Interpolating prepare....
linear interpolatePrepare start.... 0/6
linear interpolatePrepare start.... 1/6
linear interpolatePrepare end.... 1/6
linear interpolatePrepare start.... 2/6
linear interpolatePrepare end.... 2/6
linear interpolatePrepare start.... 3/6
linear interpolatePrepare start.... 4/6
linear interpolatePrepare start.... 6/6
linear interpolatePrepare end.... 3/6
linear interpolatePrepare start.... 5/6
linear interpolatePrepare end.... 4/6
linear interpolatePrepare end.... 6/6
linear interpolatePrepare end.... 5/6
linear interpolatePrepare end.... 0/6
Bit reverse....
Layer fft 0
start block 14 0
start block 14 16384
start block 14 32768
start block 14 49152
start block 14 65536
start block 14 81920
start block 14 98304
end block 14 32768
start block 14 114688
end block 14 16384
start block 14 131072
end block 14 49152
start block 14 147456
end block 14 0
end block 14 81920
start block 14 180224
start block 14 163840
end block 14 65536
start block 14 196608
end block 14 98304
start block 14 212992
end block 14 147456
start block 14 229376
end block 14 131072
end block 14 114688
start block 14 262144
end block 14 163840
start block 14 245760
start block 14 278528
end block 14 180224
start block 14 294912
end block 14 196608
start block 14 311296
end block 14 212992
start block 14 327680
end block 14 262144
start block 14 344064
end block 14 229376
start block 14 360448
end block 14 245760
start block 14 376832
end block 14 311296
start block 14 393216
end block 14 327680
start block 14 409600
end block 14 278528
start block 14 425984
end block 14 294912
start block 14 442368
end block 14 344064
start block 14 458752
end block 14 360448
start block 14 475136
end block 14 376832
start block 14 491520
end block 14 393216
start block 14 507904
end block 14 425984
end block 14 409600
end block 14 442368
end block 14 458752
end block 14 491520
end block 14 475136
end block 14 507904
Layer fft 14
start block 19 0
start block 19 16384
start block 19 32768
start block 19 49152
start block 19 65536
start block 19 81920
start block 19 98304
end block 19 0
end block 19 81920
end block 19 49152
end block 19 16384
end block 19 32768
start block 19 180224
start block 19 114688
start block 19 131072
start block 19 147456
start block 19 163840
end block 19 65536
start block 19 196608
end block 19 98304
start block 19 212992
end block 19 147456
start block 19 229376
end block 19 163840
start block 19 245760
end block 19 131072
start block 19 262144
end block 19 180224
start block 19 278528
end block 19 114688
start block 19 294912
end block 19 196608
start block 19 311296
end block 19 212992
start block 19 327680
end block 19 262144
start block 19 344064
end block 19 245760
start block 19 360448
end block 19 229376
start block 19 376832
end block 19 278528
start block 19 393216
end block 19 294912
start block 19 409600
end block 19 311296
start block 19 425984
end block 19 327680
end block 19 344064
start block 19 442368
end block 19 376832
end block 19 409600
start block 19 491520
start block 19 458752
start block 19 475136
end block 19 393216
end block 19 360448
start block 19 507904
end block 19 425984
end block 19 442368
end block 19 458752
end block 19 507904
end block 19 475136
end block 19 491520
interpolation terminated
pool terminated
linear hash bn128 start.... 327680/524288
linear hash bn128 start.... 131072/524288
linear hash bn128 start.... 196608/524288
linear hash bn128 start.... 0/524288
linear hash bn128 start.... 262144/524288
linear hash bn128 start.... 65536/524288
linear hash bn128 start.... 393216/524288
linear hash bn128 end.... 393216/524288
linear hash bn128 end.... 327680/524288
linear hash bn128 start.... 458752/524288
linear hash bn128 end.... 262144/524288
linear hash bn128 end.... 196608/524288
linear hash bn128 end.... 0/524288
linear hash bn128 end.... 131072/524288
linear hash bn128 end.... 65536/524288
linear hash bn128 end.... 458752/524288
merkelizing bn128 hash start.... 0/32768
merkelizing bn128 hash start.... 9364/32768
merkelizing bn128 hash start.... 14046/32768
merkelizing bn128 hash start.... 4682/32768
merkelizing bn128 hash start.... 18728/32768
merkelizing bn128 hash start.... 28092/32768
merkelizing bn128 hash start.... 23410/32768
merkelizing bn128 hash end.... 23410/32768
merkelizing bn128 hash end.... 4682/32768
merkelizing bn128 hash end.... 18728/32768
merkelizing bn128 hash end.... 0/32768
merkelizing bn128 hash end.... 14046/32768
merkelizing bn128 hash end.... 9364/32768
merkelizing bn128 hash end.... 28092/32768
merkelizing bn128 hash start.... 0/2048
merkelizing bn128 hash end.... 0/2048
merkelizing bn128 hash start.... 0/128
merkelizing bn128 hash end.... 0/128
merkelizing bn128 hash start.... 0/8
merkelizing bn128 hash end.... 0/8
merkelizing bn128 hash start.... 0/1
merkelizing bn128 hash end.... 0/1
start exec step4... 0/131072
start exec step4... 18725/131072
start exec step4... 37450/131072
start exec step4... 56175/131072
start exec step4... 74900/131072
start exec step4... 93625/131072
start exec step4... 112350/131072
end exec step4... 56175/131072
end exec step4... 112350/131072
end exec step4... 18725/131072
end exec step4... 37450/131072
end exec step4... 0/131072
end exec step4... 74900/131072
end exec step4... 93625/131072
Interpolating reverse....
Layer ifft0
start block 16 0
start block 16 65536
end block 16 0
end block 16 65536
Layer ifft16
start block 17 0
start block 17 65536
end block 17 0
end block 17 65536
Interpolating prepare....
linear interpolatePrepare start.... 0/39
linear interpolatePrepare start.... 1/39
linear interpolatePrepare end.... 1/39
linear interpolatePrepare end.... 0/39
linear interpolatePrepare start.... 7/39
linear interpolatePrepare start.... 8/39
linear interpolatePrepare end.... 7/39
linear interpolatePrepare start.... 10/39
linear interpolatePrepare end.... 10/39
linear interpolatePrepare start.... 12/39
linear interpolatePrepare end.... 8/39
linear interpolatePrepare start.... 9/39
linear interpolatePrepare end.... 9/39
linear interpolatePrepare start.... 11/39
linear interpolatePrepare end.... 11/39
linear interpolatePrepare end.... 12/39
linear interpolatePrepare start.... 13/39
linear interpolatePrepare start.... 14/39
linear interpolatePrepare end.... 14/39
linear interpolatePrepare start.... 15/39
linear interpolatePrepare end.... 13/39
linear interpolatePrepare start.... 16/39
linear interpolatePrepare end.... 15/39
linear interpolatePrepare start.... 17/39
linear interpolatePrepare end.... 16/39
linear interpolatePrepare start.... 18/39
linear interpolatePrepare end.... 18/39
linear interpolatePrepare end.... 17/39
linear interpolatePrepare start.... 20/39
linear interpolatePrepare start.... 2/39
linear interpolatePrepare start.... 4/39
linear interpolatePrepare start.... 5/39
linear interpolatePrepare start.... 19/39
linear interpolatePrepare end.... 19/39
linear interpolatePrepare start.... 22/39
linear interpolatePrepare end.... 22/39
linear interpolatePrepare start.... 25/39
linear interpolatePrepare start.... 6/39
linear interpolatePrepare end.... 6/39
linear interpolatePrepare start.... 24/39
linear interpolatePrepare end.... 20/39
linear interpolatePrepare start.... 21/39
linear interpolatePrepare start.... 3/39
linear interpolatePrepare end.... 2/39
linear interpolatePrepare end.... 4/39
linear interpolatePrepare end.... 5/39
linear interpolatePrepare end.... 21/39
linear interpolatePrepare start.... 23/39
linear interpolatePrepare start.... 27/39
linear interpolatePrepare start.... 26/39
linear interpolatePrepare end.... 26/39
linear interpolatePrepare end.... 3/39
linear interpolatePrepare start.... 28/39
linear interpolatePrepare start.... 29/39
linear interpolatePrepare end.... 29/39
linear interpolatePrepare end.... 23/39
linear interpolatePrepare start.... 31/39
linear interpolatePrepare end.... 25/39
linear interpolatePrepare start.... 35/39
linear interpolatePrepare end.... 24/39
linear interpolatePrepare start.... 30/39
linear interpolatePrepare end.... 28/39
linear interpolatePrepare start.... 33/39
linear interpolatePrepare start.... 32/39
linear interpolatePrepare start.... 34/39
linear interpolatePrepare end.... 34/39
linear interpolatePrepare end.... 27/39
linear interpolatePrepare start.... 38/39
linear interpolatePrepare end.... 38/39
linear interpolatePrepare end.... 32/39
linear interpolatePrepare start.... 37/39
linear interpolatePrepare end.... 37/39
linear interpolatePrepare end.... 35/39
linear interpolatePrepare start.... 36/39
linear interpolatePrepare end.... 36/39
linear interpolatePrepare end.... 30/39
linear interpolatePrepare start.... 39/39
linear interpolatePrepare end.... 39/39
linear interpolatePrepare end.... 31/39
linear interpolatePrepare end.... 33/39
Bit reverse....
Layer fft 0
start block 16 0
start block 16 65536
start block 16 131072
start block 16 196608
start block 16 262144
start block 16 327680
start block 16 393216
end block 16 196608
start block 16 458752
end block 16 327680
end block 16 262144
end block 16 393216
end block 16 131072
end block 16 0
end block 16 65536
end block 16 458752
Layer fft 16
start block 19 0
start block 19 65536
start block 19 131072
start block 19 196608
start block 19 262144
start block 19 327680
start block 19 393216
end block 19 196608
start block 19 458752
end block 19 131072
end block 19 0
end block 19 327680
end block 19 65536
end block 19 262144
end block 19 393216
end block 19 458752
interpolation terminated
pool terminated
start exec step42ns... 0/524288
start exec step42ns... 74899/524288
start exec step42ns... 149798/524288
start exec step42ns... 224697/524288
start exec step42ns... 299596/524288
start exec step42ns... 374495/524288
start exec step42ns... 449394/524288
end exec step42ns... 0/524288
end exec step42ns... 74899/524288
end exec step42ns... 149798/524288
end exec step42ns... 299596/524288
end exec step42ns... 224697/524288
end exec step42ns... 374495/524288
end exec step42ns... 449394/524288
Merkelizing 4....
linear hash bn128 start.... 65536/524288
linear hash bn128 start.... 0/524288
linear hash bn128 start.... 131072/524288
linear hash bn128 start.... 196608/524288
linear hash bn128 start.... 262144/524288
linear hash bn128 start.... 327680/524288
linear hash bn128 start.... 393216/524288
linear hash bn128 end.... 196608/524288
linear hash bn128 start.... 458752/524288
linear hash bn128 end.... 0/524288
linear hash bn128 end.... 262144/524288
linear hash bn128 end.... 393216/524288
linear hash bn128 end.... 131072/524288
linear hash bn128 end.... 327680/524288
linear hash bn128 end.... 65536/524288
linear hash bn128 end.... 458752/524288
merkelizing bn128 hash start.... 0/32768
merkelizing bn128 hash start.... 4682/32768
merkelizing bn128 hash start.... 9364/32768
merkelizing bn128 hash start.... 14046/32768
merkelizing bn128 hash start.... 18728/32768
merkelizing bn128 hash start.... 23410/32768
merkelizing bn128 hash start.... 28092/32768
merkelizing bn128 hash end.... 4682/32768
merkelizing bn128 hash end.... 28092/32768
merkelizing bn128 hash end.... 9364/32768
merkelizing bn128 hash end.... 23410/32768
merkelizing bn128 hash end.... 0/32768
merkelizing bn128 hash end.... 18728/32768
merkelizing bn128 hash end.... 14046/32768
merkelizing bn128 hash start.... 0/2048
merkelizing bn128 hash end.... 0/2048
merkelizing bn128 hash start.... 0/128
merkelizing bn128 hash end.... 0/128
merkelizing bn128 hash start.... 0/8
merkelizing bn128 hash end.... 0/8
merkelizing bn128 hash start.... 0/1
merkelizing bn128 hash end.... 0/1
start exec step52ns... 0/524288
start exec step52ns... 74899/524288
start exec step52ns... 149798/524288
start exec step52ns... 224697/524288
start exec step52ns... 299596/524288
start exec step52ns... 374495/524288
start exec step52ns... 449394/524288
end exec step52ns... 74899/524288
end exec step52ns... 0/524288
end exec step52ns... 224697/524288
end exec step52ns... 149798/524288
end exec step52ns... 374495/524288
end exec step52ns... 299596/524288
end exec step52ns... 449394/524288
linear hash bn128 start.... 18728/32768
linear hash bn128 start.... 14046/32768
linear hash bn128 start.... 4682/32768
linear hash bn128 start.... 0/32768
linear hash bn128 start.... 23410/32768
linear hash bn128 start.... 28092/32768
linear hash bn128 start.... 9364/32768
linear hash bn128 end.... 0/32768
linear hash bn128 end.... 14046/32768
linear hash bn128 end.... 18728/32768
linear hash bn128 end.... 4682/32768
linear hash bn128 end.... 9364/32768
linear hash bn128 end.... 28092/32768
linear hash bn128 end.... 23410/32768
merkelizing bn128 hash start.... 0/2048
merkelizing bn128 hash end.... 0/2048
merkelizing bn128 hash start.... 0/128
merkelizing bn128 hash end.... 0/128
merkelizing bn128 hash start.... 0/8
merkelizing bn128 hash end.... 0/8
merkelizing bn128 hash start.... 0/1
merkelizing bn128 hash end.... 0/1
linear hash bn128 start.... 0/2048
linear hash bn128 end.... 0/2048
merkelizing bn128 hash start.... 0/128
merkelizing bn128 hash end.... 0/128
merkelizing bn128 hash start.... 0/8
merkelizing bn128 hash end.... 0/8
merkelizing bn128 hash start.... 0/1
merkelizing bn128 hash end.... 0/1
linear hash bn128 start.... 0/128
linear hash bn128 end.... 0/128
merkelizing bn128 hash start.... 0/8
merkelizing bn128 hash end.... 0/8
merkelizing bn128 hash start.... 0/1
merkelizing bn128 hash end.... 0/1
linear hash bn128 start.... 0/16
linear hash bn128 end.... 0/16
merkelizing bn128 hash start.... 0/1
merkelizing bn128 hash end.... 0/1
Publics Hash: 0x702090191200537164411530605620165906781410959030051501669960618942365442542
files Generated Correctly
15)debug运行fibonacci C12 verify proof
:运行main_verifier.js
,输出为验证是否通过,输入有:
fibonacci.c12.proof.json
:STARK证明。fibonacci.c12.public.json
:公开输入。fibonacci.c12.pil
:sm_fibonacci//fibonacci.c12.starkstruct.json
:fibonacci.c12.verkey.json
:/usr/local/bin/node --max-old-space-size=32000 src/main_verifier.js -p /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.pil -s /Users/lanyu/zyd/0xPolygonHermez/pil-stark/test/sm_fibonacci//fibonacci.c12.starkstruct.json -o /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.proof.json -b /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.public.json -v /Users/lanyu/zyd/0xPolygonHermez/pil-stark/tmp/fibonacci.c12.verkey.json
Query:461815
Query:444599
Query:297818
Query:456141
Query:200968
Query:347811
Query:400070
Query:512708
Verification Ok!!
[1] https://github.com/iden3/snarkjs
[2] Circom docs