step/file | sha256 |
buildrom |
-rom.json | cc14764543db4c81ca6ce53b19d075f3a2c2a72783e6e8d2931698bd77321740 |
+rom.json | 676c3f58263fc284bc53ef949dd1acedcfb090f3287ee080b2a277ed2157894a |
buildpil |
-main.pil.json | d6559b5db541b18ec9e510eac3cb8a565b776f1e5fc3ff4797dda5e2b5841698 |
+main.pil.json | e6220953585202f5ecfaa8d7bb2fe3d06bf85fb0af22c2fe46a97abd39ae9aa7 |
buildstoragerom |
-storage_sm_rom.json | 7443b587be9ad40b536adaa678f505450938095ce8175f663b22d3c0d03c0414 |
+storage_sm_rom.json | 676c3f58263fc284bc53ef949dd1acedcfb090f3287ee080b2a277ed2157894a |
buildconstants |
-zkevm.const | f00d5df0a0e218ee6e3e90829e9e6ae4511e91e437b35a3b8e7ea539931ab34c |
+zkevm.const | 3d0c910c9bfa143209e8f545e23e2e98b29f4f5a40c04001fc8254aee9f121c7 |
buildstarkinfo |
zkevm.starkstruct.json | 284b6ce275c637af4a0b4b10cd83a881c6f1b21e21ad7ea2276379ed8393b099 |
-zkevm.starkinfo.json | f2462a5e85bd6cb8e5348ce77a647b6d9695897e427119ce0baef71e638b0f91 |
+zkevm.starkinfo.json | cd4615be096817d14b3b19780897ad39f5cd26f83e5d17518dae7688563fcb54 |
buildconstanttree |
-zkevm.verkey.json | da2a98e3a30c5ec8e2782297c98897803eac663b97cc43bd4808789e2b330932 |
-zkevm.consttree | 66617503a2cc05c3ca05051d7ebb950c5b6f017eaf8315959ecbb5bc92eb770f |
+zkevm.verkey.json | 7d024c2295c3bc478de5a71c4006ede5731420236651e29a384609c913c8eee9 |
+zkevm.consttree | 3d0c910c9bfa143209e8f545e23e2e98b29f4f5a40c04001fc8254aee9f121c7 |
gencircom |
-zkevm.verifier.circom | f33ffebda25aca8bae1a43853a9903a923d981f5014dc0bb195121a6a162da32 |
+zkevm.verifier.circom | e832840aa97ca0e47a448f24ac7019ea80bfb6e9354cbe2fd7a6dada1d5d807b |
compilecircom |
-zkevm.verifier.r1cs | c875b3684b4d61e7e5301c028c46414797865502a1d3688d388dc8ec6f96a6fe |
-zkevm.verifier.sym | ee4cd368c8c167cf7375bcfe437d048c1dd8c5e3088b247059b26f54f3568b9c |
+zkevm.verifier.r1cs | 25f656f632964f8c7800c4d222f34a6e94a576c9b4f3b81fbc2ba6f03889719f |
+zkevm.verifier.sym | e32fc039e6bb550f7d2e375804b0679c6761d488111e6aa9b3b3a638af08ec36 |
c12a_setup |
-c12a.pil | d1aa48508d82fccf82d3aeb2447aa0d5a696125710a1a1203ceb84acac9b4ec5 |
-c12a.const | ea0f88c3bdd7116c14138f78396f5a87c8fcffc6708f4016b547cd83eb49b80b |
-c12a.exec | 30ebe05a0450a19e4534b81c09360776ae9384520f6f442d342e48f6428d7c13 |
+c12a.pil | 13b74f6e33dcbfcb9aa1a5eb7a93691635f51f33aa91e7c867dec11509c93f4d |
+c12a.const | 5fffa6480307f60c9c1202539ae39051cbcb72863bb8e2db5bebf74a2d048f9b |
+c12a.exec | 6fe8e529645f1b72de3851ecd50dde6b830846c4cd3af0b83267151b11ec45e1 |
c12a_buildstarkinfo |
-c12a.starkstruct.json | 920b777dc3d6998c99514761d35d04bc4d129e3799d6ab1d0400eab19988ac6f |
-c12a.starkinfo.json | 9fc0fb3083069dc4a41501adf05423d9a44dd30e980847afcd5130435be96ea3 |
+c12a.starkstruct.json | c8ceea75f0aa05fdbdb20ac41b224355fde07a0dbeecd6649ff8c2636b9a759c |
+c12a.starkinfo.json | c05b27f4538e8071a0e8045faeb8a6de8771053587ad657b07c9401b9597a663 |
c12a_buildconstanttree |
-c12a.verkey.json | 32d300ee8d19c8fa7ea66f153aedc4e017791f5a3ed60d728b7c24ab23529743 |
-c12a.consttree | 8523301542c87b970e6e0f05d3ba91c521dfaf1e3cc30154455679966705e71c |
+c12a.verkey.json | e6a963de090b49ce93c058ffe5438f209091186987b5fc162d6e9122bf86f333 |
+c12a.consttree | 5fffa6480307f60c9c1202539ae39051cbcb72863bb8e2db5bebf74a2d048f9b |
c12a_gencircom |
-c12a.verifier.circom | fa255fda3de38565e365045d8c85576f5420a0a6b1254ea8ce0498085eaf4990 |
+c12a.verifier.circom | 306ef5102ad64e14cb385e7e888dce3fccd73dbd55aa443c1561152779fdf9dd |
recursive1_gencircom |
-recursive1.circom | 9e3c2a901a9340481bca1e2d5793e6893cc6e4ece4ccde1c593c1e413263c44b |
+recursive1.circom | 83543e99e0a1f660761fa8a06310dfd9b69d0c0a358a73b6baec55d9587234e5 |
recursive1_compile |
-recursive1.r1cs | 6212b555400157c9bebf48c10776e087032e352950fb30fd83001b3be1d2b0a8 |
-recursive1.sym | 90cea97ef99766a62c5e5c010c50cbf262c6bfe39f192bf1aeab0d0b2097c13f |
+recursive1.r1cs | bf748272be6aeba8eb8dc3146e68a9eb938c7139d690be1e94a506a4d756eec8 |
+recursive1.sym | 646bc2e3ca5da30c1221039c1e37af2ed46a2f8f7023d65a41cb80c7de5882a9 |
recursive1_setup |
-recursive1.pil | 600aaf142766eb473fcc3b7171f6afa306e09faf37f77a6ac4214c8890e3a55d |
-recursive1.const | 5567e53b906d5129d692f2656529758305d5b5140add9e967169894463b6b539 |
-recursive1.exec | ad048f4119b4b1541092cd57aa4a255ae68bb530dfc2f1fe222567343fc8abe4 |
+recursive1.pil | 94ea2856942dd0745e2d6443c6988a4fdc65ac2c3173633e897e02b6d7eaad8b |
+recursive1.const | bba22272d800b85e67e3b0360dbd67f972804129a8f5ee4a434a26976a3bc8a4 |
+recursive1.exec | 359e6e221cefd35827960ff5cf9cd506ba5e2a5ec92c33312a5903ce087aa155 |
recursive1_buildstarkinfo |
-recursive.starkstruct.json | 7ae67d5411a2de84e9b50e8797270a054f116fdbed6f327acb9d93628ee7549c |
-recursive1.starkinfo.json | 9e5433af9baf24e5570d780f58ef5b857c2ca5a84709489e7f322220af549cca |
+recursive.starkstruct.json | 8bc8b44a7e493e447af7c04d1a362c2198f3e9b29e425248b7646c36b67fd02c |
+recursive1.starkinfo.json | ab63b4008c2b2e769519ff3df4ba6130d66b8d6778c0ba0fb7724d5a4a9e2841 |
recursive1_buildconstanttree |
-recursive1.verkey.json | acab2f616d0d25c65de4628feadfe49407a31c293b4f1d1f1087a1d2f0bf5412 |
-recursive1.consttree | 9a418145a27edf2cc3c40b578f5abf82da00ba6632f32afea7d6ad88085bb492 |
+recursive1.verkey.json | 44f3b6afb36a458031e327d2119a15689ec38eb10ccff729dfda0bae3bf16921 |
+recursive1.consttree | bba22272d800b85e67e3b0360dbd67f972804129a8f5ee4a434a26976a3bc8a4 |
recursive1_verifier_gencircom |
-recursive1.verifier.circom | 40db564e271fb931992afa2d9a75fd35f37c851acf0170074aba7233fdcb4ffc |
+recursive1.verifier.circom | 835cf0a8c4706ced7395957a8bef1e00b70d1007586c9fccf107f12b4936dea5 |
recursive2_gencircom |
-recursive2.circom | b223861020d28e3db7017d5af0143e8c01c917414d5ff9c7fd184dadfd5d50a7 |
+recursive2.circom | 0c03000a9a56601a086fc5c91e9119e2e63fa699fe9d5f362b506c2d3602449f |
recursive2_compile |
-recursive2.r1cs | 46e3d53079476fed62af5a9f7838b52cddb33a4fc1ab9447763d534ae88b0084 |
-recursive2.sym | b38319f2aa8dbc6cf4519fc5ea4bc07212d66177279bdbff331feeb150612d70 |
+recursive2.r1cs | 2fdd9f433b07c90a367dbc2335b7921c1ef242e6466fc5a25b8ebcf8660ff77a |
+recursive2.sym | a47d475bcb09309b2100bfc19ce4c4baa9cee2699373290569617d71fcf51a64 |
recursive2_setup |
-recursive2.pil | 600aaf142766eb473fcc3b7171f6afa306e09faf37f77a6ac4214c8890e3a55d |
-recursive2.const | ff9590f79b8d5540a117b9f6086df1cbededf5a1bb97d570696217c02868dee5 |
-recursive2.exec | 7f2479956334a00a61900491a267c50ac6953d3d3bda871a01d3471bbe4029d5 |
+recursive2.pil | 94ea2856942dd0745e2d6443c6988a4fdc65ac2c3173633e897e02b6d7eaad8b |
+recursive2.const | 7ee905f3949c67af84f417ce2b996b2946b7bf1d4557f8a67f9d7f7ab9540902 |
+recursive2.exec | f32201da15042d9167dc8dd6707c2920d7d2e772d411566739ac874bdbf269fb |
recursive2_buildstarkinfo |
-recursive2.starkinfo.json | 9e5433af9baf24e5570d780f58ef5b857c2ca5a84709489e7f322220af549cca |
+recursive2.starkinfo.json | ab63b4008c2b2e769519ff3df4ba6130d66b8d6778c0ba0fb7724d5a4a9e2841 |
recursive2_buildconstanttree |
-recursive2.verkey.json | 3f11b10a807da2ae7fb36f5f6111c9f4855c84d43cf53dcb594028d7a93a6a90 |
-recursive2.consttree | 6dfbd47f9676f1b1b1f428015c6e698dd588a66edb0ec5fe6a09931a8a9fa49f |
+recursive2.verkey.json | fc3f0d4aaf11bb001102a37e397262aa62a02b6ca001b5c00ba9fccdfb06dda6 |
+recursive2.consttree | 7ee905f3949c67af84f417ce2b996b2946b7bf1d4557f8a67f9d7f7ab9540902 |
recursive2_verifier_gencircom |
-recursive2.verifier.circom | 40db564e271fb931992afa2d9a75fd35f37c851acf0170074aba7233fdcb4ffc |
+recursive2.verifier.circom | 835cf0a8c4706ced7395957a8bef1e00b70d1007586c9fccf107f12b4936dea5 |
recursivef_gencircom |
-recursivef.circom | af70e17e347042831270806d08b8473f8c27013e0edd9b3f1f91d27a8a6e9f26 |
+recursivef.circom | 84f7538268a29a67e7836691b1706f9228fe73f4d890eee7f65f3ddcfc3aafc3 |
recursivef_compile |
-recursivef.r1cs | 3cebbbf05717b393a29be0cdf241fab82e34bca4ae7940172da10fd5bac4bcb6 |
-recursivef.sym | 19bbc1b3f6835ccf0ce10741599039b8d7f5d8c0fe8a7ac53197c36c33ff66d4 |
+recursivef.r1cs | 2861953db44082184ee7a1dcff9b37ab131e3d58cc5539cfe258c6d23f505f8c |
+recursivef.sym | fcbe9cd852065f1224a82f8b595d2c7aaa9fdbc616ef9048714105d69d988cd7 |
recursivef_setup |
-recursivef.pil | 90285d359be25e81bbbf7f7713fceed9874730ae6d233b757dab884b5c88b643 |
-recursivef.const | 2a5286933a664c1736c6ee91b9da2eb694d923bacf86f3309913a6cbdf132096 |
-recursivef.exec | 8cf9b7ff7ca623cc50807a917ee30ca99de6692db89baa315d60e5d09462090b |
+recursivef.pil | 62527bfc12f535e8fa3a6dd7055bc595b27fc491f7203987108ee3d13283dbfe |
+recursivef.const | 0f32c1d45e2e7390cd21bcfadb1be399ea02f6c91c76aaca963a7ee1f131ba41 |
+recursivef.exec | 1751c8a070d68cc64aa7d932a1785330da24139e547805e583f5407c5600715e |
recursivef_buildstarkinfo |
-recursivef.starkstruct.json | 5176f80126963cfac8f7956963aae3c17f4842382327a9e1de066e52bb058718 |
-recursivef.starkinfo.json | 30c96563c8476073759660db21c767726b2ad78aacea0c5007c17972a74a3a6d |
+recursivef.starkstruct.json | ba99ad986178db98b1a867bb9d8592fa6ba5c29d9233fd939d01424425ce6cba |
+recursivef.starkinfo.json | 8d6e9503550ad8bdde303af5b37ad0320171d4f180fc11323b58fbf8d82bb1a6 |
recursivef_buildconstanttree |
-recursivef.verkey.json | 04a55ebcd79b27908a33a66569d3bf0ad7aeaff62fc92566f6a0fc0c3e94beea |
-recursivef.consttree | 40dffd42ef14085954bf58ac2fac193799c7cde032380db826bfb1d601d9919a |
+recursivef.verkey.json | 3e16829b5af0ea65a5f49724d96ed429e1d4da088d4b0c1556093632f94e6bbc |
+recursivef.consttree | 0f32c1d45e2e7390cd21bcfadb1be399ea02f6c91c76aaca963a7ee1f131ba41 |
recursivef_verifier_gencircom |
-recursivef.verifier.circom | c2773fc4db2427b9e192fe4e29cc77cd83289155661efdcd6985c80863a7a685 |
+recursivef.verifier.circom | 68406381a2d730ede86e41ce80f4c214cabb83fd307768b43d5b407978f94c04 |
final_gencircom |
-final.circom | 2c8261d66bef060b17a15829e30ea11b8e4659bea27aa92eb36dcbf18613c1dc |
+final.circom | 74a06304ce73b282a520c358baead152dad790b0aa6b7031f6ba8c00166be459 |
final_compile |
-final.r1cs | 5cc2a9a9842a136ea5fb079519338be1fc3830a726d0f99b3cec461ba0fab90c |
-final.sym | 19fde910362aaf69622b33d432ad92b91409eb851fc8f1691e4255b6e364b868 |
+final.r1cs | bf28b9d2adff923fbf2505a116bf5c29f116b1187fcae972bc78d1f254963380 |
+final.sym | 9c20071021039f3f82b3ecb471402949cbbc290812da97f47aae4b13ad73342d |
fflonk_setup |
-final.fflonk.zkey | ce55fe5c5a453583bac00b7c89344cf167a8354f0a115d52f3eb59434f78ffcc |
+final.fflonk.zkey | b0a674854e811c9d935cfae6fa0cc4b0efbba7014365b06d026b0bc3667a0c7b |
fflonk_evk |
-final.fflonk.verkey.json | ebe2a955e9fddcb57d50c65b505dea7b20ad2991010cea0b9368aa5a21336cbf |
-dependencies.txt | a75792a5c60069ffb6c61124c58850fb54390efa4fe895ba2f1dbce2d7018c24 |
+final.fflonk.verkey.json | 44b4d3ac1331dd17246611687f7c65f659d377c34467df1d49e2e558c3aad1ad |
+dependencies.txt | bb198945774e109721e2bde02a369edf96d21a0533f4bf9882a472dadd90d117 |
fflonk_solidity |
-final.fflonk.verifier.sol | 43e64ada9b72b53740f9ddb5a2c0d30be47f92628593fae247b95c6999861703 |
+final.fflonk.verifier.sol | 8ae7baadd9f2ffb07862b0a74c20e1ad1cc2d4136e416ce5beac82a4e9a44923 |
-
-
-
diff --git a/verifyMainnetDeployment/verifyTestnetProofVerifier.md b/verifyMainnetDeployment/verifyTestnetProofVerifier.md
new file mode 100644
index 000000000..bf402ca25
--- /dev/null
+++ b/verifyMainnetDeployment/verifyTestnetProofVerifier.md
@@ -0,0 +1,369 @@
+# Verify deployment on testnet Sepolia of the proof verifier smart contract (etrog-fork.7)
+
+In order to verify the smart contract, you will need a machine with at least 256GB of RAM and 16 cores.
+
+In this tutorial we will give instructions for a r6a.8xlarge aws instance. This instance has 16 cores 32 threads, 512GB of SSD. The instance will use Ubuntu 22.04 LTS and the cost of the instance is about 1.82 $/h. This process is quite long, it takes approximately 5-6 hours.
+
+So lets start by launching and instance.
+
+## Basic OS preparation
+
+```bash
+sudo apt update
+sudo apt install -y tmux git curl jq
+```
+
+## Tweeking the OS to accept high amount of memory.
+
+```bash
+echo "vm.max_map_count=655300" | sudo tee -a /etc/sysctl.conf
+sudo sysctl -w vm.max_map_count=655300
+export NODE_OPTIONS="--max-old-space-size=230000"
+```
+
+## Install version of node and npm
+
+```bash
+curl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh
+sudo bash nodesource_setup.sh
+sudo apt install -y nodejs
+node -v
+```
+
+The version of node should be: 18 (e.g. 18.19.0 )
+
+## Download and prepare circom
+
+To compile circuits, we need circom installed.
+
+```bash
+cd ~
+git clone https://github.com/iden3/circom.git
+cd circom
+git checkout v2.1.8
+git log --pretty=format:'%H' -n 1
+```
+
+The hash of the commit should be: f0deda416abe91e5dd906c55507c737cd9986ab5
+
+Install and compile circom (RUST)
+
+```bash
+cd ~
+sudo apt install -y cargo
+cd circom
+cargo build --release
+cargo install --path circom
+export PATH=$PATH:~/.cargo/bin
+echo 'PATH=$PATH:~/.cargo/bin' >> ~/.profile
+circom --version
+```
+
+The version of circom should be: 2.1.8
+
+## Prepare fast build constant tree tool
+
+```bash
+cd ~
+git clone https://github.com/0xPolygonHermez/zkevm-prover.git
+cd zkevm-prover
+git checkout 40cde45deacede2b10a91ce2dd926abd2ba67541
+git submodule init
+git submodule update
+sudo apt install -y build-essential libomp-dev libgmp-dev nlohmann-json3-dev libpqxx-dev nasm libgrpc++-dev libprotobuf-dev grpc-proto libsodium-dev uuid-dev libsecp256k1-dev
+make -j bctree
+```
+
+This step takes less than 1 minute.
+
+## Prepare and launch setup (zkevm-proverjs)
+
+```bash
+cd ~
+git clone https://github.com/0xPolygonHermez/zkevm-proverjs.git
+cd zkevm-proverjs
+git checkout ede545493ca4ab6cbd136dbcc452c7794d01bb08
+npm install
+tmux -c "npm run buildsetup --bctree=../zkevm-prover/build/bctree"
+```
+
+This step is quite long, it takes approximately 4.5 hours. 2 out of 4.5 hours are for the powersOfTau28_hez_final.ptau download, a file of 288GB that it's loaded only once.
+
+> NOTE: At the end of the document there is a table with all the hashes of the files generated during this process.
+
+## Compile generated verifier smartcontract (solidity)
+
+As a final result of the previous steps, the smart contract that verifies the test has been generated. This file is _final.fflonk.verifier.sol_. At this point, it is possible to verify the smart contract using the source code or verify that the bytecode is the same. **To verify the bytecode**, you must compile with the precisely same version, compiler, and parameters to be sure that even the metadata hash contained in the bytecode is exactly the same. The following instructions generate a project to build using the **hardhat** tool.
+
+```bash
+cd ~
+mkdir contract
+cd contract
+npm init -y
+npm install hardhat
+mkdir -p contracts/verifiers
+```
+
+To generate the same bycode it's important recover exactlly same options used during compilation, we found this information with contract information on etherscan (Settings).
+Copy this information inside the file ~/contract/settings.json, as follows:
+
+```bash
+cd ~/contract
+cat <