diff --git a/run_tests.sh b/run_tests.sh index ef075bbc..b3584cf2 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -1,3 +1,4 @@ #!/bin/bash +go mod vendor RUST_LOG=info go test -count=1 ./... && cd rust && cargo test --release --all && cd .. diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 31fb20f3..7d0f5b0c 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -17,7 +17,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ - "gimli 0.28.0", + "gimli 0.28.1", ] [[package]] @@ -39,20 +39,21 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if", "once_cell", "version_check", + "zerocopy", ] [[package]] name = "aho-corasick" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -83,9 +84,9 @@ dependencies = [ [[package]] name = "arbitrary" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" [[package]] name = "arrayref" @@ -107,13 +108,13 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "async-trait" -version = "0.1.73" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.40", ] [[package]] @@ -210,7 +211,7 @@ dependencies = [ "rayon", "rustversion", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "supraseal-c2", "thiserror", ] @@ -238,9 +239,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" dependencies = [ "serde", ] @@ -309,7 +310,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array", + "generic-array 0.14.7", ] [[package]] @@ -318,7 +319,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array", + "generic-array 0.14.7", ] [[package]] @@ -327,7 +328,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" dependencies = [ - "generic-array", + "generic-array 0.14.7", ] [[package]] @@ -389,9 +390,9 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cbc" @@ -447,7 +448,7 @@ dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -476,9 +477,9 @@ dependencies = [ [[package]] name = "cl3" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "215a3aa32ab5d7928c539c4289d1cf144257c3cb05e05a4b7e61d5a6bb6583a5" +checksum = "96fd7abe572cee1c781e3464d5c468e8aee10caaef3ea911aea0dea16414409d" dependencies = [ "libc", "opencl-sys", @@ -519,9 +520,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core2" @@ -543,9 +544,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] @@ -746,7 +747,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array", + "generic-array 0.14.7", "typenum", ] @@ -756,7 +757,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array", + "generic-array 0.14.7", "subtle", ] @@ -834,15 +835,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "data-encoding-macro" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" +checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -850,9 +851,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" +checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" dependencies = [ "data-encoding", "syn 1.0.109", @@ -934,7 +935,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array", + "generic-array 0.14.7", ] [[package]] @@ -971,7 +972,7 @@ dependencies = [ "once_cell", "rayon", "rust-gpu-tools", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", "yastl", ] @@ -994,7 +995,7 @@ dependencies = [ "once_cell", "rayon", "rust-gpu-tools", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", "yastl", ] @@ -1024,13 +1025,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.3" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "errno-dragonfly", "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1045,40 +1045,40 @@ dependencies = [ [[package]] name = "execute" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d9a9ea4c04632c16bc5c71a2fcc63d308481f7fc67eb1a1ce6315c44a426ae" +checksum = "3a82608ee96ce76aeab659e9b8d3c2b787bffd223199af88c674923d861ada10" dependencies = [ "execute-command-macro", "execute-command-tokens", - "generic-array", + "generic-array 1.0.0", ] [[package]] name = "execute-command-macro" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5fbc65a0cf735106743f4c38c9a3671c1e734b5c2c20d21a3c93c696daa3157" +checksum = "90dec53d547564e911dc4ff3ecb726a64cf41a6fa01a2370ebc0d95175dd08bd" dependencies = [ "execute-command-macro-impl", ] [[package]] name = "execute-command-macro-impl" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55a9a55d1dab3b07854648d48e366f684aefe2ac78ae28cec3bf65e3cd53d9a3" +checksum = "ce8cd46a041ad005ab9c71263f9a0ff5b529eac0fe4cc9b4a20f4f0765d8cf4b" dependencies = [ "execute-command-tokens", "quote", - "syn 2.0.37", + "syn 2.0.40", ] [[package]] name = "execute-command-tokens" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba569491c70ec8471e34aa7e9c0b9e82bb5d2464c0398442d17d3c4af814e5a" +checksum = "69dc321eb6be977f44674620ca3aa21703cb20ffbe560e1ae97da08401ffbcad" [[package]] name = "fake-simd" @@ -1094,9 +1094,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "fdlimit" @@ -1151,17 +1151,17 @@ dependencies = [ "byteorder", "cid", "fil_logger", - "filecoin-proofs-api", + "filecoin-proofs-api 16.1.0 (git+https://github.com/filecoin-project/rust-filecoin-proofs-api?branch=supersnaps)", "filepath", - "fr32", + "fr32 9.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "fvm 2.7.0", "fvm 3.8.0", - "fvm 4.0.0-alpha.4", + "fvm 4.0.0", "fvm_ipld_blockstore", "fvm_ipld_encoding", "fvm_shared 2.6.0", "fvm_shared 3.6.0", - "fvm_shared 4.0.0-alpha.4", + "fvm_shared 4.0.0", "group", "lazy_static", "libc", @@ -1189,14 +1189,33 @@ dependencies = [ "bellperson", "blstrs", "ff", - "generic-array", + "generic-array 0.14.7", "hex", "lazy_static", "merkletree", "neptune", "rand", "serde", - "sha2 0.10.7", + "sha2 0.10.8", +] + +[[package]] +name = "filecoin-hashers" +version = "11.1.0" +source = "git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps#0cc536e846feb5f2dd294c49c78e22f844871de2" +dependencies = [ + "anyhow", + "bellperson", + "blstrs", + "ff", + "generic-array 0.14.7", + "hex", + "lazy_static", + "merkletree", + "neptune", + "rand", + "serde", + "sha2 0.10.8", ] [[package]] @@ -1211,9 +1230,42 @@ dependencies = [ "blake2b_simd", "blstrs", "ff", - "filecoin-hashers", - "fr32", - "generic-array", + "filecoin-hashers 11.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fr32 9.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "generic-array 0.14.7", + "hex", + "iowrap", + "lazy_static", + "log", + "memmap2", + "merkletree", + "once_cell", + "rand", + "rayon", + "serde", + "serde_json", + "sha2 0.10.8", + "storage-proofs-core 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "storage-proofs-porep 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "storage-proofs-post 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "storage-proofs-update 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "typenum", +] + +[[package]] +name = "filecoin-proofs" +version = "16.1.0" +source = "git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps#0cc536e846feb5f2dd294c49c78e22f844871de2" +dependencies = [ + "anyhow", + "bellperson", + "bincode", + "blake2b_simd", + "blstrs", + "ff", + "filecoin-hashers 11.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "fr32 9.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "generic-array 0.14.7", "hex", "iowrap", "lazy_static", @@ -1225,11 +1277,11 @@ dependencies = [ "rayon", "serde", "serde_json", - "sha2 0.10.7", - "storage-proofs-core", - "storage-proofs-porep", - "storage-proofs-post", - "storage-proofs-update", + "sha2 0.10.8", + "storage-proofs-core 16.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "storage-proofs-porep 16.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "storage-proofs-post 16.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "storage-proofs-update 16.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", "typenum", ] @@ -1243,12 +1295,29 @@ dependencies = [ "bellperson", "bincode", "blstrs", - "filecoin-hashers", - "filecoin-proofs", - "fr32", + "filecoin-hashers 11.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "filecoin-proofs 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fr32 9.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static", + "serde", + "storage-proofs-core 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "filecoin-proofs-api" +version = "16.1.0" +source = "git+https://github.com/filecoin-project/rust-filecoin-proofs-api?branch=supersnaps#76340fc0321565b54e4aee77d3bff4cf6809c702" +dependencies = [ + "anyhow", + "bellperson", + "bincode", + "blstrs", + "filecoin-hashers 11.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "filecoin-proofs 16.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "fr32 9.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", "lazy_static", "serde", - "storage-proofs-core", + "storage-proofs-core 16.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", ] [[package]] @@ -1304,9 +1373,9 @@ dependencies = [ [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -1325,6 +1394,19 @@ dependencies = [ "thiserror", ] +[[package]] +name = "fr32" +version = "9.1.0" +source = "git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps#0cc536e846feb5f2dd294c49c78e22f844871de2" +dependencies = [ + "anyhow", + "blstrs", + "byte-slice-cast", + "byteorder", + "ff", + "thiserror", +] + [[package]] name = "fs2" version = "0.4.3" @@ -1354,7 +1436,7 @@ dependencies = [ "derive-getters", "derive_builder", "derive_more", - "filecoin-proofs-api", + "filecoin-proofs-api 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "fvm-wasm-instrument 0.2.0", "fvm_ipld_amt", "fvm_ipld_blockstore", @@ -1389,7 +1471,7 @@ dependencies = [ "byteorder", "cid", "derive_more", - "filecoin-proofs-api", + "filecoin-proofs-api 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "fvm-wasm-instrument 0.4.0", "fvm_ipld_amt", "fvm_ipld_blockstore", @@ -1417,22 +1499,22 @@ dependencies = [ [[package]] name = "fvm" -version = "4.0.0-alpha.4" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a71e2172d4454647217d0f2d31c0a5f72feb10b277520ea0a14643081fa74a7f" +checksum = "290a65ac2d207225ce14021e993a54a1cb1c09384dab3996546fb91d29736209" dependencies = [ "anyhow", "blake2b_simd", "byteorder", "cid", "derive_more", - "filecoin-proofs-api", + "filecoin-proofs-api 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "fvm-wasm-instrument 0.4.0", "fvm_ipld_amt", "fvm_ipld_blockstore", "fvm_ipld_encoding", "fvm_ipld_hamt", - "fvm_shared 4.0.0-alpha.4", + "fvm_shared 4.0.0", "lazy_static", "log", "minstant", @@ -1534,7 +1616,7 @@ dependencies = [ "multihash", "once_cell", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -1552,7 +1634,7 @@ dependencies = [ "cs_serde_bytes", "data-encoding", "data-encoding-macro", - "filecoin-proofs-api", + "filecoin-proofs-api 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "fvm_ipld_blockstore", "fvm_ipld_encoding", "lazy_static", @@ -1577,13 +1659,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6a982610b95be92a4f862c0e1db52b07f2b960958bf4541fb80e284b72ac46d" dependencies = [ "anyhow", - "bitflags 2.4.0", + "bitflags 2.4.1", "blake2b_simd", "bls-signatures", "cid", "data-encoding", "data-encoding-macro", - "filecoin-proofs-api", + "filecoin-proofs-api 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "fvm_ipld_encoding", "lazy_static", "libsecp256k1", @@ -1600,18 +1682,18 @@ dependencies = [ [[package]] name = "fvm_shared" -version = "4.0.0-alpha.4" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022bdee26d3a256905d6430b66099868ff7a439a8ceb22c0f351843aa7c5f394" +checksum = "c3a19ef48bbc1b22742002667b82944237cfdebc38e946c216aa8de1192392ea" dependencies = [ "anyhow", - "bitflags 2.4.0", + "bitflags 2.4.1", "blake2b_simd", "bls-signatures", "cid", "data-encoding", "data-encoding-macro", - "filecoin-proofs-api", + "filecoin-proofs-api 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "fvm_ipld_encoding", "lazy_static", "libsecp256k1", @@ -1641,7 +1723,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "debugid", "fxhash", "serde", @@ -1658,11 +1740,20 @@ dependencies = [ "version_check", ] +[[package]] +name = "generic-array" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe739944a5406424e080edccb6add95685130b9f160d5407c639c7df0c5836b0" +dependencies = [ + "typenum", +] + [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", @@ -1671,13 +1762,13 @@ dependencies = [ [[package]] name = "ghost" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba330b70a5341d3bc730b8e205aaee97ddab5d9c448c4f51a7c2d924266fa8f9" +checksum = "ef81e7cedce6ab54cd5dc7b3400c442c8d132fe03200a1be0637db7ef308ff17" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.40", ] [[package]] @@ -1693,9 +1784,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "glob" @@ -1733,9 +1824,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "hermit-abi" @@ -1778,7 +1869,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", - "generic-array", + "generic-array 0.14.7", "hmac", ] @@ -1788,7 +1879,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1808,16 +1899,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows", + "windows-core", ] [[package]] @@ -1837,9 +1928,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -1857,12 +1948,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.0", + "hashbrown 0.14.3", "serde", ] @@ -1873,7 +1964,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ "block-padding", - "generic-array", + "generic-array 0.14.7", ] [[package]] @@ -1936,24 +2027,24 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -1994,9 +2085,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.148" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libipld-core" @@ -2063,15 +2154,15 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.7" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", @@ -2094,9 +2185,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.3" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memfd" @@ -2174,9 +2265,9 @@ dependencies = [ [[package]] name = "minstant" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df94bf4a15ed69e64ea45405e504ef293a3614413e7d8f5529112c5acd4a114" +checksum = "b8dfc09c8abbe145769b6d51fd03f84fdd459906cbd6ac54e438708f016b40bd" dependencies = [ "ctor", "libc", @@ -2209,7 +2300,7 @@ dependencies = [ "ripemd", "serde", "serde-big-array", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "unsigned-varint", ] @@ -2242,7 +2333,7 @@ dependencies = [ "ec-gpu", "ec-gpu-gen 0.6.0", "ff", - "generic-array", + "generic-array 0.14.7", "itertools 0.8.2", "log", "pasta_curves", @@ -2294,13 +2385,13 @@ dependencies = [ [[package]] name = "num-derive" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e" +checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.40", ] [[package]] @@ -2326,9 +2417,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] @@ -2366,9 +2457,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -2378,18 +2469,18 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "opencl-sys" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75919008b8ed7ce9620e2b3580c648db40c7f564a368f271b2647145046d8ba" +checksum = "e45b6878f1873ce3fba231eab49c0da9505a6241fed9cb390a16ed8e101ab0c4" dependencies = [ "libc", ] [[package]] name = "opencl3" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c247ee0c98af8a67ab9c836ed2ea663ac19a17d8bae71325b509835e536c18ad" +checksum = "a94379feed77f776abb9ea6c678bc5f7f42dda9e3dec0cf2d19d7dab4626b01f" dependencies = [ "cl3", "libc", @@ -2428,15 +2519,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -2471,9 +2562,9 @@ checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pkg-config" @@ -2483,9 +2574,9 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "positioned-io" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d0208bedc5252e7054a4f65f24f2ccfe740178fb2284028ac5f06efbdcc55" +checksum = "ccabfeeb89c73adf4081f0dca7f8e28dbda90981a222ceea37f619e93ea6afe9" dependencies = [ "byteorder", "libc", @@ -2550,9 +2641,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.67" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -2642,18 +2733,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] [[package]] name = "regalloc2" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b4dcbd3a2ae7fb94b5813fa0e957c6ab51bf5d0a8ee1b69e0c2d0f1e6eb8485" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" dependencies = [ "hashbrown 0.13.2", "log", @@ -2664,9 +2755,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.5" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2676,9 +2767,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.8" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2687,9 +2778,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.5" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "replace_with" @@ -2729,7 +2820,7 @@ dependencies = [ "log", "once_cell", "opencl3", - "sha2 0.10.7", + "sha2 0.10.8", "temp-env", "thiserror", ] @@ -2774,15 +2865,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.14" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ - "bitflags 2.4.0", - "errno 0.3.3", + "bitflags 2.4.1", + "errno 0.3.8", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -2793,9 +2884,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "safer-ffi" @@ -2831,15 +2922,15 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "semver" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.188" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] @@ -2864,13 +2955,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.40", ] [[package]] @@ -2887,9 +2978,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.107" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -2898,13 +2989,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.40", ] [[package]] @@ -2943,9 +3034,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -2977,6 +3068,20 @@ dependencies = [ "sha2-asm", ] +[[package]] +name = "sha2raw" +version = "11.1.0" +source = "git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps#0cc536e846feb5f2dd294c49c78e22f844871de2" +dependencies = [ + "byteorder", + "cpufeatures", + "digest 0.10.7", + "fake-simd", + "lazy_static", + "opaque-debug", + "sha2-asm", +] + [[package]] name = "sha3" version = "0.10.8" @@ -2995,9 +3100,9 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "spin" @@ -3057,10 +3162,10 @@ dependencies = [ "cbc", "config", "ff", - "filecoin-hashers", - "fr32", + "filecoin-hashers 11.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fr32 9.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "fs2", - "generic-array", + "generic-array 0.14.7", "itertools 0.10.5", "lazy_static", "log", @@ -3073,7 +3178,41 @@ dependencies = [ "semver", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "storage-proofs-core" +version = "16.1.0" +source = "git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps#0cc536e846feb5f2dd294c49c78e22f844871de2" +dependencies = [ + "aes", + "anyhow", + "bellperson", + "blake2b_simd", + "blstrs", + "byteorder", + "cbc", + "config", + "ff", + "filecoin-hashers 11.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "fr32 9.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "fs2", + "generic-array 0.14.7", + "itertools 0.10.5", + "lazy_static", + "log", + "memmap2", + "merkletree", + "num_cpus", + "rand", + "rand_chacha", + "rayon", + "semver", + "serde", + "serde_json", + "sha2 0.10.8", "thiserror", ] @@ -3094,9 +3233,50 @@ dependencies = [ "crossbeam", "fdlimit", "ff", - "filecoin-hashers", - "fr32", - "generic-array", + "filecoin-hashers 11.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fr32 9.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "generic-array 0.14.7", + "glob", + "hex", + "lazy_static", + "libc", + "log", + "memmap2", + "merkletree", + "neptune", + "num-bigint", + "num-traits", + "num_cpus", + "pretty_assertions", + "rayon", + "rustversion", + "serde", + "serde_json", + "sha2 0.10.8", + "sha2raw 11.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "storage-proofs-core 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yastl", +] + +[[package]] +name = "storage-proofs-porep" +version = "16.1.0" +source = "git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps#0cc536e846feb5f2dd294c49c78e22f844871de2" +dependencies = [ + "anyhow", + "bellperson", + "bincode", + "blake2b_simd", + "blstrs", + "byte-slice-cast", + "byteorder", + "chacha20", + "crossbeam", + "fdlimit", + "ff", + "filecoin-hashers 11.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "fr32 9.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "generic-array 0.14.7", "glob", "hex", "hwloc", @@ -3114,9 +3294,9 @@ dependencies = [ "rustversion", "serde", "serde_json", - "sha2 0.10.7", - "sha2raw", - "storage-proofs-core", + "sha2 0.10.8", + "sha2raw 11.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "storage-proofs-core 16.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", "yastl", ] @@ -3132,15 +3312,37 @@ dependencies = [ "blstrs", "byteorder", "ff", - "filecoin-hashers", - "fr32", - "generic-array", + "filecoin-hashers 11.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fr32 9.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "generic-array 0.14.7", "hex", "log", "rayon", "serde", - "sha2 0.10.7", - "storage-proofs-core", + "sha2 0.10.8", + "storage-proofs-core 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "storage-proofs-post" +version = "16.1.0" +source = "git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps#0cc536e846feb5f2dd294c49c78e22f844871de2" +dependencies = [ + "anyhow", + "bellperson", + "blake2b_simd", + "blstrs", + "byteorder", + "ff", + "filecoin-hashers 11.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "fr32 9.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "generic-array 0.14.7", + "hex", + "log", + "rayon", + "serde", + "sha2 0.10.8", + "storage-proofs-core 16.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", ] [[package]] @@ -3153,9 +3355,32 @@ dependencies = [ "bellperson", "blstrs", "ff", - "filecoin-hashers", - "fr32", - "generic-array", + "filecoin-hashers 11.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fr32 9.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "generic-array 0.14.7", + "lazy_static", + "log", + "memmap2", + "merkletree", + "neptune", + "rayon", + "serde", + "storage-proofs-core 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "storage-proofs-porep 16.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "storage-proofs-update" +version = "16.1.0" +source = "git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps#0cc536e846feb5f2dd294c49c78e22f844871de2" +dependencies = [ + "anyhow", + "bellperson", + "blstrs", + "ff", + "filecoin-hashers 11.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "fr32 9.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "generic-array 0.14.7", "lazy_static", "log", "memmap2", @@ -3163,8 +3388,8 @@ dependencies = [ "neptune", "rayon", "serde", - "storage-proofs-core", - "storage-proofs-porep", + "storage-proofs-core 16.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", + "storage-proofs-porep 16.1.0 (git+https://github.com/filecoin-project/rust-fil-proofs?branch=supersnaps)", ] [[package]] @@ -3203,9 +3428,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.37" +version = "2.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" +checksum = "13fa70a4ee923979ffb522cacce59d34421ebdea5625e1073c4326ef9d2dd42e" dependencies = [ "proc-macro2", "quote", @@ -3232,50 +3457,50 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.11" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" +checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" [[package]] name = "temp-env" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e010429b1f3ea1311190c658c7570100f03c1dab05c16cfab774181c648d656a" +checksum = "96374855068f47402c3121c6eed88d29cb1de8f3ab27090e273e420bdabcf050" dependencies = [ "parking_lot", ] [[package]] name = "tempfile" -version = "3.8.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", "redox_syscall", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "thiserror" -version = "1.0.48" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.48" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.40", ] [[package]] @@ -3330,9 +3555,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" @@ -3363,9 +3588,9 @@ checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -3374,9 +3599,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.4.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" [[package]] name = "version_check" @@ -3398,9 +3623,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3408,24 +3633,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.40", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3433,22 +3658,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.40", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "wasm-encoder" @@ -3484,28 +3709,28 @@ version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dfcdb72d96f01e6c85b6bf20102e7423bdbaad5c337301bab2bbf253d26413c" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.1.0", "semver", ] [[package]] name = "wasmparser" -version = "0.113.1" +version = "0.118.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a128cea7b8516703ab41b10a0b1aa9ba18d0454cd3792341489947ddeee268db" +checksum = "95ee9723b928e735d53000dec9eae7b07a60e490c85ab54abb66659fc61bfcd9" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.1.0", "semver", ] [[package]] name = "wasmprinter" -version = "0.2.66" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2e5e818f88cee5311e9a5df15cba0a8f772978baf3109af97004bce6e8e3c6" +checksum = "3d027eb8294904fc715ac0870cebe6b0271e96b90605ee21511e7565c4ce568c" dependencies = [ "anyhow", - "wasmparser 0.113.1", + "wasmparser 0.118.1", ] [[package]] @@ -3519,7 +3744,7 @@ dependencies = [ "bumpalo", "cfg-if", "fxprof-processed-profile", - "indexmap 2.0.0", + "indexmap 2.1.0", "libc", "log", "object 0.31.1", @@ -3536,7 +3761,7 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3597,7 +3822,7 @@ dependencies = [ "anyhow", "cranelift-entity", "gimli 0.27.3", - "indexmap 2.0.0", + "indexmap 2.1.0", "log", "object 0.31.1", "serde", @@ -3628,7 +3853,7 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit-icache-coherence", "wasmtime-runtime", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3649,7 +3874,7 @@ checksum = "b59f94b0409221873565419168e20b5aedf18c4bd64de5c38acf8f0634efeee3" dependencies = [ "cfg-if", "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3661,7 +3886,7 @@ dependencies = [ "anyhow", "cc", "cfg-if", - "indexmap 2.0.0", + "indexmap 2.1.0", "libc", "log", "mach", @@ -3676,7 +3901,7 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit-debug", "wasmtime-versioned-export-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3699,7 +3924,7 @@ checksum = "ca7af9bb3ee875c4907835e607a275d10b04d15623d3aebe01afe8fbd3f85050" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.40", ] [[package]] @@ -3749,12 +3974,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows" -version = "0.48.0" +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -3763,7 +3988,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -3772,13 +4006,28 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -3787,42 +4036,84 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "wyz" version = "0.5.1" @@ -3848,11 +4139,31 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "zerocopy" +version = "0.7.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306dca4455518f1f31635ec308b6b3e4eb1b11758cefafc782827d0aa7acb5c7" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be912bf68235a88fbefd1b73415cb218405958d1655b2ece9035a19920bdf6ba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.40", +] + [[package]] name = "zeroize" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" dependencies = [ "zeroize_derive", ] @@ -3865,5 +4176,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.40", ] diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 65f89f1d..fe809eee 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -47,7 +47,8 @@ lazy_static = "1.4.0" serde = "1.0.117" serde_tuple = "0.5" safer-ffi = { version = "0.0.7", features = ["proc_macros"] } -filecoin-proofs-api = { version = "16.1", default-features = false } +#filecoin-proofs-api = { version = "16.1", default-features = false } +filecoin-proofs-api = { git = "https://github.com/filecoin-project/rust-filecoin-proofs-api", branch = "supersnaps", default-features = false } [dev-dependencies] memmap2 = "0.5" diff --git a/rust/src/proofs/api.rs b/rust/src/proofs/api.rs index d7d393c1..6c86ebc2 100644 --- a/rust/src/proofs/api.rs +++ b/rust/src/proofs/api.rs @@ -1,10 +1,9 @@ use std::fs; use blstrs::Scalar as Fr; -use filecoin_proofs_api::seal; use filecoin_proofs_api::{ - self as api, update, PieceInfo, SectorId, StorageProofsError, UnpaddedByteIndex, - UnpaddedBytesAmount, + self as api, seal, update, EmptySectorUpdateProof, PieceInfo, SectorId, + SectorUpdateProofInputs, StorageProofsError, UnpaddedByteIndex, UnpaddedBytesAmount, }; use rayon::prelude::*; use safer_ffi::prelude::*; @@ -355,7 +354,7 @@ fn aggregate_seal_proofs( } /// Retrieves the seal inputs based on the provided input, used for aggregation verification. -fn convert_aggregation_inputs( +fn convert_seal_aggregation_inputs( registered_proof: RegisteredSealProof, prover_id: &[u8; 32], input: &AggregationInputs, @@ -383,7 +382,7 @@ fn verify_aggregate_seal_proof( catch_panic_response("verify_aggregate_seal_proof", || { let inputs: Vec> = commit_inputs .par_iter() - .map(|input| convert_aggregation_inputs(registered_proof, prover_id, input)) + .map(|input| convert_seal_aggregation_inputs(registered_proof, prover_id, input)) .try_reduce(Vec::new, |mut acc, current| { acc.extend(current); Ok(acc) @@ -407,6 +406,92 @@ fn verify_aggregate_seal_proof( }) } +#[ffi_export] +fn aggregate_empty_sector_update_proofs( + registered_proof: RegisteredUpdateProof, + registered_aggregation: RegisteredAggregationProof, + sector_update_inputs: c_slice::Ref, + sector_update_proofs: c_slice::Ref>, +) -> repr_c::Box { + catch_panic_response("aggregate_empty_sector_update_proofs", || { + let proofs: Vec<_> = sector_update_proofs + .iter() + .map(|sector_update_proof| EmptySectorUpdateProof(sector_update_proof.to_vec())) + .collect(); + + let inputs: Vec = sector_update_inputs + .iter() + .map(|input| SectorUpdateProofInputs { + comm_r_old: input.comm_r_old, + comm_r_new: input.comm_r_new, + comm_d_new: input.comm_d_new, + }) + .collect(); + + let result = update::aggregate_empty_sector_update_proofs( + registered_proof.into(), + registered_aggregation.into(), + &inputs, + &proofs, + )?; + + Ok(result.into_boxed_slice().into()) + }) +} + +/// Retrieves the empty_sector_update inputs based on the provided input, used for aggregation verification. +fn convert_empty_sector_update_aggregation_inputs( + registered_proof: RegisteredUpdateProof, + input: &SectorUpdateAggregationInputs, +) -> anyhow::Result>> { + update::get_sector_update_inputs( + registered_proof.into(), + input.comm_r_old, + input.comm_r_new, + input.comm_d_new, + ) +} + +/// Verifies the output of an aggregated seal. +#[ffi_export] +fn verify_aggregate_empty_sector_update_proof( + registered_proof: RegisteredUpdateProof, + registered_aggregation: RegisteredAggregationProof, + proof: c_slice::Ref, + sector_update_inputs: c_slice::Ref, +) -> repr_c::Box { + catch_panic_response("verify_aggregate_empty_sector_update_proof", || { + let inputs: Vec> = sector_update_inputs + .par_iter() + .map(|input| convert_empty_sector_update_aggregation_inputs(registered_proof, input)) + .try_reduce(Vec::new, |mut acc, current| { + acc.extend(current); + Ok(acc) + })?; + + let proof_bytes: Vec = proof.to_vec(); + + let converted_sector_update_inputs: Vec = sector_update_inputs + .iter() + .map(|input| SectorUpdateProofInputs { + comm_r_old: input.comm_r_old, + comm_r_new: input.comm_r_new, + comm_d_new: input.comm_d_new, + }) + .collect(); + + let result = update::verify_aggregate_empty_sector_update_proofs( + registered_proof.into(), + registered_aggregation.into(), + proof_bytes, + &converted_sector_update_inputs, + inputs, + )?; + + Ok(result) + }) +} + /// TODO: document #[ffi_export] unsafe fn unseal_range( @@ -1398,6 +1483,10 @@ destructor!( destroy_verify_aggregate_seal_response, VerifyAggregateSealProofResponse ); +destructor!( + destroy_verify_aggregate_empty_sector_update_response, + VerifyAggregateEmptySectorUpdateProofResponse +); destructor!(destroy_finalize_ticket_response, FinalizeTicketResponse); destructor!( destroy_verify_winning_post_response, @@ -2146,6 +2235,56 @@ pub mod tests { panic!("verify_empty_sector_update_proof failed: {:?}", msg); } + // Test aggregating both of the generated empty sector update proofs together + let sector_update_inputs: Vec = vec![ + SectorUpdateAggregationInputs { + comm_r_old: resp_b2.comm_r, + comm_r_new: resp_encode.comm_r_new, + comm_d_new: resp_encode.comm_d_new, + }, + SectorUpdateAggregationInputs { + comm_r_old: resp_b2.comm_r, + comm_r_new: resp_encode.comm_r_new, + comm_d_new: resp_encode.comm_d_new, + }, + ]; + let sector_update_proofs = vec![ + resp_empty_sector_update.value.clone(), + resp_empty_sector_update2.value.clone(), + ]; + + let resp_aggregate_empty_sector_update_proof = aggregate_empty_sector_update_proofs( + registered_proof_empty_sector_update, + RegisteredAggregationProof::SnarkPackV2, + sector_update_inputs[..].into(), + sector_update_proofs[..].into(), + ); + + if resp_aggregate_empty_sector_update_proof.status_code != FCPResponseStatus::NoError { + panic!( + "aggregate_empty_sector_update_proofs failed: {}", + str::from_utf8(&resp_aggregate_empty_sector_update_proof.error_msg).unwrap() + ); + } + + let resp_verify_agg = verify_aggregate_empty_sector_update_proof( + registered_proof_empty_sector_update, + RegisteredAggregationProof::SnarkPackV2, + resp_aggregate_empty_sector_update_proof.as_ref(), + sector_update_inputs[..].into(), + ); + + if resp_verify_agg.status_code != FCPResponseStatus::NoError { + let msg = str::from_utf8(&resp_verify_agg.error_msg).unwrap(); + panic!( + "verify_aggregate_empty_sector_update_proof failed: {:?}", + msg + ); + } + + destroy_aggregate_proof(resp_aggregate_empty_sector_update_proof); + destroy_verify_aggregate_empty_sector_update_response(resp_verify_agg); + // Set the new_decoded_file length to the same as the // original sealed file length (required for the API, but // this is a test-specific workaround) diff --git a/rust/src/proofs/types.rs b/rust/src/proofs/types.rs index 99417b72..3e6f86fa 100644 --- a/rust/src/proofs/types.rs +++ b/rust/src/proofs/types.rs @@ -494,11 +494,21 @@ pub struct AggregationInputs { pub seed: [u8; 32], } +#[derive_ReprC] +#[repr(C)] +#[derive(Clone, Default)] +pub struct SectorUpdateAggregationInputs { + pub comm_r_old: [u8; 32], + pub comm_r_new: [u8; 32], + pub comm_d_new: [u8; 32], +} + pub type UnsealRangeResponse = Result<()>; pub type VerifySealResponse = Result; pub type VerifyAggregateSealProofResponse = Result; +pub type VerifyAggregateEmptySectorUpdateProofResponse = Result; pub type VerifyWinningPoStResponse = Result;