diff --git a/MakefileEks.mk b/MakefileEks.mk index b2c3c7a31..661a951d4 100644 --- a/MakefileEks.mk +++ b/MakefileEks.mk @@ -36,20 +36,41 @@ start-bk-test-morph-test-qanet-to-morph-gas-price-oracle-qanet: # mainnet build-bk-prod-morph-prod-mainnet-to-morph-prover: if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/prover/bin/server && RUSTFLAGS="-C target-feature=+avx2,+avx512f" cargo build --release + cd $(PWD)/prover/bin/server && CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --release cp prover/target/release/prover-server dist/ - cp -r prover/configs dist/ aws s3 cp s3://morph-0582-morph-technical-department-mainnet-data/morph-setup/secret-manager-wrapper.tar.gz ./ tar -xvzf secret-manager-wrapper.tar.gz start-bk-prod-morph-prod-mainnet-to-morph-prover: /data/secret-manager-wrapper ./prover-server +# testnet +build-bk-prod-morph-prod-testnet-to-morph-prover-hoodi: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/server && CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --release + cp prover/target/release/prover-server dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/hoodi/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-prod-morph-prod-testnet-to-morph-prover-hoodi: + /data/secret-manager-wrapper ./prover-server + +# qanet +build-bk-test-morph-test-qanet-to-morph-prover: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/server && CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --release + cp prover/target/release/prover-server dist/ + aws s3 cp s3://morph-7637-morph-technical-department-qanet-data/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-test-morph-test-qanet-to-morph-prover: + /data/secret-manager-wrapper ./prover-server + # challenge-handler # mainnet build-bk-prod-morph-prod-mainnet-to-morph-challenge-handler: if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/prover/bin/challenge && cargo build --release + cd $(PWD)/prover/bin/challenge && CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --release cp prover/bin/challenge/target/release/challenge-handler dist/ aws s3 cp s3://morph-0582-morph-technical-department-mainnet-data/morph-setup/secret-manager-wrapper.tar.gz ./ tar -xvzf secret-manager-wrapper.tar.gz @@ -58,18 +79,63 @@ build-bk-prod-morph-prod-mainnet-to-morph-challenge-handler: start-bk-prod-morph-prod-mainnet-to-morph-challenge-handler: /data/secret-manager-wrapper ./challenge-handler +# testnet +build-bk-prod-morph-prod-testnet-to-morph-challenge-handler-hoodi: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/challenge && CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --release + cp prover/bin/challenge/target/release/challenge-handler dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/hoodi/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-prod-morph-prod-testnet-to-morph-challenge-handler-hoodi: + /data/secret-manager-wrapper ./challenge-handler + +# qanet +build-bk-test-morph-test-qanet-to-morph-challenge-handler: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/challenge && CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --release + cp prover/bin/challenge/target/release/challenge-handler dist/ + aws s3 cp s3://morph-7637-morph-technical-department-qanet-data/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-test-morph-test-qanet-to-morph-challenge-handler: + /data/secret-manager-wrapper ./challenge-handler + # shadow-proving # mainnet build-bk-prod-morph-prod-mainnet-to-morph-shadow-proving: if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/prover/bin/shadow-prove && cargo build --release - cp prover/bin/shadow-prove/target/release/shadow-proving dist/ + cd $(PWD)/prover/bin/shadow-prove && CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --release + cp prover/target/release/shadow-proving dist/ aws s3 cp s3://morph-0582-morph-technical-department-mainnet-data/morph-setup/secret-manager-wrapper.tar.gz ./ tar -xvzf secret-manager-wrapper.tar.gz start-bk-prod-morph-prod-mainnet-to-morph-shadow-proving: /data/secret-manager-wrapper ./shadow-proving +# testnet +build-bk-prod-morph-prod-testnet-to-morph-shadow-proving-hoodi: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/shadow-prove && CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --release + cp prover/target/release/shadow-proving dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/hoodi/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-prod-morph-prod-testnet-to-morph-shadow-proving-hoodi: + /data/secret-manager-wrapper ./shadow-proving + +# qanet +build-bk-test-morph-test-qanet-to-morph-shadow-proving: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/shadow-prove && CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --release + cp prover/target/release/shadow-proving dist/ + aws s3 cp s3://morph-7637-morph-technical-department-qanet-data/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-test-morph-test-qanet-to-morph-shadow-proving: + /data/secret-manager-wrapper ./shadow-proving + + # staking-oracle # mainnet build-bk-prod-morph-prod-mainnet-to-morph-staking-oracle: @@ -129,19 +195,6 @@ start-bk-prod-morph-prod-mainnet-to-morph-token-price-oracle: /data/secret-manager-wrapper ./token-price-oracle -# gas-oracle -# testnet -build-bk-prod-morph-prod-testnet-to-morph-gas-price-oracle-holesky: - if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/gas-oracle/app && cargo build --release - cp gas-oracle/app/target/release/app dist/ - aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ - tar -xvzf secret-manager-wrapper.tar.gz - - -start-bk-prod-morph-prod-testnet-to-morph-gas-price-oracle-holesky: - /data/secret-manager-wrapper ./app - # gas-oracle # hoodi build-bk-prod-morph-prod-testnet-to-morph-gas-price-oracle-hoodi: @@ -156,44 +209,6 @@ start-bk-prod-morph-prod-testnet-to-morph-gas-price-oracle-hoodi: /data/secret-manager-wrapper ./app -# prover -# testnet -build-bk-prod-morph-prod-testnet-to-morph-prover-holesky: - if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/prover/bin/server && RUSTFLAGS="-C target-feature=+avx2,+avx512f" cargo build --release - cp prover/target/release/prover-server dist/ - cp -r prover/configs dist/ - aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ - tar -xvzf secret-manager-wrapper.tar.gz - -start-bk-prod-morph-prod-testnet-to-morph-prover-holesky: - /data/secret-manager-wrapper ./prover-server - -# challenge-handler -# testnet -build-bk-prod-morph-prod-testnet-to-morph-challenge-handler-holesky: - if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/prover/bin/challenge && cargo build --release - cp prover/bin/challenge/target/release/challenge-handler dist/ - aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ - tar -xvzf secret-manager-wrapper.tar.gz - - -start-bk-prod-morph-prod-testnet-to-morph-challenge-handler-holesky: - /data/secret-manager-wrapper ./challenge-handler - -# shadow-proving -# testnet -build-bk-prod-morph-prod-testnet-to-morph-shadow-proving-holesky: - if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/prover/bin/shadow-prove && cargo build --release - cp prover/bin/shadow-prove/target/release/shadow-proving dist/ - aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ - tar -xvzf secret-manager-wrapper.tar.gz - -start-bk-prod-morph-prod-testnet-to-morph-shadow-proving-holesky: - /data/secret-manager-wrapper ./shadow-proving - # staking-oracle # testnet build-bk-prod-morph-prod-testnet-to-morph-staking-oracle-holesky: @@ -204,4 +219,4 @@ build-bk-prod-morph-prod-testnet-to-morph-staking-oracle-holesky: tar -xvzf secret-manager-wrapper.tar.gz start-bk-prod-morph-prod-testnet-to-morph-staking-oracle-holesky: - /data/secret-manager-wrapper ./staking-oracle + /data/secret-manager-wrapper ./staking-oracle \ No newline at end of file diff --git a/contracts/contracts/libraries/verifier/PlonkVerifier.sol b/contracts/contracts/libraries/verifier/PlonkVerifier.sol index 555b50cea..5c85d5acb 100644 --- a/contracts/contracts/libraries/verifier/PlonkVerifier.sol +++ b/contracts/contracts/libraries/verifier/PlonkVerifier.sol @@ -38,38 +38,38 @@ contract PlonkVerifier { uint256 private constant G1_SRS_Y = 11763105256161367503191792604679297387056316997144156930871823008787082098465; // ----------------------- vk --------------------- - uint256 private constant VK_NB_PUBLIC_INPUTS = 2; - uint256 private constant VK_DOMAIN_SIZE = 16777216; - uint256 private constant VK_INV_DOMAIN_SIZE = 21888241567198334088790460357988866238279339518792980768180410072331574733841; - uint256 private constant VK_OMEGA = 5709868443893258075976348696661355716898495876243883251619397131511003808859; - uint256 private constant VK_QL_COM_X = 2714773032566361735398260413518107570706289019141573602093747023461681138141; - uint256 private constant VK_QL_COM_Y = 10207220609888567477852282724812707756861966294950666667119692155077205992894; - uint256 private constant VK_QR_COM_X = 17919274808167168584263187859012763816365260341587621260815379357637476029962; - uint256 private constant VK_QR_COM_Y = 14558165337321799812085033100515533981610351056305142204990949940017867076397; - uint256 private constant VK_QM_COM_X = 1814703450159964740292891910795980721108620081843240976053374083376051887455; - uint256 private constant VK_QM_COM_Y = 11252528960397523304289223453506717847025678682133692300385063157160041127070; - uint256 private constant VK_QO_COM_X = 20843277058771674275997213106654908867381045039357421108797602213552545033079; - uint256 private constant VK_QO_COM_Y = 9646775541123942436366130063934415659078920798926708026864638413383214238671; - uint256 private constant VK_QK_COM_X = 5484717465597821820411103650564499774744032473047103693751158150047197753654; - uint256 private constant VK_QK_COM_Y = 5561799343038529497262757012400750786503050088440144551259537360162821571059; + uint256 private constant VK_NB_PUBLIC_INPUTS = 5; + uint256 private constant VK_DOMAIN_SIZE = 33554432; + uint256 private constant VK_INV_DOMAIN_SIZE = 21888242219518804655518433051623070663413851959604507555939307129453691614729; + uint256 private constant VK_OMEGA = 19200870435978225707111062059747084165650991997241425080699860725083300967194; + uint256 private constant VK_QL_COM_X = 9496857109770518741292064488682135861248962674494967861604446614769298140801; + uint256 private constant VK_QL_COM_Y = 13306697158707148893187289359474517489309092662132847111865615083807847780686; + uint256 private constant VK_QR_COM_X = 15168106396031721196861946917417531048941395918951726120971774887904231224033; + uint256 private constant VK_QR_COM_Y = 17067422783799132011484353829344785446718705273302151466551760455276544179973; + uint256 private constant VK_QM_COM_X = 2062503189072358517228813627364112801206468481541880929627061212524046867500; + uint256 private constant VK_QM_COM_Y = 16383264006058748048241814683452691377147195760917894158624764699848260181996; + uint256 private constant VK_QO_COM_X = 11276993554321744761007348475396375004546042576992247443165667159541648019615; + uint256 private constant VK_QO_COM_Y = 1336009123797329867458955655460754684518485281155722686318249389277951918969; + uint256 private constant VK_QK_COM_X = 3509076513963323471275614870100244642947645425705684850560588726111445186717; + uint256 private constant VK_QK_COM_Y = 15082251669986564403690950092410766520944967428195940447691297074393449013243; - uint256 private constant VK_S1_COM_X = 16111562061301112215931665617877464360548491176332584512747295033804502769274; - uint256 private constant VK_S1_COM_Y = 15035232142063390140879951391784254536324051421746307325879221184372296043705; + uint256 private constant VK_S1_COM_X = 20702610951114261233096944021168607816381642857429919420395478944329365232425; + uint256 private constant VK_S1_COM_Y = 6287924284852772991087729385363871923831267251255140888671281832443192104403; - uint256 private constant VK_S2_COM_X = 899944321381010541211546037826620464002745326050515852312919625047231523882; - uint256 private constant VK_S2_COM_Y = 61717668739330555376092528203839789132705738484346798874082062974863965392; + uint256 private constant VK_S2_COM_X = 645470009383750670501092774958765334436477314405650592677994973080307449345; + uint256 private constant VK_S2_COM_Y = 4256397297118091181646823265799511434474377494065149067487129126410465669924; - uint256 private constant VK_S3_COM_X = 9316901462569250008665217603385561854185385862824092362271612343176126127375; - uint256 private constant VK_S3_COM_Y = 13799900238612879579721466063922041459340434537392216736920805107993374657577; + uint256 private constant VK_S3_COM_X = 7492538199234778964992190797161279888333633666731339557560747528992222778140; + uint256 private constant VK_S3_COM_Y = 19883641962643068517995924785061749749272042967551599977561118882192215161378; uint256 private constant VK_COSET_SHIFT = 5; - uint256 private constant VK_QCP_0_X = 21578473557091588309361521643625606794648013014197133181947992670819103775934; - uint256 private constant VK_QCP_0_Y = 18236588362476326695195531997097392315059481348147701548685746610417604595065; + uint256 private constant VK_QCP_0_X = 21276573233863489069809736193483015861331560639958294945226697354328765942402; + uint256 private constant VK_QCP_0_Y = 21667749868347388386642256911557299806363086510301513644953688310359382808300; - uint256 private constant VK_INDEX_COMMIT_API_0 = 10900304; + uint256 private constant VK_INDEX_COMMIT_API_0 = 25304569; uint256 private constant VK_NB_CUSTOM_GATES = 1; // ------------------------------------------------ diff --git a/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol b/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol index 7d080ded1..8caf81969 100644 --- a/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol +++ b/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol @@ -14,23 +14,33 @@ contract SP1Verifier is PlonkVerifier, ISP1VerifierWithHash { /// @param expected The verifier selector from the first 4 bytes of the VERIFIER_HASH(). error WrongVerifierSelector(bytes4 received, bytes4 expected); + /// @notice Thrown when the exit code is invalid. + error InvalidExitCode(); + /// @notice Thrown when the proof is invalid. error InvalidProof(); + /// @notice Thrown when the vkRoot is invalid. + error InvalidVkRoot(); + + /// @notice The version of the circuit. function VERSION() external pure returns (string memory) { - return "v5.0.0"; + return "v6.1.0"; } /// @inheritdoc ISP1VerifierWithHash function VERIFIER_HASH() public pure returns (bytes32) { - return 0xd4e8ecd2357dd882209800acd6abb443d231cf287d77ba62b732ce937c8b56e7; + return 0x5a093a2fcb46394f5cadfe55c44d4d572fad9cec7aeb38026b0278322ef07fac; + } + + /// @notice The recursion vk root. + function VK_ROOT() public pure returns (bytes32) { + return 0x002f850ee998974d6cc00e50cd0814b098c05bfade466d28573240d057f25352; } /// @notice Hashes the public values to a field elements inside Bn254. /// @param publicValues The public values. - function hashPublicValues( - bytes calldata publicValues - ) public pure returns (bytes32) { + function hashPublicValues(bytes calldata publicValues) public pure returns (bytes32) { return sha256(publicValues) & bytes32(uint256((1 << 253) - 1)); } @@ -49,13 +59,28 @@ contract SP1Verifier is PlonkVerifier, ISP1VerifierWithHash { revert WrongVerifierSelector(receivedSelector, expectedSelector); } + uint256 expectedVkRoot = uint256(VK_ROOT()); + bytes32 publicValuesDigest = hashPublicValues(publicValues); - uint256[] memory inputs = new uint256[](2); + uint256 exitCode = uint256(bytes32(proofBytes[4:36])); + uint256 vkRoot = uint256(bytes32(proofBytes[36:68])); + uint256 nonce = uint256(bytes32(proofBytes[68:100])); + + uint256[] memory inputs = new uint256[](5); inputs[0] = uint256(programVKey); inputs[1] = uint256(publicValuesDigest); - bool success = this.Verify(proofBytes[4:], inputs); + inputs[2] = exitCode; + inputs[3] = vkRoot; + inputs[4] = nonce; + if (exitCode != 0) { + revert InvalidExitCode(); + } + if (vkRoot != expectedVkRoot) { + revert InvalidVkRoot(); + } + bool success = this.Verify(proofBytes[100:], inputs); if (!success) { revert InvalidProof(); } } -} \ No newline at end of file +} diff --git a/contracts/contracts/test/ZkEvmVerifierV1.t.sol b/contracts/contracts/test/ZkEvmVerifierV1.t.sol index 625726f2a..7ad02549a 100644 --- a/contracts/contracts/test/ZkEvmVerifierV1.t.sol +++ b/contracts/contracts/test/ZkEvmVerifierV1.t.sol @@ -7,7 +7,7 @@ import {ZkEvmVerifierV1} from "../libraries/verifier/ZkEvmVerifierV1.sol"; struct ProofFixture { bytes proof; - bytes32 publicValues; + bytes publicValues; bytes32 vkey; } @@ -35,15 +35,17 @@ contract EvmTest is Test { // Prove state success. function test_ValidProof() public { ProofFixture memory fixture = loadFixture(); - evm.verifyPlonk(fixture.proof, abi.encodePacked(fixture.publicValues)); + evm.verifyPlonk(fixture.proof, fixture.publicValues); } // Prove state fail. function testRevert_InValidProof() public { vm.expectRevert(); ProofFixture memory fixture = loadFixture(); - // Create a fake proof. - fixture.proof[31] = 0x00; - evm.verifyPlonk(fixture.proof, abi.encodePacked(fixture.publicValues)); + // Corrupt a byte inside the gnark proof body (proofBytes layout in + // SP1 v6: [0..4]=selector, [4..36]=exit_code, [36..68]=vk_root, + // [68..100]=nonce, [100..]=gnark proof). + fixture.proof[200] = ~fixture.proof[200]; + evm.verifyPlonk(fixture.proof, fixture.publicValues); } } diff --git a/contracts/contracts/test/testdata/plonk-fixture.json b/contracts/contracts/test/testdata/plonk-fixture.json index 40e4ca07d..e01eb0863 100644 --- a/contracts/contracts/test/testdata/plonk-fixture.json +++ b/contracts/contracts/test/testdata/plonk-fixture.json @@ -1,5 +1,5 @@ { - "vkey": "0x00568065400c4b7b991d28b3124e7451968181eda330ec50270385491c87142e", - "publicValues": "0x897d2f833f2f049fb2bc826454b6eae2d0d69121c0d327cc7240c6bf374ac980", - "proof": "0xd4e8ecd20ef452fbba697f570a9b1389f983a1209ba9da6d5c9682c2f5dfeb7dfc6f3e430d3bdf7eb05af0f304a958124dda049e71c0124ca9a6d8166e3f928240376a672d79fd4de9c8a0a40a13175340524cf313d2216af56f3b772f2eb8035a42ee780345bfead9d1265832fa130f732df0d549d80c36d5ef58364a2bd02e73e797bd23b4c88649150ec14ee2c1ad1df82ccc1adbb1c095b76db89e2dba21be48b0a907f1e7cea30a8b785bac8d54e433e2c8b17b6b28f18cf11ea6103d79324a30532665a01e67f1c917d6ffa59be7a044a48ae97f7111bda51ca73158028dd1fcb30b5703907ed32cd0aeecf0bfdfbe4caa9c9bb755acfb6a66e65f53c555dbc60b234a04f755de8b1086d2d17db2d71f4e8c9af2fc2edf97eafa16503a55fe482e140ffdfe4e0e04dcd6085d515b8e79e6b6196b8a02d9ebc9f022d879276d9fc01862b249b949ccdd4cfc740e94439be7037810e187599d9dc5e2789c861c47961b350dd3c07cef5a858346d1c8071615aa70347994ee43fc1a7d5744a68bdef3274ee13e509eb949a225df5eb5985d5ea1e203ecce72b9555c7c695919f20ab90e7603e90b78c46634df70f8f9bfa54158a6f941f7c8c997ffd69e4067c1786106ed63d7c52531baf1f5b747b979623b1966716a07be9babee4bd00043f602d4184f6d4bcf6e052f56f0fc81bbd7fa73e10ecd57a9902af84ef27ea1c3f38f141fddcb9f14d213b345ea13d380be8aee1d6912a99b5bf3e8a3d4323ea208e040191b27c1bb853c46142cb39f7b90bcd759344e07d5fa1a8dc777a3a2f334558a095178aa2cd7a0d85d1291087e6edbd7801223919e17ab6be564949375686a402cb64dbf5fc9bf0bc5dac2091f7b24cd48b0a21beb06dca9c01e66d2edd0890c2398b3a1170bb1ee573b1ec9f4901789ed787fadd39682a8289e1e8df56b2f4322b63434abe93e555bca37f61ff0d043fcef2f2c284e798c457223be9f6bee65077998c030e9af6e41f9f4164df970797ea9d6e726742d72f65fbad7b0d78b5c12dcbecc468dc5c3920b4a757fe3deec8cc2b964843de8e2cee7598904ca66b70d9dccd714f3969747847756d6f2cce80762d9f200731daf7e375734a69a9cfc0a48394a0aa9c64001ae6edc9726a241c9fb121e3ea69b1869b99ef791e761231b9ad4611b940d4289f7ee47bba74f52e101bd2fcc26a25916810242176b5314" -} \ No newline at end of file + "vkey": "0x0098ee1f091411258d9318cb9a146c4e48145cee16b45a774d0445772cbfca4f", + "publicValues": "0xc62b97ef52f4d1c1139f3d829235bfa7510b43beb1da0bf0d1b2f961452bb41be9f2b15ad68b93aeb0dca75ab6fb017446e547ad0b2725d78405d5dbefb2f23a000000000000000000000000000000000000000000000000000000000007a60a0000000000000000000000000000000000000000000000000000000000092da5", + "proof": "0x5a093a2f0000000000000000000000000000000000000000000000000000000000000000002f850ee998974d6cc00e50cd0814b098c05bfade466d28573240d057f25352000000000000000000000000000000000000000000000000000000000000000009e039b630473fb6333c716b7cf89b175e1bd1c72c6faef62355cef25305bc290958f834240755626857adf089247592952bd2291ccc6b305ef622d904f1dc7c0e8dfefb60f5ae69d0e41fa6f2f41e72b55ecb6a1c0e911910ccefa0224086ed0b45961660eff7929c4e93414e8511927550d5e7657d4c7598197012e74d81591a073a65a5c4d88817429729cfdc41aad648e8a38b4353c4f82b4c4ae33614fa05206bd5388d1503c286fb9f90a7f74dc1d2618aeed5ae606fef65985ccb3a161e7346b0c9b55f929d84c010e8d9836cd8a71f2dc5a3e5eccbafc574d5a27fdc2fd2109066e474343d0147d64f878f20e9221c529e05452b2384fb9b7ccef2980407539fb98e53302262566fb3ea5c120608eeba50bc2b3539839ab55557c9d4001fd6c4bbe81534b9d9105cd927353e58fe8c99c9c559bfbce21f79709a6c21224664aa146ab7b1c486102bc154a9c258483bb823e3bfd950e0579be844985904d7c3333f95c0874b8d529a935d1c3d69d604ec61d12275bb72d239360046a91b884ea6cace9c93341e687d1a35aab5ab4918f6213bcaeeb4d5944442e1c0c510dfbb1ceb2162a12e0cb584dd2edd04743e67d0eb9b19a14be668e9d1a51a68229740fc15dc38e00bac7553c8a1fbc971818e232940b97b738a3b995be01780266adc388792a2aa08aa6ef1bced55c86047d0cb88f6d78fb002ecbf86ba269a119a0857878c930c98b1de3342f878c54b0b0c654d3e96cd4abb64958da0d0df205633b26af4a15732c7693b45f34fd8c122ae8f5ae1382fc183ee28c4a510a820c2969273ed66bdb8915dad19ed2efd79e5b8dd0c654749088b09c8d3a5f25125710ad389381391b94c3fa0d740484a52c7cc92c732f92d06e06d52a951f5392c07418ab01fafb61318cf92f925bbe8ca3798b49537e67e7860ed10fdaf4c9919753710a763d08e5e2a06e19cab6eea2565db7b47c98e283c8d97b64f71ad4d302dbb94bb63f9f862b72698207188c46a301ccab42727fd7b07c75021fc37740dbf30460bce3233508bd4de7ed330b849866ecd78fa0c7019a9a9c3d616015320c6b9768223604426002b87d1dcf4ab3ae9e78605e24be98681a2779997c9162a9490301685205f70c19cf3b85eb18fb3302c63e2239eb4a824f716abf5faa405bbe0c04eed294f5f31a3e2ce21309d4923579d95fd37cad68e194658fcefa1" +} diff --git a/contracts/src/deploy-config/holesky.ts b/contracts/src/deploy-config/holesky.ts index fb4bfbcbd..11316b32e 100644 --- a/contracts/src/deploy-config/holesky.ts +++ b/contracts/src/deploy-config/holesky.ts @@ -14,7 +14,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x00940d658cf507217304ec5f7ca5558e2e0fd67881485f604b63588c31a8792f', + programVkey: '0x00c4ea13863f7b423f53140f432d7147e48b8e31660420636931c0a72459c25c', // rollup contract config // initialize config finalizationPeriodSeconds: 600, diff --git a/contracts/src/deploy-config/hoodi.ts b/contracts/src/deploy-config/hoodi.ts index e8b869b6d..8f97970f4 100644 --- a/contracts/src/deploy-config/hoodi.ts +++ b/contracts/src/deploy-config/hoodi.ts @@ -17,7 +17,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x00940d658cf507217304ec5f7ca5558e2e0fd67881485f604b63588c31a8792f', + programVkey: '0x00c4ea13863f7b423f53140f432d7147e48b8e31660420636931c0a72459c25c', // rollup contract config // initialize config finalizationPeriodSeconds: 600, diff --git a/contracts/src/deploy-config/l1.ts b/contracts/src/deploy-config/l1.ts index b49c5a0ce..f71e41eb3 100644 --- a/contracts/src/deploy-config/l1.ts +++ b/contracts/src/deploy-config/l1.ts @@ -17,7 +17,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x00940d658cf507217304ec5f7ca5558e2e0fd67881485f604b63588c31a8792f', + programVkey: '0x00c4ea13863f7b423f53140f432d7147e48b8e31660420636931c0a72459c25c', // rollup contract config // initialize config finalizationPeriodSeconds: 10, diff --git a/contracts/src/deploy-config/qanetl1.ts b/contracts/src/deploy-config/qanetl1.ts index 57bc2223a..ada3595fb 100644 --- a/contracts/src/deploy-config/qanetl1.ts +++ b/contracts/src/deploy-config/qanetl1.ts @@ -14,7 +14,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x00940d658cf507217304ec5f7ca5558e2e0fd67881485f604b63588c31a8792f', + programVkey: '0x00c4ea13863f7b423f53140f432d7147e48b8e31660420636931c0a72459c25c', // rollup contract config // initialize config finalizationPeriodSeconds: 600, diff --git a/contracts/src/deploy-config/sepolia.ts b/contracts/src/deploy-config/sepolia.ts index c5c4b046c..be287026e 100644 --- a/contracts/src/deploy-config/sepolia.ts +++ b/contracts/src/deploy-config/sepolia.ts @@ -18,7 +18,7 @@ const config = { /** * ---to---legacy property */ - programVkey: '0x00940d658cf507217304ec5f7ca5558e2e0fd67881485f604b63588c31a8792f', + programVkey: '0x00c4ea13863f7b423f53140f432d7147e48b8e31660420636931c0a72459c25c', rollupMinDeposit: 0.0001, rollupProofWindow: 86400, rollupGenesisBlockNumber: 0, diff --git a/contracts/src/deploy-config/testnetl1.ts b/contracts/src/deploy-config/testnetl1.ts index f46a89eca..31a6e5746 100644 --- a/contracts/src/deploy-config/testnetl1.ts +++ b/contracts/src/deploy-config/testnetl1.ts @@ -13,7 +13,7 @@ const config = { sequencerWindowSize: 200, channelTimeout: 120, - programVkey: '0x00940d658cf507217304ec5f7ca5558e2e0fd67881485f604b63588c31a8792f', + programVkey: '0x00c4ea13863f7b423f53140f432d7147e48b8e31660420636931c0a72459c25c', rollupMinDeposit: 1, rollupProofWindow: 100, rollupGenesisBlockNumber: 0, diff --git a/prover/Cargo.lock b/prover/Cargo.lock index a4f035465..bd4bc850a 100644 --- a/prover/Cargo.lock +++ b/prover/Cargo.lock @@ -40,7 +40,7 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "once_cell", "version_check", "zerocopy", @@ -80,7 +80,7 @@ dependencies = [ "alloy-rlp", "num_enum 0.7.3", "serde", - "strum 0.27.2", + "strum", ] [[package]] @@ -373,7 +373,7 @@ checksum = "de3b431b4e72cd8bd0ec7a50b4be18e73dab74de0dba180eef171055e5d5926e" dependencies = [ "alloy-rlp", "bytes", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "const-hex", "derive_more 2.1.0", "foldhash 0.2.0", @@ -528,7 +528,7 @@ dependencies = [ "ethereum_ssz_derive", "rand 0.8.5", "serde", - "strum 0.27.2", + "strum", ] [[package]] @@ -580,9 +580,9 @@ dependencies = [ [[package]] name = "alloy-signer-aws" -version = "1.1.3" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc8784b7567d5cfdad7450c5c71ddbdc12b288b82ea559be7a5363c28f774210" +checksum = "e38b411077d7b17e464de7dfa599f5b94161cdffc25c2f28a90a3a345b6d6490" dependencies = [ "alloy-consensus", "alloy-network", @@ -912,7 +912,7 @@ dependencies = [ "num-bigint 0.4.6", "num-traits", "paste", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "zeroize", ] @@ -1138,6 +1138,17 @@ dependencies = [ "serde", ] +[[package]] +name = "async-scoped" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4042078ea593edffc452eef14e99fdb2b120caa4ad9618bcdeabc4a023b98740" +dependencies = [ + "futures", + "pin-project", + "tokio", +] + [[package]] name = "async-stream" version = "0.3.5" @@ -1171,6 +1182,15 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "atomic" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340" +dependencies = [ + "bytemuck", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -1248,9 +1268,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.15.3" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e84ce723ab67259cfeb9877c6a639ee9eb7a27b28123abd71db7f0d5d0cc9d86" +checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" dependencies = [ "aws-lc-sys", "zeroize", @@ -1258,9 +1278,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.36.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a442ece363113bd4bd4c8b18977a7798dd4d3c3383f34fb61936960e8f4ad8" +checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" dependencies = [ "cc", "cmake", @@ -1405,9 +1425,9 @@ dependencies = [ [[package]] name = "aws-smithy-async" -version = "1.2.7" +version = "1.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee19095c7c4dda59f1697d028ce704c24b2d33c6718790c7f1d5a3015b4107c" +checksum = "3cba48474f1d6807384d06fec085b909f5807e16653c5af5c45dfe89539f0b70" dependencies = [ "futures-util", "pin-project-lite", @@ -1444,20 +1464,14 @@ dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", "aws-smithy-types", - "h2 0.3.27", - "h2 0.4.5", - "http 0.2.12", + "h2", "http 1.1.0", - "http-body 0.4.6", - "hyper 0.14.30", "hyper 1.6.0", - "hyper-rustls 0.24.2", - "hyper-rustls 0.27.2", + "hyper-rustls", "hyper-util", "pin-project-lite", - "rustls 0.21.12", - "rustls 0.23.36", - "rustls-native-certs 0.8.2", + "rustls", + "rustls-native-certs 0.8.3", "rustls-pki-types", "tokio", "tower 0.5.2", @@ -1561,9 +1575,9 @@ dependencies = [ [[package]] name = "aws-smithy-xml" -version = "0.60.13" +version = "0.60.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11b2f670422ff42bf7065031e72b45bc52a3508bd089f743ea90731ca2b6ea57" +checksum = "b53543b4b86ed43f051644f704a98c7291b3618b67adf057ee77a366fa52fcaa" dependencies = [ "xmlparser", ] @@ -1578,7 +1592,7 @@ dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", "aws-smithy-types", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "tracing", ] @@ -1708,7 +1722,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" dependencies = [ "addr2line", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "libc", "miniz_oxide", "object", @@ -1725,9 +1739,9 @@ checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" -version = "0.21.7" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" @@ -1868,7 +1882,7 @@ dependencies = [ "arrayref", "arrayvec", "cc", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "constant_time_eq", ] @@ -1881,15 +1895,6 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "block2" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" -dependencies = [ - "objc2", -] - [[package]] name = "bls12_381" version = "0.7.1" @@ -2042,25 +2047,6 @@ dependencies = [ "thiserror 1.0.63", ] -[[package]] -name = "cbindgen" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce8dd7fcfcbf3a0a87d8f515194b49d6135acab73e18bd380d1d93bb1a15eb" -dependencies = [ - "clap", - "heck 0.4.1", - "indexmap 2.12.1", - "log", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn 2.0.111", - "tempfile", - "toml", -] - [[package]] name = "cc" version = "1.2.53" @@ -2090,9 +2076,9 @@ checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -2166,9 +2152,9 @@ checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "cmake" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" dependencies = [ "cc", ] @@ -2188,17 +2174,23 @@ dependencies = [ "encode_unicode", "libc", "once_cell", - "unicode-width", + "unicode-width 0.2.2", "windows-sys 0.59.0", ] +[[package]] +name = "const-default" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa" + [[package]] name = "const-hex" version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "cpufeatures", "proptest", "serde_core", @@ -2260,6 +2252,30 @@ dependencies = [ "libc", ] +[[package]] +name = "crash-context" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031ed29858d90cfdf27fe49fae28028a1f20466db97962fa2f4ea34809aeebf3" +dependencies = [ + "cfg-if 1.0.4", + "libc", + "mach2", +] + +[[package]] +name = "crash-handler" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0df5c9639f4942eb7702b964b3f9adf03a55724a57558cc177407388a8b936e2" +dependencies = [ + "cfg-if 1.0.4", + "crash-context", + "libc", + "mach2", + "parking_lot", +] + [[package]] name = "crc" version = "3.4.0" @@ -2281,7 +2297,7 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", ] [[package]] @@ -2290,6 +2306,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -2318,6 +2347,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.20" @@ -2352,17 +2390,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "ctrlc" -version = "3.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" -dependencies = [ - "dispatch2", - "nix", - "windows-sys 0.61.2", -] - [[package]] name = "darling" version = "0.20.10" @@ -2440,7 +2467,7 @@ version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "crossbeam-utils", "hashbrown 0.14.5", "lock_api", @@ -2488,7 +2515,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee99d08031ca34a4d044efbbb21dff9b8c54bb9d8c82a189187c0651ffdb9fbf" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "dashu-base", "num-modular", "num-order", @@ -2526,6 +2553,27 @@ dependencies = [ "rustversion", ] +[[package]] +name = "deepsize2" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b5184084af9beed35eecbf4c36baf6e26b9dc47b61b74e02f930c72a58e71b" +dependencies = [ + "deepsize_derive2", + "hashbrown 0.14.5", +] + +[[package]] +name = "deepsize_derive2" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0f8817865cacf3b93b943ca06b0fc5fd8e99eabfdb7ea5d296efcbc4afc4f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "der" version = "0.7.9" @@ -2607,7 +2655,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "syn 2.0.111", "unicode-xid", ] @@ -2654,18 +2702,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "dispatch2" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" -dependencies = [ - "bitflags 2.10.0", - "block2", - "libc", - "objc2", -] - [[package]] name = "displaydoc" version = "0.2.5" @@ -2701,15 +2737,56 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +[[package]] +name = "dynasm" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7d4c414c94bc830797115b8e5f434d58e7e80cb42ba88508c14bc6ea270625" +dependencies = [ + "bitflags 2.10.0", + "byteorder", + "lazy_static", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "dynasmrt" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "602f7458a3859195fb840e6e0cce5f4330dd9dfbfece0edaf31fe427af346f55" +dependencies = [ + "byteorder", + "dynasm", + "fnv", + "memmap2", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "signature", + "spki", +] + [[package]] name = "ecdsa" version = "0.16.9" -source = "git+https://github.com/sp1-patches/signatures.git?tag=patch-16.9-sp1-4.1.0#1880299a48fe7ef249edaa616fd411239fb5daf1" +source = "git+https://github.com/sp1-patches/signatures?tag=sp1-skip-verify-on-recovery#1880299a48fe7ef249edaa616fd411239fb5daf1" dependencies = [ "der", "digest 0.10.7", "elliptic-curve", - "rfc6979", + "rfc6979 0.4.0 (git+https://github.com/sp1-patches/signatures?tag=sp1-skip-verify-on-recovery)", "serdect", "signature", "spki", @@ -2764,6 +2841,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "embedded-alloc" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f2de9133f68db0d4627ad69db767726c99ff8585272716708227008d3f1bddd" +dependencies = [ + "const-default", + "critical-section", + "linked_list_allocator", + "rlsf", +] + [[package]] name = "encode_unicode" version = "1.0.0" @@ -2776,7 +2865,7 @@ version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", ] [[package]] @@ -3026,6 +3115,22 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "flexi_logger" version = "0.29.0" @@ -3228,7 +3333,7 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "js-sys", "libc", "wasi", @@ -3241,7 +3346,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "js-sys", "libc", "r-efi", @@ -3294,25 +3399,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "h2" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.12.1", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "h2" version = "0.4.5" @@ -3538,7 +3624,6 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.3.27", "http 0.2.12", "http-body 0.4.6", "httparse", @@ -3561,7 +3646,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.5", + "h2", "http 1.1.0", "http-body 1.0.1", "httparse", @@ -3573,22 +3658,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.30", - "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "tokio", - "tokio-rustls 0.24.1", -] - [[package]] name = "hyper-rustls" version = "0.27.2" @@ -3599,11 +3668,11 @@ dependencies = [ "http 1.1.0", "hyper 1.6.0", "hyper-util", - "rustls 0.23.36", + "rustls", "rustls-native-certs 0.7.3", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tower-service", "webpki-roots 0.26.11", ] @@ -3846,7 +3915,7 @@ dependencies = [ "console", "number_prefix", "portable-atomic", - "unicode-width", + "unicode-width 0.2.2", "web-time", ] @@ -3856,7 +3925,7 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", ] [[package]] @@ -3973,17 +4042,17 @@ dependencies = [ [[package]] name = "k256" version = "0.13.4" -source = "git+https://github.com/sp1-patches/elliptic-curves?tag=patch-k256-13.4-sp1-5.0.0#f7d8998e05d8cbcbd8e543eba1030a7385011fa8" +source = "git+https://github.com/sp1-patches/elliptic-curves?tag=patch-k256-13.4-sp1-6.2.0#41374de1febd88e67faa695a5641ae46460a8cb6" dependencies = [ - "cfg-if 1.0.0", - "ecdsa", + "cfg-if 1.0.4", + "ecdsa 0.16.9 (git+https://github.com/sp1-patches/signatures?tag=sp1-skip-verify-on-recovery)", "elliptic-curve", "hex", "once_cell", "serdect", "sha2", "signature", - "sp1-lib 5.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-lib 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4029,9 +4098,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.178" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libflate" @@ -4059,7 +4128,7 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "windows-link 0.2.1", ] @@ -4079,6 +4148,12 @@ dependencies = [ "libc", ] +[[package]] +name = "linked_list_allocator" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b23ac50abb8261cb38c6e2a7192d3302e0836dac1628f6a93b82b4fad185897" + [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -4131,6 +4206,15 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +[[package]] +name = "mach2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" +dependencies = [ + "libc", +] + [[package]] name = "macro-string" version = "0.1.4" @@ -4163,12 +4247,40 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if 1.0.4", + "digest 0.10.7", +] + [[package]] name = "memchr" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "memfd" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +dependencies = [ + "rustix", +] + +[[package]] +name = "memmap2" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3" +dependencies = [ + "libc", +] + [[package]] name = "memuse" version = "0.2.2" @@ -4194,6 +4306,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -4311,6 +4424,22 @@ dependencies = [ "tracing", ] +[[package]] +name = "mti" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9563a7d5556636e74bbd8773241fbcbc5c89b9f6bfdc97b29b56e740c2c74b9" +dependencies = [ + "typeid_prefix", + "typeid_suffix", +] + +[[package]] +name = "multimap" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" + [[package]] name = "native-tls" version = "0.2.12" @@ -4320,7 +4449,7 @@ dependencies = [ "libc", "log", "openssl", - "openssl-probe", + "openssl-probe 0.1.6", "openssl-sys", "schannel", "security-framework 2.11.1", @@ -4328,24 +4457,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "nix" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" -dependencies = [ - "bitflags 2.10.0", - "cfg-if 1.0.0", - "cfg_aliases", - "libc", -] - -[[package]] -name = "nohash-hasher" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" - [[package]] name = "nom" version = "7.1.3" @@ -4545,35 +4656,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" dependencies = [ "alloy-rlp", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "proptest", "ruint", "serde", "smallvec", ] -[[package]] -name = "objc2" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" -dependencies = [ - "objc2-encode", -] - -[[package]] -name = "objc2-encode" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" - [[package]] name = "object" version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ + "crc32fast", + "flate2", + "hashbrown 0.15.5", + "indexmap 2.12.1", "memchr", + "ruzstd 0.8.3", ] [[package]] @@ -4707,7 +4808,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ "bitflags 2.10.0", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "foreign-types", "libc", "once_cell", @@ -4733,7 +4834,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] -name = "openssl-sys" +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + +[[package]] +name = "openssl-sys" version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" @@ -4744,6 +4851,20 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "opentelemetry" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b69a91d4893e713e06f724597ad630f1fa76057a5e1026c0ca67054a9032a76" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror 1.0.63", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -4759,24 +4880,25 @@ checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" [[package]] name = "p256" version = "0.13.2" -source = "git+https://github.com/sp1-patches/elliptic-curves?tag=patch-p256-13.2-sp1-5.0.0#10cca2ef98bebbad35e2475849433fc3e75e27d9" +source = "git+https://github.com/sp1-patches/elliptic-curves?tag=patch-p256-13.2-sp1-6.2.0#778543de72a8160a9ce253870da1efae6b18e6d3" dependencies = [ - "ecdsa", + "ecdsa 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)", "elliptic-curve", "hex", "primeorder", "sha2", - "sp1-lib 5.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-lib 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "p3-air" -version = "0.2.3-succinct" +version = "0.3.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05a97452c4b1cfa8626e69181d901fc8231d99ff7d87e9701a2e6b934606615" +checksum = "2a16a8d78c6a37d0eb66b008a18a9e8caa38c3a6a9ca9036416d509faf3dbc86" dependencies = [ - "p3-field", - "p3-matrix", + "p3-field 0.3.3-succinct", + "p3-matrix 0.3.3-succinct", + "serde", ] [[package]] @@ -4786,54 +4908,71 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7521838ecab2ddf4f7bc4ceebad06ec02414729598485c1ada516c39900820e8" dependencies = [ "num-bigint 0.4.6", - "p3-field", - "p3-mds", - "p3-poseidon2", - "p3-symmetric", + "p3-field 0.2.3-succinct", + "p3-mds 0.2.3-succinct", + "p3-poseidon2 0.2.3-succinct", + "p3-symmetric 0.2.3-succinct", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-baby-bear" +version = "0.3.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d80b9c0a27092644dc22fd8fd6768dab62d325c6f7d121cf896e6bb3789779cf" +dependencies = [ + "cfg-if 1.0.4", + "num-bigint 0.4.6", + "p3-field 0.3.3-succinct", + "p3-mds 0.3.3-succinct", + "p3-poseidon2 0.3.3-succinct", + "p3-symmetric 0.3.3-succinct", "rand 0.8.5", + "rustc_version 0.4.1", "serde", ] [[package]] name = "p3-bn254-fr" -version = "0.2.3-succinct" +version = "0.3.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0dd4d095d254783098bd09fc5fdf33fd781a1be54608ab93cb3ed4bd723da54" +checksum = "577200e3fa7e49e2b21e940a6dc7399dc63acb8581da088558cdf7c455adafc0" dependencies = [ "ff 0.13.1", "num-bigint 0.4.6", - "p3-field", - "p3-poseidon2", - "p3-symmetric", + "p3-field 0.3.3-succinct", + "p3-poseidon2 0.3.3-succinct", + "p3-symmetric 0.3.3-succinct", "rand 0.8.5", "serde", ] [[package]] name = "p3-challenger" -version = "0.2.3-succinct" +version = "0.3.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d18c223b7e0177f4ac91070fa3f6cc557d5ee3b279869924c3102fb1b20910" +checksum = "75358edd6e2562752c01f5064a66d88144a3e75ace0407166dbdf8a727597f52" dependencies = [ - "p3-field", - "p3-maybe-rayon", - "p3-symmetric", - "p3-util", + "p3-field 0.3.3-succinct", + "p3-maybe-rayon 0.3.3-succinct", + "p3-symmetric 0.3.3-succinct", + "p3-util 0.3.3-succinct", "serde", "tracing", ] [[package]] name = "p3-commit" -version = "0.2.3-succinct" +version = "0.3.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b38fe979d53d4f1d64158c40b3cd9ea1bd6b7bc8f085e489165c542ef914ae28" +checksum = "a0991de9c2f2f8c6a6667eaebe2a5495a2132f9709ffa93357dc18865d154f16" dependencies = [ "itertools 0.12.1", "p3-challenger", - "p3-field", - "p3-matrix", - "p3-util", + "p3-field 0.3.3-succinct", + "p3-matrix 0.3.3-succinct", + "p3-util 0.3.3-succinct", "serde", ] @@ -4843,10 +4982,23 @@ version = "0.2.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46414daedd796f1eefcdc1811c0484e4bced5729486b6eaba9521c572c76761a" dependencies = [ - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", + "p3-field 0.2.3-succinct", + "p3-matrix 0.2.3-succinct", + "p3-maybe-rayon 0.2.3-succinct", + "p3-util 0.2.3-succinct", + "tracing", +] + +[[package]] +name = "p3-dft" +version = "0.3.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761f1e1b014f2b1b69bd0309124e233d64aa3590e6a41ee786000dd849506d51" +dependencies = [ + "p3-field 0.3.3-succinct", + "p3-matrix 0.3.3-succinct", + "p3-maybe-rayon 0.3.3-succinct", + "p3-util 0.3.3-succinct", "tracing", ] @@ -4859,55 +5011,86 @@ dependencies = [ "itertools 0.12.1", "num-bigint 0.4.6", "num-traits", - "p3-util", + "p3-util 0.2.3-succinct", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-field" +version = "0.3.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2df7cebaa4079b24e0dd7e3aad59eebcbb99a67c1271f79ad884a7c032f5f183" +dependencies = [ + "itertools 0.12.1", + "num-bigint 0.4.6", + "num-traits", + "p3-util 0.3.3-succinct", "rand 0.8.5", "serde", ] [[package]] name = "p3-fri" -version = "0.2.3-succinct" +version = "0.3.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c274dab2dcd060cdea9ab3f8f7129f5fa5f08917d6092dc2b297a31d883aa0" +checksum = "49ef10c7f829294e16a6248200e9571908177c0b5f35bdd70748ac3239a02d29" dependencies = [ "itertools 0.12.1", "p3-challenger", "p3-commit", - "p3-dft", - "p3-field", + "p3-dft 0.3.3-succinct", + "p3-field 0.3.3-succinct", "p3-interpolation", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", + "p3-matrix 0.3.3-succinct", + "p3-maybe-rayon 0.3.3-succinct", + "p3-util 0.3.3-succinct", "serde", "tracing", ] [[package]] name = "p3-interpolation" -version = "0.2.3-succinct" +version = "0.3.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed8de7333abb0ad0a17bb78726a43749cc7fcab4763f296894e8b2933841d4d8" +checksum = "413812d3ada8aa10ece23fc68d47d0c23eed1decbc3844a56f9647c7199796d7" dependencies = [ - "p3-field", - "p3-matrix", - "p3-util", + "p3-field 0.3.3-succinct", + "p3-matrix 0.3.3-succinct", + "p3-util 0.3.3-succinct", ] [[package]] name = "p3-keccak-air" -version = "0.2.3-succinct" +version = "0.3.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01c7ec21317c455d39588428e4ec85b96d663ff171ddf102a10e2ca54c942dea" +checksum = "87a087526deb74bf12cc4efc1e50d5c387120624b15ea1de1f3efb440efbcd4d" dependencies = [ "p3-air", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", + "p3-field 0.3.3-succinct", + "p3-matrix 0.3.3-succinct", + "p3-maybe-rayon 0.3.3-succinct", + "p3-util 0.3.3-succinct", "tracing", ] +[[package]] +name = "p3-koala-bear" +version = "0.3.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cea0ba3389b034b6088d566aea8b57aa29dd2e180966e0c8056f61331c92b4e" +dependencies = [ + "cfg-if 1.0.4", + "num-bigint 0.4.6", + "p3-field 0.3.3-succinct", + "p3-mds 0.3.3-succinct", + "p3-poseidon2 0.3.3-succinct", + "p3-symmetric 0.3.3-succinct", + "rand 0.8.5", + "rustc_version 0.4.1", + "serde", +] + [[package]] name = "p3-matrix" version = "0.2.3-succinct" @@ -4915,9 +5098,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e4de3f373589477cb735ea58e125898ed20935e03664b4614c7fac258b3c42f" dependencies = [ "itertools 0.12.1", - "p3-field", - "p3-maybe-rayon", - "p3-util", + "p3-field 0.2.3-succinct", + "p3-maybe-rayon 0.2.3-succinct", + "p3-util 0.2.3-succinct", + "rand 0.8.5", + "serde", + "tracing", +] + +[[package]] +name = "p3-matrix" +version = "0.3.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fae5cc6ce726cc265cc687c1214e3f1ac1f5c6e973442286ba00d1e75da1c3cb" +dependencies = [ + "itertools 0.12.1", + "p3-field 0.3.3-succinct", + "p3-maybe-rayon 0.3.3-succinct", + "p3-util 0.3.3-succinct", "rand 0.8.5", "serde", "tracing", @@ -4928,6 +5126,12 @@ name = "p3-maybe-rayon" version = "0.2.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3968ad1160310296eb04f91a5f4edfa38fe1d6b2b8cd6b5c64e6f9b7370979e" + +[[package]] +name = "p3-maybe-rayon" +version = "0.3.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac1d2f102cf8c71dba1b449575c99697781fcc028831e83d2245787bd7a650" dependencies = [ "rayon", ] @@ -4939,27 +5143,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2356b1ed0add6d5dfbf7a338ce534a6fde827374394a52cec16a0840af6e97c9" dependencies = [ "itertools 0.12.1", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", + "p3-dft 0.2.3-succinct", + "p3-field 0.2.3-succinct", + "p3-matrix 0.2.3-succinct", + "p3-symmetric 0.2.3-succinct", + "p3-util 0.2.3-succinct", + "rand 0.8.5", +] + +[[package]] +name = "p3-mds" +version = "0.3.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f072643e385d65fb9eb089ee6824b320417f78671a0db748566e057e28b250e" +dependencies = [ + "itertools 0.12.1", + "p3-dft 0.3.3-succinct", + "p3-field 0.3.3-succinct", + "p3-matrix 0.3.3-succinct", + "p3-symmetric 0.3.3-succinct", + "p3-util 0.3.3-succinct", "rand 0.8.5", ] [[package]] name = "p3-merkle-tree" -version = "0.2.3-succinct" +version = "0.3.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f159e073afbee02c00d22390bf26ebb9ce03bbcd3e6dcd13c6a7a3811ab39608" +checksum = "946fcfa239847824c9216db8ac731611c7e82171ef51869bc89d985ad46000d0" dependencies = [ "itertools 0.12.1", "p3-commit", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-symmetric", - "p3-util", + "p3-field 0.3.3-succinct", + "p3-matrix 0.3.3-succinct", + "p3-maybe-rayon 0.3.3-succinct", + "p3-symmetric 0.3.3-succinct", + "p3-util 0.3.3-succinct", "serde", "tracing", ] @@ -4971,9 +5190,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da1eec7e1b6900581bedd95e76e1ef4975608dd55be9872c9d257a8a9651c3a" dependencies = [ "gcd", - "p3-field", - "p3-mds", - "p3-symmetric", + "p3-field 0.2.3-succinct", + "p3-mds 0.2.3-succinct", + "p3-symmetric 0.2.3-succinct", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-poseidon2" +version = "0.3.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00cc4b6e8a439f79541b0910a016da9e6e12a05a24309bbb713e1db0db396952" +dependencies = [ + "gcd", + "p3-field 0.3.3-succinct", + "p3-mds 0.3.3-succinct", + "p3-symmetric 0.3.3-succinct", "rand 0.8.5", "serde", ] @@ -4985,25 +5218,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb439bea1d822623b41ff4b51e3309e80d13cadf8b86d16ffd5e6efb9fdc360" dependencies = [ "itertools 0.12.1", - "p3-field", + "p3-field 0.2.3-succinct", + "serde", +] + +[[package]] +name = "p3-symmetric" +version = "0.3.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eebff7fea7deb08a57ccf731a0ed39df25cc66a0e0c2d92c4472c4dee02ee21" +dependencies = [ + "itertools 0.12.1", + "p3-field 0.3.3-succinct", "serde", ] [[package]] name = "p3-uni-stark" -version = "0.2.3-succinct" +version = "0.3.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a86f29c32bf46fa4acb6547d2065a711e146d4faca388b56d75718c60a0097d" +checksum = "e352e1c9765674f618dbd56e33f673a688d1f85332929fcbefa0fc5e5f4373b5" dependencies = [ "itertools 0.12.1", "p3-air", "p3-challenger", "p3-commit", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", + "p3-dft 0.3.3-succinct", + "p3-field 0.3.3-succinct", + "p3-matrix 0.3.3-succinct", + "p3-maybe-rayon 0.3.3-succinct", + "p3-util 0.3.3-succinct", "serde", "tracing", ] @@ -5017,6 +5261,15 @@ dependencies = [ "serde", ] +[[package]] +name = "p3-util" +version = "0.3.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8164df89bbc92e29938f916cc5f1ccbfe6a36fb5040f21ba93c1f21985b9868" +dependencies = [ + "serde", +] + [[package]] name = "pairing" version = "0.22.0" @@ -5077,7 +5330,7 @@ version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "libc", "redox_syscall", "smallvec", @@ -5120,12 +5373,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pathdiff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" - [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -5152,6 +5399,16 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset", + "indexmap 2.12.1", +] + [[package]] name = "phf" version = "0.13.1" @@ -5295,7 +5552,7 @@ dependencies = [ [[package]] name = "primeorder" version = "0.13.1" -source = "git+https://github.com/sp1-patches/elliptic-curves?tag=patch-p256-13.2-sp1-5.0.0#10cca2ef98bebbad35e2475849433fc3e75e27d9" +source = "git+https://github.com/sp1-patches/elliptic-curves?tag=patch-p256-13.2-sp1-6.2.0#778543de72a8160a9ce253870da1efae6b18e6d3" dependencies = [ "elliptic-curve", ] @@ -5420,6 +5677,26 @@ dependencies = [ "prost-derive", ] +[[package]] +name = "prost-build" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +dependencies = [ + "heck 0.4.1", + "itertools 0.10.5", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.111", + "tempfile", +] + [[package]] name = "prost-derive" version = "0.13.5" @@ -5433,6 +5710,15 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "prost-types" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +dependencies = [ + "prost", +] + [[package]] name = "protobuf" version = "2.28.0" @@ -5457,7 +5743,7 @@ dependencies = [ "prover-storage-witness", "reth-trie", "revm", - "ruzstd", + "ruzstd 0.7.2", "serde", "serde_json", "serde_with", @@ -5501,7 +5787,7 @@ dependencies = [ "serde", "serde_json", "tokio", - "zstd 0.13.0", + "zstd", ] [[package]] @@ -5621,7 +5907,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.36", + "rustls", "socket2 0.6.1", "thiserror 2.0.17", "tokio", @@ -5641,7 +5927,7 @@ dependencies = [ "rand 0.9.2", "ring", "rustc-hash 2.1.1", - "rustls 0.23.36", + "rustls", "rustls-pki-types", "slab", "thiserror 2.0.17", @@ -5871,9 +6157,9 @@ dependencies = [ [[package]] name = "regex-lite" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d942b98df5e658f56f20d592c7f868833fe38115e65c33003d8cd224b0155da" +checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" [[package]] name = "regex-syntax" @@ -5893,12 +6179,12 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.5", + "h2", "http 1.1.0", "http-body 1.0.1", "http-body-util", "hyper 1.6.0", - "hyper-rustls 0.27.2", + "hyper-rustls", "hyper-tls", "hyper-util", "ipnet", @@ -5910,8 +6196,8 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.36", - "rustls-pemfile 2.1.3", + "rustls", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", @@ -5920,7 +6206,7 @@ dependencies = [ "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.0", + "tokio-rustls", "tokio-util", "tower 0.5.2", "tower-service", @@ -6140,7 +6426,7 @@ dependencies = [ "alloy-primitives", "derive_more 2.1.0", "serde", - "strum 0.27.2", + "strum", "thiserror 2.0.17", ] @@ -6164,7 +6450,7 @@ dependencies = [ "derive_more 2.1.0", "fixed-map", "serde", - "strum 0.27.2", + "strum", ] [[package]] @@ -6272,7 +6558,7 @@ name = "reth-zstd-compressors" version = "1.10.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.10.0#b25f32a977b489f9b84254c7811a2a5a25a81369" dependencies = [ - "zstd 0.13.3", + "zstd", ] [[package]] @@ -6313,7 +6599,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f038f0c9c723393ac897a5df9140b21cfa98f5753a2cb7d0f28fa430c4118abf" dependencies = [ "bitvec", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "derive-where", "revm-bytecode", "revm-context-interface", @@ -6430,7 +6716,7 @@ dependencies = [ "arrayref", "aurora-engine-modexp", "c-kzg", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "k256", "p256", "revm-primitives", @@ -6468,7 +6754,17 @@ dependencies = [ [[package]] name = "rfc6979" version = "0.4.0" -source = "git+https://github.com/sp1-patches/signatures.git?tag=patch-16.9-sp1-4.1.0#1880299a48fe7ef249edaa616fd411239fb5daf1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "git+https://github.com/sp1-patches/signatures?tag=sp1-skip-verify-on-recovery#1880299a48fe7ef249edaa616fd411239fb5daf1" dependencies = [ "hmac", "subtle", @@ -6481,7 +6777,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "getrandom 0.2.15", "libc", "spin 0.9.8", @@ -6514,11 +6810,24 @@ dependencies = [ "rustc-hex", ] +[[package]] +name = "rlsf" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1646a59a9734b8b7a0ac51689388a60fe1625d4b956348e9de07591a1478457a" +dependencies = [ + "cfg-if 1.0.4", + "const-default", + "libc", + "rustversion", + "svgbobdoc", +] + [[package]] name = "rrs-succinct" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3372685893a9f67d18e98e792d690017287fd17379a83d798d958e517d380fa9" +checksum = "efd079cd303257a4cb4e5aadfa79a7fe23f3c8301aa4740ccc3a99673485a352" dependencies = [ "downcast-rs", "num_enum 0.5.11", @@ -6606,9 +6915,9 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver 1.0.23", ] @@ -6626,18 +6935,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - [[package]] name = "rustls" version = "0.23.36" @@ -6649,31 +6946,19 @@ dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.9", + "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework 2.11.1", -] - [[package]] name = "rustls-native-certs" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ - "openssl-probe", - "rustls-pemfile 2.1.3", + "openssl-probe 0.1.6", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework 2.11.1", @@ -6681,25 +6966,16 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" +checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" dependencies = [ - "openssl-probe", + "openssl-probe 0.2.1", "rustls-pki-types", "schannel", "security-framework 3.5.1", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.1.3" @@ -6720,16 +6996,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "rustls-webpki" version = "0.103.9" @@ -6765,7 +7031,16 @@ name = "ruzstd" version = "0.7.2" source = "git+https://github.com/KillingSpark/zstd-rs.git?branch=master#603ee2dfa5f0abe3a8bfc5fad6cb9782cdf37a68" dependencies = [ - "twox-hash", + "twox-hash 1.6.3", +] + +[[package]] +name = "ruzstd" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7c1c839d570d835527c9a5e4db7cb2198683a988cb9d7293fc8674e6bd58fc8" +dependencies = [ + "twox-hash 2.1.2", ] [[package]] @@ -6780,7 +7055,7 @@ version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "derive_more 1.0.0", "parity-scale-codec", "scale-info-derive", @@ -6846,16 +7121,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "sdd" version = "3.0.10" @@ -7045,15 +7310,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -7132,20 +7388,28 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + [[package]] name = "sha2" version = "0.10.9" -source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=patch-sha2-0.10.9-sp1-4.0.0#0b1945eea7d9a776fd6e50ffd5fc51f0c5e6f155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "cpufeatures", "digest 0.10.7", ] [[package]] name = "sha3" -version = "0.10.8" -source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=patch-sha3-0.10.8-sp1-4.0.0#8f6d303c0861ba7e5adcc36207c0f41fe5edaabc" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" dependencies = [ "digest 0.10.7", "keccak", @@ -7158,7 +7422,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b31139435f327c93c6038ed350ae4588e2c70a13d50599509fee6349967ba35a" dependencies = [ "cc", - "cfg-if 1.0.0", + "cfg-if 1.0.4", ] [[package]] @@ -7231,16 +7495,16 @@ dependencies = [ ] [[package]] -name = "siphasher" -version = "1.0.1" +name = "simd-adler32" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] -name = "size" -version = "0.4.1" +name = "siphasher" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" @@ -7252,33 +7516,524 @@ dependencies = [ ] [[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +name = "slop-air" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ - "serde", + "p3-air", ] [[package]] -name = "snap" -version = "1.1.1" +name = "slop-algebra" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" +checksum = "2987d60942c83511c5819afdd9ca83a9723fed072c43d5e1144393beebbce49c" +dependencies = [ + "itertools 0.14.0", + "p3-field 0.3.3-succinct", + "serde", +] [[package]] -name = "snowbridge-amcl" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" +name = "slop-algebra" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ - "parity-scale-codec", - "scale-info", + "itertools 0.14.0", + "p3-field 0.3.3-succinct", + "serde", ] [[package]] -name = "socket2" -version = "0.5.7" +name = "slop-alloc" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "thiserror 1.0.63", +] + +[[package]] +name = "slop-baby-bear" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "lazy_static", + "p3-baby-bear 0.3.3-succinct", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-poseidon2 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", +] + +[[package]] +name = "slop-basefold" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "derive-where", + "itertools 0.14.0", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-baby-bear", + "slop-bn254 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-koala-bear 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-merkle-tree", + "slop-multilinear", + "slop-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-tensor", + "slop-utils", + "thiserror 1.0.63", +] + +[[package]] +name = "slop-basefold-prover" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "derive-where", + "itertools 0.14.0", + "rand 0.8.5", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-baby-bear", + "slop-basefold", + "slop-bn254 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-commit", + "slop-dft", + "slop-fri", + "slop-futures", + "slop-koala-bear 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-merkle-tree", + "slop-multilinear", + "slop-tensor", + "thiserror 1.0.63", +] + +[[package]] +name = "slop-bn254" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3ca8edc31419a3e33a9f4b9e11f072caf5fd6e2b32f2b9fcaa5b0863f3da66" +dependencies = [ + "ff 0.13.1", + "p3-bn254-fr", + "serde", + "slop-algebra 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-challenger 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-poseidon2 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-symmetric 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "zkhash", +] + +[[package]] +name = "slop-bn254" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "ff 0.13.1", + "p3-bn254-fr", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-poseidon2 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "zkhash", +] + +[[package]] +name = "slop-challenger" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "144e5c2ed52b6499792c98262b8bbeb435c361d005caa6f2a6c9ecb8529915b4" +dependencies = [ + "futures", + "p3-challenger", + "serde", + "slop-algebra 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-symmetric 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "slop-challenger" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "futures", + "p3-challenger", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", +] + +[[package]] +name = "slop-commit" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "p3-commit", + "serde", + "slop-alloc", +] + +[[package]] +name = "slop-dft" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "p3-dft 0.3.3-succinct", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-matrix", + "slop-tensor", +] + +[[package]] +name = "slop-fri" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "p3-fri", +] + +[[package]] +name = "slop-futures" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "crossbeam", + "futures", + "pin-project", + "rayon", + "thiserror 1.0.63", + "tokio", + "tracing", +] + +[[package]] +name = "slop-jagged" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "derive-where", + "futures", + "itertools 0.14.0", + "num_cpus", + "rand 0.8.5", + "rayon", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-baby-bear", + "slop-basefold", + "slop-basefold-prover", + "slop-bn254 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-commit", + "slop-futures", + "slop-koala-bear 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-merkle-tree", + "slop-multilinear", + "slop-stacked", + "slop-sumcheck", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-tensor", + "slop-utils", + "thiserror 1.0.63", + "tracing", +] + +[[package]] +name = "slop-keccak-air" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "p3-keccak-air", +] + +[[package]] +name = "slop-koala-bear" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca44a6d3457836c6a1685dcb27b3f64c0b6f555ade06dd2a8fda5003e7594e" +dependencies = [ + "lazy_static", + "p3-koala-bear", + "serde", + "slop-algebra 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-challenger 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-poseidon2 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-symmetric 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "slop-koala-bear" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "lazy_static", + "p3-koala-bear", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-poseidon2 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", +] + +[[package]] +name = "slop-matrix" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "p3-matrix 0.3.3-succinct", +] + +[[package]] +name = "slop-maybe-rayon" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "p3-maybe-rayon 0.3.3-succinct", +] + +[[package]] +name = "slop-merkle-tree" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "derive-where", + "ff 0.13.1", + "itertools 0.14.0", + "p3-merkle-tree", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-baby-bear", + "slop-bn254 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-commit", + "slop-futures", + "slop-koala-bear 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-matrix", + "slop-poseidon2 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-tensor", + "slop-utils", + "thiserror 1.0.63", + "zkhash", +] + +[[package]] +name = "slop-multilinear" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "derive-where", + "futures", + "num_cpus", + "rand 0.8.5", + "rayon", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-commit", + "slop-futures", + "slop-matrix", + "slop-tensor", +] + +[[package]] +name = "slop-poseidon2" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3386c5935d822f8621a19f305dffdcae3d9a1956a7b657a7f8893438abf22526" +dependencies = [ + "p3-poseidon2 0.3.3-succinct", +] + +[[package]] +name = "slop-poseidon2" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "p3-poseidon2 0.3.3-succinct", +] + +[[package]] +name = "slop-primitives" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d20475296d399080467eb486e6063967e85d3d13200301275e56541c356f96bd" +dependencies = [ + "slop-algebra 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "slop-primitives" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", +] + +[[package]] +name = "slop-stacked" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "derive-where", + "futures", + "itertools 0.14.0", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-basefold", + "slop-basefold-prover", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-commit", + "slop-futures", + "slop-merkle-tree", + "slop-multilinear", + "slop-tensor", + "thiserror 1.0.63", +] + +[[package]] +name = "slop-sumcheck" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "futures", + "itertools 0.14.0", + "rayon", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-baby-bear", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-multilinear", + "thiserror 1.0.63", +] + +[[package]] +name = "slop-symmetric" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580a4f683c60b000b7ac8ca3fcd200a2a70f4caf2e43268f9089323534d15ecc" +dependencies = [ + "p3-symmetric 0.3.3-succinct", +] + +[[package]] +name = "slop-symmetric" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "p3-symmetric 0.3.3-succinct", +] + +[[package]] +name = "slop-tensor" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "arrayvec", + "derive-where", + "itertools 0.14.0", + "rand 0.8.5", + "rayon", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-futures", + "slop-matrix", + "thiserror 1.0.63", + "transpose", +] + +[[package]] +name = "slop-uni-stark" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "p3-uni-stark", +] + +[[package]] +name = "slop-utils" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "p3-util 0.3.3-succinct", + "tracing-forest", + "tracing-subscriber 0.3.22", +] + +[[package]] +name = "slop-whir" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "derive-where", + "futures", + "itertools 0.14.0", + "rand 0.8.5", + "rayon", + "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-baby-bear", + "slop-basefold", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-commit", + "slop-dft", + "slop-jagged", + "slop-koala-bear 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-matrix", + "slop-merkle-tree", + "slop-multilinear", + "slop-stacked", + "slop-tensor", + "slop-utils", + "thiserror 1.0.63", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +dependencies = [ + "serde", +] + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "snowbridge-amcl" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" +dependencies = [ + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "socket2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ @@ -7298,47 +8053,49 @@ dependencies = [ [[package]] name = "sp1-build" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ "anyhow", "cargo_metadata", "chrono", "clap", "dirs", - "sp1-prover", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", ] [[package]] name = "sp1-core-executor" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ "bincode", "bytemuck", + "cfg-if 1.0.4", "clap", + "deepsize2", "elf", "enum-map", "eyre", "hashbrown 0.14.5", "hex", - "itertools 0.13.0", - "nohash-hasher", + "itertools 0.14.0", + "memmap2", "num", - "p3-baby-bear", - "p3-field", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "range-set-blaze", + "object", "rrs-succinct", "serde", + "serde_arrays", "serde_json", + "slop-air", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-maybe-rayon", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", "sp1-curves", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", - "sp1-stark", - "strum 0.26.3", - "strum_macros 0.26.4", + "sp1-hypercube", + "sp1-jit", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "strum", "subenum", "thiserror 1.0.63", "tiny-keccak", @@ -7347,127 +8104,214 @@ dependencies = [ "vec_map", ] +[[package]] +name = "sp1-core-executor-runner" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "base64 0.22.1", + "bincode", + "cargo_metadata", + "hashbrown 0.14.5", + "hex", + "libc", + "sha2", + "sp1-core-executor", + "sp1-core-executor-runner-binary", + "sp1-jit", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "sysinfo", + "tracing", + "uuid", +] + +[[package]] +name = "sp1-core-executor-runner-binary" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "bincode", + "crash-handler", + "libc", + "serde", + "sp1-core-executor", + "sp1-jit", + "tracing-subscriber 0.3.22", +] + [[package]] name = "sp1-core-machine" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ "bincode", - "cbindgen", - "cc", - "cfg-if 1.0.0", - "elliptic-curve", + "cfg-if 1.0.4", + "enum-map", + "futures", "generic-array 1.1.0", - "glob", "hashbrown 0.14.5", - "hex", - "itertools 0.13.0", - "k256", + "itertools 0.14.0", "num", "num_cpus", - "p256", - "p3-air", - "p3-baby-bear", - "p3-challenger", - "p3-field", - "p3-keccak-air", - "p3-matrix", - "p3-maybe-rayon", - "p3-poseidon2", - "p3-symmetric", - "p3-uni-stark", - "p3-util", - "pathdiff", - "rand 0.8.5", "rayon", "rayon-scan", + "rrs-succinct", "serde", "serde_json", - "size", + "slop-air", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-futures", + "slop-keccak-air", + "slop-matrix", + "slop-maybe-rayon", + "slop-uni-stark", "snowbridge-amcl", "sp1-core-executor", + "sp1-core-executor-runner", "sp1-curves", "sp1-derive", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", - "sp1-stark", + "sp1-hypercube", + "sp1-jit", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", "static_assertions", - "strum 0.26.3", - "strum_macros 0.26.4", + "struct-reflection", + "strum", + "sysinfo", "tempfile", "thiserror 1.0.63", + "tokio", "tracing", "tracing-forest", "tracing-subscriber 0.3.22", "typenum", - "web-time", -] - -[[package]] -name = "sp1-cuda" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" -dependencies = [ - "bincode", - "ctrlc", - "prost", - "serde", - "sp1-core-machine", - "sp1-prover", - "tokio", - "tracing", - "twirp-rs", ] [[package]] name = "sp1-curves" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "dashu", "elliptic-curve", "generic-array 1.1.0", - "itertools 0.13.0", + "itertools 0.14.0", "k256", "num", "p256", - "p3-field", "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", "snowbridge-amcl", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", - "sp1-stark", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", "typenum", ] [[package]] name = "sp1-derive" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ + "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "sp1-hypercube" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "arrayref", + "deepsize2", + "derive-where", + "futures", + "hashbrown 0.14.5", + "itertools 0.14.0", + "num-bigint 0.4.6", + "num-traits", + "num_cpus", + "rayon", + "rayon-scan", + "serde", + "slop-air", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-basefold", + "slop-basefold-prover", + "slop-bn254 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-commit", + "slop-futures", + "slop-jagged", + "slop-koala-bear 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-matrix", + "slop-merkle-tree", + "slop-multilinear", + "slop-poseidon2 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-stacked", + "slop-sumcheck", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-tensor", + "slop-uni-stark", + "slop-whir", + "sp1-derive", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "struct-reflection", + "strum", + "thiserror 1.0.63", + "thousands", + "tokio", + "tracing", +] + +[[package]] +name = "sp1-jit" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "dynasmrt", + "hashbrown 0.14.5", + "libc", + "memfd", + "memmap2", + "serde", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "tracing", + "uuid", +] + [[package]] name = "sp1-lib" version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b73b8ff343f2405d5935440e56b7aba5cee6d87303f0051974cbd6f5de502f57" +dependencies = [ + "bincode", + "serde", + "sp1-primitives 5.2.4", +] + +[[package]] +name = "sp1-lib" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1ce7f8d6098c930fb0c03c60f1c8b0ef61b6625811b210b2c694801ceb62f78" dependencies = [ "bincode", "elliptic-curve", "serde", - "sp1-primitives 5.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-primitives 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp1-lib" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ "bincode", "serde", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", ] [[package]] @@ -7478,326 +8322,372 @@ checksum = "7e69a03098f827102c54c31a5e57280eb45b2c085de433b3f702e4f9e3ec1641" dependencies = [ "bincode", "blake3", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "hex", "lazy_static", "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-poseidon2", - "p3-symmetric", + "p3-baby-bear 0.2.3-succinct", + "p3-field 0.2.3-succinct", + "p3-poseidon2 0.2.3-succinct", + "p3-symmetric 0.2.3-succinct", "serde", "sha2", ] [[package]] name = "sp1-primitives" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03476134330b0677d5eee5dec288cf2b0f883511c7496e55dcc9c15cf8debb47" dependencies = [ "bincode", "blake3", - "cfg-if 1.0.0", + "elf", "hex", + "itertools 0.14.0", + "lazy_static", + "num-bigint 0.4.6", + "serde", + "sha2", + "slop-algebra 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-bn254 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-challenger 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-koala-bear 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-poseidon2 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-primitives 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slop-symmetric 6.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp1-primitives" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "bincode", + "blake3", + "elf", + "hex", + "itertools 0.14.0", "lazy_static", "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-poseidon2", - "p3-symmetric", "serde", "sha2", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-bn254 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-koala-bear 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-poseidon2 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", ] [[package]] name = "sp1-prover" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ "anyhow", "bincode", "clap", "dirs", + "either", "enum-map", "eyre", + "futures", "hashbrown 0.14.5", "hex", - "itertools 0.13.0", + "indicatif", + "itertools 0.14.0", "lru 0.12.5", + "mti", "num-bigint 0.4.6", - "p3-baby-bear", - "p3-bn254-fr", - "p3-challenger", - "p3-commit", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", - "rayon", + "opentelemetry", + "pin-project", + "rand 0.8.5", "reqwest", "serde", "serde_json", "serial_test", "sha2", + "slop-air", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-basefold", + "slop-bn254 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-futures", + "slop-jagged", + "slop-multilinear", + "slop-stacked", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", "sp1-core-executor", + "sp1-core-executor-runner", "sp1-core-machine", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", + "sp1-derive", + "sp1-hypercube", + "sp1-jit", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "sp1-prover-types", "sp1-recursion-circuit", "sp1-recursion-compiler", - "sp1-recursion-core", + "sp1-recursion-executor", "sp1-recursion-gnark-ffi", - "sp1-stark", + "sp1-recursion-machine", "sp1-verifier", + "static_assertions", + "sysinfo", + "tempfile", "thiserror 1.0.63", + "tokio", + "tonic", "tracing", "tracing-appender", "tracing-subscriber 0.3.22", ] [[package]] -name = "sp1-recursion-circuit" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +name = "sp1-prover-types" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ + "anyhow", + "async-scoped", + "bincode", + "chrono", + "futures-util", "hashbrown 0.14.5", - "itertools 0.13.0", - "num-traits", - "p3-air", - "p3-baby-bear", - "p3-bn254-fr", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-matrix", - "p3-symmetric", - "p3-uni-stark", - "p3-util", + "mti", + "prost", + "serde", + "sp1-core-machine", + "sp1-hypercube", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "tokio", + "tonic", + "tonic-build", + "tracing", +] + +[[package]] +name = "sp1-recursion-circuit" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "bincode", + "itertools 0.14.0", "rand 0.8.5", "rayon", "serde", + "slop-air", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-alloc", + "slop-basefold", + "slop-basefold-prover", + "slop-bn254 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-commit", + "slop-jagged", + "slop-koala-bear 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-matrix", + "slop-merkle-tree", + "slop-multilinear", + "slop-stacked", + "slop-sumcheck", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-tensor", + "slop-whir", "sp1-core-executor", "sp1-core-machine", "sp1-derive", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", + "sp1-hypercube", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", "sp1-recursion-compiler", - "sp1-recursion-core", - "sp1-recursion-gnark-ffi", - "sp1-stark", + "sp1-recursion-executor", + "sp1-recursion-machine", "tracing", ] [[package]] name = "sp1-recursion-compiler" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ "backtrace", - "itertools 0.13.0", - "p3-baby-bear", - "p3-bn254-fr", - "p3-field", - "p3-symmetric", + "cfg-if 1.0.4", + "itertools 0.14.0", "serde", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-bn254 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", "sp1-core-machine", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", - "sp1-recursion-core", - "sp1-recursion-derive", - "sp1-stark", + "sp1-hypercube", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "sp1-recursion-executor", "tracing", "vec_map", ] [[package]] -name = "sp1-recursion-core" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +name = "sp1-recursion-executor" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ "backtrace", - "cbindgen", - "cc", - "cfg-if 1.0.0", - "ff 0.13.1", - "glob", + "cfg-if 1.0.4", "hashbrown 0.14.5", - "itertools 0.13.0", - "num_cpus", - "p3-air", - "p3-baby-bear", - "p3-bn254-fr", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-matrix", - "p3-maybe-rayon", - "p3-merkle-tree", - "p3-poseidon2", - "p3-symmetric", - "p3-util", - "pathdiff", - "rand 0.8.5", + "itertools 0.14.0", + "range-set-blaze", "serde", - "sp1-core-machine", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-maybe-rayon", + "slop-poseidon2 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "smallvec", "sp1-derive", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", - "sp1-stark", + "sp1-hypercube", "static_assertions", "thiserror 1.0.63", "tracing", - "vec_map", - "zkhash", -] - -[[package]] -name = "sp1-recursion-derive" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" -dependencies = [ - "quote", - "syn 1.0.109", ] [[package]] name = "sp1-recursion-gnark-ffi" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ "anyhow", "bincode", "bindgen", - "cc", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "hex", "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-symmetric", "serde", "serde_json", "sha2", - "sp1-core-machine", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "sp1-hypercube", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", "sp1-recursion-compiler", - "sp1-stark", + "sp1-verifier", "tempfile", "tracing", ] +[[package]] +name = "sp1-recursion-machine" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" +dependencies = [ + "itertools 0.14.0", + "rand 0.8.5", + "slop-air", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-basefold", + "slop-matrix", + "slop-maybe-rayon", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "sp1-derive", + "sp1-hypercube", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "sp1-recursion-executor", + "strum", + "tracing", + "zkhash", +] + [[package]] name = "sp1-sdk" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ "alloy-primitives", "alloy-signer", "alloy-signer-aws", "alloy-signer-local", - "alloy-sol-types", "anyhow", "async-trait", "aws-config", "aws-sdk-kms", "backoff", "bincode", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "dirs", "eventsource-stream", "futures", - "hashbrown 0.14.5", "hex", "indicatif", - "itertools 0.13.0", + "itertools 0.14.0", "k256", - "p3-baby-bear", - "p3-field", - "p3-fri", + "num-bigint 0.4.6", "prost", "reqwest", "reqwest-middleware", - "rustls 0.23.36", + "rustls", "serde", - "serde_json", + "sha2", "sp1-build", "sp1-core-executor", + "sp1-core-executor-runner", "sp1-core-machine", - "sp1-cuda", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", + "sp1-hypercube", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", "sp1-prover", - "sp1-stark", - "strum 0.26.3", - "strum_macros 0.26.4", - "sysinfo", + "sp1-prover-types", + "sp1-recursion-executor", + "sp1-recursion-gnark-ffi", + "sp1-verifier", + "strum", "tempfile", "thiserror 1.0.63", "tokio", "tonic", "tracing", "twirp-rs", -] - -[[package]] -name = "sp1-stark" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" -dependencies = [ - "arrayref", - "hashbrown 0.14.5", - "itertools 0.13.0", - "num-bigint 0.4.6", - "num-traits", - "p3-air", - "p3-baby-bear", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-matrix", - "p3-maybe-rayon", - "p3-merkle-tree", - "p3-poseidon2", - "p3-symmetric", - "p3-uni-stark", - "p3-util", - "rayon-scan", - "serde", - "sp1-derive", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", - "strum 0.26.3", - "sysinfo", - "tracing", + "zstd", ] [[package]] name = "sp1-verifier" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ + "bincode", "blake3", - "cfg-if 1.0.0", + "cfg-if 1.0.4", + "dirs", "hex", "lazy_static", + "serde", "sha2", - "substrate-bn-succinct", + "slop-algebra 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-challenger 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "slop-symmetric 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "sp1-hypercube", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "sp1-recursion-executor", + "sp1-recursion-machine", + "strum", + "substrate-bn-succinct-rs", "thiserror 2.0.17", ] [[package]] name = "sp1-zkvm" -version = "5.2.4" -source = "git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4#2a51f3dd370e4c5f74d04dfd89359a13a7e93f99" +version = "6.2.0" +source = "git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0#3772ff967823e6e8fd5db0d876b46bde836831cf" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", + "critical-section", + "embedded-alloc", "getrandom 0.2.15", "getrandom 0.3.4", "lazy_static", "libm", "rand 0.8.5", "sha2", - "sp1-lib 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", - "sp1-primitives 5.2.4 (git+https://github.com/succinctlabs/sp1.git?tag=v5.2.4)", + "sp1-lib 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", + "sp1-primitives 6.2.0 (git+https://github.com/succinctlabs/sp1.git?tag=v6.2.0)", ] [[package]] @@ -7806,12 +8696,12 @@ version = "0.8.0-sp1-5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac255e1704ebcdeec5e02f6a0ebc4d2e9e6b802161938330b6810c13a610c583" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "ff 0.13.1", "group 0.13.0", "pairing 0.23.0", "rand_core 0.6.4", - "sp1-lib 5.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-lib 5.2.4", "subtle", ] @@ -7849,6 +8739,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strength_reduce" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" + [[package]] name = "strsim" version = "0.11.1" @@ -7856,34 +8752,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] -name = "strum" -version = "0.26.3" +name = "struct-reflection" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +checksum = "701b671d1ad68e250e05718f95dae3014a17f4e69cbe51842531c30495ff3301" dependencies = [ - "strum_macros 0.26.4", + "struct-reflection-derive", ] [[package]] -name = "strum" -version = "0.27.2" +name = "struct-reflection-derive" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" +checksum = "59ab74230a0592602e361bd63c645413fa8cbe4500d10274e849179e5c72548f" dependencies = [ - "strum_macros 0.27.2", + "proc-macro2", + "quote", + "syn 2.0.111", ] [[package]] -name = "strum_macros" -version = "0.26.4" +name = "strum" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.111", + "strum_macros", ] [[package]] @@ -7913,34 +8807,30 @@ dependencies = [ [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/sp1-patches/bn?tag=patch-0.6.0-sp1-5.0.0#e0d67f219b2ad6a1887e3275b7ba09ada4b1afb6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" dependencies = [ - "bytemuck", "byteorder", - "cfg-if 1.0.0", "crunchy", "lazy_static", - "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", - "sp1-lib 5.2.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "substrate-bn-succinct" -version = "0.6.0-v5.0.0" +name = "substrate-bn-succinct-rs" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ba32f1b74728f92887c3ad17c42bf82998eb52c9091018f35294e9cd388b0c8" +checksum = "a241fd7c1016fb8ad30fcf5a20986c0c4538e8f15a1b41a1761516299e377ec1" dependencies = [ "bytemuck", "byteorder", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "crunchy", "lazy_static", "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", - "sp1-lib 5.2.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -7949,6 +8839,19 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "svgbobdoc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" +dependencies = [ + "base64 0.13.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-width 0.1.14", +] + [[package]] name = "syn" version = "1.0.109" @@ -8015,7 +8918,7 @@ version = "0.30.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "core-foundation-sys", "libc", "ntapi", @@ -8057,7 +8960,7 @@ version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "fastrand", "once_cell", "rustix", @@ -8104,13 +9007,19 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "thousands" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" + [[package]] name = "thread_local" version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", ] [[package]] @@ -8196,7 +9105,6 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2 0.6.1", @@ -8225,23 +9133,13 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.36", + "rustls", "rustls-pki-types", "tokio", ] @@ -8271,26 +9169,11 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.24", -] - [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] [[package]] name = "toml_edit" @@ -8314,19 +9197,6 @@ dependencies = [ "winnow 0.5.40", ] -[[package]] -name = "toml_edit" -version = "0.22.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" -dependencies = [ - "indexmap 2.12.1", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.7.14", -] - [[package]] name = "tonic" version = "0.12.3" @@ -8338,7 +9208,7 @@ dependencies = [ "axum 0.7.9", "base64 0.22.1", "bytes", - "h2 0.4.5", + "h2", "http 1.1.0", "http-body 1.0.1", "http-body-util", @@ -8348,16 +9218,31 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "rustls-native-certs 0.8.2", - "rustls-pemfile 2.1.3", + "rustls-native-certs 0.8.3", + "rustls-pemfile", "socket2 0.5.7", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tokio-stream", "tower 0.4.13", "tower-layer", "tower-service", "tracing", + "webpki-roots 0.26.11", +] + +[[package]] +name = "tonic-build" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn 2.0.111", ] [[package]] @@ -8523,6 +9408,16 @@ dependencies = [ "tracing-log", ] +[[package]] +name = "transpose" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e" +dependencies = [ + "num-integer", + "strength_reduce", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -8561,6 +9456,27 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "twox-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" + +[[package]] +name = "typeid_prefix" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9da1387307fdee46aa441e4f08a1b491e659fcac1aca9cd71f2c624a0de5d1b" + +[[package]] +name = "typeid_suffix" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77b55e96f110c6db5d1a2f24072552537f0091dc90cebeaa679540bac93e7405" +dependencies = [ + "uuid", +] + [[package]] name = "typenum" version = "1.17.0" @@ -8603,6 +9519,12 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "unicode-width" version = "0.2.2" @@ -8657,7 +9579,11 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ + "atomic", + "getrandom 0.3.4", "js-sys", + "md-5", + "sha1_smol", "wasm-bindgen", ] @@ -8745,7 +9671,7 @@ version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "once_cell", "rustversion", "wasm-bindgen-macro", @@ -8758,7 +9684,7 @@ version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 1.0.4", "js-sys", "wasm-bindgen", "web-sys", @@ -9349,7 +10275,7 @@ dependencies = [ "blake2", "bls12_381", "byteorder", - "cfg-if 1.0.0", + "cfg-if 1.0.4", "group 0.12.1", "group 0.13.0", "halo2", @@ -9364,54 +10290,26 @@ dependencies = [ "subtle", ] -[[package]] -name = "zstd" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack/mul-block#5c0892b6567dab31394d701477183ce9d6a32aca" -dependencies = [ - "zstd-safe 7.0.0", -] - [[package]] name = "zstd" version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +source = "git+https://github.com/morph-l2/zstd-rs.git?branch=zstd-dev#147bc25144f57278a538028df58afe8ae5e1dbe3" dependencies = [ - "zstd-safe 7.2.4", + "zstd-safe", ] [[package]] name = "zstd-safe" version = "7.0.0" -source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack/mul-block#5c0892b6567dab31394d701477183ce9d6a32aca" -dependencies = [ - "zstd-sys 2.0.9+zstd.1.5.5", -] - -[[package]] -name = "zstd-safe" -version = "7.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +source = "git+https://github.com/morph-l2/zstd-rs.git?branch=zstd-dev#147bc25144f57278a538028df58afe8ae5e1dbe3" dependencies = [ - "zstd-sys 2.0.16+zstd.1.5.7", + "zstd-sys", ] [[package]] name = "zstd-sys" version = "2.0.9+zstd.1.5.5" -source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack/mul-block#5c0892b6567dab31394d701477183ce9d6a32aca" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +source = "git+https://github.com/morph-l2/zstd-rs.git?branch=zstd-dev#147bc25144f57278a538028df58afe8ae5e1dbe3" dependencies = [ "cc", "pkg-config", diff --git a/prover/Cargo.toml b/prover/Cargo.toml index 8da6b206f..bb1da3bf4 100644 --- a/prover/Cargo.toml +++ b/prover/Cargo.toml @@ -28,7 +28,7 @@ repository = "https://github.com/morph-l2/morph/tree/main/prover" [workspace.dependencies] # General Utilities anyhow = "1.0" -cfg-if = "1.0.0" +cfg-if = "1.0.4" clap = "4" csv = "1.3" ctor = "0.2" @@ -59,11 +59,14 @@ prometheus = { version = "0.9", features = ["process"] } prometheus-client = "0.22" # Compression +# zstd decompression, the pure Rust implementation used in riscv client. ruzstd = { git = "https://github.com/KillingSpark/zstd-rs.git", branch = "master" } -zstd = { git = "https://github.com/scroll-tech/zstd-rs", branch = "hack/mul-block", features = [ +# zstd compression, the C implementation used in host. +zstd = { git = "https://github.com/morph-l2/zstd-rs.git", branch = "zstd-dev", features = [ "experimental", ] } + # Crypto c-kzg = "2.1.5" kzg-rs = { git = "https://github.com/succinctlabs/kzg-rs" } @@ -123,9 +126,9 @@ morph-chainspec = { git = "https://github.com/morph-l2/morph-reth.git", branch = # ZK / SP1 -sp1-sdk = { git = "https://github.com/succinctlabs/sp1.git", tag = "v5.2.4" } -sp1-zkvm = { git = "https://github.com/succinctlabs/sp1.git", tag = "v5.2.4" } -sp1-verifier = { git = "https://github.com/succinctlabs/sp1.git", tag = "v5.2.4" } +sp1-sdk = { git = "https://github.com/succinctlabs/sp1.git", tag = "v6.2.0" } +sp1-zkvm = { git = "https://github.com/succinctlabs/sp1.git", tag = "v6.2.0" } +sp1-verifier = { git = "https://github.com/succinctlabs/sp1.git", tag = "v6.2.0" } # Workspace Members morph-prove = { path = "bin/host", default-features = false } @@ -145,8 +148,10 @@ missing-debug-implementations = "deny" [patch.crates-io] # Precompile patches -sha2 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", tag = "patch-sha2-0.10.9-sp1-4.0.0", package = "sha2" } -bn = { git = "https://github.com/sp1-patches/bn", tag = "patch-0.6.0-sp1-5.0.0", package = "substrate-bn" } -sha3 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", tag = "patch-sha3-0.10.8-sp1-4.0.0" } -k256 = { git = "https://github.com/sp1-patches/elliptic-curves", tag = "patch-k256-13.4-sp1-5.0.0" } -p256 = { git = "https://github.com/sp1-patches/elliptic-curves", tag = "patch-p256-13.2-sp1-5.0.0" } +k256 = { git = "https://github.com/sp1-patches/elliptic-curves", tag = "patch-k256-13.4-sp1-6.2.0" } +p256 = { git = "https://github.com/sp1-patches/elliptic-curves", tag = "patch-p256-13.2-sp1-6.2.0" } + +# Use the same local zstd implementation for transitive users (notably sp1-sdk) +# to avoid multiple libzstd C implementations with different experimental +# parameter numbers being linked into the same binary. +zstd = { git = "https://github.com/morph-l2/zstd-rs.git", branch = "zstd-dev" } diff --git a/prover/README.md b/prover/README.md index dada38a7b..c3099f839 100644 --- a/prover/README.md +++ b/prover/README.md @@ -9,6 +9,11 @@ Generate zk proof for the l2 batch. ### Build the Program +SP1 v6 requires the 64-bit succinct toolchain. Install with: + +```sh +sp1up --version v6.2.0 +``` To build the program to risc-v bin: @@ -18,7 +23,7 @@ cargo prove build ``` or use docker(reproducible compilation): ```sh -cargo prove build --docker --tag v5.2.4 +cargo prove build --docker --tag v6.2.0 ``` This will output the compiled ELF to the file client/elf/verifier-client. diff --git a/prover/bin/client/elf/verifier-client b/prover/bin/client/elf/verifier-client index affbb11e7..bad44d5e6 100755 Binary files a/prover/bin/client/elf/verifier-client and b/prover/bin/client/elf/verifier-client differ diff --git a/prover/bin/host/Cargo.toml b/prover/bin/host/Cargo.toml index cc7ded048..07529f509 100644 --- a/prover/bin/host/Cargo.toml +++ b/prover/bin/host/Cargo.toml @@ -18,7 +18,7 @@ sp1-verifier = { workspace = true } anyhow.workspace = true serde = { workspace = true } serde_json = { workspace = true } -tokio = { workspace = true } +tokio = { workspace = true, features = ["macros"] } clap = { workspace = true } log = { workspace = true } env_logger = { workspace = true } @@ -35,9 +35,9 @@ prover-utils = { workspace = true } [dev-dependencies] -tokio = { workspace = true } +tokio = { workspace = true, features = ["macros"] } [features] default = ["network"] local = ["sp1-sdk/native-gnark"] -network = [] +network = ["sp1-sdk/network"] diff --git a/prover/bin/host/src/lib.rs b/prover/bin/host/src/lib.rs index c7b5bdd3b..89ff960ad 100644 --- a/prover/bin/host/src/lib.rs +++ b/prover/bin/host/src/lib.rs @@ -8,9 +8,15 @@ use prover_primitives::{alloy_primitives::keccak256, B256}; use prover_utils::read_env_var; #[cfg(feature = "local")] use sp1_sdk::CpuProver; + +#[cfg(all(feature = "network", not(feature = "local")))] +use sp1_sdk::{network::FulfillmentStrategy, network::NetworkMode, NetworkProver}; #[cfg(all(feature = "network", not(feature = "local")))] -use sp1_sdk::{network::NetworkMode, NetworkProver}; -use sp1_sdk::{HashableKey, Prover, ProverClient, SP1ProvingKey, SP1Stdin, SP1VerifyingKey}; +use std::time::Duration; + +use sp1_sdk::{ + Elf, HashableKey, ProveRequest, Prover, ProverClient, ProvingKey, SP1ProvingKey, SP1Stdin, +}; use sp1_verifier::PlonkVerifier; use std::time::Instant; @@ -24,7 +30,6 @@ const MAX_PROVE_BLOCKS: usize = 4096; pub struct BatchProver { prover_client: C, pk: SP1ProvingKey, - vk: SP1VerifyingKey, } #[cfg(feature = "local")] @@ -37,31 +42,38 @@ pub type DefaultClient = NetworkProver; #[cfg(all(not(feature = "local"), not(feature = "network")))] compile_error!("One of `local` or `network` features must be enabled for morph-prove."); -/// A batch prover that uses the default proving client based on the feature flag. -impl Default for BatchProver { - fn default() -> Self { +impl BatchProver { + /// Creates a new BatchProver with the default proving client based on the feature flag. + pub async fn new() -> Result { let prover_client = { #[cfg(all(feature = "network", not(feature = "local")))] { ProverClient::builder() .network_for(NetworkMode::Mainnet) - .rpc_url("https://rpc.mainnet.succinct.xyz") + .rpc_url(&read_env_var( + "SP1_RPC_URL", + "https://rpc.mainnet.succinct.xyz".to_owned(), + )) .build() + .await } #[cfg(feature = "local")] { - ProverClient::builder().cpu().build() + ProverClient::builder().cpu().build().await } }; - let (pk, vk) = prover_client.setup(BATCH_VERIFIER_ELF); - log::info!("Batch ELF Verification Key: {:?}", vk.vk.bytes32()); - Self { prover_client, pk, vk } + let pk = prover_client + .setup(Elf::Static(BATCH_VERIFIER_ELF)) + .await + .context("failed to setup prover")?; + log::info!("Batch ELF Verification Key: {:?}", pk.verifying_key().bytes32()); + Ok(Self { prover_client, pk }) } } impl BatchProver { /// Proves a batch of EVM transactions and verifies the proof. - pub fn prove( + pub async fn prove( &self, input: &mut ExecutorInput, prove: bool, @@ -92,8 +104,8 @@ impl BatchProver { if read_env_var("DEVNET", false) { let (mut public_values, execution_report) = self .prover_client - .execute(BATCH_VERIFIER_ELF, &stdin) - .run() + .execute(Elf::Static(BATCH_VERIFIER_ELF), stdin.clone()) + .await .context("sp1-vm execution failed")?; log::info!( "Program executed successfully, Number of cycles: {}", @@ -120,8 +132,29 @@ impl BatchProver { // Generate the proof log::info!("Start proving..."); let start = Instant::now(); - let mut proof = - self.prover_client.prove(&self.pk, &stdin).plonk().run().context("proving failed")?; + let mut proof = { + #[cfg(all(feature = "network", not(feature = "local")))] + { + self.prover_client + .prove(&self.pk, stdin) + .strategy(FulfillmentStrategy::Auction) + .skip_simulation(true) + .gas_limit(read_env_var("SP1_GAS_LIMIT", 10_000_000_000)) + .plonk() + .timeout(Duration::from_secs(read_env_var("SP1_TIMEOUT", 1200))) + .await + .context("network prove error")? + } + #[cfg(feature = "local")] + { + self.prover_client + .prove(&self.pk, stdin) + .plonk() + .await + .context("local prove error")? + } + }; + let duration_mins = start.elapsed().as_secs() / 60; log::info!("Successfully generated proof!, time use: {} minutes", duration_mins); @@ -129,7 +162,8 @@ impl BatchProver { let plonk_proof = proof.bytes(); let public_inputs = proof.public_values.to_vec(); let plonk_vk = *sp1_verifier::PLONK_VK_BYTES; - PlonkVerifier::verify(&plonk_proof, &public_inputs, &self.vk.bytes32(), plonk_vk) + let vk = self.pk.verifying_key(); + PlonkVerifier::verify(&plonk_proof, &public_inputs, &vk.bytes32(), plonk_vk) .context("failed to verify proof")?; log::info!("Successfully verified proof!"); @@ -140,7 +174,7 @@ impl BatchProver { alloy::hex::encode_prefixed(pi_bytes) ); let fixture = EvmProofFixture { - vkey: self.vk.bytes32().to_string(), + vkey: vk.bytes32().to_string(), public_values: B256::from_slice(&pi_bytes).to_string(), proof: alloy::hex::encode_prefixed(proof.bytes()), }; @@ -156,7 +190,7 @@ impl BatchProver { mod tests { use prover_primitives::B256; - use sp1_sdk::{HashableKey, ProverClient, SP1ProofWithPublicValues}; + use sp1_sdk::{Elf, HashableKey, Prover, ProverClient, ProvingKey, SP1ProofWithPublicValues}; use sp1_verifier::PlonkVerifier; use crate::{ @@ -164,16 +198,17 @@ mod tests { BATCH_VERIFIER_ELF, }; - #[test] - pub fn verify_proof() { + #[tokio::test] + pub async fn verify_proof() { let proof_loaded = SP1ProofWithPublicValues::load("../../proof/artifact_mainnet").unwrap(); let proof = proof_loaded.bytes(); let public_inputs = proof_loaded.public_values.to_vec(); - let client = ProverClient::from_env(); + let client = ProverClient::from_env().await; - let (_pk, vk) = client.setup(BATCH_VERIFIER_ELF); + let pk = client.setup(Elf::Static(BATCH_VERIFIER_ELF)).await.unwrap(); + let vk = pk.verifying_key(); // Print the verification key. println!("Program Verification Key: {}", vk.bytes32()); let plonk_vk = *sp1_verifier::PLONK_VK_BYTES; diff --git a/prover/bin/host/src/main.rs b/prover/bin/host/src/main.rs index e997852af..21fcf10e8 100644 --- a/prover/bin/host/src/main.rs +++ b/prover/bin/host/src/main.rs @@ -39,7 +39,7 @@ async fn main() { dotenv::dotenv().ok(); env_logger::Builder::new().filter_level(log::LevelFilter::Info).format_target(false).init(); - let prover = BatchProver::default(); + let prover = BatchProver::new().await.expect("failed to initialize BatchProver"); let args = Args::parse(); let mut input = if args.use_rpc_db { @@ -63,7 +63,7 @@ async fn main() { println!("Saved executor input to {input_path}"); } - let proof = prover.prove(&mut input, args.prove).unwrap(); + let proof = prover.prove(&mut input, args.prove).await.unwrap(); if let Some(evm_proof) = proof { let proof_dir = PathBuf::from("proof").join(format!("blocks_{}_{}", args.start_block, args.end_block)); diff --git a/prover/bin/host/src/vkey.rs b/prover/bin/host/src/vkey.rs index b2e654f43..b3a56e74b 100644 --- a/prover/bin/host/src/vkey.rs +++ b/prover/bin/host/src/vkey.rs @@ -5,24 +5,25 @@ //! RUST_LOG=info cargo run --bin vkey --release //! ``` -use sp1_sdk::{HashableKey, ProverClient}; +use sp1_sdk::{Elf, HashableKey, Prover, ProverClient, ProvingKey}; /// The ELF (executable and linkable format) file for the Succinct RISC-V zkVM. /// /// This file is generated by running `cargo prove build` inside the `program` directory. pub const STATELESS_VERIFIER_ELF: &[u8] = include_bytes!("../../client/elf/verifier-client"); -fn main() { +#[tokio::main] +async fn main() { // Setup the logger. sp1_sdk::utils::setup_logger(); // Setup the prover client. std::env::set_var("SP1_PROVER", "cpu"); - let client = ProverClient::from_env(); + let client = ProverClient::from_env().await; // Setup the program. - let (_, vk) = client.setup(STATELESS_VERIFIER_ELF); + let pk = client.setup(Elf::Static(STATELESS_VERIFIER_ELF)).await.unwrap(); // Print the verification key. - println!("Program Verification Key: {}", vk.bytes32()); + println!("Program Verification Key: {}", pk.verifying_key().bytes32()); } diff --git a/prover/bin/server/src/queue.rs b/prover/bin/server/src/queue.rs index 0598f7a8e..af1c3f2dc 100644 --- a/prover/bin/server/src/queue.rs +++ b/prover/bin/server/src/queue.rs @@ -35,10 +35,10 @@ pub struct Prover { /// Implementation of the Prover. impl Prover { // Create a new Prover instance. - pub fn new(prove_queue: Arc>>) -> Result { + pub async fn new(prove_queue: Arc>>) -> Result { let rpc_url = PROVER_L2_RPC.parse()?; let provider = ProviderBuilder::new().connect_http(rpc_url).erased(); - let batch_prover = BatchProver::default(); + let batch_prover = BatchProver::new().await?; Ok(Self { prove_queue, batch_prover, provider }) } @@ -95,7 +95,7 @@ impl Prover { // Step3. Generate evm proof log::info!("Generate evm proof"); let start = Instant::now(); - let prove_rt = self.batch_prover.prove(&mut input, !shadow); + let prove_rt = self.batch_prover.prove(&mut input, !shadow).await; match prove_rt { Ok(Some(proof)) => { diff --git a/prover/bin/server/src/server.rs b/prover/bin/server/src/server.rs index 13d2ff406..b428d56c1 100644 --- a/prover/bin/server/src/server.rs +++ b/prover/bin/server/src/server.rs @@ -87,8 +87,13 @@ async fn metric_mng() { } async fn start_prover() { - let mut prover = Prover::new(Arc::clone(&PROVE_QUEUE)).unwrap(); - prover.prove_for_queue().await; + match Prover::new(Arc::clone(&PROVE_QUEUE)).await { + Ok(mut prover) => prover.prove_for_queue().await, + Err(err) => { + log::error!("failed to initialize prover: {err:#}"); + PROVE_RESULT.set(2); + } + } } async fn handle_metrics() -> String { diff --git a/prover/bin/shadow-prove/contracts/src/libs/PlonkVerifier.sol b/prover/bin/shadow-prove/contracts/src/libs/PlonkVerifier.sol index a5c9bd28b..9ecc18126 100644 --- a/prover/bin/shadow-prove/contracts/src/libs/PlonkVerifier.sol +++ b/prover/bin/shadow-prove/contracts/src/libs/PlonkVerifier.sol @@ -38,38 +38,38 @@ contract PlonkVerifier { uint256 private constant G1_SRS_Y = 11763105256161367503191792604679297387056316997144156930871823008787082098465; // ----------------------- vk --------------------- - uint256 private constant VK_NB_PUBLIC_INPUTS = 2; - uint256 private constant VK_DOMAIN_SIZE = 16777216; - uint256 private constant VK_INV_DOMAIN_SIZE = 21888241567198334088790460357988866238279339518792980768180410072331574733841; - uint256 private constant VK_OMEGA = 5709868443893258075976348696661355716898495876243883251619397131511003808859; - uint256 private constant VK_QL_COM_X = 2714773032566361735398260413518107570706289019141573602093747023461681138141; - uint256 private constant VK_QL_COM_Y = 10207220609888567477852282724812707756861966294950666667119692155077205992894; - uint256 private constant VK_QR_COM_X = 17919274808167168584263187859012763816365260341587621260815379357637476029962; - uint256 private constant VK_QR_COM_Y = 14558165337321799812085033100515533981610351056305142204990949940017867076397; - uint256 private constant VK_QM_COM_X = 1814703450159964740292891910795980721108620081843240976053374083376051887455; - uint256 private constant VK_QM_COM_Y = 11252528960397523304289223453506717847025678682133692300385063157160041127070; - uint256 private constant VK_QO_COM_X = 20843277058771674275997213106654908867381045039357421108797602213552545033079; - uint256 private constant VK_QO_COM_Y = 9646775541123942436366130063934415659078920798926708026864638413383214238671; - uint256 private constant VK_QK_COM_X = 5484717465597821820411103650564499774744032473047103693751158150047197753654; - uint256 private constant VK_QK_COM_Y = 5561799343038529497262757012400750786503050088440144551259537360162821571059; + uint256 private constant VK_NB_PUBLIC_INPUTS = 5; + uint256 private constant VK_DOMAIN_SIZE = 33554432; + uint256 private constant VK_INV_DOMAIN_SIZE = 21888242219518804655518433051623070663413851959604507555939307129453691614729; + uint256 private constant VK_OMEGA = 19200870435978225707111062059747084165650991997241425080699860725083300967194; + uint256 private constant VK_QL_COM_X = 9496857109770518741292064488682135861248962674494967861604446614769298140801; + uint256 private constant VK_QL_COM_Y = 13306697158707148893187289359474517489309092662132847111865615083807847780686; + uint256 private constant VK_QR_COM_X = 15168106396031721196861946917417531048941395918951726120971774887904231224033; + uint256 private constant VK_QR_COM_Y = 17067422783799132011484353829344785446718705273302151466551760455276544179973; + uint256 private constant VK_QM_COM_X = 2062503189072358517228813627364112801206468481541880929627061212524046867500; + uint256 private constant VK_QM_COM_Y = 16383264006058748048241814683452691377147195760917894158624764699848260181996; + uint256 private constant VK_QO_COM_X = 11276993554321744761007348475396375004546042576992247443165667159541648019615; + uint256 private constant VK_QO_COM_Y = 1336009123797329867458955655460754684518485281155722686318249389277951918969; + uint256 private constant VK_QK_COM_X = 3509076513963323471275614870100244642947645425705684850560588726111445186717; + uint256 private constant VK_QK_COM_Y = 15082251669986564403690950092410766520944967428195940447691297074393449013243; - uint256 private constant VK_S1_COM_X = 16111562061301112215931665617877464360548491176332584512747295033804502769274; - uint256 private constant VK_S1_COM_Y = 15035232142063390140879951391784254536324051421746307325879221184372296043705; + uint256 private constant VK_S1_COM_X = 20702610951114261233096944021168607816381642857429919420395478944329365232425; + uint256 private constant VK_S1_COM_Y = 6287924284852772991087729385363871923831267251255140888671281832443192104403; - uint256 private constant VK_S2_COM_X = 899944321381010541211546037826620464002745326050515852312919625047231523882; - uint256 private constant VK_S2_COM_Y = 61717668739330555376092528203839789132705738484346798874082062974863965392; + uint256 private constant VK_S2_COM_X = 645470009383750670501092774958765334436477314405650592677994973080307449345; + uint256 private constant VK_S2_COM_Y = 4256397297118091181646823265799511434474377494065149067487129126410465669924; - uint256 private constant VK_S3_COM_X = 9316901462569250008665217603385561854185385862824092362271612343176126127375; - uint256 private constant VK_S3_COM_Y = 13799900238612879579721466063922041459340434537392216736920805107993374657577; + uint256 private constant VK_S3_COM_X = 7492538199234778964992190797161279888333633666731339557560747528992222778140; + uint256 private constant VK_S3_COM_Y = 19883641962643068517995924785061749749272042967551599977561118882192215161378; uint256 private constant VK_COSET_SHIFT = 5; - uint256 private constant VK_QCP_0_X = 21578473557091588309361521643625606794648013014197133181947992670819103775934; - uint256 private constant VK_QCP_0_Y = 18236588362476326695195531997097392315059481348147701548685746610417604595065; + uint256 private constant VK_QCP_0_X = 21276573233863489069809736193483015861331560639958294945226697354328765942402; + uint256 private constant VK_QCP_0_Y = 21667749868347388386642256911557299806363086510301513644953688310359382808300; - uint256 private constant VK_INDEX_COMMIT_API_0 = 10900304; + uint256 private constant VK_INDEX_COMMIT_API_0 = 25304569; uint256 private constant VK_NB_CUSTOM_GATES = 1; // ------------------------------------------------ diff --git a/prover/bin/shadow-prove/contracts/src/libs/SP1VerifierPlonk.sol b/prover/bin/shadow-prove/contracts/src/libs/SP1VerifierPlonk.sol index 2e34736db..759306e78 100644 --- a/prover/bin/shadow-prove/contracts/src/libs/SP1VerifierPlonk.sol +++ b/prover/bin/shadow-prove/contracts/src/libs/SP1VerifierPlonk.sol @@ -14,23 +14,33 @@ contract SP1Verifier is PlonkVerifier, ISP1VerifierWithHash { /// @param expected The verifier selector from the first 4 bytes of the VERIFIER_HASH(). error WrongVerifierSelector(bytes4 received, bytes4 expected); + /// @notice Thrown when the exit code is invalid. + error InvalidExitCode(); + /// @notice Thrown when the proof is invalid. error InvalidProof(); + /// @notice Thrown when the vkRoot is invalid. + error InvalidVkRoot(); + + /// @notice The version of the circuit. function VERSION() external pure returns (string memory) { - return "v5.0.0"; + return "v6.1.0"; } /// @inheritdoc ISP1VerifierWithHash function VERIFIER_HASH() public pure returns (bytes32) { - return 0xd4e8ecd2357dd882209800acd6abb443d231cf287d77ba62b732ce937c8b56e7; + return 0x5a093a2fcb46394f5cadfe55c44d4d572fad9cec7aeb38026b0278322ef07fac; + } + + /// @notice The recursion vk root. + function VK_ROOT() public pure returns (bytes32) { + return 0x002f850ee998974d6cc00e50cd0814b098c05bfade466d28573240d057f25352; } /// @notice Hashes the public values to a field elements inside Bn254. /// @param publicValues The public values. - function hashPublicValues( - bytes calldata publicValues - ) public pure returns (bytes32) { + function hashPublicValues(bytes calldata publicValues) public pure returns (bytes32) { return sha256(publicValues) & bytes32(uint256((1 << 253) - 1)); } @@ -49,13 +59,28 @@ contract SP1Verifier is PlonkVerifier, ISP1VerifierWithHash { revert WrongVerifierSelector(receivedSelector, expectedSelector); } + uint256 expectedVkRoot = uint256(VK_ROOT()); + bytes32 publicValuesDigest = hashPublicValues(publicValues); - uint256[] memory inputs = new uint256[](2); + uint256 exitCode = uint256(bytes32(proofBytes[4:36])); + uint256 vkRoot = uint256(bytes32(proofBytes[36:68])); + uint256 nonce = uint256(bytes32(proofBytes[68:100])); + + uint256[] memory inputs = new uint256[](5); inputs[0] = uint256(programVKey); inputs[1] = uint256(publicValuesDigest); - bool success = this.Verify(proofBytes[4:], inputs); + inputs[2] = exitCode; + inputs[3] = vkRoot; + inputs[4] = nonce; + if (exitCode != 0) { + revert InvalidExitCode(); + } + if (vkRoot != expectedVkRoot) { + revert InvalidVkRoot(); + } + bool success = this.Verify(proofBytes[100:], inputs); if (!success) { revert InvalidProof(); } } -} \ No newline at end of file +} diff --git a/prover/bin/shadow-prove/src/shadow_prove.rs b/prover/bin/shadow-prove/src/shadow_prove.rs index 4ed15863f..ca42e5b13 100644 --- a/prover/bin/shadow-prove/src/shadow_prove.rs +++ b/prover/bin/shadow-prove/src/shadow_prove.rs @@ -213,8 +213,7 @@ where ), Err(e) => { log::error!("proveCommittedBatchState dry-run failed: {:#?}", e); - METRICS.shadow_verify_result.set(2); - continue; + // METRICS.shadow_verify_result.set(2); } } let shadow_tx = self.l1_shadow_rollup.proveState(batch_index, aggr_proof); @@ -223,8 +222,8 @@ where let pending_tx = match send { Ok(pending_tx) => pending_tx, Err(e) => { - log::error!("send tx of prove_state error: {:#?}", e); - METRICS.shadow_verify_result.set(2); + log::error!("send tx of l1_shadow_rollup.prove_state error: {:#?}", e); + // METRICS.shadow_verify_result.set(2); continue; } }; diff --git a/prover/contracts/src/PlonkVerifier.sol b/prover/contracts/src/PlonkVerifier.sol index a5c9bd28b..9ecc18126 100644 --- a/prover/contracts/src/PlonkVerifier.sol +++ b/prover/contracts/src/PlonkVerifier.sol @@ -38,38 +38,38 @@ contract PlonkVerifier { uint256 private constant G1_SRS_Y = 11763105256161367503191792604679297387056316997144156930871823008787082098465; // ----------------------- vk --------------------- - uint256 private constant VK_NB_PUBLIC_INPUTS = 2; - uint256 private constant VK_DOMAIN_SIZE = 16777216; - uint256 private constant VK_INV_DOMAIN_SIZE = 21888241567198334088790460357988866238279339518792980768180410072331574733841; - uint256 private constant VK_OMEGA = 5709868443893258075976348696661355716898495876243883251619397131511003808859; - uint256 private constant VK_QL_COM_X = 2714773032566361735398260413518107570706289019141573602093747023461681138141; - uint256 private constant VK_QL_COM_Y = 10207220609888567477852282724812707756861966294950666667119692155077205992894; - uint256 private constant VK_QR_COM_X = 17919274808167168584263187859012763816365260341587621260815379357637476029962; - uint256 private constant VK_QR_COM_Y = 14558165337321799812085033100515533981610351056305142204990949940017867076397; - uint256 private constant VK_QM_COM_X = 1814703450159964740292891910795980721108620081843240976053374083376051887455; - uint256 private constant VK_QM_COM_Y = 11252528960397523304289223453506717847025678682133692300385063157160041127070; - uint256 private constant VK_QO_COM_X = 20843277058771674275997213106654908867381045039357421108797602213552545033079; - uint256 private constant VK_QO_COM_Y = 9646775541123942436366130063934415659078920798926708026864638413383214238671; - uint256 private constant VK_QK_COM_X = 5484717465597821820411103650564499774744032473047103693751158150047197753654; - uint256 private constant VK_QK_COM_Y = 5561799343038529497262757012400750786503050088440144551259537360162821571059; + uint256 private constant VK_NB_PUBLIC_INPUTS = 5; + uint256 private constant VK_DOMAIN_SIZE = 33554432; + uint256 private constant VK_INV_DOMAIN_SIZE = 21888242219518804655518433051623070663413851959604507555939307129453691614729; + uint256 private constant VK_OMEGA = 19200870435978225707111062059747084165650991997241425080699860725083300967194; + uint256 private constant VK_QL_COM_X = 9496857109770518741292064488682135861248962674494967861604446614769298140801; + uint256 private constant VK_QL_COM_Y = 13306697158707148893187289359474517489309092662132847111865615083807847780686; + uint256 private constant VK_QR_COM_X = 15168106396031721196861946917417531048941395918951726120971774887904231224033; + uint256 private constant VK_QR_COM_Y = 17067422783799132011484353829344785446718705273302151466551760455276544179973; + uint256 private constant VK_QM_COM_X = 2062503189072358517228813627364112801206468481541880929627061212524046867500; + uint256 private constant VK_QM_COM_Y = 16383264006058748048241814683452691377147195760917894158624764699848260181996; + uint256 private constant VK_QO_COM_X = 11276993554321744761007348475396375004546042576992247443165667159541648019615; + uint256 private constant VK_QO_COM_Y = 1336009123797329867458955655460754684518485281155722686318249389277951918969; + uint256 private constant VK_QK_COM_X = 3509076513963323471275614870100244642947645425705684850560588726111445186717; + uint256 private constant VK_QK_COM_Y = 15082251669986564403690950092410766520944967428195940447691297074393449013243; - uint256 private constant VK_S1_COM_X = 16111562061301112215931665617877464360548491176332584512747295033804502769274; - uint256 private constant VK_S1_COM_Y = 15035232142063390140879951391784254536324051421746307325879221184372296043705; + uint256 private constant VK_S1_COM_X = 20702610951114261233096944021168607816381642857429919420395478944329365232425; + uint256 private constant VK_S1_COM_Y = 6287924284852772991087729385363871923831267251255140888671281832443192104403; - uint256 private constant VK_S2_COM_X = 899944321381010541211546037826620464002745326050515852312919625047231523882; - uint256 private constant VK_S2_COM_Y = 61717668739330555376092528203839789132705738484346798874082062974863965392; + uint256 private constant VK_S2_COM_X = 645470009383750670501092774958765334436477314405650592677994973080307449345; + uint256 private constant VK_S2_COM_Y = 4256397297118091181646823265799511434474377494065149067487129126410465669924; - uint256 private constant VK_S3_COM_X = 9316901462569250008665217603385561854185385862824092362271612343176126127375; - uint256 private constant VK_S3_COM_Y = 13799900238612879579721466063922041459340434537392216736920805107993374657577; + uint256 private constant VK_S3_COM_X = 7492538199234778964992190797161279888333633666731339557560747528992222778140; + uint256 private constant VK_S3_COM_Y = 19883641962643068517995924785061749749272042967551599977561118882192215161378; uint256 private constant VK_COSET_SHIFT = 5; - uint256 private constant VK_QCP_0_X = 21578473557091588309361521643625606794648013014197133181947992670819103775934; - uint256 private constant VK_QCP_0_Y = 18236588362476326695195531997097392315059481348147701548685746610417604595065; + uint256 private constant VK_QCP_0_X = 21276573233863489069809736193483015861331560639958294945226697354328765942402; + uint256 private constant VK_QCP_0_Y = 21667749868347388386642256911557299806363086510301513644953688310359382808300; - uint256 private constant VK_INDEX_COMMIT_API_0 = 10900304; + uint256 private constant VK_INDEX_COMMIT_API_0 = 25304569; uint256 private constant VK_NB_CUSTOM_GATES = 1; // ------------------------------------------------ diff --git a/prover/contracts/src/SP1VerifierPlonk.sol b/prover/contracts/src/SP1VerifierPlonk.sol index 2e34736db..759306e78 100644 --- a/prover/contracts/src/SP1VerifierPlonk.sol +++ b/prover/contracts/src/SP1VerifierPlonk.sol @@ -14,23 +14,33 @@ contract SP1Verifier is PlonkVerifier, ISP1VerifierWithHash { /// @param expected The verifier selector from the first 4 bytes of the VERIFIER_HASH(). error WrongVerifierSelector(bytes4 received, bytes4 expected); + /// @notice Thrown when the exit code is invalid. + error InvalidExitCode(); + /// @notice Thrown when the proof is invalid. error InvalidProof(); + /// @notice Thrown when the vkRoot is invalid. + error InvalidVkRoot(); + + /// @notice The version of the circuit. function VERSION() external pure returns (string memory) { - return "v5.0.0"; + return "v6.1.0"; } /// @inheritdoc ISP1VerifierWithHash function VERIFIER_HASH() public pure returns (bytes32) { - return 0xd4e8ecd2357dd882209800acd6abb443d231cf287d77ba62b732ce937c8b56e7; + return 0x5a093a2fcb46394f5cadfe55c44d4d572fad9cec7aeb38026b0278322ef07fac; + } + + /// @notice The recursion vk root. + function VK_ROOT() public pure returns (bytes32) { + return 0x002f850ee998974d6cc00e50cd0814b098c05bfade466d28573240d057f25352; } /// @notice Hashes the public values to a field elements inside Bn254. /// @param publicValues The public values. - function hashPublicValues( - bytes calldata publicValues - ) public pure returns (bytes32) { + function hashPublicValues(bytes calldata publicValues) public pure returns (bytes32) { return sha256(publicValues) & bytes32(uint256((1 << 253) - 1)); } @@ -49,13 +59,28 @@ contract SP1Verifier is PlonkVerifier, ISP1VerifierWithHash { revert WrongVerifierSelector(receivedSelector, expectedSelector); } + uint256 expectedVkRoot = uint256(VK_ROOT()); + bytes32 publicValuesDigest = hashPublicValues(publicValues); - uint256[] memory inputs = new uint256[](2); + uint256 exitCode = uint256(bytes32(proofBytes[4:36])); + uint256 vkRoot = uint256(bytes32(proofBytes[36:68])); + uint256 nonce = uint256(bytes32(proofBytes[68:100])); + + uint256[] memory inputs = new uint256[](5); inputs[0] = uint256(programVKey); inputs[1] = uint256(publicValuesDigest); - bool success = this.Verify(proofBytes[4:], inputs); + inputs[2] = exitCode; + inputs[3] = vkRoot; + inputs[4] = nonce; + if (exitCode != 0) { + revert InvalidExitCode(); + } + if (vkRoot != expectedVkRoot) { + revert InvalidVkRoot(); + } + bool success = this.Verify(proofBytes[100:], inputs); if (!success) { revert InvalidProof(); } } -} \ No newline at end of file +} diff --git a/prover/tests/algebra/host/Cargo.toml b/prover/tests/algebra/host/Cargo.toml index d202a0dbd..e8474aa9a 100644 --- a/prover/tests/algebra/host/Cargo.toml +++ b/prover/tests/algebra/host/Cargo.toml @@ -9,3 +9,4 @@ sp1-sdk = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } hex = { workspace = true } +tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } diff --git a/prover/tests/algebra/host/src/main.rs b/prover/tests/algebra/host/src/main.rs index c952ef603..b80490708 100644 --- a/prover/tests/algebra/host/src/main.rs +++ b/prover/tests/algebra/host/src/main.rs @@ -1,5 +1,5 @@ use serde::{Deserialize, Serialize}; -use sp1_sdk::{HashableKey, ProverClient, SP1ProofWithPublicValues, SP1Stdin}; +use sp1_sdk::{Elf, HashableKey, ProverClient, ProvingKey, SP1ProofWithPublicValues, SP1Stdin}; use std::{ fs::File, io::BufReader, @@ -8,7 +8,8 @@ use std::{ time::Instant, }; -fn main() { +#[tokio::main] +async fn main() { // Setup the logger. sp1_sdk::utils::setup_logger(); @@ -16,7 +17,7 @@ fn main() { let dev_elf: &[u8] = include_bytes!("../../client/elf/riscv32im-succinct-zkvm-elf"); // Setup the prover client. - let client = ProverClient::from_env(); + let client = ProverClient::from_env().await; // Setup the inputs. let mut stdin = SP1Stdin::new(); @@ -25,7 +26,8 @@ fn main() { stdin.write(&data); // Execute the program in sp1-vm - let (public_values, execution_report) = client.execute(dev_elf, &stdin).run().unwrap(); + let (public_values, execution_report) = + client.execute(Elf::Static(dev_elf), stdin.clone()).await.unwrap(); println!("Program executed successfully."); // Record the number of cycles executed. println!("Number of cycles: {}", execution_report.total_instruction_count()); @@ -36,16 +38,16 @@ fn main() { let start = Instant::now(); // Setup the program for proving. - let (pk, vk) = client.setup(dev_elf); + let pk = client.setup(Elf::Static(dev_elf)).await.unwrap(); // Generate the proof - let proof = client.prove(&pk, &stdin).plonk().run().expect("failed to generate proof"); + let proof = client.prove(&pk, stdin).plonk().await.expect("failed to generate proof"); let duration_mins = start.elapsed().as_secs() / 60; println!("Successfully generated proof!, time use: {:?} minutes", duration_mins); // Verify the proof. - client.verify(&proof, &vk).expect("failed to verify proof"); + client.verify(&proof, pk.verifying_key(), None).expect("failed to verify proof"); println!("Successfully verified proof!"); // Save the fixture to a file. @@ -72,8 +74,8 @@ pub(crate) struct AlgebraProofFixture { proof: String, } -#[test] -fn test_verify_plonk() { +#[tokio::test] +async fn test_verify_plonk() { // Setup the logger. sp1_sdk::utils::setup_logger(); @@ -81,13 +83,16 @@ fn test_verify_plonk() { let dev_elf: &[u8] = include_bytes!("../../client/elf/riscv32im-succinct-zkvm-elf"); // Setup the prover client. - let client = ProverClient::new(); - let (_pk, vk) = client.setup(dev_elf); + let client = ProverClient::from_env().await; + let pk = client.setup(Elf::Static(dev_elf)).await.unwrap(); + let vk = pk.verifying_key(); let file = File::open(Path::new("sp1_test_proof.json")).unwrap(); let reader = BufReader::new(file); let proof: SP1ProofWithPublicValues = serde_json::from_reader(reader).unwrap(); + client.verify(&proof, vk, None).expect("failed to verify plonk proof"); + let pi_bytes = proof.public_values.as_slice(); let fixture = AlgebraProofFixture { diff --git a/prover/tests/bls12381/client/Cargo.toml b/prover/tests/bls12381/client/Cargo.toml index 68d710154..bf7f7acba 100644 --- a/prover/tests/bls12381/client/Cargo.toml +++ b/prover/tests/bls12381/client/Cargo.toml @@ -8,7 +8,7 @@ sp1-zkvm = { workspace = true } [dependencies.bls12_381] git = "https://github.com/sp1-patches/bls12_381" -branch = "main" +tag = "patch-0.8.0-sp1-6.2.0" features = [ "groups", "pairings", diff --git a/prover/tests/bls12381/host/Cargo.toml b/prover/tests/bls12381/host/Cargo.toml index 94ee50fea..d221a92a7 100644 --- a/prover/tests/bls12381/host/Cargo.toml +++ b/prover/tests/bls12381/host/Cargo.toml @@ -7,4 +7,5 @@ edition = "2021" [dependencies] sp1-sdk = { workspace = true } hex = { workspace = true } +tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } diff --git a/prover/tests/bls12381/host/src/main.rs b/prover/tests/bls12381/host/src/main.rs index 7387c7326..f446949c7 100644 --- a/prover/tests/bls12381/host/src/main.rs +++ b/prover/tests/bls12381/host/src/main.rs @@ -1,7 +1,8 @@ -use sp1_sdk::{ProverClient, SP1Stdin}; +use sp1_sdk::{Elf, ProverClient, ProvingKey, SP1Stdin}; use std::time::Instant; -fn main() { +#[tokio::main] +async fn main() { // Setup the logger. sp1_sdk::utils::setup_logger(); @@ -9,7 +10,7 @@ fn main() { let dev_elf: &[u8] = include_bytes!("../../client/elf/riscv32im-succinct-zkvm-elf"); // Setup the prover client. - let client = ProverClient::from_env(); + let client = ProverClient::from_env().await; // Setup the inputs. let mut stdin = SP1Stdin::new(); @@ -18,7 +19,8 @@ fn main() { stdin.write(&data); // Execute the program in sp1-vm - let (public_values, execution_report) = client.execute(dev_elf, &stdin.clone()).run().unwrap(); + let (public_values, execution_report) = + client.execute(Elf::Static(dev_elf), stdin.clone()).await.unwrap(); println!("Program executed successfully."); // Record the number of cycles executed. println!("Number of cycles: {}", execution_report.total_instruction_count()); @@ -29,15 +31,15 @@ fn main() { let start = Instant::now(); // Setup the program for proving. - let (pk, vk) = client.setup(dev_elf); + let pk = client.setup(Elf::Static(dev_elf)).await.unwrap(); // Generate the proof - let proof = client.prove(&pk, &stdin).run().expect("failed to generate proof"); + let proof = client.prove(&pk, stdin).await.expect("failed to generate proof"); let duration_mins = start.elapsed().as_secs() / 60; println!("Successfully generated proof!, time use: {:?} minutes", duration_mins); // Verify the proof. - client.verify(&proof, &vk).expect("failed to verify proof"); + client.verify(&proof, pk.verifying_key(), None).expect("failed to verify proof"); println!("Successfully verified proof!"); } diff --git a/prover/tests/keccak256/host/Cargo.toml b/prover/tests/keccak256/host/Cargo.toml index a9c1f7843..9239ab33b 100644 --- a/prover/tests/keccak256/host/Cargo.toml +++ b/prover/tests/keccak256/host/Cargo.toml @@ -7,4 +7,5 @@ edition = "2021" [dependencies] sp1-sdk = { workspace = true } hex = { workspace = true } +tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } diff --git a/prover/tests/keccak256/host/src/main.rs b/prover/tests/keccak256/host/src/main.rs index 7387c7326..f446949c7 100644 --- a/prover/tests/keccak256/host/src/main.rs +++ b/prover/tests/keccak256/host/src/main.rs @@ -1,7 +1,8 @@ -use sp1_sdk::{ProverClient, SP1Stdin}; +use sp1_sdk::{Elf, ProverClient, ProvingKey, SP1Stdin}; use std::time::Instant; -fn main() { +#[tokio::main] +async fn main() { // Setup the logger. sp1_sdk::utils::setup_logger(); @@ -9,7 +10,7 @@ fn main() { let dev_elf: &[u8] = include_bytes!("../../client/elf/riscv32im-succinct-zkvm-elf"); // Setup the prover client. - let client = ProverClient::from_env(); + let client = ProverClient::from_env().await; // Setup the inputs. let mut stdin = SP1Stdin::new(); @@ -18,7 +19,8 @@ fn main() { stdin.write(&data); // Execute the program in sp1-vm - let (public_values, execution_report) = client.execute(dev_elf, &stdin.clone()).run().unwrap(); + let (public_values, execution_report) = + client.execute(Elf::Static(dev_elf), stdin.clone()).await.unwrap(); println!("Program executed successfully."); // Record the number of cycles executed. println!("Number of cycles: {}", execution_report.total_instruction_count()); @@ -29,15 +31,15 @@ fn main() { let start = Instant::now(); // Setup the program for proving. - let (pk, vk) = client.setup(dev_elf); + let pk = client.setup(Elf::Static(dev_elf)).await.unwrap(); // Generate the proof - let proof = client.prove(&pk, &stdin).run().expect("failed to generate proof"); + let proof = client.prove(&pk, stdin).await.expect("failed to generate proof"); let duration_mins = start.elapsed().as_secs() / 60; println!("Successfully generated proof!, time use: {:?} minutes", duration_mins); // Verify the proof. - client.verify(&proof, &vk).expect("failed to verify proof"); + client.verify(&proof, pk.verifying_key(), None).expect("failed to verify proof"); println!("Successfully verified proof!"); } diff --git a/prover/tests/zstd/host/Cargo.toml b/prover/tests/zstd/host/Cargo.toml index 3a4cb7037..16489a0ab 100644 --- a/prover/tests/zstd/host/Cargo.toml +++ b/prover/tests/zstd/host/Cargo.toml @@ -8,4 +8,5 @@ edition = "2021" sp1-sdk = { workspace = true } hex = { workspace = true } ruzstd = { workspace = true } +tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } diff --git a/prover/tests/zstd/host/src/main.rs b/prover/tests/zstd/host/src/main.rs index 4fc92ea43..3931af2d8 100644 --- a/prover/tests/zstd/host/src/main.rs +++ b/prover/tests/zstd/host/src/main.rs @@ -1,7 +1,8 @@ -use sp1_sdk::{ProverClient, SP1Stdin}; +use sp1_sdk::{Elf, ProverClient, ProvingKey, SP1Stdin}; use std::{fs::File, io::Read, path::Path, time::Instant}; -fn main() { +#[tokio::main] +async fn main() { // Setup the logger. sp1_sdk::utils::setup_logger(); @@ -18,9 +19,10 @@ fn main() { stdin.write_slice(&data); - let client = ProverClient::from_env(); + let client = ProverClient::from_env().await; // Execute the program in sp1-vm - let (public_values, execution_report) = client.execute(dev_elf, &stdin.clone()).run().unwrap(); + let (public_values, execution_report) = + client.execute(Elf::Static(dev_elf), stdin.clone()).await.unwrap(); println!("Program executed successfully."); // Record the number of cycles executed. println!("Number of cycles: {}", execution_report.total_instruction_count()); @@ -31,16 +33,16 @@ fn main() { let start = Instant::now(); // Setup the program for proving. - let (pk, vk) = client.setup(dev_elf); + let pk = client.setup(Elf::Static(dev_elf)).await.unwrap(); // Generate the proof - let proof = client.prove(&pk, &stdin).run().expect("failed to generate proof"); + let proof = client.prove(&pk, stdin).await.expect("failed to generate proof"); let duration_mins = start.elapsed().as_secs() / 60; println!("Successfully generated proof!, time use: {:?} minutes", duration_mins); // Verify the proof. - client.verify(&proof, &vk).expect("failed to verify proof"); + client.verify(&proof, pk.verifying_key(), None).expect("failed to verify proof"); println!("Successfully verified proof!"); }