diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index 56005981..b025efd4 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: rust: - - 1.48.0 + - 1.53.0 # - nightly steps: - name: Checkout diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 0e2bb28b..5d2a3276 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -39,7 +39,7 @@ jobs: strategy: matrix: rust: - - 1.48.0 + - 1.53.0 # - nightly steps: - name: Checkout @@ -65,7 +65,7 @@ jobs: with: command: check args: --examples --all-features --all - if: matrix.rust == '1.48.0' # pinned, should be removed later + if: matrix.rust == '1.53.0' - name: Test uses: actions-rs/cargo@v1 diff --git a/.github/workflows/setup1-cli-tools.yml b/.github/workflows/setup1-cli-tools.yml index 210d0c15..f49f9372 100644 --- a/.github/workflows/setup1-cli-tools.yml +++ b/.github/workflows/setup1-cli-tools.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: rust: - - nightly-2020-08-15 + - 1.53.0 steps: - name: Checkout uses: actions/checkout@v2 diff --git a/.github/workflows/setup1-contributor.yml b/.github/workflows/setup1-contributor.yml index c704d93b..81bc30db 100644 --- a/.github/workflows/setup1-contributor.yml +++ b/.github/workflows/setup1-contributor.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: rust: - - 1.48.0 + - 1.53.0 # - nightly steps: - name: Checkout @@ -40,7 +40,7 @@ jobs: strategy: matrix: rust: - - 1.48.0 + - 1.53.0 # - nightly steps: - name: Checkout diff --git a/.github/workflows/wasm.yml b/.github/workflows/wasm.yml index b8d8a4eb..1d571e20 100644 --- a/.github/workflows/wasm.yml +++ b/.github/workflows/wasm.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: rust: - - 1.48.0 + - 1.53.0 steps: - name: Checkout uses: actions/checkout@v2 @@ -28,10 +28,9 @@ jobs: toolchain: ${{ matrix.rust }} override: true - # pinned --toolchain 1.48.0 should be changed later to stable - name: Install WASM run: | - rustup target add wasm32-unknown-unknown --toolchain 1.48.0 + rustup target add wasm32-unknown-unknown --toolchain 1.53.0 cargo install wasm-bindgen-cli cargo update -p wasm-bindgen diff --git a/Cargo.lock b/Cargo.lock index 3255a33e..18761b0c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "Inflector" version = "0.11.4" @@ -18,18 +20,18 @@ checksum = "8b5ace29ee3216de37c0546865ad08edef58b0f9e76838ed8959a84a990e58c5" [[package]] name = "addr2line" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423" +checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd" dependencies = [ "gimli", ] [[package]] name = "adler" -version = "0.2.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aead" @@ -48,10 +50,10 @@ checksum = "35f0ec2ddb1e2aefd2d9964c26531b8f939e5c1a8aea05eb7d3b8e48c2948e6b" dependencies = [ "age-core", "base64 0.12.3", - "bech32 0.7.2", + "bech32 0.7.3", "c2-chacha", "chacha20poly1305", - "console", + "console 0.13.0", "cookie-factory", "hkdf", "hmac", @@ -59,7 +61,7 @@ dependencies = [ "i18n-embed-fl", "lazy_static", "nom", - "pin-project 1.0.2", + "pin-project", "pinentry", "rand 0.7.3", "rpassword", @@ -67,7 +69,7 @@ dependencies = [ "scrypt", "secrecy", "sha2", - "subtle 2.4.0", + "subtle 2.4.1", "x25519-dalek", "zeroize", ] @@ -90,45 +92,23 @@ dependencies = [ ] [[package]] -name = "aho-corasick" -version = "0.7.14" +name = "ahash" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b476ce7103678b0c6d3d395dbbae31d48ff910bd28be979ba5d48c6351131d0d" -dependencies = [ - "memchr", -] - -[[package]] -name = "algebra" -version = "0.1.0" -source = "git+https://github.com/scipr-lab/zexe?rev=b24eda5#b24eda5b750d47c7f751f9d3c97671bfe9540bf8" -dependencies = [ - "algebra-core", -] - -[[package]] -name = "algebra-core" -version = "0.1.0" -source = "git+https://github.com/scipr-lab/zexe?rev=b24eda5#b24eda5b750d47c7f751f9d3c97671bfe9540bf8" +checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98" dependencies = [ - "algebra-core-derive", - "derivative", - "field-assembly", - "num-traits", - "rand 0.7.3", - "rayon", - "rustc_version 0.2.3", - "unroll", + "getrandom 0.2.3", + "once_cell", + "version_check", ] [[package]] -name = "algebra-core-derive" -version = "0.1.0" -source = "git+https://github.com/scipr-lab/zexe?rev=b24eda5#b24eda5b750d47c7f751f9d3c97671bfe9540bf8" +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "memchr", ] [[package]] @@ -151,15 +131,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1" - -[[package]] -name = "arc-swap" -version = "0.4.8" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dabe5a181f83789739c194cbe5a897dde195078fac08568d09221fd6137a7ba8" +checksum = "595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486" [[package]] name = "arrayref" @@ -169,9 +143,9 @@ checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" [[package]] name = "arrayvec" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "atty" @@ -201,7 +175,7 @@ dependencies = [ "bytes 0.5.6", "chrono", "failure", - "futures 0.3.8", + "futures", "http", "hyper 0.13.10", "hyper-rustls", @@ -226,7 +200,7 @@ dependencies = [ "azure_sdk_storage_core", "base64 0.12.3", "chrono", - "futures 0.3.8", + "futures", "http", "hyper 0.13.10", "log", @@ -248,7 +222,7 @@ dependencies = [ "base64 0.12.3", "bytes 0.5.6", "chrono", - "futures 0.3.8", + "futures", "http", "hyper 0.13.10", "hyper-rustls", @@ -261,18 +235,19 @@ dependencies = [ "serde_derive", "serde_json", "smallvec", - "time 0.2.23", + "time 0.2.27", "url", "uuid", ] [[package]] name = "backtrace" -version = "0.3.55" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598" +checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01" dependencies = [ "addr2line", + "cc", "cfg-if 1.0.0", "libc", "miniz_oxide", @@ -312,61 +287,43 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bech32" -version = "0.6.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58946044516aa9dc922182e0d6e9d124a31aafe6b421614654eb27cf90cec09c" +checksum = "2dabbe35f96fb9507f7330793dc490461b2962659ac5d427181e451a623751d1" [[package]] name = "bech32" -version = "0.7.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdcf67bb7ba7797a081cd19009948ab533af7c355d5caf1d08c777582d351e9c" - -[[package]] -name = "bench-utils" -version = "0.1.0" -source = "git+https://github.com/scipr-lab/zexe?rev=b24eda5#b24eda5b750d47c7f751f9d3c97671bfe9540bf8" +checksum = "cf9ff0bbfd639f15c74af777d81383cf53efb7c93613f6cab67c6c11e05bbf8b" [[package]] name = "bincode" -version = "1.3.1" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" dependencies = [ - "byteorder", "serde", ] -[[package]] -name = "bindgen" -version = "0.54.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36" -dependencies = [ - "bitflags", - "cexpr", - "cfg-if 0.1.10", - "clang-sys", - "clap", - "env_logger", - "lazy_static", - "lazycell", - "log", - "peeking_take_while", - "proc-macro2 1.0.24", - "quote 1.0.7", - "regex", - "rustc-hash", - "shlex", - "which 3.1.1", -] - [[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +[[package]] +name = "bitvec" +version = "0.19.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake2" version = "0.8.1" @@ -379,6 +336,17 @@ dependencies = [ "opaque-debug 0.2.3", ] +[[package]] +name = "blake2" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a5720225ef5daecf08657f23791354e1685a8c91a4c60c7f3d3b2892f978f4" +dependencies = [ + "crypto-mac 0.8.0", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + [[package]] name = "blake2s_simd" version = "0.5.11" @@ -407,9 +375,9 @@ dependencies = [ [[package]] name = "bstr" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf" +checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279" dependencies = [ "lazy_static", "memchr", @@ -419,9 +387,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.4.0" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" +checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" [[package]] name = "byte-tools" @@ -431,9 +399,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "byteorder" -version = "1.3.4" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" @@ -449,9 +417,9 @@ checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" [[package]] name = "c2-chacha" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb6b83fa00a7c53f420893670940c8fdfaa89f9dd9adb52062cca39482a31ab6" +checksum = "7e6002dbb7c65a76e516625443949a8b7bb0d0845fe6a3dc39e2dd7ae39dcb9c" dependencies = [ "cipher", "ppv-lite86", @@ -459,30 +427,18 @@ dependencies = [ [[package]] name = "cast" -version = "0.2.3" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9434b9a5aa1450faa3f9cb14ea0e8c53bb5d2b3c1bfd1ab4fc03e9f33fbfb0" +checksum = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a" dependencies = [ - "rustc_version 0.2.3", + "rustc_version 0.4.0", ] [[package]] name = "cc" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d" -dependencies = [ - "jobserver", -] - -[[package]] -name = "cexpr" -version = "0.4.0" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" -dependencies = [ - "nom", -] +checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2" [[package]] name = "cfg-if" @@ -518,7 +474,7 @@ dependencies = [ "num-integer", "num-traits", "serde", - "time 0.1.44", + "time 0.1.43", "winapi 0.3.9", ] @@ -549,17 +505,6 @@ dependencies = [ "generic-array 0.14.4", ] -[[package]] -name = "clang-sys" -version = "0.29.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" -dependencies = [ - "glob", - "libc", - "libloading", -] - [[package]] name = "clap" version = "2.33.3" @@ -576,30 +521,26 @@ dependencies = [ ] [[package]] -name = "cloudabi" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467" -dependencies = [ - "bitflags", -] - -[[package]] -name = "colored" -version = "2.0.0" +name = "console" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" +checksum = "a50aab2529019abfabfa93f1e6c41ef392f91fbf179b347a7e96abb524884a08" dependencies = [ - "atty", + "encode_unicode", "lazy_static", + "libc", + "regex", + "terminal_size", + "unicode-width", "winapi 0.3.9", + "winapi-util", ] [[package]] name = "console" -version = "0.13.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50aab2529019abfabfa93f1e6c41ef392f91fbf179b347a7e96abb524884a08" +checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45" dependencies = [ "encode_unicode", "lazy_static", @@ -608,7 +549,6 @@ dependencies = [ "terminal_size", "unicode-width", "winapi 0.3.9", - "winapi-util", ] [[package]] @@ -623,9 +563,9 @@ dependencies = [ [[package]] name = "const_fn" -version = "0.4.3" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c478836e029dcef17fb47c89023448c64f781a046e0300e257ad8225ae59afab" +checksum = "f92cfa0fd5690b3cf8c1ef2cabbd9b7ef22fa53cf5e1f92b05103f6d5d1cf6e7" [[package]] name = "constant_time_eq" @@ -635,9 +575,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "cookie-factory" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f21b581d2f0cb891554812435667bb9610d74feb1a4c6415bf09c28ff0381d" +checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b" [[package]] name = "core-foundation" @@ -673,19 +613,13 @@ checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" [[package]] name = "cpufeatures" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8" +checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" dependencies = [ "libc", ] -[[package]] -name = "cpuid-bool" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" - [[package]] name = "cpuid-bool" version = "0.2.0" @@ -694,16 +628,16 @@ checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" [[package]] name = "criterion" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70daa7ceec6cf143990669a04c7df13391d55fb27bd4079d252fca774ba244d8" +checksum = "1604dafd25fba2fe2d5895a9da139f8dc9b319a5fe5354ca137cbbce4e178d10" dependencies = [ "atty", "cast", "clap", "criterion-plot", "csv", - "itertools", + "itertools 0.10.1", "lazy_static", "num-traits", "oorandom", @@ -720,57 +654,36 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d" +checksum = "d00996de9f2f7559f7f4dc286073197f83e92256a59ed395f9aac01fe717da57" dependencies = [ "cast", - "itertools", + "itertools 0.10.1", ] [[package]] name = "crossbeam" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd01a6eb3daaafa260f6fc94c3a6c36390abc2080e38e3e34ced87393fb77d80" +checksum = "4ae5588f6b3c3cb05239e90bd110f257254aecd01e4635400391aeae07497845" dependencies = [ "cfg-if 1.0.0", - "crossbeam-channel 0.5.0", - "crossbeam-deque 0.8.0", - "crossbeam-epoch 0.9.0", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", "crossbeam-queue", - "crossbeam-utils 0.8.0", -] - -[[package]] -name = "crossbeam-channel" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" -dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", + "crossbeam-utils", ] [[package]] name = "crossbeam-channel" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" +checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.0", -] - -[[package]] -name = "crossbeam-deque" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" -dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", - "maybe-uninit", + "crossbeam-utils", ] [[package]] @@ -780,34 +693,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" dependencies = [ "cfg-if 1.0.0", - "crossbeam-epoch 0.9.0", - "crossbeam-utils 0.8.0", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "lazy_static", - "maybe-uninit", - "memoffset", - "scopeguard", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.0" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0f606a85340376eef0d6d8fec399e6d4a544d648386c6645eb6d0653b27d9f" +checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" dependencies = [ "cfg-if 1.0.0", - "const_fn", - "crossbeam-utils 0.8.0", + "crossbeam-utils", "lazy_static", "memoffset", "scopeguard", @@ -815,34 +712,21 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b2a58563f049aa3bae172bc4120f093b5901161c629f280a1f40ba55317d774" +checksum = "9b10ddc024425c88c2ad148c1b0fd53f4c6d38db9697c9f1588381212fa657c9" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.0", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "lazy_static", + "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.0" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec91540d98355f690a86367e566ecad2e9e579f230230eb7c21398372be73ea5" +checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" dependencies = [ - "autocfg", "cfg-if 1.0.0", - "const_fn", "lazy_static", ] @@ -858,19 +742,29 @@ dependencies = [ [[package]] name = "crypto-mac" -version = "0.10.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.4", - "subtle 2.4.0", + "subtle 2.4.1", +] + +[[package]] +name = "crypto-mac" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" +dependencies = [ + "generic-array 0.14.4", + "subtle 2.4.1", ] [[package]] name = "csv" -version = "1.1.3" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00affe7f6ab566df61b4be3ce8cf16bc2576bca0963ceb0955e45d514bf9a279" +checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" dependencies = [ "bstr", "csv-core", @@ -899,9 +793,9 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.1.7" +version = "3.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b57a92e9749e10f25a171adcebfafe72991d45e7ec2dcb853e8f83d9dafaeb08" +checksum = "232295399409a8b7ae41276757b5a1cc21032848d42bff2352261f958b3ca29a" dependencies = [ "nix", "winapi 0.3.9", @@ -909,24 +803,24 @@ dependencies = [ [[package]] name = "curl" -version = "0.4.34" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e268162af1a5fe89917ae25ba3b0a77c8da752bdc58e7dbb4f15b91fbd33756e" +checksum = "003cb79c1c6d1c93344c7e1201bb51c2148f24ec2bd9c253709d6b2efb796515" dependencies = [ "curl-sys", "libc", "openssl-probe", "openssl-sys", "schannel", - "socket2 0.3.19", + "socket2 0.4.0", "winapi 0.3.9", ] [[package]] name = "curl-sys" -version = "0.4.38+curl-7.73.0" +version = "0.4.45+curl-7.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498ecfb4f59997fd40023d62a9f1e506e768b2baeb59a1d311eb9751cdcd7e3f" +checksum = "de9e5a72b1c744eb5dd20b2be4d7eb84625070bb5c4ab9b347b70464ab1e62eb" dependencies = [ "cc", "libc", @@ -939,14 +833,14 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307" +checksum = "639891fde0dbea823fc3d798a0fdf9d2f9440a42d64a78ab3488b0ca025117b3" dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle 2.4.0", + "subtle 2.4.1", "zeroize", ] @@ -962,12 +856,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.12.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06d4a9551359071d1890820e3571252b91229e0712e7c36b08940e603c5a8fc" +checksum = "757c0ded2af11d8e739c4daea1ac623dd1624b06c844cf3f5a39f1bdbd99bb12" dependencies = [ - "darling_core 0.12.2", - "darling_macro 0.12.2", + "darling_core 0.13.0", + "darling_macro 0.13.0", ] [[package]] @@ -978,24 +872,24 @@ checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.24", - "quote 1.0.7", + "proc-macro2", + "quote", "strsim 0.9.3", - "syn 1.0.60", + "syn", ] [[package]] name = "darling_core" -version = "0.12.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b443e5fb0ddd56e0c9bfa47dc060c5306ee500cb731f2b91432dd65589a77684" +checksum = "2c34d8efb62d0c2d7f60ece80f75e5c63c1588ba68032740494b0b9a996466e3" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.24", - "quote 1.0.7", + "proc-macro2", + "quote", "strsim 0.10.0", - "syn 1.0.60", + "syn", ] [[package]] @@ -1005,19 +899,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core 0.10.2", - "quote 1.0.7", - "syn 1.0.60", + "quote", + "syn", ] [[package]] name = "darling_macro" -version = "0.12.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0220073ce504f12a70efc4e7cdaea9e9b1b324872e7ad96a208056d7a638b81" +checksum = "ade7bff147130fe5e6d39f089c6bd49ec0250f35d70b2eebf72afdfc919f15cc" dependencies = [ - "darling_core 0.12.2", - "quote 1.0.7", - "syn 1.0.60", + "darling_core 0.13.0", + "quote", + "syn", ] [[package]] @@ -1032,13 +926,13 @@ dependencies = [ [[package]] name = "derivative" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1079,26 +973,13 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.26" +version = "0.8.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283" +checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065" dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "env_logger" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - [[package]] name = "envmnt" version = "0.8.4" @@ -1125,35 +1006,17 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", "synstructure", ] -[[package]] -name = "ff-fft" -version = "0.1.0" -source = "git+https://github.com/scipr-lab/zexe?rev=b24eda5#b24eda5b750d47c7f751f9d3c97671bfe9540bf8" -dependencies = [ - "algebra-core", - "rand 0.7.3", - "rayon", -] - -[[package]] -name = "field-assembly" -version = "0.1.0" -source = "git+https://github.com/scipr-lab/zexe?rev=b24eda5#b24eda5b750d47c7f751f9d3c97671bfe9540bf8" -dependencies = [ - "mince", -] - [[package]] name = "find-crate" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057a1d48e8ff33649ee2d7c510b79ecf1f8a52b684d446a72de600ad7e2823b6" +checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2" dependencies = [ "toml", ] @@ -1222,9 +1085,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" dependencies = [ "matches", "percent-encoding", @@ -1259,16 +1122,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] -name = "futures" -version = "0.1.30" +name = "funty" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" [[package]] name = "futures" -version = "0.3.8" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0" +checksum = "1adc00f486adfc9ce99f77d717836f0c5aa84965eb0b4f051f4e83f7cab53f8b" dependencies = [ "futures-channel", "futures-core", @@ -1281,9 +1144,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2" +checksum = "74ed2411805f6e4e3d9bc904c95d5d423b89b3b25dc0250aa74729de20629ff9" dependencies = [ "futures-core", "futures-sink", @@ -1291,15 +1154,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1" +checksum = "af51b1b4a7fdff033703db39de8802c673eb91855f2e0d47dcf3bf2c0ef01f99" [[package]] name = "futures-executor" -version = "0.3.8" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65" +checksum = "4d0d535a57b87e1ae31437b892713aee90cd2d7b0ee48727cd11fc72ef54761c" dependencies = [ "futures-core", "futures-task", @@ -1308,40 +1171,40 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1" +checksum = "0b0e06c393068f3a6ef246c75cdca793d6a46347e75286933e5e75fd2fd11582" [[package]] name = "futures-macro" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121" +checksum = "c54913bae956fb8df7f4dc6fc90362aa72e69148e3f39041fbe8742d21e0ac57" dependencies = [ "autocfg", "proc-macro-hack", - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "futures-sink" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282" +checksum = "c0f30aaa67363d119812743aa5f33c201a7a66329f97d1a887022971feea4b53" [[package]] name = "futures-task" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae" +checksum = "bbe54a98670017f3be909561f6ad13e810d9a51f3f061b902062ca3da80799f2" [[package]] name = "futures-util" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967" +checksum = "67eb846bfd58e44a8481a00049e82c43e0ccb5d61f8dc071057cb19249dd4d78" dependencies = [ "autocfg", "futures-channel", @@ -1351,7 +1214,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", "pin-utils", "proc-macro-hack", "proc-macro-nested", @@ -1403,14 +1266,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "libc", "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", ] [[package]] @@ -1420,34 +1282,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" dependencies = [ "cfg-if 1.0.0", + "js-sys", "libc", - "wasi 0.10.0+wasi-snapshot-preview1", + "wasi 0.10.2+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] name = "gimli" -version = "0.23.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "groth16" -version = "0.1.0" -source = "git+https://github.com/scipr-lab/zexe?rev=b24eda5#b24eda5b750d47c7f751f9d3c97671bfe9540bf8" -dependencies = [ - "algebra-core", - "bench-utils", - "ff-fft", - "r1cs-core", - "rand 0.7.3", - "rayon", -] +checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" [[package]] name = "gumdrop" @@ -1464,9 +1309,9 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915ef07c710d84733522461de2a734d4d62a3fd39a4d4f404c2f385ef8618d05" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1483,7 +1328,7 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 0.2.24", + "tokio 0.2.25", "tokio-util 0.3.1", "tracing", "tracing-futures", @@ -1503,52 +1348,55 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 1.8.1", + "tokio 1.9.0", "tokio-util 0.6.7", "tracing", ] [[package]] name = "half" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36fab90f82edc3c747f9d438e06cf0a491055896f2a279638bb5beed6c40177" +checksum = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3" [[package]] name = "hashbrown" -version = "0.9.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] [[package]] name = "heck" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" dependencies = [ "unicode-segmentation", ] [[package]] name = "hermit-abi" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] [[package]] name = "hex" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hex-literal" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5af1f635ef1bc545d78392b136bfe1c9809e029023c84a3638a864a10b8819c8" +checksum = "21e4590e13640f19f249fe3e4eca5113bc4289f2497710378190e7f4bd96f45b" [[package]] name = "hkdf" @@ -1566,17 +1414,17 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" dependencies = [ - "crypto-mac 0.10.0", + "crypto-mac 0.10.1", "digest 0.9.0", ] [[package]] name = "http" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84129d298a6d57d246960ff8eb831ca4af3f96d29e2e28848dae275408658e26" +checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" dependencies = [ - "bytes 0.5.6", + "bytes 1.0.1", "fnv", "itoa", ] @@ -1599,7 +1447,7 @@ checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9" dependencies = [ "bytes 1.0.1", "http", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", ] [[package]] @@ -1616,18 +1464,9 @@ checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" [[package]] name = "httpdate" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05842d0d43232b23ccb7060ecb0f0626922c21f30012e97b767b30afd4a5d4b9" - -[[package]] -name = "humantime" -version = "1.3.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -dependencies = [ - "quick-error", -] +checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440" [[package]] name = "hyper" @@ -1645,9 +1484,9 @@ dependencies = [ "httparse", "httpdate 0.3.2", "itoa", - "pin-project 1.0.2", + "pin-project", "socket2 0.3.19", - "tokio 0.2.24", + "tokio 0.2.25", "tower-service", "tracing", "want", @@ -1655,9 +1494,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.7" +version = "0.14.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e5f105c494081baa3bf9e200b279e27ec1623895cd504c7dbef8d0b080fcf54" +checksum = "0b61cf2d1aebcf6e6352c97b81dc2244ca29194be1b276f5d8ad5c6330fffb11" dependencies = [ "bytes 1.0.1", "futures-channel", @@ -1667,11 +1506,11 @@ dependencies = [ "http", "http-body 0.4.2", "httparse", - "httpdate 1.0.0", + "httpdate 1.0.1", "itoa", - "pin-project 1.0.2", + "pin-project-lite 0.2.7", "socket2 0.4.0", - "tokio 1.8.1", + "tokio 1.9.0", "tower-service", "tracing", "want", @@ -1690,7 +1529,7 @@ dependencies = [ "log", "rustls", "rustls-native-certs", - "tokio 0.2.24", + "tokio 0.2.25", "tokio-rustls", "webpki", ] @@ -1702,17 +1541,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes 1.0.1", - "hyper 0.14.7", + "hyper 0.14.11", "native-tls", - "tokio 1.8.1", + "tokio 1.9.0", "tokio-native-tls", ] [[package]] name = "i18n-config" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6d8f6c9a922e3346c6db230bb139e360bf14b3e13e611abd771776c78e8250" +checksum = "b62affcd43abfb51f3cbd8736f9407908dc5b44fc558a9be07460bbfd104d983" dependencies = [ "log", "serde", @@ -1770,10 +1609,10 @@ dependencies = [ "i18n-embed 0.10.2", "lazy_static", "proc-macro-error", - "proc-macro2 1.0.24", - "quote 1.0.7", + "proc-macro2", + "quote", "strsim 0.10.0", - "syn 1.0.60", + "syn", "unic-langid", ] @@ -1785,9 +1624,9 @@ checksum = "ea4dbd191f5a08e7f8dd3331c0a43340508a31e07b3c562151722e6eb65f9f86" dependencies = [ "find-crate", "i18n-config", - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1798,9 +1637,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.2.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" dependencies = [ "matches", "unicode-bidi", @@ -1809,9 +1648,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ "autocfg", "hashbrown", @@ -1823,7 +1662,7 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7baab56125e25686df467fe470785512329883aab42696d661247aca2a2896e4" dependencies = [ - "console", + "console 0.14.1", "lazy_static", "number_prefix", "regex", @@ -1840,18 +1679,18 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.7" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63312a18f7ea8760cdd0a7c5aac1a619752a246b833545e3e36d1f81f7cd9e66" +checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", ] [[package]] name = "intl-memoizer" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0ed58ba6089d49f8a9a7d5e16fc9b9e2019cdf40ef270f3d465fa244d9630b" +checksum = "c310433e4a310918d6ed9243542a6b83ec1183df95dff8f23f87bb88a264a66f" dependencies = [ "type-map", "unic-langid", @@ -1878,9 +1717,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" +checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" [[package]] name = "itertools" @@ -1892,40 +1731,27 @@ dependencies = [ ] [[package]] -name = "itoa" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" - -[[package]] -name = "jobserver" -version = "0.1.21" +name = "itertools" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2" +checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf" dependencies = [ - "libc", + "either", ] [[package]] -name = "js-sys" -version = "0.3.45" +name = "itoa" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca059e81d9486668f12d455a4ea6daa600bd408134cd17e3d3fb5a32d1f016f8" -dependencies = [ - "wasm-bindgen", -] +checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] -name = "jsonrpc-core" -version = "14.2.0" +name = "js-sys" +version = "0.3.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0747307121ffb9703afd93afbd0fb4f854c38fb873f2c8b90e0e902f27c7b62" +checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" dependencies = [ - "futures 0.1.30", - "log", - "serde", - "serde_derive", - "serde_json", + "wasm-bindgen", ] [[package]] @@ -1944,58 +1770,30 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "lexical-core" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" dependencies = [ "arrayvec", "bitflags", - "cfg-if 0.1.10", + "cfg-if 1.0.0", "ryu", "static_assertions", ] [[package]] name = "libc" -version = "0.2.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - -[[package]] -name = "libloading" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" -dependencies = [ - "cc", - "winapi 0.3.9", -] - -[[package]] -name = "librocksdb-sys" -version = "6.11.4" +version = "0.2.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b56f651c204634b936be2f92dbb42c36867e00ff7fe2405591f3b9fa66f09" -dependencies = [ - "bindgen", - "cc", - "glob", - "libc", -] +checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790" [[package]] name = "libz-sys" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655" +checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" dependencies = [ "cc", "libc", @@ -2018,20 +1816,20 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.1" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c" +checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" dependencies = [ "scopeguard", ] [[package]] name = "log" -version = "0.4.11" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", ] [[package]] @@ -2058,12 +1856,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "md5" version = "0.7.0" @@ -2072,9 +1864,9 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" [[package]] name = "memchr" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" +checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" [[package]] name = "memmap" @@ -2088,9 +1880,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.5.6" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" +checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" dependencies = [ "autocfg", ] @@ -2101,20 +1893,11 @@ version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" -[[package]] -name = "mince" -version = "0.1.0" -source = "git+https://github.com/scipr-lab/zexe?rev=b24eda5#b24eda5b750d47c7f751f9d3c97671bfe9540bf8" -dependencies = [ - "quote 1.0.7", - "syn 1.0.60", -] - [[package]] name = "miniz_oxide" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" dependencies = [ "adler", "autocfg", @@ -2141,13 +1924,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.7.7" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e50ae3f04d169fcc9bde0b547d1c205219b7157e07ded9c5aff03e0637cb3ed7" +checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16" dependencies = [ "libc", "log", - "miow 0.3.6", + "miow 0.3.7", "ntapi", "winapi 0.3.9", ] @@ -2166,11 +1949,10 @@ dependencies = [ [[package]] name = "miow" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" dependencies = [ - "socket2 0.3.19", "winapi 0.3.9", ] @@ -2187,8 +1969,8 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.0.0", - "security-framework-sys 2.0.0", + "security-framework 2.3.1", + "security-framework-sys 2.3.0", "tempfile", ] @@ -2211,13 +1993,13 @@ checksum = "ab250442c86f1850815b5d268639dff018c0627022bc1940eb2d642ca1ce12f0" [[package]] name = "nix" -version = "0.18.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055" +checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" dependencies = [ "bitflags", "cc", - "cfg-if 0.1.10", + "cfg-if 1.0.0", "libc", ] @@ -2234,18 +2016,29 @@ dependencies = [ [[package]] name = "ntapi" -version = "0.3.4" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a31937dea023539c72ddae0e3571deadc1414b300483fa7aaec176168cfa9d2" +checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "num-bigint" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e0d047c1062aa51e256408c560894e5251f08925980e53cf1aa5bd00eec6512" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-integer" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" dependencies = [ "autocfg", "num-traits", @@ -2253,9 +2046,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ "autocfg", ] @@ -2307,21 +2100,24 @@ dependencies = [ [[package]] name = "object" -version = "0.22.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" +checksum = "c55827317fb4c08822499848a14237d2874d6f139828893017237e7ab93eb386" +dependencies = [ + "memchr", +] [[package]] name = "once_cell" -version = "1.5.2" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" +checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" [[package]] name = "oorandom" -version = "11.1.2" +version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a170cebd8021a008ea92e4db85a72f80b35df514ec664b296fdcbb654eac0b2c" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] name = "opaque-debug" @@ -2337,29 +2133,29 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.31" +version = "0.10.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d008f51b1acffa0d3450a68606e6a51c123012edaacb0f4e1426bd978869187" +checksum = "549430950c79ae24e6d02e0b7404534ecf311d94cc9f861e9e4020187d13d885" dependencies = [ "bitflags", "cfg-if 1.0.0", "foreign-types", - "lazy_static", "libc", + "once_cell", "openssl-sys", ] [[package]] name = "openssl-probe" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" +checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "openssl-sys" -version = "0.9.59" +version = "0.9.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de52d8eabd217311538a39bba130d7dea1f1e118010fee7a033d966845e7d5fe" +checksum = "7a7907e3bfa08bb85105209cdfcb6c63d109f8f6c1ed6ca318fff5c1853fbc1d" dependencies = [ "autocfg", "cc", @@ -2370,9 +2166,9 @@ dependencies = [ [[package]] name = "ouroboros" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "217b1cea6c9a366538f0a7149612444ac4fc254bf48448785b83000df8542f90" +checksum = "5f6d5c203fe8d786d9d7bec8203cbbff3eb2cf8410c0d70cfd05b3d5f5d545da" dependencies = [ "ouroboros_macro", "stable_deref_trait", @@ -2380,15 +2176,15 @@ dependencies = [ [[package]] name = "ouroboros_macro" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "415c757b9596114edb32bd5332565eeefba79a69eb3c374d9876801af5bebcd3" +checksum = "129943a960e6a08c7e70ca5a09f113c273fe7f10ae8420992c78293e3dffdf65" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2410,12 +2206,11 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.8.0" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b" +checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" dependencies = [ - "cfg-if 0.1.10", - "cloudabi", + "cfg-if 1.0.0", "instant", "libc", "redox_syscall", @@ -2429,15 +2224,9 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3b8c0d71734018084da0c0354193a5edfb81b20d2d57a92c5b154aefc554a4a" dependencies = [ - "crypto-mac 0.10.0", + "crypto-mac 0.10.1", ] -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - [[package]] name = "percent-encoding" version = "2.1.0" @@ -2457,33 +2246,28 @@ dependencies = [ name = "phase1" version = "0.3.0" dependencies = [ - "algebra", - "algebra-core", "anyhow", - "blake2", + "blake2 0.8.1", "cfg-if 0.1.10", "criterion", "derivative", - "ff-fft", - "itertools", + "itertools 0.9.0", "num-traits", "phase1", - "rand 0.7.3", + "rand 0.8.4", + "rand_chacha 0.3.1", "rayon", "rusty-hook", "serde", "setup-utils", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-curves 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-gadgets 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-marlin", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-objects 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-polycommit", - "snarkos-posw", - "snarkos-profiler 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", + "snarkvm-algorithms", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-marlin", + "snarkvm-polycommit", + "snarkvm-posw", + "snarkvm-r1cs", + "snarkvm-utilities", "tracing", ] @@ -2491,15 +2275,14 @@ dependencies = [ name = "phase1-cli" version = "0.3.0" dependencies = [ - "algebra", "gumdrop", "hex", "memmap", "phase1", - "rand 0.7.3", - "rand_xorshift", - "rustc_version 0.3.0", + "rand 0.8.4", + "rustc_version 0.3.3", "setup-utils", + "snarkvm-curves", "tracing", "tracing-subscriber", "wasm-bindgen-test", @@ -2509,17 +2292,16 @@ dependencies = [ name = "phase1-coordinator" version = "0.3.0" dependencies = [ - "algebra", "anyhow", "chrono", "chrono-humanize", - "futures 0.3.8", + "futures", "hex", - "itertools", + "itertools 0.9.0", "memmap", "once_cell", "phase1", - "rand 0.7.3", + "rand 0.8.4", "rayon", "serde", "serde-aux", @@ -2528,8 +2310,9 @@ dependencies = [ "serde_with", "serial_test", "setup-utils", + "snarkvm-curves", "thiserror", - "tokio 1.8.1", + "tokio 1.9.0", "tracing", "tracing-subscriber", ] @@ -2538,15 +2321,17 @@ dependencies = [ name = "phase1-wasm" version = "0.3.0" dependencies = [ - "algebra", "console_error_panic_hook", + "getrandom 0.2.3", "phase1", - "rand 0.7.3", - "rand_xorshift", - "rustc_version 0.3.0", + "rand 0.8.4", + "rand_chacha 0.3.1", + "rustc_version 0.3.3", "serde", "serde_derive", "setup-utils", + "snarkvm-curves", + "snarkvm-fields", "tracing", "tracing-subscriber", "wasm-bindgen", @@ -2557,27 +2342,23 @@ dependencies = [ name = "phase2" version = "0.3.0" dependencies = [ - "algebra", "byteorder", "cfg-if 0.1.10", "console_error_panic_hook", "crossbeam", - "groth16", - "itertools", + "itertools 0.9.0", "num_cpus", "phase1", "phase2", - "r1cs-core", - "r1cs-std", - "rand 0.7.3", + "rand 0.8.4", "rayon", "rusty-hook", "setup-utils", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-curves 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", + "snarkvm-algorithms", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-r1cs", + "snarkvm-utilities", "tracing", "tracing-subscriber", "wasm-bindgen", @@ -2587,42 +2368,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" -dependencies = [ - "pin-project-internal 0.4.27", -] - -[[package]] -name = "pin-project" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7" -dependencies = [ - "pin-project-internal 1.0.2", -] - -[[package]] -name = "pin-project-internal" -version = "0.4.27" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" +checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.2" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f" +checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2633,9 +2394,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" +checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" [[package]] name = "pin-utils" @@ -2653,7 +2414,7 @@ dependencies = [ "nom", "percent-encoding", "secrecy", - "which 4.0.2", + "which", "zeroize", ] @@ -2665,31 +2426,56 @@ checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" [[package]] name = "plotters" -version = "0.2.15" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d1685fbe7beba33de0330629da9d955ac75bd54f33d7b79f9a895590124f6bb" +checksum = "32a3fd9ec30b9749ce28cd91f255d569591cdf937fe280c312143e3c4bad6f2a" dependencies = [ - "js-sys", "num-traits", + "plotters-backend", + "plotters-svg", "wasm-bindgen", "web-sys", ] +[[package]] +name = "plotters-backend" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d88417318da0eaf0fdcdb51a0ee6c3bed624333bff8f946733049380be67ac1c" + +[[package]] +name = "plotters-svg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521fa9638fa597e1dc53e9412a4f9cefb01187ee1f7413076f9e6749e2885ba9" +dependencies = [ + "plotters-backend", +] + [[package]] name = "poly1305" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b7456bc1ad2d4cf82b3a016be4c2ac48daf11bf990c1603ebd447fe6f30fca8" dependencies = [ - "cpuid-bool 0.2.0", + "cpuid-bool", "universal-hash", ] [[package]] name = "ppv-lite86" -version = "0.2.9" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] [[package]] name = "proc-macro-error" @@ -2698,9 +2484,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", "version_check", ] @@ -2710,8 +2496,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", + "proc-macro2", + "quote", "version_check", ] @@ -2723,26 +2509,17 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro-nested" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" - -[[package]] -name = "proc-macro2" -version = "0.4.30" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -dependencies = [ - "unicode-xid 0.1.0", -] +checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.24" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612" dependencies = [ - "unicode-xid 0.2.1", + "unicode-xid", ] [[package]] @@ -2753,40 +2530,18 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "0.6.13" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" dependencies = [ - "proc-macro2 0.4.30", + "proc-macro2", ] [[package]] -name = "quote" -version = "1.0.7" +name = "radium" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" -dependencies = [ - "proc-macro2 1.0.24", -] - -[[package]] -name = "r1cs-core" -version = "0.1.0" -source = "git+https://github.com/scipr-lab/zexe?rev=b24eda5#b24eda5b750d47c7f751f9d3c97671bfe9540bf8" -dependencies = [ - "algebra-core", - "smallvec", -] - -[[package]] -name = "r1cs-std" -version = "0.1.0" -source = "git+https://github.com/scipr-lab/zexe?rev=b24eda5#b24eda5b750d47c7f751f9d3c97671bfe9540bf8" -dependencies = [ - "algebra", - "derivative", - "r1cs-core", -] +checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8" [[package]] name = "rand" @@ -2817,7 +2572,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom 0.1.15", + "getrandom 0.1.16", "libc", "rand_chacha 0.2.2", "rand_core 0.5.1", @@ -2826,14 +2581,14 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" dependencies = [ "libc", - "rand_chacha 0.3.0", - "rand_core 0.6.2", - "rand_hc 0.3.0", + "rand_chacha 0.3.1", + "rand_core 0.6.3", + "rand_hc 0.3.1", ] [[package]] @@ -2848,12 +2603,12 @@ dependencies = [ [[package]] name = "rand_chacha" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.2", + "rand_core 0.6.3", ] [[package]] @@ -2877,14 +2632,14 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom 0.1.15", + "getrandom 0.1.16", ] [[package]] name = "rand_core" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ "getrandom 0.2.3", ] @@ -2900,43 +2655,43 @@ dependencies = [ [[package]] name = "rand_hc" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" dependencies = [ - "rand_core 0.6.2", + "rand_core 0.6.3", ] [[package]] name = "rand_xorshift" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core 0.5.1", + "rand_core 0.6.3", ] [[package]] name = "rayon" -version = "1.4.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf6960dc9a5b4ee8d3e4c5787b4a112a8818e0290a42ff664ad60692fdf2032" +checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ "autocfg", - "crossbeam-deque 0.7.3", + "crossbeam-deque", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.8.1" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c4fec834fb6e6d2dd5eece3c7b432a52f0ba887cf40e595190c4107edc08bf" +checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" dependencies = [ - "crossbeam-channel 0.4.4", - "crossbeam-deque 0.7.3", - "crossbeam-utils 0.7.2", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", "lazy_static", "num_cpus", ] @@ -2952,37 +2707,38 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.57" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" +checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee" +dependencies = [ + "bitflags", +] [[package]] name = "regex" -version = "1.4.1" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8963b85b8ce3074fecffde43b4b0dded83ce2f367dc8d363afc56679f3ee820b" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" dependencies = [ "aho-corasick", "memchr", "regex-syntax", - "thread_local", ] [[package]] name = "regex-automata" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "byteorder", "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.20" +version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cab7a364d15cde1e505267766a2d3c4e22a843e1a601f0fa7564c0f82ced11c" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" [[package]] name = "remove_dir_all" @@ -2995,9 +2751,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2296f2fac53979e8ccbc4a1136b25dcefd37be9ed7e4a1f6b05a6029c84ff124" +checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22" dependencies = [ "base64 0.13.0", "bytes 1.0.1", @@ -3006,7 +2762,7 @@ dependencies = [ "futures-util", "http", "http-body 0.4.2", - "hyper 0.14.7", + "hyper 0.14.11", "hyper-tls", "ipnet", "js-sys", @@ -3015,10 +2771,10 @@ dependencies = [ "mime", "native-tls", "percent-encoding", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", "serde", "serde_urlencoded", - "tokio 1.8.1", + "tokio 1.9.0", "tokio-native-tls", "url", "wasm-bindgen", @@ -3029,9 +2785,9 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.16" +version = "0.16.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72b84d47e8ec5a4f2872e8262b8f8256c5be1c938a7d6d3a867a3ba8f722f74" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" dependencies = [ "cc", "libc", @@ -3042,21 +2798,11 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "rocksdb" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12069b106981c6103d3eab7dd1c86751482d0779a520b7c14954c8b586c1e643" -dependencies = [ - "libc", - "librocksdb-sys", -] - [[package]] name = "rpassword" -version = "5.0.0" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d755237fc0f99d98641540e66abac8bc46a0652f19148ac9e21de2da06b326c9" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" dependencies = [ "libc", "winapi 0.3.9", @@ -3072,14 +2818,14 @@ dependencies = [ "libc", "rand 0.3.23", "rustc-serialize", - "time 0.1.44", + "time 0.1.43", ] [[package]] name = "rust-embed" -version = "5.7.0" +version = "5.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a9619e0b88f073e59df757c75841f05568e92057e992971288d4cef5e12a178" +checksum = "2fe1fe6aac5d6bb9e1ffd81002340363272a7648234ec7bdfac5ee202cb65523" dependencies = [ "rust-embed-impl", "rust-embed-utils", @@ -3092,10 +2838,10 @@ version = "5.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ed91c41c42ef7bf687384439c312e75e0da9c149b0390889b94de3c7d9d9e66" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", + "proc-macro2", + "quote", "rust-embed-utils", - "syn 1.0.60", + "syn", "walkdir", ] @@ -3110,9 +2856,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.18" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" +checksum = "dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49" [[package]] name = "rustc-hash" @@ -3137,13 +2883,22 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.3.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65c94201b44764d6d1f7e37c15a8289ed55e546c1762c7f1d57f616966e0c181" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" dependencies = [ "semver 0.11.0", ] +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.3", +] + [[package]] name = "rustls" version = "0.17.0" @@ -3171,9 +2926,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd" +checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088" [[package]] name = "rusty-hook" @@ -3247,9 +3002,9 @@ dependencies = [ [[package]] name = "sct" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" dependencies = [ "ring", "untrusted", @@ -3279,15 +3034,15 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.0.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69" +checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467" dependencies = [ "bitflags", "core-foundation 0.9.1", "core-foundation-sys 0.8.2", "libc", - "security-framework-sys 2.0.0", + "security-framework-sys 2.3.0", ] [[package]] @@ -3302,9 +3057,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.0.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b" +checksum = "7e4effb91b4b8b6fb7732e670b6cee160278ff8e6bf485c7805d9e319d76e284" dependencies = [ "core-foundation-sys 0.8.2", "libc", @@ -3325,9 +3080,15 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser 0.10.1", + "semver-parser 0.10.2", ] +[[package]] +name = "semver" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f3aac57ee7f3272d8395c6e4f502f434f0e289fcd62876f70daa008c20dcabe" + [[package]] name = "semver-parser" version = "0.7.0" @@ -3336,18 +3097,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "semver-parser" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ef146c2ad5e5f4b037cd6ce2ebb775401729b19a82040c1beac9d36c7d1428" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" dependencies = [ "pest", ] [[package]] name = "serde" -version = "1.0.123" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae" +checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" dependencies = [ "serde_derive", ] @@ -3382,16 +3143,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "692563b61324ae1568e2884c7a6385ab4b95f13063fd31a6b702d5cbc5c456df" dependencies = [ "darling 0.10.2", - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "serde-xml-rs" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efe415925cf3d0bbb2fc47d09b56ce03eef51c5d56846468a39bcc293c7a846c" +checksum = "f0bf1ba0696ccf0872866277143ff1fd14d22eec235d2b23702f95e6660f7dfa" dependencies = [ "log", "serde", @@ -3411,13 +3172,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.123" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31" +checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -3445,9 +3206,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e557c650adfb38b32a5aec07082053253c703bc3cec654b27a5dbcf61995bb9b" +checksum = "1ad9fdbb69badc8916db738c25efd04f0a65297d26c2f8de4b62e57b8c12bc72" dependencies = [ "chrono", "rustversion", @@ -3457,14 +3218,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48b35457e9d855d3dc05ef32a73e0df1e2c0fd72c38796a4ee909160c8eeec2" +checksum = "e1569374bd54623ec8bd592cf22ba6e03c0f177ff55fbc8c29a49e296e7adecf" dependencies = [ - "darling 0.12.2", - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "darling 0.13.0", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -3484,31 +3245,33 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2acd6defeddb41eb60bb468f8825d0cfd0c2a76bc03bfd235b6a1dc4f6a1ad5" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "setup-utils" version = "0.3.0" dependencies = [ - "algebra", - "blake2", + "blake2 0.8.1", "blake2s_simd", "cfg-if 0.1.10", "criterion", "crossbeam", - "ff-fft", "num_cpus", "phase1", - "r1cs-core", - "rand 0.7.3", - "rand_chacha 0.2.2", + "rand 0.8.4", + "rand_chacha 0.3.1", "rayon", "rust-crypto", "rusty-hook", "serde", + "snarkvm-algorithms", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-r1cs", + "snarkvm-utilities", "thiserror", "tracing", "typenum", @@ -3521,11 +3284,11 @@ dependencies = [ "age", "anyhow", "hex", - "rand 0.7.3", + "rand 0.8.4", "secrecy", "serde", "serde_json", - "snarkos-toolkit", + "snarkvm-dpc", "structopt", "unic-langid", ] @@ -3535,7 +3298,6 @@ name = "setup1-contributor" version = "0.4.0" dependencies = [ "age", - "algebra", "anyhow", "azure_sdk_core", "azure_sdk_storage_blob", @@ -3543,7 +3305,7 @@ dependencies = [ "byteorder", "chrono", "clap", - "futures 0.3.8", + "futures", "futures-util", "hex", "http", @@ -3554,17 +3316,19 @@ dependencies = [ "phase1", "phase1-cli", "phase1-coordinator", - "rand 0.7.3", + "rand 0.8.4", "reqwest", "secrecy", "serde", "serde_json", "setup-utils", "setup1-shared", - "snarkos-toolkit", + "snarkvm-curves", + "snarkvm-dpc", + "snarkvm-utilities", "structopt", "thiserror", - "tokio 1.8.1", + "tokio 1.9.0", "tokio-tungstenite", "tracing", "tracing-appender", @@ -3578,14 +3342,13 @@ version = "0.1.0" dependencies = [ "serde", "serde_json", - "tokio 1.8.1", + "tokio 1.9.0", ] [[package]] name = "setup1-verifier" version = "0.4.0" dependencies = [ - "algebra", "anyhow", "chrono", "ctrlc", @@ -3596,7 +3359,7 @@ dependencies = [ "phase1", "phase1-cli", "phase1-coordinator", - "rand 0.7.3", + "rand 0.8.4", "rand_xorshift", "reqwest", "serde", @@ -3605,10 +3368,13 @@ dependencies = [ "serial_test", "setup-utils", "setup1-shared", - "snarkos-toolkit", + "snarkvm-algorithms", + "snarkvm-curves", + "snarkvm-dpc", + "snarkvm-utilities", "structopt", "thiserror", - "tokio 1.8.1", + "tokio 1.9.0", "tracing", "tracing-subscriber", "url", @@ -3618,34 +3384,32 @@ dependencies = [ name = "setup2" version = "0.3.0" dependencies = [ - "algebra", "anyhow", "cfg-if 0.1.10", - "groth16", "gumdrop", "hex", "hex-literal", "memmap", "phase2", - "r1cs-core", - "r1cs-std", - "rand 0.7.3", - "rand_xorshift", + "rand 0.8.4", + "rand_chacha 0.3.1", "setup-utils", - "snarkos-curves 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-dpc 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-parameters 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", + "snarkvm-algorithms", + "snarkvm-curves", + "snarkvm-dpc", + "snarkvm-fields", + "snarkvm-parameters", + "snarkvm-r1cs", + "snarkvm-utilities", "thiserror", "tracing-subscriber", ] [[package]] name = "sha-1" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4cfa741c5832d0ef7fab46cabed29c2aae926db0b11bb2069edd8db5e64e16" +checksum = "1a0c8611594e2ab4ebbf06ec7cbbf0a99450b8570e96cbf5188b5d5f6ef18d81" dependencies = [ "block-buffer", "cfg-if 1.0.0", @@ -3662,13 +3426,13 @@ checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" [[package]] name = "sha2" -version = "0.9.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2933378ddfeda7ea26f48c555bdad8bb446bf8a3d17832dc83e380d444cfb8c1" +checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12" dependencies = [ "block-buffer", - "cfg-if 0.1.10", - "cpuid-bool 0.1.2", + "cfg-if 1.0.0", + "cpufeatures", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -3682,27 +3446,20 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shlex" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" - [[package]] name = "signal-hook-registry" -version = "1.2.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e12110bc539e657a646068aaf5eb5b63af9d0c1f7b29c97113fad80e15f035" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" dependencies = [ - "arc-swap", "libc", ] [[package]] name = "slab" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" [[package]] name = "smallvec" @@ -3714,401 +3471,231 @@ dependencies = [ ] [[package]] -name = "snarkos-algorithms" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" +name = "snarkvm-algorithms" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ - "blake2", - "derivative", - "digest 0.8.1", - "itertools", - "rand 0.7.3", - "rand_chacha 0.2.2", - "rayon", - "sha2", - "smallvec", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-profiler 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", -] - -[[package]] -name = "snarkos-algorithms" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" -dependencies = [ - "blake2", + "anyhow", + "bitvec", + "blake2 0.9.1", + "blake2s_simd", + "crossbeam-channel", "derivative", - "digest 0.8.1", - "itertools", - "rand 0.7.3", - "rand_chacha 0.2.2", + "digest 0.9.0", + "itertools 0.10.1", + "lazy_static", + "once_cell", + "rand 0.8.4", + "rand_chacha 0.3.1", "rayon", "sha2", "smallvec", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-profiler 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", -] - -[[package]] -name = "snarkos-curves" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" -dependencies = [ - "derivative", - "rand 0.7.3", - "rand_xorshift", - "rustc_version 0.2.3", - "serde", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-profiler", + "snarkvm-r1cs", + "snarkvm-utilities", + "thiserror", ] [[package]] -name = "snarkos-curves" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" +name = "snarkvm-curves" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ "derivative", - "rand 0.7.3", + "rand 0.8.4", "rand_xorshift", - "rustc_version 0.2.3", + "rustc_version 0.4.0", "serde", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", -] - -[[package]] -name = "snarkos-derives" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" -dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", -] - -[[package]] -name = "snarkos-derives" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" -dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", -] - -[[package]] -name = "snarkos-dpc" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" -dependencies = [ - "blake2", - "derivative", - "hex", - "itertools", - "rand 0.7.3", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-curves 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-gadgets 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-objects 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-parameters 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-profiler 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", -] - -[[package]] -name = "snarkos-dpc" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" -dependencies = [ - "blake2", - "derivative", - "hex", - "itertools", - "rand 0.7.3", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-curves 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-gadgets 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-objects 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-parameters 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-profiler 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", -] - -[[package]] -name = "snarkos-errors" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" -dependencies = [ - "base58", - "bech32 0.6.0", - "bincode", - "hex", - "jsonrpc-core", + "snarkvm-fields", + "snarkvm-utilities", "thiserror", - "toml", -] - -[[package]] -name = "snarkos-errors" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" -dependencies = [ - "base58", - "bech32 0.6.0", - "bincode", - "curl", - "hex", - "jsonrpc-core", - "rocksdb", - "thiserror", - "toml", -] - -[[package]] -name = "snarkos-gadgets" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" -dependencies = [ - "derivative", - "digest 0.8.1", - "itertools", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-curves 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", -] - -[[package]] -name = "snarkos-gadgets" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" -dependencies = [ - "derivative", - "digest 0.8.1", - "itertools", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-curves 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", ] [[package]] -name = "snarkos-marlin" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" +name = "snarkvm-derives" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ - "blake2", - "derivative", - "digest 0.8.1", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rayon", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-gadgets 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-polycommit", - "snarkos-profiler 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "snarkos-models" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" +name = "snarkvm-dpc" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ + "anyhow", + "base58", + "bech32 0.8.1", "bincode", + "blake2 0.9.1", + "chrono", "derivative", - "itertools", - "rand 0.7.3", - "rand_xorshift", + "hex", + "itertools 0.10.1", + "once_cell", + "rand 0.8.4", "serde", - "smallvec", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", + "sha2", + "snarkvm-algorithms", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-gadgets", + "snarkvm-marlin", + "snarkvm-parameters", + "snarkvm-polycommit", + "snarkvm-profiler", + "snarkvm-r1cs", + "snarkvm-utilities", + "thiserror", ] [[package]] -name = "snarkos-models" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" +name = "snarkvm-fields" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ + "anyhow", "bincode", "derivative", - "itertools", - "rand 0.7.3", + "rand 0.8.4", "rand_xorshift", "serde", - "smallvec", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", + "snarkvm-utilities", + "thiserror", ] [[package]] -name = "snarkos-objects" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" +name = "snarkvm-gadgets" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ - "base58", - "bech32 0.6.0", - "chrono", "derivative", - "hex", - "once_cell", - "rand 0.7.3", - "serde", - "sha2", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-curves 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", + "digest 0.9.0", + "itertools 0.10.1", + "num-bigint", + "num-integer", + "num-traits", + "snarkvm-algorithms", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-r1cs", + "snarkvm-utilities", + "thiserror", ] [[package]] -name = "snarkos-objects" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" +name = "snarkvm-marlin" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ - "base58", - "bech32 0.6.0", - "chrono", + "blake2 0.9.1", "derivative", - "hex", - "once_cell", - "rand 0.7.3", - "serde", - "sha2", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-curves 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", -] - -[[package]] -name = "snarkos-parameters" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" -dependencies = [ - "hex", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", + "digest 0.9.0", + "hashbrown", + "rand 0.8.4", + "rand_chacha 0.3.1", + "rand_core 0.6.3", + "rayon", + "snarkvm-algorithms", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-gadgets", + "snarkvm-polycommit", + "snarkvm-profiler", + "snarkvm-r1cs", + "snarkvm-utilities", ] [[package]] -name = "snarkos-parameters" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" +name = "snarkvm-parameters" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ "curl", "hex", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", + "snarkvm-algorithms", + "snarkvm-utilities", + "thiserror", ] [[package]] -name = "snarkos-polycommit" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" +name = "snarkvm-polycommit" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ "derivative", - "digest 0.8.1", - "rand_core 0.5.1", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-profiler 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", + "digest 0.9.0", + "hashbrown", + "rand_core 0.6.3", + "snarkvm-algorithms", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-gadgets", + "snarkvm-profiler", + "snarkvm-r1cs", + "snarkvm-utilities", ] [[package]] -name = "snarkos-posw" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" +name = "snarkvm-posw" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ - "blake2", - "rand 0.7.3", - "snarkos-algorithms 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-curves 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-gadgets 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-marlin", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-objects 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-parameters 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-polycommit", - "snarkos-profiler 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", + "anyhow", + "blake2 0.9.1", + "rand 0.8.4", + "snarkvm-algorithms", + "snarkvm-curves", + "snarkvm-dpc", + "snarkvm-fields", + "snarkvm-gadgets", + "snarkvm-marlin", + "snarkvm-parameters", + "snarkvm-polycommit", + "snarkvm-profiler", + "snarkvm-r1cs", + "snarkvm-utilities", "thiserror", ] [[package]] -name = "snarkos-profiler" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" - -[[package]] -name = "snarkos-profiler" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" -dependencies = [ - "colored", -] +name = "snarkvm-profiler" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" [[package]] -name = "snarkos-toolkit" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" +name = "snarkvm-r1cs" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ - "hex", - "rand 0.7.3", - "snarkos-dpc 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-models 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-objects 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-utilities 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", + "cfg-if 1.0.0", + "fxhash", + "indexmap", + "itertools 0.10.1", + "snarkvm-curves", + "snarkvm-fields", + "snarkvm-utilities", "thiserror", - "wasm-bindgen", ] [[package]] -name = "snarkos-utilities" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=6357695#6357695cffa754608f8147c9d7d8a8d8fbc38d4d" -dependencies = [ - "bincode", - "rand 0.7.3", - "snarkos-derives 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=6357695)", -] - -[[package]] -name = "snarkos-utilities" -version = "1.1.4" -source = "git+https://github.com/AleoHQ/snarkOS?rev=801bf76#801bf76e04e41ed2b41774bc8928f882aa322d15" +name = "snarkvm-utilities" +version = "0.7.5" +source = "git+https://github.com/AleoHQ/snarkVM.git?rev=707b06f#707b06fccd90601dbf7bb67ba17444f4ed89753e" dependencies = [ + "anyhow", "bincode", - "rand 0.7.3", - "snarkos-derives 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", - "snarkos-errors 1.1.4 (git+https://github.com/AleoHQ/snarkOS?rev=801bf76)", + "num-bigint", + "rand 0.8.4", + "snarkvm-derives", + "thiserror", ] [[package]] @@ -4146,9 +3733,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "standback" -version = "0.2.13" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf906c8b8fc3f6ecd1046e01da1d8ddec83e48c8b08b84dcc02b585a6bedf5a8" +checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" dependencies = [ "version_check", ] @@ -4179,11 +3766,11 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", + "proc-macro2", + "quote", "serde", "serde_derive", - "syn 1.0.60", + "syn", ] [[package]] @@ -4193,13 +3780,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" dependencies = [ "base-x", - "proc-macro2 1.0.24", - "quote 1.0.7", + "proc-macro2", + "quote", "serde", "serde_derive", "serde_json", "sha1", - "syn 1.0.60", + "syn", ] [[package]] @@ -4228,9 +3815,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "structopt" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c" +checksum = "69b041cdcb67226aca307e6e7be44c8806423d83e018bd662360a93dabce4d71" dependencies = [ "clap", "lazy_static", @@ -4239,15 +3826,15 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" +checksum = "7813934aecf5f51a54775e00068c237de98489463968231a51746bbbc03f9c10" dependencies = [ "heck", "proc-macro-error", - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -4258,72 +3845,58 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "0.15.44" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +checksum = "1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c" dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", + "proc-macro2", + "quote", + "unicode-xid", ] [[package]] -name = "syn" -version = "1.0.60" +name = "synstructure" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" +checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "unicode-xid 0.2.1", + "proc-macro2", + "quote", + "syn", + "unicode-xid", ] [[package]] -name = "synstructure" -version = "0.12.4" +name = "tap" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" -dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", - "unicode-xid 0.2.1", -] +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "libc", - "rand 0.7.3", + "rand 0.8.4", "redox_syscall", "remove_dir_all", "winapi 0.3.9", ] -[[package]] -name = "termcolor" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" -dependencies = [ - "winapi-util", -] - [[package]] name = "terminal_size" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd2d183bd3fac5f5fe38ddbeb4dc9aec4a39a9d7d59e7491d900302da01cbe1" +checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" dependencies = [ "libc", "winapi 0.3.9", @@ -4340,49 +3913,48 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6" +checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d" +checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "thread_local" -version = "1.0.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" +checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" dependencies = [ - "lazy_static", + "once_cell", ] [[package]] name = "time" -version = "0.1.44" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" dependencies = [ "libc", - "wasi 0.10.0+wasi-snapshot-preview1", "winapi 0.3.9", ] [[package]] name = "time" -version = "0.2.23" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcdaeea317915d59b2b4cd3b5efcd156c309108664277793f5351700c02ce98b" +checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" dependencies = [ "const_fn", "libc", @@ -4405,15 +3977,15 @@ dependencies = [ [[package]] name = "time-macros-impl" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" +checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.24", - "quote 1.0.7", + "proc-macro2", + "quote", "standback", - "syn 1.0.60", + "syn", ] [[package]] @@ -4424,9 +3996,9 @@ checksum = "29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1" [[package]] name = "tinytemplate" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d3dc76004a03cec1c5932bca4cdc2e39aaa798e3f82363dd94f9adf6098c12f" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" dependencies = [ "serde", "serde_json", @@ -4434,15 +4006,24 @@ dependencies = [ [[package]] name = "tinyvec" -version = "0.3.4" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48" +checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092" dependencies = [ "bytes 0.5.6", "fnv", @@ -4457,18 +4038,18 @@ dependencies = [ [[package]] name = "tokio" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c8b05dc14c75ea83d63dd391100353789f5f24b8b3866542a5e85c8be8e985" +checksum = "4b7b349f11a7047e6d1276853e612d152f5e8a352c61917887cc2169e2366b4c" dependencies = [ "autocfg", "bytes 1.0.1", "libc", "memchr", - "mio 0.7.7", + "mio 0.7.13", "num_cpus", "once_cell", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", "signal-hook-registry", "tokio-macros", "winapi 0.3.9", @@ -4476,13 +4057,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c49e3df43841dafb86046472506755d8501c5615673955f6aa17181125d13c37" +checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -4492,7 +4073,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" dependencies = [ "native-tls", - "tokio 1.8.1", + "tokio 1.9.0", ] [[package]] @@ -4503,7 +4084,7 @@ checksum = "15cb62a0d2770787abc96e99c1cd98fcf17f94959f3af63ca85bdfb203f051b4" dependencies = [ "futures-core", "rustls", - "tokio 0.2.24", + "tokio 0.2.25", "webpki", ] @@ -4515,8 +4096,8 @@ checksum = "1e96bb520beab540ab664bd5a9cfeaa1fcd846fa68c830b42e2c8963071251d2" dependencies = [ "futures-util", "log", - "pin-project 1.0.2", - "tokio 1.8.1", + "pin-project", + "tokio 1.9.0", "tungstenite", ] @@ -4531,7 +4112,7 @@ dependencies = [ "futures-sink", "log", "pin-project-lite 0.1.12", - "tokio 0.2.24", + "tokio 0.2.25", ] [[package]] @@ -4544,24 +4125,24 @@ dependencies = [ "futures-core", "futures-sink", "log", - "pin-project-lite 0.2.6", - "tokio 1.8.1", + "pin-project-lite 0.2.7", + "tokio 1.9.0", ] [[package]] name = "toml" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75cf45bb0bef80604d001caaec0d09da99611b3c0fd39d3080468875cdb65645" +checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" dependencies = [ "serde", ] [[package]] name = "tower-service" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" @@ -4571,19 +4152,19 @@ checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" dependencies = [ "cfg-if 1.0.0", "log", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-appender" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aa52d56cc0d79ab604e8a022a1cebc4de33cf09dc9933c94353bea2e00d6e88" +checksum = "9965507e507f12c8901432a33e31131222abac31edd90cabbcf85cf544b7127a" dependencies = [ "chrono", - "crossbeam-channel 0.4.4", + "crossbeam-channel", "tracing-subscriber", ] @@ -4593,9 +4174,9 @@ version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -4609,19 +4190,19 @@ dependencies = [ [[package]] name = "tracing-futures" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 0.4.27", + "pin-project", "tracing", ] [[package]] name = "tracing-log" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e0f8c7178e13481ff6765bd169b33e8d554c5d2bbede5e32c356194be02b9b9" +checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" dependencies = [ "lazy_static", "log", @@ -4640,9 +4221,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.14" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2810660b9d5b18895d140caba6401765749a6a162e5d0736cfc44ea50db9d79d" +checksum = "ab69019741fca4d98be3c62d2b75254528b5432233fd8a4d2739fec20278de48" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -4679,7 +4260,7 @@ dependencies = [ "httparse", "input_buffer", "log", - "rand 0.8.3", + "rand 0.8.4", "sha-1", "thiserror", "url", @@ -4688,18 +4269,18 @@ dependencies = [ [[package]] name = "type-map" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d2741b1474c327d95c1f1e3b0a2c3977c8e128409c572a33af2914e7d636717" +checksum = "b6d3364c5e96cb2ad1603037ab253ddd34d7fb72a58bdddf4b7350760fc69a46" dependencies = [ - "fxhash", + "rustc-hash", ] [[package]] name = "typenum" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" +checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" [[package]] name = "ucd-trie" @@ -4728,27 +4309,27 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" dependencies = [ "matches", ] [[package]] name = "unicode-normalization" -version = "0.1.13" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" +checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" @@ -4758,34 +4339,18 @@ checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" [[package]] name = "unicode-xid" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" - -[[package]] -name = "unicode-xid" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" [[package]] name = "universal-hash" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ "generic-array 0.14.4", - "subtle 2.4.0", -] - -[[package]] -name = "unroll" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85890b49d9724df33edc575c4bacd5b0081977da22c4c4984d0c62ec44ed6e09" -dependencies = [ - "quote 0.6.13", - "syn 0.15.44", + "subtle 2.4.1", ] [[package]] @@ -4814,18 +4379,18 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "uuid" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "rand 0.7.3", + "getrandom 0.2.3", ] [[package]] name = "vcpkg" -version = "0.2.10" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vec_map" @@ -4835,15 +4400,15 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version_check" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" [[package]] name = "walkdir" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", "winapi 0.3.9", @@ -4868,15 +4433,15 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" +version = "0.10.2+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" +checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" dependencies = [ "cfg-if 1.0.0", "serde", @@ -4886,26 +4451,26 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62" +checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.18" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7866cab0aa01de1edf8b5d7936938a7e397ee50ce24119aef3e1eaa3b6171da" +checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "js-sys", "wasm-bindgen", "web-sys", @@ -4913,38 +4478,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084" +checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" dependencies = [ - "quote 1.0.7", + "quote", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549" +checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" +checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" [[package]] name = "wasm-bindgen-test" -version = "0.3.18" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d1cdc8b98a557f24733d50a1199c4b0635e465eecba9c45b214544da197f64" +checksum = "8cab416a9b970464c2882ed92d55b0c33046b08e0bdc9d59b3b718acd4e1bae8" dependencies = [ "console_error_panic_hook", "js-sys", @@ -4956,19 +4521,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.18" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8fb9c67be7439ee8ab1b7db502a49c05e51e2835b66796c705134d9b8e1a585" +checksum = "dd4543fc6cf3541ef0d98bf720104cc6bd856d7eba449fd2aa365ef4fed0e782" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", + "proc-macro2", + "quote", ] [[package]] name = "web-sys" -version = "0.3.45" +version = "0.3.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf6ef87ad7ae8008e15a355ce696bed26012b7caa21605188cfd8214ab51e2d" +checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582" dependencies = [ "js-sys", "wasm-bindgen", @@ -4976,9 +4541,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.21.3" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab146130f5f790d45f82aeeb09e55a256573373ec64409fc19a6fb82fb1032ae" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" dependencies = [ "ring", "untrusted", @@ -4986,21 +4551,12 @@ dependencies = [ [[package]] name = "which" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724" -dependencies = [ - "libc", -] - -[[package]] -name = "which" -version = "4.0.2" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c14ef7e1b8b8ecfc75d5eca37949410046e66f15d185c01d70824f1f8111ef" +checksum = "b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe" dependencies = [ + "either", "libc", - "thiserror", ] [[package]] @@ -5065,11 +4621,17 @@ dependencies = [ "winapi-build", ] +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + [[package]] name = "x25519-dalek" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc614d95359fd7afc321b66d2107ede58b246b844cf5d8a0adcca413e439f088" +checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" dependencies = [ "curve25519-dalek", "rand_core 0.5.1", @@ -5084,21 +4646,21 @@ checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a" [[package]] name = "zeroize" -version = "1.2.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a974bcdd357f0dca4d41677db03436324d45a4c9ed2d0b873a5a360ce41c36" +checksum = "377db0846015f7ae377174787dd452e1c5f5a9050bc6f954911d01f116daa0cd" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" +checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.7", - "syn 1.0.60", + "proc-macro2", + "quote", + "syn", "synstructure", ] diff --git a/phase1-cli/Cargo.toml b/phase1-cli/Cargo.toml index f3619ac7..d6befd2c 100644 --- a/phase1-cli/Cargo.toml +++ b/phase1-cli/Cargo.toml @@ -11,18 +11,16 @@ edition = "2018" [dependencies] phase1 = { path = "../phase1", default-features = false } setup-utils = { path = "../setup-utils", default-features = false } - -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0", features = ["bls12_377", "bw6_761", "derive"] } +snarkvm-curves = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } gumdrop = { version = "0.8.0" } hex = { version = "0.4.2" } memmap = { version = "0.7.0" } -rand = { version = "0.7" } +rand = { version = "0.8" } tracing = { version = "0.1.21" } tracing-subscriber = { version = "0.2.3" } [dev-dependencies] -rand_xorshift = { version = "0.2" } wasm-bindgen-test = { version = "0.3.18" } [build-dependencies] @@ -31,7 +29,7 @@ rustc_version = { version = "0.3" } [features] default = ["cli"] cli = ["phase1/cli", "parallel", "setup-utils/cli"] -parallel = ["phase1/parallel", "setup-utils/parallel", "zexe_algebra/parallel"] +parallel = ["phase1/parallel", "setup-utils/parallel"] [[bin]] name = "phase1" diff --git a/phase1-cli/src/bin/phase1.rs b/phase1-cli/src/bin/phase1.rs index 3b91c600..dc5b6930 100644 --- a/phase1-cli/src/bin/phase1.rs +++ b/phase1-cli/src/bin/phase1.rs @@ -10,7 +10,7 @@ use phase1_cli::{ }; use setup_utils::{beacon_randomness, derive_rng_from_seed, from_slice, CheckForCorrectness, UseCompression}; -use zexe_algebra::{Bls12_377, PairingEngine as Engine, BW6_761}; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761, PairingEngine as Engine}; use gumdrop::Options; use std::{fs::read_to_string, process, time::Instant}; diff --git a/phase1-cli/src/bin/prepare_phase2.rs b/phase1-cli/src/bin/prepare_phase2.rs index 40fbb985..28da9c6e 100644 --- a/phase1-cli/src/bin/prepare_phase2.rs +++ b/phase1-cli/src/bin/prepare_phase2.rs @@ -5,7 +5,7 @@ use phase1::{ }; use setup_utils::{CheckForCorrectness, Groth16Params, Result, UseCompression}; -use zexe_algebra::{Bls12_377, PairingEngine, BW6_761}; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761, PairingEngine as Engine}; use gumdrop::Options; use memmap::*; @@ -45,7 +45,7 @@ struct PreparePhase2Opts { pub phase2_size: u32, } -fn prepare_phase2(opts: &PreparePhase2Opts) -> Result<()> { +fn prepare_phase2(opts: &PreparePhase2Opts) -> Result<()> { let parameters = Phase1Parameters::::new_full(opts.proving_system, opts.power, opts.batch_size); // Try to load response file from disk. let reader = OpenOptions::new() diff --git a/phase1-cli/src/combine.rs b/phase1-cli/src/combine.rs index 4de74509..9d1fcec0 100644 --- a/phase1-cli/src/combine.rs +++ b/phase1-cli/src/combine.rs @@ -1,7 +1,7 @@ use phase1::{Phase1, Phase1Parameters}; use setup_utils::UseCompression; -use zexe_algebra::PairingEngine as Engine; +use snarkvm_curves::PairingEngine as Engine; use memmap::*; use std::{ diff --git a/phase1-cli/src/contribute.rs b/phase1-cli/src/contribute.rs index 54fbc91b..37175c06 100644 --- a/phase1-cli/src/contribute.rs +++ b/phase1-cli/src/contribute.rs @@ -1,10 +1,10 @@ use phase1::{Phase1, Phase1Parameters}; use setup_utils::{calculate_hash, print_hash, CheckForCorrectness, UseCompression}; -use zexe_algebra::PairingEngine as Engine; +use snarkvm_curves::PairingEngine as Engine; use memmap::*; -use rand::Rng; +use rand::{CryptoRng, Rng}; use std::{ fs::OpenOptions, io::{Read, Write}, @@ -17,7 +17,7 @@ pub fn contribute( response_filename: &str, check_input_correctness: CheckForCorrectness, parameters: &Phase1Parameters, - mut rng: impl Rng, + mut rng: impl Rng + CryptoRng, ) { // Try to load challenge file from disk. let reader = OpenOptions::new() diff --git a/phase1-cli/src/new_challenge.rs b/phase1-cli/src/new_challenge.rs index 1cb5289b..95c8b8da 100644 --- a/phase1-cli/src/new_challenge.rs +++ b/phase1-cli/src/new_challenge.rs @@ -1,7 +1,7 @@ use phase1::{Phase1, Phase1Parameters}; use setup_utils::{blank_hash, calculate_hash, print_hash, UseCompression}; -use zexe_algebra::PairingEngine as Engine; +use snarkvm_curves::PairingEngine as Engine; use memmap::*; use std::{fs::OpenOptions, io::Write}; diff --git a/phase1-cli/src/transform_pok_and_correctness.rs b/phase1-cli/src/transform_pok_and_correctness.rs index 8ea714a7..9a707c39 100644 --- a/phase1-cli/src/transform_pok_and_correctness.rs +++ b/phase1-cli/src/transform_pok_and_correctness.rs @@ -1,7 +1,7 @@ use phase1::{Phase1, Phase1Parameters, PublicKey}; use setup_utils::{calculate_hash, print_hash, CheckForCorrectness, UseCompression}; -use zexe_algebra::PairingEngine as Engine; +use snarkvm_curves::PairingEngine as Engine; use memmap::*; use std::{ diff --git a/phase1-cli/src/transform_ratios.rs b/phase1-cli/src/transform_ratios.rs index 00612209..20291bfc 100644 --- a/phase1-cli/src/transform_ratios.rs +++ b/phase1-cli/src/transform_ratios.rs @@ -1,7 +1,7 @@ use phase1::{Phase1, Phase1Parameters}; use setup_utils::{calculate_hash, print_hash, CheckForCorrectness, UseCompression}; -use zexe_algebra::PairingEngine as Engine; +use snarkvm_curves::PairingEngine as Engine; use memmap::*; use std::fs::OpenOptions; diff --git a/phase1-coordinator/Cargo.toml b/phase1-coordinator/Cargo.toml index 38ceff0e..6f24f44c 100644 --- a/phase1-coordinator/Cargo.toml +++ b/phase1-coordinator/Cargo.toml @@ -15,8 +15,7 @@ path = "src/main.rs" [dependencies] phase1 = { path = "../phase1" } setup-utils = { path = "../setup-utils", default-features = false } - -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0", features = ["bls12_377", "bw6_761", "derive"] } +snarkvm-curves = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } anyhow = { version = "1.0.37" } chrono = { version = "0.4", features = ["serde"] } @@ -26,7 +25,7 @@ futures = { version = "0.3" } hex = { version = "0.4.2" } memmap = { version = "0.7.0" } once_cell = { version = "1.5.2" } -rand = { version = "0.7.3" } +rand = { version = "0.8" } rayon = { version = "1.4.1" } serde = { version = "1.0", features = ["derive"] } serde-aux = { version = "0.6" } diff --git a/phase1-coordinator/src/commands/aggregation.rs b/phase1-coordinator/src/commands/aggregation.rs index 17785424..58ff4256 100644 --- a/phase1-coordinator/src/commands/aggregation.rs +++ b/phase1-coordinator/src/commands/aggregation.rs @@ -5,10 +5,10 @@ use crate::{ CoordinatorError, }; use phase1::{helpers::CurveKind, Phase1}; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; use std::time::Instant; use tracing::{debug, error, trace}; -use zexe_algebra::{Bls12_377, BW6_761}; pub(crate) struct Aggregation; diff --git a/phase1-coordinator/src/commands/computation.rs b/phase1-coordinator/src/commands/computation.rs index 4e3fa6a1..f9af608f 100644 --- a/phase1-coordinator/src/commands/computation.rs +++ b/phase1-coordinator/src/commands/computation.rs @@ -8,10 +8,11 @@ use crate::{ use phase1::{helpers::CurveKind, Phase1, Phase1Parameters}; use setup_utils::{calculate_hash, derive_rng_from_seed, UseCompression}; -use rand::Rng; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761, PairingEngine as Engine}; + +use rand::{CryptoRng, Rng}; use std::{io::Write, sync::Arc, time::Instant}; use tracing::{debug, error, info, trace}; -use zexe_algebra::{Bls12_377, PairingEngine as Engine, BW6_761}; pub const SEED_LENGTH: usize = 32; pub type Seed = [u8; SEED_LENGTH]; @@ -119,7 +120,7 @@ impl Computation { challenge_reader: &[u8], mut response_writer: &mut [u8], parameters: &Phase1Parameters, - mut rng: impl Rng, + mut rng: impl Rng + CryptoRng, ) -> Result<(), CoordinatorError> { // Fetch the environment settings. let compressed_inputs = environment.compressed_inputs(); diff --git a/phase1-coordinator/src/commands/initialization.rs b/phase1-coordinator/src/commands/initialization.rs index a3996251..e331ac31 100644 --- a/phase1-coordinator/src/commands/initialization.rs +++ b/phase1-coordinator/src/commands/initialization.rs @@ -5,11 +5,12 @@ use crate::{ }; use phase1::{helpers::CurveKind, Phase1, Phase1Parameters}; use setup_utils::{blank_hash, calculate_hash, UseCompression}; -use zexe_algebra::PairingEngine as Engine; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; + +use snarkvm_curves::PairingEngine as Engine; use std::{io::Write, time::Instant}; use tracing::{debug, error, info, trace}; -use zexe_algebra::{Bls12_377, BW6_761}; pub(crate) struct Initialization; diff --git a/phase1-coordinator/src/commands/verification.rs b/phase1-coordinator/src/commands/verification.rs index f6f3aca8..0116543d 100644 --- a/phase1-coordinator/src/commands/verification.rs +++ b/phase1-coordinator/src/commands/verification.rs @@ -7,10 +7,10 @@ use crate::{ }; use phase1::{helpers::CurveKind, Phase1, Phase1Parameters, PublicKey}; use setup_utils::{calculate_hash, CheckForCorrectness, GenericArray, U64}; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761, PairingEngine as Engine}; use std::{io::Write, sync::Arc, time::Instant}; use tracing::{debug, error, info, trace}; -use zexe_algebra::{Bls12_377, PairingEngine as Engine, BW6_761}; pub(crate) struct Verification; diff --git a/phase1-coordinator/src/storage/storage.rs b/phase1-coordinator/src/storage/storage.rs index 17e1fecb..472e311a 100644 --- a/phase1-coordinator/src/storage/storage.rs +++ b/phase1-coordinator/src/storage/storage.rs @@ -5,6 +5,7 @@ use crate::{ CoordinatorState, }; use phase1::helpers::CurveKind; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; use memmap::MmapMut; use serde::{Deserialize, Serialize}; @@ -13,7 +14,6 @@ use std::{ path::Path, sync::{RwLockReadGuard, RwLockWriteGuard}, }; -use zexe_algebra::{Bls12_377, BW6_761}; #[derive(Debug, Clone, Copy, Eq, PartialEq, Hash, Serialize, Deserialize)] pub struct ContributionLocator { diff --git a/phase1-wasm/Cargo.toml b/phase1-wasm/Cargo.toml index 1ad7817a..c9874881 100644 --- a/phase1-wasm/Cargo.toml +++ b/phase1-wasm/Cargo.toml @@ -14,10 +14,12 @@ crate-type = ["cdylib", "rlib"] [dependencies] phase1 = { path = "../phase1", default-features = false } setup-utils = { path = "../setup-utils", default-features = false } +snarkvm-curves = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-fields = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0", features = ["bls12_377", "bw6_761", "derive"] } - -rand = { version = "0.7" } +getrandom = { version = "0.2" } +rand = { version = "0.8" } +rand_chacha = { version = "0.3" } serde = { version = "1.0.114" } serde_derive = { version = "1.0.114" } tracing = { version = "0.1.21" } @@ -31,15 +33,15 @@ wasm-bindgen = { version = "0.2.69", features=["serde-serialize"] } console_error_panic_hook = { version = "0.1.6", optional = true } [dev-dependencies] -rand_xorshift = { version = "0.2" } +rand_chacha = { version = "0.3" } wasm-bindgen-test = { version = "0.3.18" } [build-dependencies] rustc_version = { version = "0.3" } [features] -default = [] -wasm = ["console_error_panic_hook", "phase1/wasm", "rand/wasm-bindgen", "setup-utils/wasm"] +default = ["setup-utils/default"] +wasm = ["console_error_panic_hook", "getrandom/js", "getrandom/wasm-bindgen", "phase1/wasm", "setup-utils/wasm"] # cargo test --target wasm32-unknown-unknown --no-default-features --features wasm # cargo build --tests --target wasm32-unknown-unknown --no-default-features --features wasm diff --git a/phase1-wasm/src/phase1.rs b/phase1-wasm/src/phase1.rs index 54698c65..6cdaf4e3 100644 --- a/phase1-wasm/src/phase1.rs +++ b/phase1-wasm/src/phase1.rs @@ -13,10 +13,9 @@ use setup_utils::{ CheckForCorrectness, UseCompression, }; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761, PairingEngine}; -use zexe_algebra::{Bls12_377, PairingEngine, BW6_761}; - -use rand::Rng; +use rand::{CryptoRng, Rng}; use wasm_bindgen::prelude::*; pub(crate) const COMPRESSED_INPUT: UseCompression = UseCompression::No; @@ -139,7 +138,7 @@ pub fn get_parameters_chunked( pub fn contribute_challenge( challenge: &[u8], parameters: &Phase1Parameters, - mut rng: impl Rng, + mut rng: impl Rng + CryptoRng, ) -> Result { let expected_challenge_length = match COMPRESSED_INPUT { UseCompression::Yes => parameters.contribution_size, diff --git a/phase1-wasm/src/tests.rs b/phase1-wasm/src/tests.rs index 6d9032fa..61c15bb9 100644 --- a/phase1-wasm/src/tests.rs +++ b/phase1-wasm/src/tests.rs @@ -1,11 +1,12 @@ use crate::phase1::*; use phase1::{ContributionMode, Phase1, Phase1Parameters, ProvingSystem}; use setup_utils::{batch_exp, blank_hash, generate_powers_of_tau, UseCompression}; - -use zexe_algebra::{batch_inversion, AffineCurve, Bls12_377, Field, PairingEngine, ProjectiveCurve, BW6_761}; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761, PairingEngine}; +use snarkvm_fields::{batch_inversion, Field}; use rand::SeedableRng; -use rand_xorshift::XorShiftRng; +use rand_chacha::ChaChaRng; +use std::ops::Mul; use wasm_bindgen_test::*; fn generate_input( @@ -28,14 +29,14 @@ fn contribute_challenge_test(parameters: &Phase1Paramet // Get a non-mutable copy of the initial accumulator state. let (input, mut before) = generate_input(¶meters, COMPRESSED_INPUT); - let mut rng = XorShiftRng::seed_from_u64(0); + let mut rng = ChaChaRng::seed_from_u64(0); // Construct our keypair using the RNG we created above let current_accumulator_hash = blank_hash(); let (_, privkey): (phase1::PublicKey, phase1::PrivateKey) = Phase1::key_generation(&mut rng, current_accumulator_hash.as_ref()).expect("could not generate keypair"); - let output = contribute_challenge(&input, parameters, XorShiftRng::seed_from_u64(0)) + let output = contribute_challenge(&input, parameters, ChaChaRng::seed_from_u64(0)) .unwrap() .response; @@ -91,7 +92,7 @@ fn contribute_challenge_test(parameters: &Phase1Paramet Some(&privkey.beta), ) .unwrap(); - before.beta_g2 = before.beta_g2.mul(privkey.beta).into_affine(); + before.beta_g2 = before.beta_g2.mul(privkey.beta); } ProvingSystem::Marlin => { let tau_powers = generate_powers_of_tau::(&privkey.tau, min, max); diff --git a/phase1/Cargo.toml b/phase1/Cargo.toml index 45a777cd..8af5d060 100644 --- a/phase1/Cargo.toml +++ b/phase1/Cargo.toml @@ -15,55 +15,41 @@ required-features = ["benchmark"] [dependencies] setup-utils = { path = "../setup-utils", default-features = false } - -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0", features = ["derive"] } -zexe_algebra_core = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra-core", version = "0.1.0", optional = true, features = ["derive"] } -zexe_fft = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "ff-fft", default-features = false } +snarkvm-algorithms = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f", default-features = false } +snarkvm-curves = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-fields = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-utilities = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } cfg-if = { version = "0.1.10" } criterion = { version = "0.3", optional = true } +derivative = { version = "2", features = [ "use_core" ] } itertools = { version = "0.9.0" } -rand = { version = "0.7" } +rand = { version = "0.8" } rayon = { version = "1.4.1", optional = true } tracing = { version = "0.1.21" } -derivative = { version = "2", features = [ "use_core" ] } -snarkos-profiler = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-profiler" } serde = { version = "1.0", features = ["derive"] } [dev-dependencies] phase1 = { path = "./", features = ["testing"] } - -snarkos-algorithms = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-algorithms", default-features = false } -snarkos-curves = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-curves", default-features = false } -snarkos-errors = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-errors", default-features = false } -snarkos-gadgets = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-gadgets", default-features = false } -snarkos-marlin = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-marlin", default-features = false } -snarkos-models = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-models", default-features = false } -snarkos-objects = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-objects", default-features = false } -snarkos-polycommit = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-polycommit", default-features = false } -snarkos-posw = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-posw", default-features = false } -snarkos-utilities = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-utilities", default-features = false } - -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0", features = ["full", "derive"] } +snarkvm-marlin = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-polycommit = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-posw = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-r1cs = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } anyhow = { version = "1.0.37" } blake2 = { version = "0.8", default-features = false } num-traits = { version = "0.2.12" } +rand_chacha = { version = "0.3" } rusty-hook = { version = "0.11.2" } [features] default = ["cli"] cli = ["parallel", "setup-utils/cli"] -parallel = ["rayon", "setup-utils/parallel", "zexe_algebra/parallel", "zexe_algebra_core/parallel", "zexe_fft/parallel"] +parallel = ["rayon", "setup-utils/parallel"] wasm = ["setup-utils/wasm"] benchmark = ["criterion"] -testing = ["parallel", "zexe_algebra_core", "snarkos-profiler/print-trace"] - -[[test]] -name = "aleo_compatibility" -path = "tests/aleo_compatibility.rs" -required-features = ["phase1/testing"] +testing = ["parallel"] [[test]] name = "marlin" diff --git a/phase1/src/aggregation.rs b/phase1/src/aggregation.rs index 2cd3510e..20957cc2 100644 --- a/phase1/src/aggregation.rs +++ b/phase1/src/aggregation.rs @@ -185,7 +185,7 @@ mod tests { use super::*; use crate::helpers::testing::{generate_input, generate_output}; - use zexe_algebra::{Bls12_377, BW6_761}; + use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; fn aggregation_test( powers: usize, diff --git a/phase1/src/computation.rs b/phase1/src/computation.rs index 0b604378..1bdc4741 100644 --- a/phase1/src/computation.rs +++ b/phase1/src/computation.rs @@ -1,5 +1,5 @@ use super::*; -use zexe_algebra::{batch_inversion, Field}; +use snarkvm_fields::{batch_inversion, Field}; impl<'a, E: PairingEngine + Sync> Phase1<'a, E> { /// @@ -40,7 +40,7 @@ impl<'a, E: PairingEngine + Sync> Phase1<'a, E> { let mut beta_g2_el = beta_g2_inputs.read_element::(compressed_input, check_input_for_correctness)?; // Multiply it by the key's beta element. - beta_g2_el = beta_g2_el.mul(key.beta).into_affine(); + beta_g2_el = beta_g2_el.mul(key.beta); // Write it back. beta_g2_outputs.write_element(&beta_g2_el, compressed_output)?; } @@ -301,7 +301,7 @@ mod tests { use crate::helpers::testing::generate_input; use setup_utils::{batch_exp, derive_rng_from_seed, generate_powers_of_tau}; - use zexe_algebra::{Bls12_377, ProjectiveCurve, BW6_761}; + use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; fn curve_computation_test( powers: usize, @@ -366,7 +366,7 @@ mod tests { Some(&privkey.beta), ) .unwrap(); - before.beta_g2 = before.beta_g2.mul(privkey.beta).into_affine(); + before.beta_g2 = before.beta_g2.mul(privkey.beta); } ProvingSystem::Marlin => { let tau_powers = generate_powers_of_tau::(&privkey.tau, 0, parameters.powers_length); diff --git a/phase1/src/helpers/accumulator.rs b/phase1/src/helpers/accumulator.rs index 25fcded0..c6d3f291 100644 --- a/phase1/src/helpers/accumulator.rs +++ b/phase1/src/helpers/accumulator.rs @@ -4,12 +4,14 @@ use crate::{helpers::buffers::*, Phase1Parameters, ProvingSystem}; use cfg_if::cfg_if; use setup_utils::{BatchDeserializer, BatchSerializer, Deserializer, Serializer, *}; -use zexe_algebra::{AffineCurve, PairingEngine}; +use snarkvm_curves::{AffineCurve, PairingEngine}; #[cfg(not(feature = "wasm"))] use crate::ContributionMode; #[cfg(not(feature = "wasm"))] -use zexe_algebra::{FpParameters, PrimeField, Zero}; +use snarkvm_fields::{FieldParameters, PrimeField, Zero}; +#[cfg(not(feature = "wasm"))] +use snarkvm_utilities::BitIteratorBE; #[allow(type_alias_bounds)] type AccumulatorElements = ( @@ -34,11 +36,6 @@ cfg_if! { if #[cfg(not(feature = "wasm"))] { use crate::PublicKey; - use zexe_fft::cfg_iter; - - #[cfg(feature = "parallel")] - use rayon::prelude::*; - /// Given a public key and the accumulator's digest, it hashes each G1 element /// along with the digest, and then hashes it to G2. pub(crate) fn compute_g2_s_key(key: &PublicKey, digest: &[u8]) -> Result<[E::G2Affine; 3]> { @@ -101,8 +98,8 @@ cfg_if! { CheckForCorrectness::Full, )?; // TODO(kobi): replace with batch subgroup check - let all_in_prime_order_subgroup = cfg_iter!(elements).all(|p| { - p.mul(<::Params as FpParameters>::MODULUS) + let all_in_prime_order_subgroup = elements.iter().all(|p| { + p.mul_bits(BitIteratorBE::new(<::Parameters as FieldParameters>::MODULUS)) .is_zero() }); if !all_in_prime_order_subgroup { @@ -315,7 +312,7 @@ mod tests { use super::*; use crate::helpers::testing::random_point_vec; - use zexe_algebra::bls12_377::Bls12_377; + use snarkvm_curves::bls12_377::Bls12_377; use rand::thread_rng; diff --git a/phase1/src/helpers/buffers.rs b/phase1/src/helpers/buffers.rs index 8b0c2669..c78ebedf 100644 --- a/phase1/src/helpers/buffers.rs +++ b/phase1/src/helpers/buffers.rs @@ -1,7 +1,7 @@ use crate::{ContributionMode, Phase1Parameters, ProvingSystem}; use setup_utils::{BatchDeserializer, BatchSerializer, *}; -use zexe_algebra::{AffineCurve, PairingEngine}; +use snarkvm_curves::{AffineCurve, PairingEngine}; use itertools::{Itertools, MinMaxResult}; diff --git a/phase1/src/helpers/testing.rs b/phase1/src/helpers/testing.rs index df9edcfe..465c8449 100644 --- a/phase1/src/helpers/testing.rs +++ b/phase1/src/helpers/testing.rs @@ -1,8 +1,8 @@ use crate::{Phase1, Phase1Parameters, PublicKey}; use setup_utils::*; -use zexe_algebra::{AffineCurve, PairingEngine, ProjectiveCurve}; -use zexe_algebra_core::UniformRand; +use snarkvm_curves::{AffineCurve, PairingEngine, ProjectiveCurve}; +use snarkvm_utilities::rand::UniformRand; use rand::{thread_rng, Rng}; diff --git a/phase1/src/initialization.rs b/phase1/src/initialization.rs index 8ea86f15..35ef3a2b 100644 --- a/phase1/src/initialization.rs +++ b/phase1/src/initialization.rs @@ -60,7 +60,7 @@ impl<'a, E: PairingEngine + Sync> Phase1<'a, E> { mod tests { use super::*; - use zexe_algebra::{AffineCurve, Bls12_377, BW6_761}; + use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761, AffineCurve}; fn curve_initialization_test(powers: usize, batch: usize, compression: UseCompression) { for proving_system in &[ProvingSystem::Groth16, ProvingSystem::Marlin] { diff --git a/phase1/src/key_generation.rs b/phase1/src/key_generation.rs index ef834f51..cbc108f9 100644 --- a/phase1/src/key_generation.rs +++ b/phase1/src/key_generation.rs @@ -2,7 +2,7 @@ use super::*; impl<'a, E: PairingEngine + Sync> Phase1<'a, E> { /// Constructs a keypair given an RNG and a 64-byte transcript `digest`. - pub fn key_generation(rng: &mut R, digest: &[u8]) -> Result<(PublicKey, PrivateKey)> { + pub fn key_generation(rng: &mut R, digest: &[u8]) -> Result<(PublicKey, PrivateKey)> { if digest.len() != 64 { return Err(Error::InvalidLength { expected: 64, @@ -21,11 +21,11 @@ impl<'a, E: PairingEngine + Sync> Phase1<'a, E> { // Sample random g^s let g1_s = E::G1Projective::rand(rng).into_affine(); // Compute g^{s*x} - let g1_s_x = g1_s.mul(x).into_affine(); + let g1_s_x = g1_s.mul(x); // Hash into G2 as g^{s'} let g2_s: E::G2Affine = compute_g2_s::(&digest, &g1_s, &g1_s_x, personalization)?; // Compute g^{s'*x} - let g2_s_x = g2_s.mul(x).into_affine(); + let g2_s_x = g2_s.mul(x); Ok(((g1_s, g1_s_x), g2_s_x)) }; diff --git a/phase1/src/lib.rs b/phase1/src/lib.rs index 7a025608..dcde3f7d 100644 --- a/phase1/src/lib.rs +++ b/phase1/src/lib.rs @@ -22,11 +22,13 @@ use setup_utils::*; use crate::helpers::accumulator::*; #[cfg(not(feature = "wasm"))] -use zexe_algebra::Zero; +use snarkvm_fields::Zero; -use zexe_algebra::{AffineCurve, PairingEngine, ProjectiveCurve, UniformRand}; +use snarkvm_curves::{AffineCurve, PairingEngine, ProjectiveCurve}; +use snarkvm_utilities::rand::UniformRand; -use rand::Rng; +use core::ops::Mul; +use rand::{CryptoRng, Rng}; use tracing::{debug, info, info_span, trace}; /// `Phase1` is an object that participants of the ceremony contribute diff --git a/phase1/src/objects/parameters.rs b/phase1/src/objects/parameters.rs index b09b932b..c2c19b85 100644 --- a/phase1/src/objects/parameters.rs +++ b/phase1/src/objects/parameters.rs @@ -1,6 +1,7 @@ use setup_utils::UseCompression; -use zexe_algebra::{ConstantSerializedSize, PairingEngine}; +use snarkvm_curves::PairingEngine; +use snarkvm_utilities::ConstantSerializedSize; use serde::{Deserialize, Serialize}; use std::marker::PhantomData; @@ -306,7 +307,7 @@ impl Phase1Parameters { #[cfg(test)] mod tests { use super::*; - use zexe_algebra::{Bls12_377, Bls12_381, BW6_761}; + use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; fn curve_parameters_test(g1: usize, g2: usize, g1_compressed: usize, g2_compressed: usize) { let p = CurveParameters::::new(); @@ -319,7 +320,6 @@ mod tests { #[test] fn test_parameter_sizes() { curve_parameters_test::(96, 192, 48, 96); - curve_parameters_test::(96, 192, 48, 96); curve_parameters_test::(192, 192, 96, 96); } } diff --git a/phase1/src/objects/private_key.rs b/phase1/src/objects/private_key.rs index 85aded2e..b0525227 100644 --- a/phase1/src/objects/private_key.rs +++ b/phase1/src/objects/private_key.rs @@ -1,4 +1,4 @@ -use zexe_algebra::PairingEngine; +use snarkvm_curves::PairingEngine; /// Contains the secrets Ï„, α and β that the participant of the ceremony must destroy. #[derive(PartialEq, Debug)] diff --git a/phase1/src/objects/public_key.rs b/phase1/src/objects/public_key.rs index bcd914f3..651bad10 100644 --- a/phase1/src/objects/public_key.rs +++ b/phase1/src/objects/public_key.rs @@ -1,7 +1,8 @@ use crate::Phase1Parameters; use setup_utils::{Error, UseCompression}; -use zexe_algebra::{CanonicalDeserialize, CanonicalSerialize, PairingEngine, SerializationError}; +use snarkvm_curves::PairingEngine; +use snarkvm_utilities::{CanonicalDeserialize, CanonicalSerialize, SerializationError}; use std::io::{Read, Write}; diff --git a/phase1/src/serialization.rs b/phase1/src/serialization.rs index 99fb80b4..cac5cf17 100644 --- a/phase1/src/serialization.rs +++ b/phase1/src/serialization.rs @@ -56,7 +56,7 @@ mod tests { use super::*; use crate::helpers::testing::{generate_output, generate_random_accumulator}; - use zexe_algebra::{Bls12_377, BW6_761}; + use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; fn serialize_curve_test(compress: UseCompression, size: usize, batch: usize) { for proving_system in &[ProvingSystem::Groth16, ProvingSystem::Marlin] { diff --git a/phase1/src/verification.rs b/phase1/src/verification.rs index 2ad28829..d163c2da 100644 --- a/phase1/src/verification.rs +++ b/phase1/src/verification.rs @@ -623,7 +623,7 @@ mod tests { use crate::helpers::testing::{generate_input, generate_output}; use setup_utils::calculate_hash; - use zexe_algebra::{Bls12_377, BW6_761}; + use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; fn full_verification_test( total_size_in_log2: usize, diff --git a/phase1/tests/aleo_compatibility.rs b/phase1/tests/aleo_compatibility.rs deleted file mode 100644 index 76338d0c..00000000 --- a/phase1/tests/aleo_compatibility.rs +++ /dev/null @@ -1,103 +0,0 @@ -use phase1::{helpers::testing::setup_verify, Phase1Parameters, ProvingSystem}; -use setup_utils::{CheckForCorrectness, UseCompression}; - -use snarkos_curves::{bls12_377::Bls12_377 as AleoBls12_377, bw6_761::BW6_761 as AleoBW6}; -use snarkos_models::curves::{AffineCurve as AleoAffineCurve, PairingEngine as AleoPairingEngine}; -use snarkos_utilities::serialize::{ - CanonicalDeserialize as AleoCanonicalDeserialize, - ConstantSerializedSize as AleoConstantSerializedSize, -}; - -use zexe_algebra::{ - AffineCurve as ZexeAffineCurve, - Bls12_377 as ZexeBls12_377, - PairingEngine as ZexePairingEngine, - BW6_761 as ZexeBW6, -}; -use zexe_algebra_core::serialize::{ - CanonicalDeserialize as ZexeCanonicalDeserialize, - ConstantSerializedSize as ZexeConstantSerializedSize, -}; - -use std::io::Read; - -fn compatible_phase1_test() -> anyhow::Result<()> { - for proving_system in &[ProvingSystem::Groth16, ProvingSystem::Marlin] { - // Generate an accumulator via Zexe's trusted setup. - let (powers, batch) = (6, 4); - let params = Phase1Parameters::::new_full(*proving_system, powers, batch); - - // Perform 1 power of tau contribution (assume Powers of Tau is computed correctly) - let compressed = UseCompression::No; - let (_, output, _, _) = setup_verify(compressed, CheckForCorrectness::Full, compressed, ¶ms); - - // Advance the cursor past the output hash. - let mut reader = std::io::BufReader::new(std::io::Cursor::new(output)); - reader.read_exact(&mut vec![0; params.hash_size])?; - - // Verify that the outputs are equivalent. - - fn assert_compatibility( - reader: &mut R, - ) -> anyhow::Result<()> { - let mut buffer = vec![0; Aleo::UNCOMPRESSED_SIZE]; - reader.read_exact(&mut buffer)?; - - let aleo_group: Aleo = - AleoCanonicalDeserialize::deserialize_uncompressed(&mut std::io::Cursor::new(&buffer))?; - let mut aleo = vec![]; - aleo_group.write(&mut aleo)?; - - let zexe_group: Zexe = - ZexeCanonicalDeserialize::deserialize_uncompressed(&mut std::io::Cursor::new(&buffer))?; - let mut zexe = vec![]; - zexe_group.write(&mut zexe)?; - - assert_eq!(aleo, zexe); - Ok(()) - } - - assert_eq!(Aleo::G1Affine::UNCOMPRESSED_SIZE, Zexe::G1Affine::UNCOMPRESSED_SIZE); - assert_eq!(Aleo::G2Affine::UNCOMPRESSED_SIZE, Zexe::G2Affine::UNCOMPRESSED_SIZE); - - match params.proving_system { - ProvingSystem::Groth16 => { - for _ in 0..params.powers_g1_length { - assert_compatibility::(&mut reader)?; - } - for _ in 0..params.powers_length { - assert_compatibility::(&mut reader)?; - } - for _ in 0..params.powers_length { - assert_compatibility::(&mut reader)?; - } - for _ in 0..params.powers_length { - assert_compatibility::(&mut reader)?; - } - assert_compatibility::(&mut reader)?; - } - ProvingSystem::Marlin => { - for _ in 0..params.powers_length { - assert_compatibility::(&mut reader)?; - } - for _ in 0..params.total_size_in_log2 + 2 { - assert_compatibility::(&mut reader)?; - } - for _ in 0..3 { - assert_compatibility::(&mut reader)?; - } - } - } - } - Ok(()) -} - -#[test] -fn test_aleo_zexe_bls12_377_compatibility() { - compatible_phase1_test::().unwrap(); -} - -#[test] -fn test_aleo_zexe_bw6_761_compatibility() { - compatible_phase1_test::().unwrap(); -} diff --git a/phase1/tests/marlin.rs b/phase1/tests/marlin.rs index 90003734..bc0a5468 100644 --- a/phase1/tests/marlin.rs +++ b/phase1/tests/marlin.rs @@ -4,43 +4,25 @@ mod test { use rand::thread_rng; use setup_utils::{blank_hash, CheckForCorrectness, UseCompression}; - use blake2::Blake2s; - use itertools::Itertools; - use snarkos_curves::bls12_377::{Bls12_377, Fr, G1Affine, G2Affine}; - use snarkos_errors::gadgets::SynthesisError; - use snarkos_models::{ - algorithms::SNARK, - curves::{AffineCurve, Field, PairingCurve}, - gadgets::r1cs::{ConstraintSynthesizer, ConstraintSystem}, - }; - use snarkos_polycommit::{kzg10::UniversalParams, sonic_pc::SonicKZG10}; - use snarkos_posw::{txids_to_roots, Marlin, PoswMarlin}; - use snarkos_utilities::{serialize::*, UniformRand}; - use std::{collections::BTreeMap, io::Cursor, ops::MulAssign}; - use zexe_algebra::{ - bls12_377::{G1Affine as ZexeG1Affine, G2Affine as ZexeG2Affine}, - AffineCurve as ZexeAffineCurve, - Bls12_377 as ZexeBls12_377, + use snarkvm_algorithms::SNARK; + use snarkvm_curves::{ + bls12_377::{Bls12_377, Fr}, + PairingCurve, }; + use snarkvm_fields::Field; + use snarkvm_polycommit::kzg10::UniversalParams; + use snarkvm_posw::{txids_to_roots, Marlin, PoswMarlin}; + use snarkvm_r1cs::{ConstraintSynthesizer, ConstraintSystem, SynthesisError}; + use snarkvm_utilities::{serialize::*, UniformRand}; - fn convert_vec_from_zexe_to_snarkos(zexe: &[Zexe]) -> Vec { - let mut aleo = vec![]; - - let mut buffer = vec![]; - for p_zexe in zexe { - p_zexe.serialize(&mut buffer).unwrap(); - let p = Aleo::deserialize(&mut Cursor::new(&buffer)).unwrap(); - aleo.push(p); - } - - aleo - } + use itertools::Itertools; + use std::{collections::BTreeMap, ops::MulAssign}; #[test] fn test_marlin_posw_bls12_377() { let powers = 19usize; let batch = 1usize << 16; - let parameters = Phase1Parameters::::new_full(ProvingSystem::Marlin, powers, batch); + let parameters = Phase1Parameters::::new_full(ProvingSystem::Marlin, powers, batch); let expected_response_length = parameters.get_length(UseCompression::No); // Get a non-mutable copy of the initial accumulator state. @@ -67,10 +49,9 @@ mod test { let deserialized = Phase1::deserialize(&output, UseCompression::No, CheckForCorrectness::No, ¶meters).unwrap(); - let tau_powers_g1 = convert_vec_from_zexe_to_snarkos::(&deserialized.tau_powers_g1); - let tau_powers_g2 = convert_vec_from_zexe_to_snarkos::(&deserialized.tau_powers_g2); - let alpha_powers_g1 = - convert_vec_from_zexe_to_snarkos::(&deserialized.alpha_tau_powers_g1); + let tau_powers_g1 = deserialized.tau_powers_g1; + let tau_powers_g2 = deserialized.tau_powers_g2; + let alpha_powers_g1 = deserialized.alpha_tau_powers_g1; let mut alpha_tau_powers_g1 = BTreeMap::new(); for i in 0..3 { @@ -106,12 +87,12 @@ mod test { prepared_beta_h: beta_h.prepare(), }; - let posw = PoswMarlin::index(universal_params).unwrap(); + let posw = PoswMarlin::index::<_, rand_chacha::ChaChaRng>(universal_params).unwrap(); // super low difficulty so we find a solution immediately let difficulty_target = 0xFFFF_FFFF_FFFF_FFFF_u64; - let transaction_ids = vec![vec![1u8; 32]; 8]; + let transaction_ids = vec![[1u8; 32]; 8]; let (_, pedersen_merkle_root, subroots) = txids_to_roots(&transaction_ids); // generate the proof @@ -121,7 +102,7 @@ mod test { assert_eq!(proof.len(), 972); // NOTE: Marlin proofs use compressed serialization - let proof = as SNARK>::Proof::read(&proof[..]).unwrap(); + let proof = as SNARK>::Proof::read_le(&proof[..]).unwrap(); posw.verify(nonce, &proof, &pedersen_merkle_root).unwrap(); } @@ -134,7 +115,7 @@ mod test { } impl ConstraintSynthesizer for Circuit { - fn generate_constraints>(self, cs: &mut CS) -> Result<(), SynthesisError> { + fn generate_constraints>(&self, cs: &mut CS) -> Result<(), SynthesisError> { let a = cs.alloc(|| "a", || self.a.ok_or(SynthesisError::AssignmentMissing))?; let b = cs.alloc(|| "b", || self.b.ok_or(SynthesisError::AssignmentMissing))?; let c = cs.alloc_input( @@ -162,14 +143,13 @@ mod test { } } - type MultiPCSonic = SonicKZG10; - type MarlinSonicInst = snarkos_marlin::Marlin; + type MarlinInst = snarkvm_marlin::MarlinTestnet1; #[test] fn test_marlin_sonic_pc() { let powers = 16usize; let batch = 1usize << 12; - let parameters = Phase1Parameters::::new_full(ProvingSystem::Marlin, powers, batch); + let parameters = Phase1Parameters::::new_full(ProvingSystem::Marlin, powers, batch); let expected_response_length = parameters.get_length(UseCompression::No); // Get a non-mutable copy of the initial accumulator state. @@ -196,10 +176,9 @@ mod test { let deserialized = Phase1::deserialize(&output, UseCompression::No, CheckForCorrectness::No, ¶meters).unwrap(); - let tau_powers_g1 = convert_vec_from_zexe_to_snarkos::(&deserialized.tau_powers_g1); - let tau_powers_g2 = convert_vec_from_zexe_to_snarkos::(&deserialized.tau_powers_g2); - let alpha_powers_g1 = - convert_vec_from_zexe_to_snarkos::(&deserialized.alpha_tau_powers_g1); + let tau_powers_g1 = deserialized.tau_powers_g1; + let tau_powers_g2 = deserialized.tau_powers_g2; + let alpha_powers_g1 = deserialized.alpha_tau_powers_g1; let mut alpha_tau_powers_g1 = BTreeMap::new(); for i in 0..3 { @@ -239,23 +218,23 @@ mod test { let mut c = a; c.mul_assign(&b); - let circ = Circuit { + let circuit = Circuit { a: Some(a), b: Some(b), num_constraints: 3000, num_variables: 2000, }; - let (index_pk, index_vk) = MarlinSonicInst::index(universal_params.clone(), circ.clone()).unwrap(); - println!("Called index"); + let (index_pk, index_vk) = MarlinInst::circuit_setup(&universal_params, &circuit).unwrap(); + println!("Called circuit setup"); - let proof = MarlinSonicInst::prove(&index_pk, circ, &mut rng).unwrap(); + let proof = MarlinInst::prove(&index_pk, &circuit, &mut rng).unwrap(); println!("Called prover"); - assert!(MarlinSonicInst::verify(&index_vk, &[c], &proof, &mut rng).unwrap()); + assert!(MarlinInst::verify(&index_vk, &[c], &proof).unwrap()); println!("Called verifier"); println!("\nShould not verify (i.e. verifier messages should print below):"); - assert!(!MarlinSonicInst::verify(&index_vk, &[a], &proof, &mut rng).unwrap()); + assert!(!MarlinInst::verify(&index_vk, &[a], &proof).unwrap()); } } } diff --git a/phase2/Cargo.toml b/phase2/Cargo.toml index b547a873..19657876 100644 --- a/phase2/Cargo.toml +++ b/phase2/Cargo.toml @@ -19,21 +19,18 @@ required-features = ["phase2/testing"] [dependencies] setup-utils = { path = "../setup-utils", default-features = false } -snarkos-algorithms = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-algorithms", default-features = false } -snarkos-errors = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-errors", default-features = false, optional = true } -snarkos-models = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-models", default-features = false } -snarkos-utilities = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-utilities", default-features = false } - -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0", features = ["bls12_377", "bw6_761"] } -zexe_groth16 = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "groth16", version = "0.1.0", features = [] } -zexe_r1cs_core = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "r1cs-core", version = "0.1.0" } +snarkvm-algorithms = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-curves = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-fields = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-r1cs = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-utilities = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } byteorder = { version = "1.3.4" } cfg-if = { version = "0.1.10" } crossbeam = { version = "0.8" } itertools = { version = "0.9.0", optional = true } num_cpus = { version = "1" } -rand = { version = "0.7.3" } +rand = { version = "0.8" } rayon = { version = "1.4.1", optional = true } tracing = { version = "0.1.21" } wasm-bindgen = { version = "0.2.69", features=["serde-serialize"] } @@ -51,18 +48,13 @@ phase1 = { path = "../phase1", features = ["testing"] } phase2 = { path = "./", features = ["testing"] } wasm-bindgen-test = { version = "0.3.18" } -snarkos-curves = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-curves", default-features = false } -snarkos-errors = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-errors", default-features = false } - -zexe_r1cs_std = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "r1cs-std", version = "0.1.0" } - rusty-hook = { version = "0.11.2" } tracing-subscriber = { version = "0.2.3" } [features] default = [] -testing = ["parallel", "snarkos-errors"] -parallel = ["rayon", "setup-utils/parallel", "zexe_algebra/parallel", "zexe_groth16/parallel"] +testing = ["parallel"] +parallel = ["rayon", "setup-utils/parallel"] cli = ["setup-utils/cli"] wasm = ["console_error_panic_hook", "itertools", "web-sys", "setup-utils/wasm"] diff --git a/phase2/src/chunked_groth16.rs b/phase2/src/chunked_groth16.rs index 31f43076..5d5ef5f9 100644 --- a/phase2/src/chunked_groth16.rs +++ b/phase2/src/chunked_groth16.rs @@ -8,23 +8,16 @@ use crate::{ parameters::*, }; use setup_utils::{batch_mul, check_same_ratio, merge_pairs, InvariantKind, Phase2Error, Result}; - -use zexe_algebra::{ - AffineCurve, - CanonicalDeserialize, - CanonicalSerialize, - ConstantSerializedSize, - Field, - PairingEngine, - ProjectiveCurve, -}; -use zexe_groth16::VerifyingKey; +use snarkvm_algorithms::snark::groth16::VerifyingKey; +use snarkvm_curves::{AffineCurve, PairingEngine}; +use snarkvm_fields::Field; +use snarkvm_utilities::{CanonicalDeserialize, CanonicalSerialize, ConstantSerializedSize}; use byteorder::{BigEndian, WriteBytesExt}; -use rand::Rng; +use rand::{CryptoRng, Rng}; use std::{ io::{Read, Seek, SeekFrom, Write}, - ops::Neg, + ops::{Mul, Neg}, }; use tracing::{debug, info, info_span, trace}; @@ -211,7 +204,11 @@ pub fn verify(before: &mut [u8], after: &mut [u8], batch_size: /// followed by the contributions array and the contributions hash), this will modify the /// Delta_g1, the VK's Delta_g2 and will update the H and L queries in place while leaving /// everything else unchanged -pub fn contribute(buffer: &mut [u8], rng: &mut R, batch_size: usize) -> Result<[u8; 64]> { +pub fn contribute( + buffer: &mut [u8], + rng: &mut R, + batch_size: usize, +) -> Result<[u8; 64]> { let span = info_span!("phase2-contribute"); let _enter = span.enter(); @@ -248,8 +245,8 @@ pub fn contribute(buffer: &mut [u8], rng: &mut R, batc let delta_inv = private_key.delta.inverse().expect("nonzero"); // update the values - delta_g1 = delta_g1.mul(delta).into_affine(); - vk.delta_g2 = vk.delta_g2.mul(delta).into_affine(); + delta_g1 = delta_g1.mul(delta); + vk.delta_g2 = vk.delta_g2.mul(delta); // go back to the start of the buffer to write the updated vk and delta_g1 buffer.seek(SeekFrom::Start(0))?; diff --git a/phase2/src/helpers/testing.rs b/phase2/src/helpers/testing.rs index 7261dfc9..127abc51 100644 --- a/phase2/src/helpers/testing.rs +++ b/phase2/src/helpers/testing.rs @@ -1,15 +1,16 @@ -use snarkos_errors::gadgets::SynthesisError; -use snarkos_models::{ - curves::{Field, PairingEngine}, - gadgets::r1cs::{ConstraintSynthesizer, ConstraintSystem}, -}; +use snarkvm_curves::PairingEngine; +use snarkvm_fields::Field; +use snarkvm_r1cs::{ConstraintSynthesizer, ConstraintSystem, SynthesisError}; // circuit proving knowledge of a square root // when generating the Setup, the element inside is None #[derive(Clone, Debug)] pub struct TestCircuit(pub Option); impl ConstraintSynthesizer for TestCircuit { - fn generate_constraints>(self, cs: &mut CS) -> std::result::Result<(), SynthesisError> { + fn generate_constraints>( + &self, + cs: &mut CS, + ) -> std::result::Result<(), SynthesisError> { // allocate a private input `x` // this can be made public with `alloc_input`, which would then require // that the verifier provides it @@ -43,13 +44,13 @@ impl ConstraintSynthesizer for TestCircuit { #[cfg(test)] mod tests { use super::*; - use snarkos_algorithms::snark::groth16::{ + use snarkvm_algorithms::snark::groth16::{ create_random_proof, generate_random_parameters, prepare_verifying_key, verify_proof, }; - use snarkos_curves::bls12_377::Bls12_377; + use snarkvm_curves::bls12_377::Bls12_377; // no need to run these tests, they're just added as a guideline for how to // consume the circuit @@ -65,18 +66,18 @@ mod tests { // Create parameters for our circuit let params = { let c = TestCircuit::(None); - generate_random_parameters::(c, rng).unwrap() + generate_random_parameters::(&c, rng).unwrap() }; - let pvk = prepare_verifying_key(¶ms.vk); + let pvk = prepare_verifying_key(params.vk.clone()); // we know the square root of 25 -> 5 - let out = E::Fr::from(25); - let input = E::Fr::from(5); + let out = E::Fr::from(25u8); + let input = E::Fr::from(5u8); // Prover instantiates the circuit and creates a proof // with his RNG let c = TestCircuit::(Some(input)); - let proof = create_random_proof(c, ¶ms, rng).unwrap(); + let proof = create_random_proof(&c, ¶ms, rng).unwrap(); // Verifier only needs to know 25 (the output, aka public input), // the vk and the proof! diff --git a/phase2/src/keypair.rs b/phase2/src/keypair.rs index bb99a7b2..3646a734 100644 --- a/phase2/src/keypair.rs +++ b/phase2/src/keypair.rs @@ -3,21 +3,15 @@ //! A Groth16 keypair. Generate one with the Keypair::new method. //! Dispose of the private key ASAP once it's been used. use setup_utils::{hash_to_g2, CheckForCorrectness, Deserializer, HashWriter, Result, Serializer, UseCompression}; - -use zexe_algebra::{ - AffineCurve, - CanonicalSerialize, - ConstantSerializedSize, - PairingEngine, - ProjectiveCurve, - UniformRand, -}; +use snarkvm_curves::{PairingEngine, ProjectiveCurve}; +use snarkvm_utilities::{CanonicalSerialize, ConstantSerializedSize, UniformRand}; use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; use rand::Rng; use std::{ fmt, io::{self, Read, Write}, + ops::Mul, }; /// This needs to be destroyed by at least one participant @@ -128,17 +122,17 @@ impl Keypair { pub fn new(delta_g1: E::G1Affine, cs_hash: [u8; 64], contributions: &[PublicKey], rng: &mut impl Rng) -> Self { // Sample random delta -- THIS MUST BE DESTROYED let delta: E::Fr = E::Fr::rand(rng); - let delta_after = delta_g1.mul(delta).into_affine(); + let delta_after = delta_g1.mul(delta); // Compute delta s-pair in G1 let s = E::G1Projective::rand(rng).into_affine(); - let s_delta = s.mul(delta).into_affine(); + let s_delta = s.mul(delta); // Get the transcript let transcript = hash_cs_pubkeys(cs_hash, contributions, s, s_delta); // Compute delta s-pair in G2 by hashing the transcript and multiplying it by delta let r = hash_to_g2::(&transcript[..]).into_affine(); - let r_delta = r.mul(delta).into_affine(); + let r_delta = r.mul(delta); Self { public_key: PublicKey { @@ -209,8 +203,9 @@ impl PartialEq for PublicKey { #[cfg(test)] mod tests { use super::*; + use snarkvm_curves::{bls12_377::Bls12_377, AffineCurve}; + use rand::thread_rng; - use zexe_algebra::Bls12_377; #[test] fn serialization() { diff --git a/phase2/src/parameters.rs b/phase2/src/parameters.rs index 261965ab..133408ea 100644 --- a/phase2/src/parameters.rs +++ b/phase2/src/parameters.rs @@ -3,9 +3,9 @@ use cfg_if::cfg_if; cfg_if! { if #[cfg(not(feature = "wasm"))] { use super::polynomial::eval; - use zexe_algebra::{ Zero }; - use zexe_groth16::{VerifyingKey}; - use zexe_r1cs_core::SynthesisError; + use snarkvm_fields::Zero; + use snarkvm_algorithms::snark::groth16::VerifyingKey; + use snarkvm_r1cs::SynthesisError; } } @@ -13,26 +13,24 @@ use super::keypair::{hash_cs_pubkeys, Keypair, PublicKey}; use setup_utils::*; -use snarkos_algorithms::snark::groth16::KeypairAssembly; -use snarkos_models::{ - curves::{One, PairingEngine as AleoPairingEngine}, - gadgets::r1cs::{ConstraintSynthesizer as AleoR1CS, ConstraintSystem, Index, Variable}, -}; -use snarkos_utilities::serialize::CanonicalSerialize as AleoSerialize; -use zexe_algebra::{AffineCurve, CanonicalDeserialize, CanonicalSerialize, Field, PairingEngine, ProjectiveCurve}; -use zexe_groth16::Parameters; +use snarkvm_algorithms::snark::groth16::{KeypairAssembly, ProvingKey}; +use snarkvm_curves::{AffineCurve, PairingEngine, ProjectiveCurve}; +use snarkvm_fields::{Field, One}; +use snarkvm_r1cs::{ConstraintSynthesizer, ConstraintSystem, Index, Variable}; +use snarkvm_utilities::{CanonicalDeserialize, CanonicalSerialize}; -use rand::Rng; +use rand::{CryptoRng, Rng}; use std::{ fmt, io::{self, Read, Write}, + ops::Mul, }; -/// MPC parameters are just like Zexe's `Parameters` except, when serialized, +/// MPC parameters are just like snarkVM's `ProvingKey` except, when serialized, /// they contain a transcript of contributions at the end, which can be verified. #[derive(Clone)] pub struct MPCParameters { - pub params: Parameters, + pub params: ProvingKey, pub cs_hash: [u8; 64], pub contributions: Vec>, } @@ -41,7 +39,7 @@ impl fmt::Debug for MPCParameters { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!( f, - "MPCParameters {{ params: {:?}, cs_hash: {:?}, contributions: {:?}}}", + "MPCParameters {{ proving_key: {:?}, cs_hash: {:?}, contributions: {:?}}}", self.params, &self.cs_hash[..], self.contributions @@ -68,8 +66,8 @@ impl MPCParameters { phase2_size: usize, ) -> Result> where - C: AleoR1CS, - Aleo: AleoPairingEngine, + C: ConstraintSynthesizer, + Aleo: PairingEngine, { let assembly = circuit_to_qap::(circuit)?; let params = Groth16Params::::read( @@ -82,11 +80,10 @@ impl MPCParameters { Self::new(assembly, params) } - /// Create new Groth16 parameters (compatible with Zexe and snarkOS) for a - /// given QAP which has been produced from a circuit. The resulting parameters - /// are unsafe to use until there are contributions (see `contribute()`). + /// Create new Groth16 parameters for a given QAP which has been produced from a circuit. + /// The resulting parameters are unsafe to use until there are contributions (see `contribute()`). #[cfg(not(feature = "wasm"))] - pub fn new(assembly: zexe_groth16::KeypairAssembly, params: Groth16Params) -> Result> { + pub fn new(assembly: KeypairAssembly, params: Groth16Params) -> Result> { // Evaluate the QAP against the coefficients created from phase 1 let (a_g1, b_g1, b_g2, gamma_abc_g1, l) = eval::( // Lagrange coeffs for Tau, read in from Phase 1 @@ -99,7 +96,7 @@ impl MPCParameters { &assembly.bt, &assembly.ct, // Helper - assembly.num_inputs, + assembly.num_public_variables, ); // Reject unconstrained elements, so that @@ -119,7 +116,7 @@ impl MPCParameters { delta_g2: E::G2Affine::prime_subgroup_generator(), gamma_abc_g1, }; - let params = Parameters { + let params = ProvingKey { vk, beta_g1: params.beta_g1, delta_g1: E::G1Affine::prime_subgroup_generator(), @@ -138,8 +135,8 @@ impl MPCParameters { }) } - /// Get the underlying Groth16 `Parameters` - pub fn get_params(&self) -> &Parameters { + /// Get the underlying Groth16 `ProvingKey` + pub fn get_params(&self) -> &ProvingKey { &self.params } @@ -152,7 +149,7 @@ impl MPCParameters { /// sure their contribution is in the final parameters, by /// checking to see if it appears in the output of /// `MPCParameters::verify`. - pub fn contribute(&mut self, rng: &mut R) -> Result<[u8; 64]> { + pub fn contribute(&mut self, rng: &mut R) -> Result<[u8; 64]> { // Generate a keypair let Keypair { public_key, @@ -165,8 +162,8 @@ impl MPCParameters { batch_mul(&mut self.params.h_query, &delta_inv)?; // Multiply the `delta_g1` and `delta_g2` elements by the private key's delta - self.params.vk.delta_g2 = self.params.vk.delta_g2.mul(private_key.delta).into_affine(); - self.params.delta_g1 = self.params.delta_g1.mul(private_key.delta).into_affine(); + self.params.vk.delta_g2 = self.params.vk.delta_g2.mul(private_key.delta); + self.params.delta_g1 = self.params.delta_g1.mul(private_key.delta); // Ensure the private key is no longer used drop(private_key); self.contributions.push(public_key.clone()); @@ -276,7 +273,7 @@ impl MPCParameters { } /// Serialize these parameters. The serialized parameters - /// can be read by Zexe's Groth16 `Parameters`. + /// can be read by snarkVM's Groth16 `ProvingKey`. pub fn write(&self, writer: &mut W) -> Result<()> { self.params.serialize(writer)?; writer.write_all(&self.cs_hash)?; @@ -287,7 +284,7 @@ impl MPCParameters { /// Deserialize these parameters. pub fn read(mut reader: R) -> Result> { - let params = Parameters::deserialize(&mut reader)?; + let params = ProvingKey::deserialize(&mut reader)?; let mut cs_hash = [0u8; 64]; reader.read_exact(&mut cs_hash)?; @@ -373,7 +370,7 @@ pub fn verify_transcript(cs_hash: [u8; 64], contributions: &[P } #[allow(unused)] -fn hash_params(params: &Parameters) -> Result<[u8; 64]> { +fn hash_params(params: &ProvingKey) -> Result<[u8; 64]> { let sink = io::sink(); let mut sink = HashWriter::new(sink); params.serialize(&mut sink)?; @@ -384,14 +381,13 @@ fn hash_params(params: &Parameters) -> Result<[u8; 64]> { } /// Converts an R1CS circuit to QAP form -pub fn circuit_to_qap>( +pub fn circuit_to_qap>( circuit: C, -) -> Result> { - // This is a snarkOS keypair assembly +) -> Result> { + // This is a snarkVM keypair assembly let mut assembly = KeypairAssembly:: { - num_inputs: 0, - num_aux: 0, - num_constraints: 0, + num_public_variables: 0, + num_private_variables: 0, at: vec![], bt: vec![], ct: vec![], @@ -407,16 +403,16 @@ pub fn circuit_to_qap::deserialize(&mut &serialized[..])?; + let assembly = KeypairAssembly::::deserialize(&mut &serialized[..])?; Ok(assembly) } @@ -438,20 +434,17 @@ mod tests { }; use phase1::{helpers::testing::setup_verify, Phase1, Phase1Parameters, ProvingSystem}; use setup_utils::{Groth16Params, UseCompression}; - - use snarkos_curves::bls12_377::Bls12_377 as AleoBls12_377; - - use zexe_algebra::Bls12_377; + use snarkvm_curves::bls12_377::Bls12_377; use rand::thread_rng; use tracing_subscriber::{filter::EnvFilter, fmt::Subscriber}; #[test] fn serialize_ceremony() { - serialize_ceremony_curve::() + serialize_ceremony_curve::() } - fn serialize_ceremony_curve() { + fn serialize_ceremony_curve() { let mpc = generate_ceremony::(); let mut writer = vec![]; @@ -464,12 +457,12 @@ mod tests { #[test] fn verify_with_self_fails() { - verify_with_self_fails_curve::() + verify_with_self_fails_curve::() } // if there has been no contribution // then checking with itself should fail - fn verify_with_self_fails_curve() { + fn verify_with_self_fails_curve() { let mpc = generate_ceremony::(); let err = mpc.verify(&mpc); // we handle the error like this because [u8; 64] does not implement @@ -482,11 +475,11 @@ mod tests { } #[test] fn verify_contribution() { - verify_curve::() + verify_curve::() } // contributing once and comparing with the previous step passes - fn verify_curve() { + fn verify_curve() { Subscriber::builder() .with_target(false) .with_env_filter(EnvFilter::from_default_env()) @@ -549,7 +542,7 @@ mod tests { // helper which generates the initial phase 2 params // for the TestCircuit - fn generate_ceremony() -> MPCParameters { + fn generate_ceremony() -> MPCParameters { // the phase2 params are generated correctly, // even though the powers of tau are >> the circuit size let powers = 5; diff --git a/phase2/src/polynomial.rs b/phase2/src/polynomial.rs index c7460b56..e8560ed6 100644 --- a/phase2/src/polynomial.rs +++ b/phase2/src/polynomial.rs @@ -1,5 +1,6 @@ -use zexe_algebra::{AffineCurve, PairingEngine, ProjectiveCurve, Zero}; -use zexe_r1cs_core::Index; +use snarkvm_curves::{AffineCurve, PairingEngine, ProjectiveCurve}; +use snarkvm_fields::Zero; +use snarkvm_r1cs::Index; use rayon::prelude::*; @@ -95,48 +96,49 @@ fn dot_product(input: &[(C::ScalarField, Index)], coeffs: &[C], || C::Projective::zero(), |mut sum, &(coeff, lag)| { let ind = match lag { - Index::Input(i) => i, - Index::Aux(i) => num_inputs + i, + Index::Public(i) => i, + Index::Private(i) => num_inputs + i, }; - sum += &coeffs[ind].mul(coeff); + sum += coeffs[ind].mul(coeff).into_projective(); sum }, ) - .sum() + .reduce(|| C::Projective::zero(), |a, b| a + b) } #[cfg(test)] mod tests { use super::*; use phase1::helpers::testing::random_point_vec; + use snarkvm_curves::bls12_377::{Bls12_377, Fr, G1Affine, G1Projective}; + use snarkvm_utilities::UniformRand; + use rand::{thread_rng, Rng}; - use zexe_algebra::{ - bls12_377::{Bls12_377, Fr, G1Affine, G1Projective}, - UniformRand, - }; + use std::ops::Mul; fn gen_input(rng: &mut impl Rng) -> Vec<(Fr, Index)> { let scalar = (0..6).map(|_| Fr::rand(rng)).collect::>(); vec![ - (scalar[0], Index::Input(0)), - (scalar[1], Index::Input(1)), - (scalar[2], Index::Aux(0)), - (scalar[3], Index::Aux(2)), // can they ever be out of order in reality? - (scalar[4], Index::Aux(1)), - (scalar[5], Index::Input(2)), + (scalar[0], Index::Public(0)), + (scalar[1], Index::Public(1)), + (scalar[2], Index::Private(0)), + (scalar[3], Index::Private(2)), // can they ever be out of order in reality? + (scalar[4], Index::Private(1)), + (scalar[5], Index::Public(2)), ] } fn get_expected(elements: &[G1Affine], scalar: &[Fr]) -> G1Projective { let num_inputs = 3; - elements[0].mul(scalar[0]) + let output = elements[0].mul(scalar[0]) + elements[1].mul(scalar[1]) + elements[2].mul(scalar[5]) // Auxiliary inputs be multiplied with the coeffs // offset by the number of inputs + elements[num_inputs].mul(scalar[2]) + elements[num_inputs + 2].mul(scalar[3]) - + elements[num_inputs + 1].mul(scalar[4]) + + elements[num_inputs + 1].mul(scalar[4]); + output.into_projective() } #[test] diff --git a/phase2/tests/aleo_compatibility.rs b/phase2/tests/aleo_compatibility.rs index 30d321af..af12249d 100644 --- a/phase2/tests/aleo_compatibility.rs +++ b/phase2/tests/aleo_compatibility.rs @@ -1,112 +1,112 @@ -use phase1::{helpers::testing::setup_verify, Phase1, Phase1Parameters, ProvingSystem}; -use phase2::{helpers::testing::TestCircuit, parameters::MPCParameters}; -use setup_utils::{CheckForCorrectness, Groth16Params, UseCompression}; - -use zexe_algebra::{serialize::CanonicalSerialize, Bls12_377, PairingEngine as ZexePairingEngine, BW6_761}; -use zexe_groth16::Parameters; - -use snarkos_algorithms::snark::groth16::{ - create_random_proof, - prepare_verifying_key, - verify_proof, - Parameters as AleoGroth16Params, -}; -use snarkos_curves::{bls12_377::Bls12_377 as AleoBls12_377, bw6_761::BW6_761 as AleoBW6}; -use snarkos_models::{ - curves::PairingEngine as AleoPairingEngine, - gadgets::r1cs::{ConstraintCounter, ConstraintSynthesizer}, -}; -use snarkos_utilities::serialize::CanonicalDeserialize; - -use rand::{thread_rng, Rng}; - -fn generate_mpc_parameters( - proving_system: ProvingSystem, - c: C, - rng: &mut R, -) -> MPCParameters -where - C: Clone + ConstraintSynthesizer, -{ - let powers = 6; // Powers of tau - let batch = 4; - let params = Phase1Parameters::::new_full(proving_system, powers, batch); - let compressed = UseCompression::Yes; - // Make 1 power of tau contribution (assume powers of tau gets calculated properly). - let (_, output, _, _) = setup_verify(compressed, CheckForCorrectness::Full, compressed, ¶ms); - let accumulator = Phase1::deserialize(&output, compressed, CheckForCorrectness::Full, ¶ms).unwrap(); - - // Prepare only the first 32 powers (for whatever reason). - let groth_params = Groth16Params::::new( - 32, - accumulator.tau_powers_g1, - accumulator.tau_powers_g2, - accumulator.alpha_tau_powers_g1, - accumulator.beta_tau_powers_g1, - accumulator.beta_g2, - ) - .unwrap(); - // Write the transcript to a file. - let mut writer = vec![]; - groth_params.write(&mut writer, compressed).unwrap(); - - // perform the MPC on only the amount of constraints required for the circuit - let mut counter = ConstraintCounter::new(); - c.clone().generate_constraints(&mut counter).unwrap(); - let phase2_size = std::cmp::max(counter.num_constraints, counter.num_aux + counter.num_inputs + 1); - - let mut mpc = MPCParameters::::new_from_buffer::( - c, - writer.as_mut(), - compressed, - CheckForCorrectness::Full, - 32, - phase2_size, - ) - .unwrap(); - - let before = mpc.clone(); - // It is _not_ safe to use it yet, there must be 1 contribution. - mpc.contribute(rng).unwrap(); - - before.verify(&mpc).unwrap(); - - mpc -} - -fn test_groth16_curve() { - let rng = &mut thread_rng(); - // Generate the parameters. - let params: Parameters = { - let c = TestCircuit::(None); - let setup = generate_mpc_parameters::(ProvingSystem::Groth16, c, rng); - setup.get_params().clone() - }; - - // Convert the Zexe parameters to Aleo parameters. - let mut v = Vec::new(); - params.serialize(&mut v).unwrap(); - let params = AleoGroth16Params::::deserialize(&mut &v[..]).unwrap(); - - // Prepare the verification key (for proof verification) - let pvk = prepare_verifying_key(¶ms.vk); - - // Create a proof with these parameters. - let proof = { - let c = TestCircuit::(Some(Aleo::Fr::from(5))); - create_random_proof(c, ¶ms, rng).unwrap() - }; - - let res = verify_proof(&pvk, &proof, &[Aleo::Fr::from(25u8)]); - assert!(res.is_ok()); -} - -#[test] -fn test_groth16_bls12_377() { - test_groth16_curve::() -} - -#[test] -fn test_groth16_bw6() { - test_groth16_curve::() -} +// use phase1::{helpers::testing::setup_verify, Phase1, Phase1Parameters, ProvingSystem}; +// use phase2::{helpers::testing::TestCircuit, parameters::MPCParameters}; +// use setup_utils::{CheckForCorrectness, Groth16Params, UseCompression}; +// +// use zexe_algebra::{serialize::CanonicalSerialize, Bls12_377, PairingEngine as ZexePairingEngine, BW6_761}; +// use zexe_groth16::Parameters; +// +// use snarkos_algorithms::snark::groth16::{ +// create_random_proof, +// prepare_verifying_key, +// verify_proof, +// Parameters as AleoGroth16Params, +// }; +// use snarkos_curves::{bls12_377::Bls12_377 as AleoBls12_377, bw6_761::BW6_761 as AleoBW6}; +// use snarkos_models::{ +// curves::PairingEngine as AleoPairingEngine, +// gadgets::r1cs::{ConstraintCounter, ConstraintSynthesizer}, +// }; +// use snarkos_utilities::serialize::CanonicalDeserialize; +// +// use rand::{thread_rng, Rng}; +// +// fn generate_mpc_parameters( +// proving_system: ProvingSystem, +// c: C, +// rng: &mut R, +// ) -> MPCParameters +// where +// C: Clone + ConstraintSynthesizer, +// { +// let powers = 6; // Powers of tau +// let batch = 4; +// let params = Phase1Parameters::::new_full(proving_system, powers, batch); +// let compressed = UseCompression::Yes; +// // Make 1 power of tau contribution (assume powers of tau gets calculated properly). +// let (_, output, _, _) = setup_verify(compressed, CheckForCorrectness::Full, compressed, ¶ms); +// let accumulator = Phase1::deserialize(&output, compressed, CheckForCorrectness::Full, ¶ms).unwrap(); +// +// // Prepare only the first 32 powers (for whatever reason). +// let groth_params = Groth16Params::::new( +// 32, +// accumulator.tau_powers_g1, +// accumulator.tau_powers_g2, +// accumulator.alpha_tau_powers_g1, +// accumulator.beta_tau_powers_g1, +// accumulator.beta_g2, +// ) +// .unwrap(); +// // Write the transcript to a file. +// let mut writer = vec![]; +// groth_params.write(&mut writer, compressed).unwrap(); +// +// // perform the MPC on only the amount of constraints required for the circuit +// let mut counter = ConstraintCounter::new(); +// c.clone().generate_constraints(&mut counter).unwrap(); +// let phase2_size = std::cmp::max(counter.num_constraints, counter.num_aux + counter.num_inputs + 1); +// +// let mut mpc = MPCParameters::::new_from_buffer::( +// c, +// writer.as_mut(), +// compressed, +// CheckForCorrectness::Full, +// 32, +// phase2_size, +// ) +// .unwrap(); +// +// let before = mpc.clone(); +// // It is _not_ safe to use it yet, there must be 1 contribution. +// mpc.contribute(rng).unwrap(); +// +// before.verify(&mpc).unwrap(); +// +// mpc +// } +// +// fn test_groth16_curve() { +// let rng = &mut thread_rng(); +// // Generate the parameters. +// let params: Parameters = { +// let c = TestCircuit::(None); +// let setup = generate_mpc_parameters::(ProvingSystem::Groth16, c, rng); +// setup.get_params().clone() +// }; +// +// // Convert the Zexe parameters to Aleo parameters. +// let mut v = Vec::new(); +// params.serialize(&mut v).unwrap(); +// let params = AleoGroth16Params::::deserialize(&mut &v[..]).unwrap(); +// +// // Prepare the verification key (for proof verification) +// let pvk = prepare_verifying_key(¶ms.vk); +// +// // Create a proof with these parameters. +// let proof = { +// let c = TestCircuit::(Some(Aleo::Fr::from(5))); +// create_random_proof(c, ¶ms, rng).unwrap() +// }; +// +// let res = verify_proof(&pvk, &proof, &[Aleo::Fr::from(25u8)]); +// assert!(res.is_ok()); +// } +// +// #[test] +// fn test_groth16_bls12_377() { +// test_groth16_curve::() +// } +// +// #[test] +// fn test_groth16_bw6() { +// test_groth16_curve::() +// } diff --git a/setup-utils/Cargo.toml b/setup-utils/Cargo.toml index 7dbe703d..41c556e9 100644 --- a/setup-utils/Cargo.toml +++ b/setup-utils/Cargo.toml @@ -14,17 +14,19 @@ name = "math" harness = false [dependencies] -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0" } -zexe_fft = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "ff-fft", version = "0.1.0", default-features = false } -zexe_r1cs_core = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "r1cs-core", version = "0.1.0" } +snarkvm-algorithms = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-curves = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-fields = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-r1cs = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-utilities = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } blake2 = { version = "0.8.1" } blake2s_simd = { version = "0.5.11" } cfg-if = { version = "0.1.10" } crossbeam = { version = "0.8.0" } num_cpus = { version = "1.12.0" } -rand = { version = "0.7.3" } -rand_chacha = { version = "0.2.1" } +rand = { version = "0.8" } +rand_chacha = { version = "0.3" } rayon = { version = "1.4.1", optional = true } rust-crypto = { version = "0.2", optional = true } serde = { version = "1.0", features = ["derive"] } @@ -33,9 +35,7 @@ tracing = { version = "0.1.21" } typenum = { version = "1.11.2" } [dev-dependencies] -phase1 = { path = "../phase1" } - -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0", features = ["bls12_377", "bw6_761"] } +phase1 = { path = "../phase1", features = ["testing"] } criterion = { version = "0.3.1" } rusty-hook = { version = "0.11.2" } @@ -43,6 +43,6 @@ rusty-hook = { version = "0.11.2" } [features] default = ["parallel"] cli = ["parallel", "rust-crypto"] -wasm = ["rand/wasm-bindgen"] +wasm = [] -parallel = ["rayon", "zexe_algebra/parallel", "zexe_fft/parallel"] +parallel = ["rayon", "snarkvm-algorithms/parallel", "rust-crypto"] diff --git a/setup-utils/benches/io.rs b/setup-utils/benches/io.rs index dfe205a8..0591185a 100644 --- a/setup-utils/benches/io.rs +++ b/setup-utils/benches/io.rs @@ -1,6 +1,6 @@ use setup_utils::{BatchDeserializer, BatchSerializer, UseCompression}; -use zexe_algebra::{AffineCurve, Bls12_377, PairingEngine}; +use snarkvm_curves::{bls12_377::Bls12_377, AffineCurve, PairingEngine}; use criterion::{criterion_group, criterion_main, Criterion, Throughput}; diff --git a/setup-utils/benches/math.rs b/setup-utils/benches/math.rs index eca426a2..184f7d3a 100644 --- a/setup-utils/benches/math.rs +++ b/setup-utils/benches/math.rs @@ -1,15 +1,13 @@ use phase1::helpers::testing::random_point_vec; use setup_utils::{batch_exp, dense_multiexp, generate_powers_of_tau}; -use zexe_algebra::{ +use snarkvm_curves::{ bls12_377::{Bls12_377, G1Affine}, AffineCurve, - Field, PairingEngine, - PrimeField, - UniformRand, - Zero, }; +use snarkvm_fields::{Field, PrimeField, Zero}; +use snarkvm_utilities::UniformRand; use criterion::{criterion_group, criterion_main, Criterion, Throughput}; use rand::Rng; @@ -30,7 +28,7 @@ pub fn generate_powers_of_tau_crossbeam(tau: &E::Fr, start: us for t in taupowers { *t = acc; - acc.mul_assign(&tau); + acc.mul_assign(tau); } }); } @@ -89,8 +87,8 @@ fn benchmark_multiexp(c: &mut Criterion) { } } -fn randomness(v: &[G], rng: &mut impl Rng) -> Vec<::BigInt> { - (0..v.len()).map(|_| G::ScalarField::rand(rng).into_repr()).collect() +fn randomness(v: &[G], rng: &mut impl Rng) -> Vec<::BigInteger> { + (0..v.len()).map(|_| G::ScalarField::rand(rng).to_repr()).collect() } criterion_group!(benches, benchmark_phase1, benchmark_batchexp, benchmark_multiexp); diff --git a/setup-utils/src/errors.rs b/setup-utils/src/errors.rs index 9eba5fb4..3159b7c9 100644 --- a/setup-utils/src/errors.rs +++ b/setup-utils/src/errors.rs @@ -1,7 +1,7 @@ use crate::ElementType; -use zexe_algebra::SerializationError; -use zexe_r1cs_core::SynthesisError; +use snarkvm_r1cs::SynthesisError; +use snarkvm_utilities::SerializationError; use std::io; use thiserror::Error; diff --git a/setup-utils/src/groth16_utils.rs b/setup-utils/src/groth16_utils.rs index 34f13b99..64faa836 100644 --- a/setup-utils/src/groth16_utils.rs +++ b/setup-utils/src/groth16_utils.rs @@ -2,12 +2,13 @@ /// to Phase 2-compatible Lagrange Coefficients. use crate::{buffer_size, CheckForCorrectness, Deserializer, Result, Serializer, UseCompression}; -use zexe_algebra::{AffineCurve, PairingEngine, PrimeField, ProjectiveCurve}; -use zexe_fft::{ +use snarkvm_algorithms::{ cfg_into_iter, cfg_iter, - domain::{radix2::Radix2EvaluationDomain, EvaluationDomain}, + fft::{DomainCoeff, EvaluationDomain}, }; +use snarkvm_curves::{AffineCurve, PairingEngine, ProjectiveCurve}; +use snarkvm_fields::PrimeField; #[cfg(feature = "parallel")] use rayon::prelude::*; @@ -42,12 +43,12 @@ impl PartialEq for Groth16Params { /// Performs an IFFT over the provided evaluation domain to the provided /// vector of affine points. It then normalizes and returns them back into /// affine form -fn to_coeffs(domain: &E, coeffs: &[C]) -> Vec +fn to_coeffs(domain: &EvaluationDomain, coeffs: &[C]) -> Vec where - E: EvaluationDomain, F: PrimeField, C: AffineCurve, C::Projective: std::ops::MulAssign, + ::Projective: DomainCoeff, { let mut coeffs = domain.ifft(&coeffs.iter().map(|e| e.into_projective()).collect::>()); C::Projective::batch_normalization(&mut coeffs); @@ -83,7 +84,7 @@ impl Groth16Params { let _enter = span.enter(); // Create the evaluation domain - let domain = Radix2EvaluationDomain::::new(phase2_size).expect("could not create domain"); + let domain = EvaluationDomain::::new(phase2_size).expect("could not create domain"); info!("converting powers of tau to lagrange coefficients"); @@ -275,7 +276,7 @@ mod tests { ProvingSystem, }; - use zexe_algebra::Bls12_377; + use snarkvm_curves::bls12_377::Bls12_377; fn read_write_curve(powers: usize, prepared_phase1_size: usize, compressed: UseCompression) { fn compat(compression: UseCompression) -> UseCompressionPhase1 { diff --git a/setup-utils/src/helpers.rs b/setup-utils/src/helpers.rs index 81fb13f9..1e84cdef 100644 --- a/setup-utils/src/helpers.rs +++ b/setup-utils/src/helpers.rs @@ -2,23 +2,14 @@ use crate::{ errors::{Error, VerificationError}, Result, }; -use zexe_algebra::{ - AffineCurve, - BigInteger, - CanonicalSerialize, - ConstantSerializedSize, - Field, - One, - PairingEngine, - PrimeField, - ProjectiveCurve, - UniformRand, - Zero, -}; -use zexe_fft::{cfg_into_iter, cfg_iter, cfg_iter_mut}; + +use snarkvm_algorithms::{cfg_into_iter, cfg_iter, cfg_iter_mut}; +use snarkvm_curves::{AffineCurve, Group, PairingEngine, ProjectiveCurve}; +use snarkvm_fields::{Field, One, PrimeField, Zero}; +use snarkvm_utilities::{biginteger::BigInteger, rand::UniformRand, CanonicalSerialize, ConstantSerializedSize}; use blake2::{digest::generic_array::GenericArray, Blake2b, Digest}; -use rand::{rngs::OsRng, thread_rng, Rng, SeedableRng}; +use rand::{rngs::OsRng, thread_rng, CryptoRng, Rng, SeedableRng}; use rand_chacha::ChaChaRng; use std::{ convert::TryInto, @@ -58,9 +49,10 @@ pub fn print_hash(hash: &[u8]) { /// Multiply a large number of points by a scalar pub fn batch_mul(bases: &mut [C], coeff: &C::ScalarField) -> Result<()> { - let coeff = coeff.into_repr(); - let mut points: Vec<_> = cfg_iter!(bases).map(|base| base.mul(coeff)).collect(); - C::Projective::batch_normalization(&mut points); + let mut points: Vec<_> = cfg_iter!(bases) + .map(|base| base.into_projective().mul(*coeff)) + .collect(); + C::Projective::batch_normalization(points.as_mut_slice()); cfg_iter_mut!(bases) .zip(points) .for_each(|(base, proj)| *base = proj.into_affine()); @@ -83,7 +75,7 @@ pub fn batch_exp( } // raise the base to the exponent and assign it back to the base // this will return the points as projective - let mut points: Vec<_> = cfg_iter_mut!(bases) + let mut points: Vec<::Projective> = cfg_iter_mut!(bases) .zip(exps) .map(|(base, exp)| { // If a coefficient was provided, multiply the exponent @@ -92,12 +84,12 @@ pub fn batch_exp( // Raise the base to the exponent (additive notation so it is executed // via a multiplication) - base.mul(exp) + base.mul(exp).into_projective() }) .collect(); - // we do not use Zexe's batch_normalization_into_affine because it allocates + // we do not use batch_normalization_into_affine because it allocates // a new vector - C::Projective::batch_normalization(&mut points); + C::Projective::batch_normalization(points.as_mut_slice()); cfg_iter_mut!(bases) .zip(points) .for_each(|(base, proj)| *base = proj.into_affine()); @@ -163,7 +155,7 @@ pub fn beacon_randomness(mut beacon_hash: [u8; 32]) -> [u8; 32] { } /// Interpret the first 32 bytes of the digest as 8 32-bit words -pub fn get_rng(digest: &[u8]) -> impl Rng { +pub fn get_rng(digest: &[u8]) -> impl Rng + CryptoRng { let seed = from_slice(digest); ChaChaRng::from_seed(seed) } @@ -263,14 +255,10 @@ pub fn from_slice(bytes: &[u8]) -> [u8; 32] { #[cfg(test)] mod tests { use super::*; - use zexe_algebra::{ - bls12_377::Bls12_377, - bls12_381::{Bls12_381, Fr, G1Affine, G2Affine}, - }; + use snarkvm_curves::bls12_377::{Bls12_377, Fr, G1Affine, G2Affine}; #[test] fn test_hash_to_g2() { - test_hash_to_g2_curve::(); test_hash_to_g2_curve::(); } @@ -303,11 +291,11 @@ mod tests { let s = Fr::rand(rng); let g1 = G1Affine::prime_subgroup_generator(); let g2 = G2Affine::prime_subgroup_generator(); - let g1_s = g1.mul(s).into_affine(); - let g2_s = g2.mul(s).into_affine(); + let g1_s = g1.mul(s); + let g2_s = g2.mul(s); - assert!(same_ratio::(&(g1, g1_s), &(g2, g2_s))); - assert!(!same_ratio::(&(g1_s, g1), &(g2, g2_s))); + assert!(same_ratio::(&(g1, g1_s), &(g2, g2_s))); + assert!(!same_ratio::(&(g1_s, g1), &(g2, g2_s))); } #[test] @@ -319,20 +307,20 @@ mod tests { let x = Fr::rand(rng); let mut acc = Fr::one(); for _ in 0..100 { - v.push(G1Affine::prime_subgroup_generator().mul(acc).into_affine()); + v.push(G1Affine::prime_subgroup_generator().mul(acc)); acc.mul_assign(&x); } - let gx = G2Affine::prime_subgroup_generator().mul(x).into_affine(); + let gx = G2Affine::prime_subgroup_generator().mul(x); - assert!(same_ratio::( + assert!(same_ratio::( &power_pairs(&v), &(G2Affine::prime_subgroup_generator(), gx) )); - v[1] = v[1].mul(Fr::rand(rng)).into_affine(); + v[1] = v[1].mul(Fr::rand(rng)); - assert!(!same_ratio::( + assert!(!same_ratio::( &power_pairs(&v), &(G2Affine::prime_subgroup_generator(), gx) )); @@ -343,8 +331,8 @@ pub fn merge_pairs(v1: &[G], v2: &[G]) -> (G, G) { assert_eq!(v1.len(), v2.len()); let rng = &mut thread_rng(); - let randomness: Vec<::BigInt> = - (0..v1.len()).map(|_| G::ScalarField::rand(rng).into_repr()).collect(); + let randomness: Vec<::BigInteger> = + (0..v1.len()).map(|_| G::ScalarField::rand(rng).to_repr()).collect(); let s = dense_multiexp(&v1, &randomness[..]).into_affine(); let sx = dense_multiexp(&v2, &randomness[..]).into_affine(); @@ -411,7 +399,7 @@ pub fn compute_g2_s( #[allow(dead_code)] pub fn dense_multiexp( bases: &[G], - exponents: &[::BigInt], + exponents: &[::BigInteger], ) -> G::Projective { if exponents.len() != bases.len() { panic!("invalid length") @@ -427,7 +415,7 @@ pub fn dense_multiexp( fn dense_multiexp_inner( bases: &[G], - exponents: &[::BigInt], + exponents: &[::BigInteger], mut skip: u32, c: u32, handle_trivial: bool, @@ -448,8 +436,8 @@ fn dense_multiexp_inner( let mut buckets = vec![::Projective::zero(); (1 << c) - 1]; // Accumulate the result let mut acc = G::Projective::zero(); - let zero = G::ScalarField::zero().into_repr(); - let one = G::ScalarField::one().into_repr(); + let zero = G::ScalarField::zero().to_repr(); + let one = G::ScalarField::one().to_repr(); for (base, &exp) in base.iter().zip(exp.iter()) { // let index = (exp.as_ref()[0] & mask) as usize; diff --git a/setup-utils/src/io/mod.rs b/setup-utils/src/io/mod.rs index 3a22dca7..5b3c36d2 100644 --- a/setup-utils/src/io/mod.rs +++ b/setup-utils/src/io/mod.rs @@ -6,7 +6,7 @@ mod write; pub use write::{BatchSerializer, Serializer}; use crate::UseCompression; -use zexe_algebra::AffineCurve; +use snarkvm_curves::AffineCurve; pub fn buffer_size(compression: UseCompression) -> usize { if compression == UseCompression::Yes { @@ -21,7 +21,7 @@ mod tests { use super::*; use phase1::helpers::testing::random_point_vec; - use zexe_algebra::bls12_377::{G1Affine, G2Affine}; + use snarkvm_curves::bls12_377::{G1Affine, G2Affine}; use crate::CheckForCorrectness; use rand::thread_rng; diff --git a/setup-utils/src/io/read.rs b/setup-utils/src/io/read.rs index 74d502d8..3901a871 100644 --- a/setup-utils/src/io/read.rs +++ b/setup-utils/src/io/read.rs @@ -1,7 +1,7 @@ use crate::{buffer_size, CheckForCorrectness, Error, Result, UseCompression}; -use zexe_algebra::AffineCurve; -use zexe_fft::cfg_chunks; +use snarkvm_algorithms::cfg_chunks; +use snarkvm_curves::AffineCurve; #[cfg(feature = "parallel")] use rayon::prelude::*; @@ -62,15 +62,7 @@ impl Deserializer for R { ) -> Result { let point = match compression { UseCompression::Yes => G::deserialize(self)?, - UseCompression::No => { - if check_for_correctness == CheckForCorrectness::OnlyNonZero - || check_for_correctness == CheckForCorrectness::No - { - G::deserialize_unchecked(self)? - } else { - G::deserialize_uncompressed(self)? - } - } + UseCompression::No => G::deserialize_uncompressed(self)?, }; if (check_for_correctness == CheckForCorrectness::Full diff --git a/setup-utils/src/io/write.rs b/setup-utils/src/io/write.rs index 5bed2372..e163fe25 100644 --- a/setup-utils/src/io/write.rs +++ b/setup-utils/src/io/write.rs @@ -1,8 +1,8 @@ //! Utilities for writing and reading group elements to buffers in parallel use crate::{buffer_size, Result, UseCompression}; -use zexe_algebra::AffineCurve; -use zexe_fft::cfg_chunks_mut; +use snarkvm_algorithms::cfg_chunks_mut; +use snarkvm_curves::AffineCurve; #[cfg(feature = "parallel")] use rayon::prelude::*; diff --git a/setup-utils/src/lib.rs b/setup-utils/src/lib.rs index bcf76f03..17244ef6 100644 --- a/setup-utils/src/lib.rs +++ b/setup-utils/src/lib.rs @@ -29,4 +29,4 @@ pub use seed::derive_rng_from_seed; pub use blake2::digest::generic_array::GenericArray; pub use typenum::U64; -pub use zexe_fft::{cfg_chunks, cfg_into_iter, cfg_iter_mut}; +pub use snarkvm_algorithms::{cfg_chunks, cfg_into_iter, cfg_iter_mut}; diff --git a/setup-utils/src/seed.rs b/setup-utils/src/seed.rs index ebca0811..eb6b9b66 100644 --- a/setup-utils/src/seed.rs +++ b/setup-utils/src/seed.rs @@ -1,10 +1,10 @@ use blake2s_simd::Params; -use rand::{Rng, SeedableRng}; +use rand::{CryptoRng, Rng, SeedableRng}; use rand_chacha::ChaChaRng; pub const SEED_PERSONALIZATION: &[u8] = b"ALEOSEED"; -pub fn derive_rng_from_seed(seed: &[u8]) -> impl Rng { +pub fn derive_rng_from_seed(seed: &[u8]) -> impl Rng + CryptoRng { let seed_hash = Params::new() .personal(SEED_PERSONALIZATION) .to_state() diff --git a/setup1-cli-tools/Cargo.toml b/setup1-cli-tools/Cargo.toml index bcb55cf3..89c5a638 100644 --- a/setup1-cli-tools/Cargo.toml +++ b/setup1-cli-tools/Cargo.toml @@ -13,18 +13,14 @@ name = "view-key" path = "src/view_key.rs" [dependencies] +snarkvm-dpc = { git = "https://github.com/AleoHQ/snarkVM", rev = "707b06f" } + anyhow = "1.0.38" age = { version = "0.5.0", features = ["cli-common", "armor"] } hex = "0.4" -rand = "0.7" +rand = "0.8" secrecy = "0.7" serde = "1.0.123" serde_json = "1.0.64" structopt = "0.3.21" unic-langid = "0.9.0" - -[dependencies.snarkos-toolkit] -git = "https://github.com/AleoHQ/snarkOS" -rev = "6357695" -package = "snarkos-toolkit" -default-features = false diff --git a/setup1-cli-tools/src/public_key_extractor.rs b/setup1-cli-tools/src/public_key_extractor.rs index 91b8a3c5..9f1a7d62 100644 --- a/setup1-cli-tools/src/public_key_extractor.rs +++ b/setup1-cli-tools/src/public_key_extractor.rs @@ -1,8 +1,9 @@ +use snarkvm_dpc::{testnet2::parameters::Testnet2Parameters, Address, PrivateKey}; + use age::Decryptor; use anyhow::{anyhow, Result}; use secrecy::{ExposeSecret, SecretString, SecretVec}; use serde::Deserialize; -use snarkos_toolkit::account::{Address, PrivateKey}; use std::{fs, io::Read, str::FromStr}; use structopt::StructOpt; use unic_langid::LanguageIdentifier; @@ -39,7 +40,7 @@ fn decrypt(passphrase: &SecretString, encrypted: &str) -> Result> } } -fn read_private_key(keys_path: &str) -> Result { +fn read_private_key(keys_path: &str) -> Result> { let file_contents = fs::read(&keys_path)?; let keys: AleoSetupKeys = serde_json::from_slice(&file_contents)?; let passphrase = age::cli_common::read_secret("Enter your Aleo setup passphrase", "Passphrase", None) @@ -58,7 +59,7 @@ fn main() { let private_key = read_private_key(&options.path).expect("Should read a private key"); - let address = Address::from(&private_key) + let address = Address::from_private_key(&private_key) .expect("Should produce a public key out of a private key") .to_string(); println!("{}", address); diff --git a/setup1-cli-tools/src/view_key.rs b/setup1-cli-tools/src/view_key.rs index 0da86d7e..14932322 100644 --- a/setup1-cli-tools/src/view_key.rs +++ b/setup1-cli-tools/src/view_key.rs @@ -1,8 +1,8 @@ -use snarkos_toolkit::account::{PrivateKey, ViewKey}; +use snarkvm_dpc::{testnet2::parameters::Testnet2Parameters, PrivateKey, ViewKey}; fn main() { let mut rng = rand::thread_rng(); - let private_key = PrivateKey::new(&mut rng).expect("Should generate a random PrivateKey struct"); - let view_key = ViewKey::from(&private_key).expect("Should create a ViewKey from a PrivateKey"); + let private_key = PrivateKey::::new(&mut rng).expect("Unable to generate a random private key"); + let view_key = ViewKey::from_private_key(&private_key).expect("Unable to derive the view key from private key"); print!("{}", view_key); } diff --git a/setup1-contributor/Cargo.toml b/setup1-contributor/Cargo.toml index 44146b55..127c3b10 100644 --- a/setup1-contributor/Cargo.toml +++ b/setup1-contributor/Cargo.toml @@ -14,8 +14,9 @@ phase1-coordinator = { path = "../phase1-coordinator", features = ["operator"]} setup1-shared = { version = "0.1", path = "../setup1-shared" } setup-utils = { path = "../setup-utils" } -snarkos-toolkit = { git = "https://github.com/AleoHQ/snarkOS", rev = "6357695", package = "snarkos-toolkit", default-features = false } -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0", features = ["bls12_377", "bw6_761", "derive"] } +snarkvm-dpc = { git = "https://github.com/AleoHQ/snarkVM", rev = "707b06f" } +snarkvm-curves = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-utilities = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } age = { version = "0.5", features = [ "cli-common", "armor" ] } azure_sdk_core = { version = "0.43.7", optional = true } @@ -33,11 +34,12 @@ i18n-embed = { version = "0.9", features = ["desktop-requester"] } indicatif = { version = "0.15.0" } lazy_static = { version = "1.4.0" } panic-control = {version = "0.1.4" } -rand = { version = "0.7" } +rand = { version = "0.8" } reqwest = "0.11" secrecy = { version = "0.7" } serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0" } +serial_test = { version = "0.5.1" } structopt = { version = "0.3" } thiserror = { version = "1.0" } tokio = { version = "1.7", features = [ "macros", "rt-multi-thread" ] } diff --git a/setup1-contributor/src/blobstore.rs b/setup1-contributor/src/blobstore.rs index 1905445c..7e2db229 100644 --- a/setup1-contributor/src/blobstore.rs +++ b/setup1-contributor/src/blobstore.rs @@ -4,6 +4,7 @@ // Licensed under the MIT License. use crate::errors::HttpError; + use anyhow::Result; use azure_sdk_core::{BlobNameSupport, BlockIdSupport, BodySupport, ContainerNameSupport}; use azure_sdk_storage_blob::{ diff --git a/setup1-contributor/src/commands/contribute.rs b/setup1-contributor/src/commands/contribute.rs index b2264db6..ae74cb67 100644 --- a/setup1-contributor/src/commands/contribute.rs +++ b/setup1-contributor/src/commands/contribute.rs @@ -16,7 +16,6 @@ use crate::{ #[cfg(feature = "azure")] use crate::utils::upload_file_to_azure_async; -use age::DecryptError; use phase1::helpers::converters::CurveKind; use phase1_cli::contribute; use phase1_coordinator::{ @@ -25,9 +24,10 @@ use phase1_coordinator::{ }; use setup1_shared::structures::PublicSettings; use setup_utils::calculate_hash; -use snarkos_toolkit::account::{Address, PrivateKey, ViewKey}; -use zexe_algebra::{Bls12_377, PairingEngine, BW6_761}; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761, PairingEngine}; +use snarkvm_dpc::{testnet2::parameters::Testnet2Parameters, Address, PrivateKey, ViewKey}; +use age::DecryptError; use anyhow::{Context, Result}; use chrono::Duration; use indicatif::{ProgressBar, ProgressStyle}; @@ -38,6 +38,7 @@ use secrecy::{ExposeSecret, SecretString, SecretVec}; use setup_utils::derive_rng_from_seed; use std::{ collections::{HashMap, HashSet, VecDeque}, + convert::TryFrom, fs::File, io::{Read, Write}, ops::Deref, @@ -113,13 +114,13 @@ impl Contribute { private_key: &[u8], seed: Arc>, ) -> Result { - let private_key = PrivateKey::from_str(std::str::from_utf8(&private_key)?)?; + let private_key = PrivateKey::::from_str(std::str::from_utf8(&private_key)?)?; // TODO (raychu86): Pass in pipelining options from the CLI. let contribute = Self { server_url: opts.api_url.clone(), - participant_id: Address::from(&private_key)?.to_string(), + participant_id: Address::try_from(&private_key)?.to_string(), private_key: private_key.to_string(), seed, upload_mode: opts.upload_mode.clone(), @@ -545,7 +546,7 @@ impl Contribute { let response_hash = calculate_hash(&response_file).to_vec(); // Sign the contribution state. - let view_key = ViewKey::from(&PrivateKey::from_str(&self.private_key)?)?; + let view_key = ViewKey::::try_from(&PrivateKey::from_str(&self.private_key)?)?; let signed_contribution_state = sign_contribution_state(&view_key.to_string(), &challenge_hash, &response_hash, None, auth_rng)?; diff --git a/setup1-contributor/src/commands/generate.rs b/setup1-contributor/src/commands/generate.rs index 2bb73d8f..1d9c1ec0 100644 --- a/setup1-contributor/src/commands/generate.rs +++ b/setup1-contributor/src/commands/generate.rs @@ -1,6 +1,6 @@ use crate::{cli::commands::generate::GenerateOptions, objects::AleoSetupKeys}; -use snarkos_toolkit::account::{Address, PrivateKey}; +use snarkvm_dpc::{testnet2::parameters::Testnet2Parameters, Address, PrivateKey}; use age::{ armor::{ArmoredWriter, Format}, @@ -11,7 +11,7 @@ use age::{ use anyhow::Result; use rand::{rngs::OsRng, RngCore}; use secrecy::{ExposeSecret, SecretVec}; -use std::io::Write; +use std::{convert::TryFrom, io::Write}; fn encrypt(encryptor: Encryptor, secret: &[u8]) -> Result { let mut encrypted_output = vec![]; @@ -56,8 +56,9 @@ pub fn generate_keys(opts: GenerateOptions) { let mut aleo_seed = vec![0u8; 64]; rng.fill_bytes(&mut aleo_seed[..]); let aleo_seed = SecretVec::new(aleo_seed); - let private_key = PrivateKey::new(&mut rng).expect("Should have generated an Aleo private key"); - let address = Address::from(&private_key).expect("Should have derived an Aleo address"); + let private_key = + PrivateKey::::new(&mut rng).expect("Should have generated an Aleo private key"); + let address = Address::try_from(&private_key).expect("Should have derived an Aleo address"); let private_key = private_key.to_string(); let encrypted_aleo_seed = diff --git a/setup1-contributor/src/reliability/bandwidth.rs b/setup1-contributor/src/reliability/bandwidth.rs index 048526bf..dd0a29f6 100644 --- a/setup1-contributor/src/reliability/bandwidth.rs +++ b/setup1-contributor/src/reliability/bandwidth.rs @@ -1,8 +1,8 @@ -use std::fmt::Debug; +use setup1_shared::reliability::{ContributorMessage, ContributorMessageName}; use anyhow::{anyhow, Result}; use futures::{Sink, SinkExt}; -use setup1_shared::reliability::{ContributorMessage, ContributorMessageName}; +use std::fmt::Debug; use tokio_tungstenite::tungstenite::protocol::Message; pub(super) async fn check(write_half: &mut W, data: Vec) -> Result<()> diff --git a/setup1-contributor/src/reliability/cpu.rs b/setup1-contributor/src/reliability/cpu.rs index 1d5b18db..b3931047 100644 --- a/setup1-contributor/src/reliability/cpu.rs +++ b/setup1-contributor/src/reliability/cpu.rs @@ -1,12 +1,13 @@ +use phase1::{Phase1, Phase1Parameters, ProvingSystem}; +use setup1_shared::reliability::{ContributorMessage, ContributorMessageName}; +use setup_utils::{blank_hash, derive_rng_from_seed, CheckForCorrectness, UseCompression}; +use snarkvm_curves::{bls12_377::Bls12_377, PairingEngine}; + use std::fmt::Debug; use anyhow::{anyhow, Result}; use futures::{Sink, SinkExt}; -use phase1::{Phase1, Phase1Parameters, ProvingSystem}; -use setup1_shared::reliability::{ContributorMessage, ContributorMessageName}; -use setup_utils::{blank_hash, derive_rng_from_seed, CheckForCorrectness, UseCompression}; use tokio_tungstenite::tungstenite::protocol::Message; -use zexe_algebra::{Bls12_377, PairingEngine}; const TOTAL_SIZE: usize = 14; // Proof of Work takes roughly 20 seconds if TOTAL_SIZE=14 const BATCH_SIZE: usize = 2; @@ -61,8 +62,9 @@ where #[cfg(test)] mod test { use crate::reliability::cpu::calculate_powers_of_tau; + use snarkvm_curves::bls12_377::Bls12_377; + use std::time::Instant; - use zexe_algebra::Bls12_377; const DATA_LENGTH: usize = 64; const OUTPUT_LENGTH: usize = 790192; @@ -75,7 +77,7 @@ mod test { let elapsed = now.elapsed(); println!("Proof of Work took: {:.2?}", elapsed); assert_eq!(output.len(), OUTPUT_LENGTH); - let expected = [12, 53, 232, 21, 121, 10, 125, 129]; + let expected = [53, 123, 154, 189, 96, 121, 231, 0]; assert_eq!(output[OUTPUT_LENGTH - expected.len()..], expected); } } diff --git a/setup1-contributor/src/reliability/latency.rs b/setup1-contributor/src/reliability/latency.rs index a178c121..f484192a 100644 --- a/setup1-contributor/src/reliability/latency.rs +++ b/setup1-contributor/src/reliability/latency.rs @@ -1,8 +1,8 @@ -use std::fmt::Debug; +use setup1_shared::reliability::{ContributorMessage, ContributorMessageName}; use anyhow::{anyhow, Result}; use futures::{Sink, SinkExt}; -use setup1_shared::reliability::{ContributorMessage, ContributorMessageName}; +use std::fmt::Debug; use tokio_tungstenite::tungstenite::protocol::Message; pub(super) async fn check(write_half: &mut W, data: Vec) -> Result<()> diff --git a/setup1-contributor/src/tasks.rs b/setup1-contributor/src/tasks.rs index 5ab74f21..96eb0404 100644 --- a/setup1-contributor/src/tasks.rs +++ b/setup1-contributor/src/tasks.rs @@ -100,6 +100,7 @@ mod tests { use crate::utils::remove_file_if_exists; use lazy_static::lazy_static; + use serial_test::serial; use std::path::Path; const TEST_TASK_FILE: &str = "TEST.tasks"; @@ -141,6 +142,7 @@ mod tests { } #[test] + #[serial] pub fn test_assign_tasks() { let mut tasks = Tasks::default(); assert_eq!(0, tasks.get_tasks().len()); @@ -159,6 +161,7 @@ mod tests { } #[test] + #[serial] pub fn test_next_tasks() { let mut tasks = Tasks::default(); @@ -175,6 +178,7 @@ mod tests { } #[test] + #[serial] pub fn test_remove_tasks() { let mut tasks = Tasks::default(); @@ -196,6 +200,7 @@ mod tests { } #[test] + #[serial] pub fn test_store_tasks() { remove_file_if_exists(TEST_TASK_FILE).unwrap(); let mut tasks = Tasks::default(); @@ -214,6 +219,7 @@ mod tests { } #[test] + #[serial] pub fn test_load_tasks() { let mut tasks = Tasks::default(); diff --git a/setup1-contributor/src/utils.rs b/setup1-contributor/src/utils.rs index b8e01ac9..d07a625b 100644 --- a/setup1-contributor/src/utils.rs +++ b/setup1-contributor/src/utils.rs @@ -8,13 +8,15 @@ use phase1_coordinator::{ objects::{ContributionFileSignature, ContributionState}, }; use setup1_shared::structures::SetupKind; -use snarkos_toolkit::account::{Address, PrivateKey, ViewKey}; -use zexe_algebra::PairingEngine; +use snarkvm_curves::PairingEngine; +use snarkvm_dpc::{testnet2::parameters::Testnet2Parameters, Address, PrivateKey, ViewKey}; +use snarkvm_utilities::ToBytes; use anyhow::Result; use rand::{CryptoRng, Rng}; use reqwest::header::AUTHORIZATION; use std::{ + convert::TryFrom, fs::{copy, create_dir_all, remove_file, write, File}, io::{Read, Write}, path::Path, @@ -142,11 +144,13 @@ pub fn get_authorization_value( path: &str, rng: &mut R, ) -> Result { - let private_key = PrivateKey::from_str(private_key)?; - let view_key = ViewKey::from(&private_key)?; - let address = Address::from(&private_key)?.to_string(); + let private_key = PrivateKey::::from_str(private_key)?; + let view_key = ViewKey::try_from(&private_key)?; + let address = Address::try_from(&private_key)?.to_string(); + let message = format!("{} {}", method.to_lowercase(), path.to_lowercase()); - let signature = view_key.sign(message.as_bytes(), rng)?.to_string(); + let signature = hex::encode(&view_key.sign(message.as_bytes(), rng)?.to_bytes_le()?); + let authorization = format!("Aleo {}:{}", address, signature); Ok(authorization) } @@ -165,10 +169,10 @@ pub fn sign_contribution_state( ContributionState::new(challenge_hash.to_vec(), response_hash.to_vec(), next_challenge_hash)?; let message = contribution_state.signature_message()?; - let view_key = ViewKey::from_str(signing_key)?; - let signature = view_key.sign(&message.into_bytes(), rng)?; + let view_key = ViewKey::::from_str(signing_key)?; + let signature = hex::encode(&view_key.sign(message.as_bytes(), rng)?.to_bytes_le()?); - let contribution_file_signature = ContributionFileSignature::new(signature.to_string(), contribution_state)?; + let contribution_file_signature = ContributionFileSignature::new(signature, contribution_state)?; Ok(contribution_file_signature) } diff --git a/setup1-verifier/Cargo.toml b/setup1-verifier/Cargo.toml index 36034759..6a65c9b8 100644 --- a/setup1-verifier/Cargo.toml +++ b/setup1-verifier/Cargo.toml @@ -19,8 +19,10 @@ phase1-coordinator = { path = "../phase1-coordinator", features= ["operator"] } setup1-shared = { version = "0.1", path = "../setup1-shared" } setup-utils = { path = "../setup-utils", default-features = false } -snarkos-toolkit = { git = "https://github.com/AleoHQ/snarkOS", rev = "6357695", package = "snarkos-toolkit", default-features = false } -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0", features = ["bls12_377", "bw6_761"] } +snarkvm-algorithms = { git = "https://github.com/AleoHQ/snarkVM", rev = "707b06f" } +snarkvm-dpc = { git = "https://github.com/AleoHQ/snarkVM", rev = "707b06f" } +snarkvm-curves = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-utilities = { git = "https://github.com/AleoHQ/snarkVM", rev = "707b06f" } anyhow = { version = "1.0.32" } chrono = { version = "0.4", features = ["serde"] } @@ -28,7 +30,7 @@ ctrlc = { version = "3.1.7" } futures-util = { version = "0.3.5" } hex = { version = "0.4.2" } http = "0.2" -rand = { version = "0.7.3" } +rand = { version = "0.8" } reqwest = "0.11" serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0" } @@ -42,5 +44,5 @@ url = "2.2.2" [dev-dependencies] lazy_static = { version = "1.4.0" } -rand_xorshift = { version = "0.2" } +rand_xorshift = { version = "0.3" } serial_test = { version = "0.5" } diff --git a/setup1-verifier/src/coordinator_requests.rs b/setup1-verifier/src/coordinator_requests.rs index fab1fa68..b5fe5950 100644 --- a/setup1-verifier/src/coordinator_requests.rs +++ b/setup1-verifier/src/coordinator_requests.rs @@ -1,5 +1,5 @@ use crate::{errors::VerifierError, objects::LockResponse, utils::AleoAuthentication, verifier::Verifier}; -use snarkos_toolkit::account::Address; +use snarkvm_dpc::{testnet2::parameters::Testnet2Parameters, Address}; use reqwest::Client; use tracing::{debug, error, info}; @@ -15,7 +15,7 @@ impl Verifier { pub(crate) async fn join_queue(&self) -> Result { let coordinator_api_url = &self.coordinator_api_url; - let aleo_address = Address::from_view_key(&self.view_key)?.to_string(); + let aleo_address = Address::::from_view_key(&self.view_key)?.to_string(); let method = "post"; let path = "/v1/queue/verifier/join"; diff --git a/setup1-verifier/src/errors.rs b/setup1-verifier/src/errors.rs index 93b31e41..cc82e83a 100644 --- a/setup1-verifier/src/errors.rs +++ b/setup1-verifier/src/errors.rs @@ -72,14 +72,8 @@ impl From for VerifierError { } } -impl From for VerifierError { - fn from(error: snarkos_toolkit::errors::AddressError) -> Self { - VerifierError::Crate("snarkos", format!("{:?}", error)) - } -} - -impl From for VerifierError { - fn from(error: snarkos_toolkit::errors::ViewKeyError) -> Self { - VerifierError::Crate("snarkos", format!("{:?}", error)) +impl From for VerifierError { + fn from(error: snarkvm_dpc::AccountError) -> Self { + VerifierError::Crate("snarkvm_dpc", format!("{:?}", error)) } } diff --git a/setup1-verifier/src/main.rs b/setup1-verifier/src/main.rs index 94593f17..28cdb8dd 100644 --- a/setup1-verifier/src/main.rs +++ b/setup1-verifier/src/main.rs @@ -1,13 +1,12 @@ -use setup1_verifier::{utils::init_logger, verifier::Verifier}; - use phase1_coordinator::environment::{Development, Environment, Parameters, Production}; use setup1_shared::structures::{PublicSettings, SetupKind}; -use snarkos_toolkit::account::{Address, ViewKey}; -use structopt::StructOpt; -use url::Url; +use setup1_verifier::{utils::init_logger, verifier::Verifier}; +use snarkvm_dpc::{testnet2::parameters::Testnet2Parameters, Address, ViewKey}; use std::{path::PathBuf, str::FromStr}; +use structopt::StructOpt; use tracing::info; +use url::Url; fn development() -> Environment { Development::from(Parameters::TestCustom { @@ -74,7 +73,7 @@ async fn main() { let tasks_storage_path = format!("{}_verifier.tasks", storage_prefix); let raw_view_key = std::fs::read_to_string(options.view_key).expect("View key not found"); - let view_key = ViewKey::from_str(&raw_view_key).expect("Invalid view key"); + let view_key = ViewKey::::from_str(&raw_view_key).expect("Invalid view key"); let address = Address::from_view_key(&view_key).expect("Address not derived correctly"); // Initialize the verifier diff --git a/setup1-verifier/src/utils/authentication.rs b/setup1-verifier/src/utils/authentication.rs index 703f40f3..7632fedb 100644 --- a/setup1-verifier/src/utils/authentication.rs +++ b/setup1-verifier/src/utils/authentication.rs @@ -1,9 +1,8 @@ use crate::errors::VerifierError; -use snarkos_toolkit::account::{ - view_key::{Signature, ViewKey}, - Address, -}; +use snarkvm_algorithms::SignatureScheme; +use snarkvm_dpc::{testnet2::parameters::Testnet2Parameters, Address, Parameters, ViewKey}; +use snarkvm_utilities::{FromBytes, ToBytes}; use rand::thread_rng; use std::{fmt, str::FromStr}; @@ -39,7 +38,11 @@ pub struct AleoAuthentication {} impl AleoAuthentication { /// Generate the authentication header with the request method, request path, and view key. /// Returns the authorization header "Aleo
:" - pub fn authenticate(view_key: &ViewKey, method: &str, path: &str) -> Result { + pub fn authenticate( + view_key: &ViewKey, + method: &str, + path: &str, + ) -> Result { // Derive the Aleo address used to verify the signature. let address = Address::from_view_key(&view_key)?; @@ -67,27 +70,30 @@ impl AleoAuthentication { /// Returns a signature created by signing a message with an Aleo view key. Otherwise, /// returns a `VerifierError`. /// - pub fn sign(view_key: &ViewKey, message: String) -> Result { + pub fn sign(view_key: &ViewKey, message: String) -> Result { let rng = &mut thread_rng(); trace!("Signing message - (message: {})", message); // Construct the authentication signature. - let signature = view_key.sign(&message.into_bytes(), rng)?; + let signature = hex::encode(view_key.sign(&message.into_bytes(), rng)?.to_bytes_le()?); // Construct the authentication header. - Ok(signature.to_string()) + Ok(signature) } /// /// Returns `true` if the signature verifies for a given address and message. /// - pub fn verify(address: &str, signature: &str, message: String) -> Result { - let aleo_address = Address::from_str(&address)?; - let view_key_signature = Signature::from_str(&signature)?; + pub fn verify( + address: &Address, + signature: &str, + message: String, + ) -> Result { + let view_key_signature = FromBytes::from_bytes_le(&hex::decode(signature)?)?; // Check that the message verifies - Ok(aleo_address.verify(&message.to_string().into_bytes(), &view_key_signature)?) + Ok(address.verify_signature(&message.into_bytes(), &view_key_signature)?) } /// Verify a request is authenticated by @@ -107,7 +113,9 @@ impl AleoAuthentication { trace!("Authentication for address {} message is: {:?}", address, message); - AleoAuthentication::verify(address, signature, message) + let aleo_address = &Address::::from_str(&address)?; + + AleoAuthentication::verify(aleo_address, signature, message) } } @@ -115,11 +123,36 @@ impl AleoAuthentication { mod authentication_tests { use super::*; + use std::convert::TryInto; + // Example API request path const PATH: &str = "/v1/queue/verifier/join"; // Example view key. - const TEST_VIEW_KEY: &str = "AViewKey1cWNDyYMjc9p78PnCderRx37b9pJr4myQqmmPeCfeiLf3"; + const TEST_VIEW_KEY: &str = "AViewKey1cWY7CaSDuwAEXoFki7Z1JELj7ksum8JxfZGpsPLHJACx"; + const TEST_ADDRESS: &str = "aleo1en3lu60j0gcetvnpscvzwcxgujj069tlr3qlrm7y5kcrncxu3y8qva8p7k"; + + #[test] + fn test_aleo_account_signature_sanity_check() { + // Start by confirming the account derivation in snarkVM has not changed. + let view_key = ViewKey::::from_str(&TEST_VIEW_KEY).unwrap(); + let address = Address::from_view_key(&view_key).unwrap(); + assert_eq!(TEST_ADDRESS, address.to_string()); + + let message = "hello world".to_string(); + let rng = &mut thread_rng(); + + // Check that the account signature scheme works correctly in snarkVM. + let expected_signature = view_key.sign(&message.clone().into_bytes(), rng).unwrap(); + let signature_string = hex::encode(expected_signature.to_bytes_le().unwrap()); + let candidate_signature = FromBytes::from_bytes_le(&hex::decode(signature_string).unwrap()).unwrap(); + assert_eq!(expected_signature, candidate_signature); + + // Check that AleoAuthentication uses the account signature scheme from snarkVM correctly. + let signature_string = AleoAuthentication::sign(&view_key, message.clone()).unwrap(); + let is_valid_signature = AleoAuthentication::verify(&address, &signature_string, message.clone()).unwrap(); + assert!(is_valid_signature); + } #[test] fn test_request_authentication() { diff --git a/setup1-verifier/src/verifier.rs b/setup1-verifier/src/verifier.rs index c75533fd..6451ffca 100644 --- a/setup1-verifier/src/verifier.rs +++ b/setup1-verifier/src/verifier.rs @@ -14,8 +14,8 @@ use phase1_coordinator::{ Participant, }; use setup_utils::calculate_hash; -use snarkos_toolkit::account::{Address, ViewKey}; -use zexe_algebra::{Bls12_377, BW6_761}; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; +use snarkvm_dpc::{testnet2::parameters::Testnet2Parameters, Address, ViewKey}; use chrono::Utc; use std::{fs, str::FromStr, sync::Arc, thread::sleep, time::Duration}; @@ -51,7 +51,7 @@ pub struct Verifier { pub(crate) coordinator_api_url: Url, /// The view key that will be used for server authentication - pub(crate) view_key: ViewKey, + pub(crate) view_key: ViewKey, /// The identity of the verifier pub(crate) verifier: Participant, @@ -87,8 +87,8 @@ impl Verifier { /// pub fn new( coordinator_api_url: Url, - view_key: ViewKey, - address: Address, + view_key: ViewKey, + address: Address, environment: Environment, tasks_storage_path: String, ) -> Result { @@ -535,7 +535,7 @@ mod tests { use rand_xorshift::XorShiftRng; use std::str::FromStr; - const TEST_VIEW_KEY: &str = "AViewKey1cWNDyYMjc9p78PnCderRx37b9pJr4myQqmmPeCfeiLf3"; + const TEST_VIEW_KEY: &str = "AViewKey1cWY7CaSDuwAEXoFki7Z1JELj7ksum8JxfZGpsPLHJACx"; pub fn test_verifier() -> Verifier { let environment: Testing = Testing::from(Parameters::TestCustom { @@ -617,7 +617,7 @@ mod tests { let address = Address::from_view_key(&verifier.view_key).unwrap(); // Check that the signature verifies - assert!(AleoAuthentication::verify(&address.to_string(), signature, message).unwrap()) + assert!(AleoAuthentication::verify(&address, signature, message).unwrap()) } #[test] diff --git a/setup2/Cargo.toml b/setup2/Cargo.toml index adaab9a2..6ee36de9 100644 --- a/setup2/Cargo.toml +++ b/setup2/Cargo.toml @@ -12,16 +12,13 @@ edition = "2018" phase2 = { path = "../phase2", default-features = false } setup-utils = { path = "../setup-utils", default-features = false } -snarkos-curves = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-curves", default-features = false } -snarkos-dpc = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-dpc", default-features = false } -snarkos-models = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-models", default-features = false } -snarkos-parameters = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-parameters", default-features = false } -snarkos-utilities = { git = "https://github.com/AleoHQ/snarkOS", rev = "801bf76", package = "snarkos-utilities" } - -zexe_algebra = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "algebra", version = "0.1.0", features = ["parallel", "full"] } -zexe_groth16 = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "groth16", version = "0.1.0", features = ["parallel"] } -zexe_r1cs_core = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "r1cs-core", version = "0.1.0" } -zexe_r1cs_std = { git = "https://github.com/scipr-lab/zexe", rev = "b24eda5", package = "r1cs-std", version = "0.1.0" } +snarkvm-algorithms = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f", default-features = false } +snarkvm-curves = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-dpc = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-fields = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-parameters = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-r1cs = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } +snarkvm-utilities = { git = "https://github.com/AleoHQ/snarkVM.git", rev = "707b06f" } anyhow = { version = "1.0.37" } cfg-if = { version = "0.1.10" } @@ -29,8 +26,8 @@ gumdrop = { version = "0.8.0", optional = true } hex = { version = "0.4.2" } hex-literal = { version = "0.3.1", optional = true } memmap = { version = "0.7.0", optional = true } -rand = { version = "0.7.3" } -rand_xorshift = { version = "0.2.0" } +rand = { version = "0.8" } +rand_chacha = { version = "0.3" } thiserror = { version = "1.0.22" } tracing-subscriber = { version = "0.2.3" } diff --git a/setup2/src/cli/contribute.rs b/setup2/src/cli/contribute.rs index b62d2cf8..3ecda41a 100644 --- a/setup2/src/cli/contribute.rs +++ b/setup2/src/cli/contribute.rs @@ -1,11 +1,11 @@ use phase2::{chunked_groth16::contribute as chunked_contribute, keypair::PublicKey}; use setup_utils::Result; -use zexe_algebra::{Bls12_377, BW6_761}; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; use gumdrop::Options; use memmap::MmapOptions; -use rand::Rng; +use rand::{CryptoRng, Rng}; use std::fs::OpenOptions; #[derive(Debug, Options, Clone)] @@ -28,7 +28,7 @@ pub struct ContributeOpts { pub is_inner: bool, } -pub fn contribute(opts: &ContributeOpts, rng: &mut R) -> Result<()> { +pub fn contribute(opts: &ContributeOpts, rng: &mut R) -> Result<()> { let file = OpenOptions::new() .read(true) .write(true) diff --git a/setup2/src/cli/new.rs b/setup2/src/cli/new.rs index 2ea4c1cd..156083cc 100644 --- a/setup2/src/cli/new.rs +++ b/setup2/src/cli/new.rs @@ -1,44 +1,22 @@ use phase2::parameters::{circuit_to_qap, MPCParameters}; use setup_utils::{log_2, CheckForCorrectness, Groth16Params, UseCompression}; - -use zexe_algebra::{Bls12_377, PairingEngine, BW6_761}; - -use gumdrop::Options; - -use snarkos_dpc::base_dpc::{ - inner_circuit::InnerCircuit, - instantiated::{ - CommitmentMerkleParameters, - Components, - InnerPairing, - InstantiatedDPC, - MerkleTreeCRH, - OuterPairing, - }, - outer_circuit::OuterCircuit, - parameters::SystemParameters, -}; -use snarkos_models::{ - algorithms::{MerkleParameters, CRH}, - curves::{Field, PairingEngine as AleoPairingengine}, - gadgets::r1cs::{ConstraintCounter, ConstraintSynthesizer}, - parameters::Parameters, -}; -use snarkos_parameters::LedgerMerkleTreeParameters; -use snarkos_utilities::{ - bytes::{FromBytes, ToBytes}, - to_bytes, +use snarkvm_algorithms::{SNARK, SRS}; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761, PairingEngine}; +use snarkvm_dpc::{ + prelude::*, + testnet2::parameters::{Testnet2DPC, Testnet2Parameters}, }; +use snarkvm_fields::Field; +use snarkvm_r1cs::{ConstraintCounter, ConstraintSynthesizer}; +use gumdrop::Options; use memmap::MmapOptions; use rand::SeedableRng; -use rand_xorshift::XorShiftRng; -use snarkos_dpc::base_dpc::{program::PrivateProgramInput, BaseDPCComponents, NoopCircuit}; -use snarkos_models::algorithms::SNARK; +use rand_chacha::ChaChaRng; use std::fs::OpenOptions; -type AleoInner = InnerPairing; -type AleoOuter = OuterPairing; +type AleoInner = ::InnerCurve; +type AleoOuter = ::OuterCurve; type ZexeInner = Bls12_377; type ZexeOuter = BW6_761; @@ -81,52 +59,39 @@ pub struct NewOpts { } pub fn new(opt: &NewOpts) -> anyhow::Result<()> { - let circuit_parameters = SystemParameters::::load()?; - - // Load the inner circuit & merkle params - let params_bytes = LedgerMerkleTreeParameters::load_bytes()?; - let params = ::Parameters::read(¶ms_bytes[..])?; - let merkle_tree_hash_parameters = ::H::from(params); - let merkle_params = From::from(merkle_tree_hash_parameters); - if opt.is_inner { - let circuit = InnerCircuit::blank(&circuit_parameters, &merkle_params); + let circuit = InnerCircuit::::blank(); generate_params::(opt, circuit) } else { - let rng = &mut XorShiftRng::from_seed([0u8; 16]); - let noop_program_snark_parameters = - InstantiatedDPC::generate_noop_program_snark_parameters(&circuit_parameters, rng)?; - let program_snark_proof = ::NoopProgramSNARK::prove( - &noop_program_snark_parameters.proving_key, - NoopCircuit::::blank(&circuit_parameters), + let rng = &mut ChaChaRng::from_seed([0u8; 32]); // TODO (howardwu): CRITICAL - Someone put this here. This is not safe! + let dpc = Testnet2DPC::load(false)?; + let noop_program_snark_parameters = dpc.noop_program.to_snark_parameters(); + let program_snark_proof = ::ProgramSNARK::prove( + &noop_program_snark_parameters.0, + &NoopCircuit::::blank(), rng, )?; - let private_program_input = PrivateProgramInput { - verification_key: to_bytes![noop_program_snark_parameters.verification_key.clone()]?, - proof: to_bytes![program_snark_proof]?, + let private_program_input = Execution::<::ProgramSNARK> { + verifying_key: noop_program_snark_parameters.1.clone(), + proof: program_snark_proof, }; - let inner_snark_parameters = ::InnerSNARK::setup( - InnerCircuit::blank(&circuit_parameters, &merkle_params), - rng, + let inner_snark_parameters = ::InnerSNARK::setup( + &InnerCircuit::::blank(), + &mut SRS::CircuitSpecific(rng), )?; - let inner_snark_vk: <::InnerSNARK as SNARK>::VerificationParameters = + let inner_snark_vk: <::InnerSNARK as SNARK>::VerifyingKey = inner_snark_parameters.1.clone().into(); - let inner_snark_proof = ::InnerSNARK::prove( + let inner_snark_proof = ::InnerSNARK::prove( &inner_snark_parameters.0, - InnerCircuit::blank(&circuit_parameters, &merkle_params), + &InnerCircuit::::blank(), rng, )?; - let circuit = OuterCircuit::blank( - &circuit_parameters, - &merkle_params, - &inner_snark_vk, - &inner_snark_proof, - &private_program_input, - ); + let circuit = + OuterCircuit::::blank(inner_snark_vk, inner_snark_proof, private_program_input); generate_params::(opt, circuit) } } @@ -134,12 +99,19 @@ pub fn new(opt: &NewOpts) -> anyhow::Result<()> { /// Returns the number of powers required for the Phase 2 ceremony /// = log2(aux + inputs + constraints) fn ceremony_size>(circuit: &C) -> usize { - let mut counter = ConstraintCounter::new(); + let mut counter = ConstraintCounter { + num_public_variables: 0, + num_private_variables: 0, + num_constraints: 0, + }; circuit .clone() .generate_constraints(&mut counter) .expect("could not calculate number of required constraints"); - let phase2_size = std::cmp::max(counter.num_constraints, counter.num_aux + counter.num_inputs + 1); + let phase2_size = std::cmp::max( + counter.num_constraints, + counter.num_private_variables + counter.num_public_variables + 1, + ); let power = log_2(phase2_size) as u32; // get the nearest power of 2 @@ -150,7 +122,7 @@ fn ceremony_size>(circuit: &C) -> } } -pub fn generate_params>( +pub fn generate_params>( opt: &NewOpts, circuit: C, ) -> anyhow::Result<()> { diff --git a/setup2/src/cli/verify.rs b/setup2/src/cli/verify.rs index e1873202..44ca6743 100644 --- a/setup2/src/cli/verify.rs +++ b/setup2/src/cli/verify.rs @@ -1,7 +1,7 @@ use phase2::chunked_groth16::verify as chunked_verify; use setup_utils::Result; -use zexe_algebra::{Bls12_377, BW6_761}; +use snarkvm_curves::{bls12_377::Bls12_377, bw6_761::BW6_761}; use gumdrop::Options; use memmap::MmapOptions;