From 421d6be99452a1bf1b3d9e7f913ae222eb956172 Mon Sep 17 00:00:00 2001 From: David Craven Date: Wed, 14 Oct 2020 17:05:08 +0200 Subject: [PATCH 1/2] Seal api. --- Cargo.lock | 2153 ++++++++++++++++++++++++++++++++++++++++++++--- Cargo.toml | 2 +- post/Cargo.toml | 15 + post/src/lib.rs | 158 ++++ 4 files changed, 2233 insertions(+), 95 deletions(-) create mode 100644 post/Cargo.toml create mode 100644 post/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index ea314cd..e430e45 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,20 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +[[package]] +name = "addr2line" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" + [[package]] name = "aead" version = "0.3.2" @@ -9,14 +24,25 @@ dependencies = [ "generic-array 0.14.4", ] +[[package]] +name = "aes" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9" +dependencies = [ + "aes-soft 0.3.3", + "aesni 0.6.0", + "block-cipher-trait", +] + [[package]] name = "aes" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7001367fde4c768a19d1029f0a8be5abd9308e1119846d5bd9ad26297b8faf5" dependencies = [ - "aes-soft", - "aesni", + "aes-soft 0.4.0", + "aesni 0.7.0", "block-cipher", ] @@ -27,12 +53,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86f5007801316299f922a6198d1d09a0bae95786815d066d5880d13f7c45ead1" dependencies = [ "aead", - "aes", + "aes 0.4.0", "block-cipher", "ghash", "subtle 2.2.3", ] +[[package]] +name = "aes-soft" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d" +dependencies = [ + "block-cipher-trait", + "byteorder 1.3.4", + "opaque-debug 0.2.3", +] + [[package]] name = "aes-soft" version = "0.4.0" @@ -40,7 +77,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4925647ee64e5056cf231608957ce7c81e12d6d6e316b9ce1404778cc1d35fa7" dependencies = [ "block-cipher", - "byteorder", + "byteorder 1.3.4", + "opaque-debug 0.2.3", +] + +[[package]] +name = "aesni" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100" +dependencies = [ + "block-cipher-trait", "opaque-debug 0.2.3", ] @@ -59,6 +106,9 @@ name = "ahash" version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" +dependencies = [ + "const-random", +] [[package]] name = "aho-corasick" @@ -69,6 +119,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "ansi_term" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +dependencies = [ + "winapi 0.3.9", +] + [[package]] name = "anyhow" version = "1.0.32" @@ -255,18 +314,121 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +[[package]] +name = "backtrace" +version = "0.3.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707b586e0e2f247cbde68cdd2c3ce69ea7b7be43e1c5b426e37c9319c4b9838e" +dependencies = [ + "addr2line", + "cfg-if 1.0.0", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + [[package]] name = "base-x" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b20b618342cf9891c292c4f5ac2cde7287cc5c87e87e9c769d617793607dec1" +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "bellperson" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9655742fc4c6f41f1412dba38342af29ef2a4ad05ba44613785b0d34edff0382" +dependencies = [ + "ahash", + "bit-vec", + "blake2s_simd", + "byteorder 1.3.4", + "crossbeam-channel", + "ff-cl-gen", + "fff", + "fil-ocl", + "fs2", + "groupy", + "lazy_static", + "log", + "memmap", + "num_cpus", + "paired", + "rand 0.7.3", + "rand_core 0.5.1", + "rayon", + "thiserror", +] + +[[package]] +name = "bincode" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d" +dependencies = [ + "byteorder 1.3.4", + "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", + "quote", + "regex", + "rustc-hash", + "shlex", + "which", +] + +[[package]] +name = "bit-vec" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3" + [[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +[[package]] +name = "bitintr" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ba5a5c4df8ac8673f22698f443ef1ce3853d7f22d5a15ebf66b9a7553b173dd" + +[[package]] +name = "bitvec" +version = "0.17.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" +dependencies = [ + "either", + "radium", +] + [[package]] name = "blake2" version = "0.9.0" @@ -274,7 +436,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84ce5b6108f8e154604bd4eb76a2f726066c3464d5a552a4229262a18c9bb471" dependencies = [ "byte-tools", - "byteorder", + "byteorder 1.3.4", "crypto-mac 0.8.0", "digest 0.9.0", "opaque-debug 0.2.3", @@ -311,7 +473,7 @@ dependencies = [ "arrayref", "arrayvec", "cc", - "cfg-if", + "cfg-if 0.1.10", "constant_time_eq", "crypto-mac 0.8.0", "digest 0.9.0", @@ -325,7 +487,7 @@ checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ "block-padding 0.1.5", "byte-tools", - "byteorder", + "byteorder 1.3.4", "generic-array 0.12.3", ] @@ -348,6 +510,25 @@ dependencies = [ "generic-array 0.14.4", ] +[[package]] +name = "block-cipher-trait" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" +dependencies = [ + "generic-array 0.12.3", +] + +[[package]] +name = "block-modes" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31aa8410095e39fdb732909fb5730a48d5bd7c2e3cd76bd1b07b3dbea130c529" +dependencies = [ + "block-cipher-trait", + "block-padding 0.1.5", +] + [[package]] name = "block-padding" version = "0.1.5" @@ -389,12 +570,24 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" +[[package]] +name = "byte-slice-cast" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3" + [[package]] name = "byte-tools" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +[[package]] +name = "byteorder" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" + [[package]] name = "byteorder" version = "1.3.4" @@ -434,12 +627,27 @@ version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381" +[[package]] +name = "cexpr" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" +dependencies = [ + "nom", +] + [[package]] name = "cfg-if" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + [[package]] name = "chacha20" version = "0.4.3" @@ -463,6 +671,54 @@ dependencies = [ "zeroize", ] +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits 0.2.12", + "time", + "winapi 0.3.9", +] + +[[package]] +name = "cl-sys" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8573fa3ff8acd6c49e8e113296c54277e82376b96c6ca6307848632cce38e44" +dependencies = [ + "libc", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + [[package]] name = "cloudabi" version = "0.0.3" @@ -490,12 +746,94 @@ dependencies = [ "cache-padded", ] +[[package]] +name = "config" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b076e143e1d9538dde65da30f8481c2a6c44040edb8e02b9bf1351edb92ce3" +dependencies = [ + "lazy_static", + "nom", + "serde", + "toml", +] + +[[package]] +name = "console" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c0994e656bba7b922d8dd1245db90672ffb701e684e45be58f20719d69abc5a" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "regex", + "terminal_size", + "termios", + "unicode-width", + "winapi 0.3.9", + "winapi-util", +] + +[[package]] +name = "console" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b1aacfaffdbff75be81c15a399b4bedf78aaefe840e8af1d299ac2ade885d2" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "regex", + "terminal_size", + "termios", + "unicode-width", + "winapi 0.3.9", + "winapi-util", +] + +[[package]] +name = "const-random" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02dc82c12dc2ee6e1ded861cf7d582b46f66f796d1b6c93fa28b911ead95da02" +dependencies = [ + "const-random-macro", + "proc-macro-hack", +] + +[[package]] +name = "const-random-macro" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc757bbb9544aa296c2ae00c679e81f886b37e28e59097defe0cf524306f6685" +dependencies = [ + "getrandom 0.2.0", + "proc-macro-hack", +] + [[package]] name = "constant_time_eq" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "core-foundation" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" + [[package]] name = "cpuid-bool" version = "0.1.2" @@ -508,7 +846,42 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", +] + +[[package]] +name = "crossbeam" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e" +dependencies = [ + "cfg-if 0.1.10", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" +dependencies = [ + "crossbeam-utils", + "maybe-uninit", +] + +[[package]] +name = "crossbeam-deque" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", + "maybe-uninit", ] [[package]] @@ -518,7 +891,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 0.1.10", "crossbeam-utils", "lazy_static", "maybe-uninit", @@ -526,6 +899,17 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "crossbeam-queue" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" +dependencies = [ + "cfg-if 0.1.10", + "crossbeam-utils", + "maybe-uninit", +] + [[package]] name = "crossbeam-utils" version = "0.7.2" @@ -533,7 +917,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 0.1.10", "lazy_static", ] @@ -563,13 +947,23 @@ dependencies = [ "subtle 2.2.3", ] +[[package]] +name = "ctor" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fbaabec2c953050352311293be5c6aba8e141ba19d6811862b232d6fd020484" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "cuckoofilter" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18" dependencies = [ - "byteorder", + "byteorder 1.3.4", "fnv", "rand 0.7.3", ] @@ -580,7 +974,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5" dependencies = [ - "byteorder", + "byteorder 1.3.4", "digest 0.8.1", "rand_core 0.5.1", "subtle 2.2.3", @@ -593,7 +987,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307" dependencies = [ - "byteorder", + "byteorder 1.3.4", "digest 0.9.0", "rand_core 0.5.1", "subtle 2.2.3", @@ -628,6 +1022,23 @@ dependencies = [ "syn", ] +[[package]] +name = "dialoguer" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4aa86af7b19b40ef9cbef761ed411a49f0afa06b7b6dcd3dfe2f96a3c546138" +dependencies = [ + "console 0.11.3", + "lazy_static", + "tempfile", +] + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + [[package]] name = "digest" version = "0.8.1" @@ -652,10 +1063,16 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" dependencies = [ - "byteorder", + "byteorder 1.3.4", "quick-error", ] +[[package]] +name = "dtoa" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b" + [[package]] name = "ed25519" version = "1.0.1" @@ -685,6 +1102,30 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f" +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a51b8cf747471cb9499b6d59e59b0444f4c90eba8968c4e44874e92b5b64ace2" +dependencies = [ + "cfg-if 0.1.10", +] + +[[package]] +name = "enum_primitive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180" +dependencies = [ + "num-traits 0.1.43", +] + [[package]] name = "env_logger" version = "0.7.1" @@ -698,12 +1139,44 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_proxy" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5019be18538406a43b5419a5501461f0c8b49ea7dfda0cfc32f4e51fc44be1" +dependencies = [ + "log", + "url", +] + [[package]] name = "event-listener" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cd41440ae7e4734bbd42302f63eaba892afc93a3912dad84006247f0dedb0e" +[[package]] +name = "failure" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +dependencies = [ + "backtrace", + "failure_derive", +] + +[[package]] +name = "failure_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "fake-simd" version = "0.1.2" @@ -716,18 +1189,245 @@ version = "1.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c85295147490b8fcf2ea3d104080a105a8b2c63f9c319e82c02d8e952388919" +[[package]] +name = "ff-cl-gen" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8350e4691067d53e0eb3ca652d84112540e426d7962e9ac1a582c1af1af1edf6" +dependencies = [ + "fff", + "itertools 0.8.2", + "num-bigint 0.2.6", +] + +[[package]] +name = "fff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2544d325b4870bd803d371a7df3c6845e84dcfcb6ebe7ffcae0eac6d5d676133" +dependencies = [ + "byteorder 1.3.4", + "cc", + "fff_derive", + "lazy_static", + "rand_core 0.5.1", +] + +[[package]] +name = "fff_derive" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "844b389fbe323d3b35ed1b3b119e75b11dca536d291d31342acea5b4c8984558" +dependencies = [ + "num-bigint 0.2.6", + "num-integer", + "num-traits 0.2.12", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fil-blst" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe1006774dcb6e0656cdab321651ded5cbaa2c0a6eeb27972f980973b24cbe4" +dependencies = [ + "bindgen", + "cc", + "fff", + "glob", + "groupy", + "paired", +] + +[[package]] +name = "fil-ocl" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae7dbdc8d931f2cc59e41062ea9caa57a57e0e05a8f844d62d303191f4cc4283" +dependencies = [ + "failure", + "fil-ocl-core", + "futures 0.1.30", + "nodrop", + "num-traits 0.2.12", + "qutex", +] + +[[package]] +name = "fil-ocl-core" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd0aa5895d05824d7eaa38b999c91e9071acb74b304488220e8f8bb555d1ad1" +dependencies = [ + "bitflags", + "cl-sys", + "enum_primitive", + "failure", + "num-complex", + "num-traits 0.2.12", + "ocl-core-vector", + "rustc_version 0.1.7", +] + +[[package]] +name = "fil-sapling-crypto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca2b7386602eb7eaa95b74a7c9acf152d06a28e4ce6d0e725035b4f628ff7" +dependencies = [ + "bellperson", + "blake2b_simd", + "blake2s_simd", + "byteorder 1.3.4", + "cc", + "fff", + "lazy_static", + "paired", + "rand 0.7.3", + "rand_core 0.5.1", +] + +[[package]] +name = "fil_logger" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c17f555ec2b25672bd6906ca04cedda3a3caa211c420c9279bb1e71e6a192c5" +dependencies = [ + "atty", + "flexi_logger", + "log", +] + +[[package]] +name = "filecoin-proofs" +version = "5.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1d988c8dbe7eb2ed7a54ac336ea10f6e529dc1866370e32f9f3d34b790e4163" +dependencies = [ + "anyhow", + "bellperson", + "bincode", + "bitintr", + "bitvec", + "blake2b_simd", + "blake2s_simd", + "byteorder 1.3.4", + "chrono", + "clap", + "dialoguer", + "env_proxy", + "fff", + "fil-sapling-crypto", + "fil_logger", + "flate2", + "generic-array 0.13.2", + "groupy", + "hex", + "humansize", + "indicatif", + "itertools 0.9.0", + "lazy_static", + "log", + "memmap", + "merkletree", + "paired", + "pbr", + "phase21", + "rand 0.7.3", + "rand_chacha", + "rand_xorshift", + "rayon", + "regex", + "reqwest", + "serde", + "serde_json", + "sha2 0.9.1", + "simplelog", + "storage-proofs", + "structopt", + "tar", + "typenum", +] + +[[package]] +name = "filecoin-proofs-api" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0cd82d2ae0577885bd03f742d627c6ffd424294a1163db172b9382715d382d" +dependencies = [ + "anyhow", + "bincode", + "filecoin-proofs", + "paired", + "serde", +] + +[[package]] +name = "filetime" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed85775dcc68644b5c950ac06a2b23768d3bc9390464151aaf27136998dcf9e" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "redox_syscall", + "winapi 0.3.9", +] + [[package]] name = "fixedbitset" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" +[[package]] +name = "flate2" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da80be589a72651dcda34d8b35bcdc9b7254ad06325611074d9cc0fbb19f60ee" +dependencies = [ + "cfg-if 0.1.10", + "crc32fast", + "libc", + "miniz_oxide", +] + +[[package]] +name = "flexi_logger" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "515fb7f6541dafe542c87c12a7ab6a52190cccb6c348b5951ef62d9978189ae8" +dependencies = [ + "chrono", + "glob", + "log", + "regex", + "yansi", +] + [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "fs2" version = "0.4.3" @@ -744,6 +1444,28 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "futures" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed" + [[package]] name = "futures" version = "0.3.5" @@ -868,7 +1590,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b" dependencies = [ "bytes", - "futures", + "futures 0.3.5", "memchr", "pin-project", ] @@ -879,7 +1601,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" dependencies = [ - "byteorder", + "byteorder 1.3.4", ] [[package]] @@ -897,6 +1619,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "generic-array" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ed1e761351b56f54eb9dcd0cfaca9fd0daecf93918e1cfc01c8a3d26ee7adcd" +dependencies = [ + "typenum", +] + [[package]] name = "generic-array" version = "0.14.4" @@ -935,9 +1666,20 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4" +dependencies = [ + "cfg-if 0.1.10", "libc", - "wasi", + "wasi 0.9.0+wasi-snapshot-preview1", ] [[package]] @@ -949,6 +1691,18 @@ dependencies = [ "polyval", ] +[[package]] +name = "gimli" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724" + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + [[package]] name = "gloo-timers" version = "0.2.1" @@ -962,6 +1716,37 @@ dependencies = [ "web-sys", ] +[[package]] +name = "groupy" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d38f1bec17d75a7c30b754cd74db6e7cb5927529021ced14fbd622411c04d8b" +dependencies = [ + "fff", + "rand 0.7.3", + "rand_xorshift", + "thiserror", +] + +[[package]] +name = "h2" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "hashbrown" version = "0.8.2" @@ -990,6 +1775,22 @@ dependencies = [ "libc", ] +[[package]] +name = "hex" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" + +[[package]] +name = "hkdf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fa08a006102488bd9cd5b8013aabe84955cf5ae22e304c2caf655b633aefae3" +dependencies = [ + "digest 0.8.1", + "hmac", +] + [[package]] name = "hmac" version = "0.7.1" @@ -1011,6 +1812,45 @@ dependencies = [ "hmac", ] +[[package]] +name = "http" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "httparse" +version = "1.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" + +[[package]] +name = "httpdate" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" + +[[package]] +name = "humansize" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e" + [[package]] name = "humantime" version = "1.3.0" @@ -1020,6 +1860,43 @@ dependencies = [ "quick-error", ] +[[package]] +name = "hyper" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f3afcfae8af5ad0576a31e768415edb627824129e8e5a29b8bfccb2f234e835" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-tls", +] + [[package]] name = "idna" version = "0.2.0" @@ -1041,12 +1918,33 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "indicatif" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a68371cf417889c9d7f98235b7102ea7c54fc59bcbd22f3dea785be9d27e40" +dependencies = [ + "console 0.12.0", + "lazy_static", + "number_prefix", + "regex", +] + [[package]] name = "instant" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485" +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + [[package]] name = "ip_network" version = "0.3.4" @@ -1061,7 +1959,7 @@ dependencies = [ "async-trait", "env_logger", "fnv", - "futures", + "futures 0.3.5", "ipfs-embed-core", "ipfs-embed-db", "ipfs-embed-net", @@ -1076,7 +1974,7 @@ version = "0.8.0" dependencies = [ "anyhow", "async-trait", - "futures", + "futures 0.3.5", "libipld", "libp2p-bitswap", "libp2p-core", @@ -1092,7 +1990,7 @@ dependencies = [ "cuckoofilter", "env_logger", "fnv", - "futures", + "futures 0.3.5", "ipfs-embed-core", "libipld", "log", @@ -1107,7 +2005,7 @@ version = "0.8.0" dependencies = [ "async-std", "fnv", - "futures", + "futures 0.3.5", "ip_network", "ipfs-embed-core", "libp2p", @@ -1117,6 +2015,17 @@ dependencies = [ "thiserror", ] +[[package]] +name = "ipfs-embed-post" +version = "0.1.0" +dependencies = [ + "env_logger", + "filecoin-proofs-api", + "libipld", + "libp2p", + "tempfile", +] + [[package]] name = "ipnet" version = "2.3.0" @@ -1132,6 +2041,21 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" + [[package]] name = "js-sys" version = "0.3.44" @@ -1147,6 +2071,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + [[package]] name = "kv-log-macro" version = "1.0.7" @@ -1162,6 +2096,25 @@ 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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616" +dependencies = [ + "arrayvec", + "bitflags", + "cfg-if 0.1.10", + "ryu", + "static_assertions", +] + [[package]] name = "libc" version = "0.2.77" @@ -1191,7 +2144,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dacf11437dddf1dbcb38cc9f97454a6a868c2c32f430c43b3c946958c1f295" dependencies = [ - "byteorder", + "byteorder 1.3.4", "libipld-core", "thiserror", ] @@ -1218,6 +2171,16 @@ dependencies = [ "libipld-core", ] +[[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 = "libp2p" version = "0.28.1" @@ -1226,7 +2189,7 @@ checksum = "571f5a4604c1a40d75651da141dfde29ad15329f537a779528803297d2220274" dependencies = [ "atomic", "bytes", - "futures", + "futures 0.3.5", "lazy_static", "libp2p-core", "libp2p-core-derive", @@ -1257,7 +2220,7 @@ checksum = "6ac3c3eece30baa63e9162e8c799b45d43043d6f8f7ecccaa53de9a9c86ba2f7" dependencies = [ "async-trait", "fnv", - "futures", + "futures 0.3.5", "libipld", "libp2p", "log", @@ -1276,7 +2239,7 @@ dependencies = [ "ed25519-dalek", "either", "fnv", - "futures", + "futures 0.3.5", "futures-timer", "lazy_static", "libsecp256k1", @@ -1315,7 +2278,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cf319822e08dd65c8e060d2354e9f952895bbc433f5706c75ed010c152aee5e" dependencies = [ - "futures", + "futures 0.3.5", "libp2p-core", "log", ] @@ -1326,7 +2289,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56396ee63aa9164eacf40c2c5d2bda8c4133c2f57e1b0425d51d3a4e362583b1" dependencies = [ - "futures", + "futures 0.3.5", "libp2p-core", "libp2p-swarm", "log", @@ -1346,7 +2309,7 @@ dependencies = [ "bytes", "either", "fnv", - "futures", + "futures 0.3.5", "futures_codec", "libp2p-core", "libp2p-swarm", @@ -1373,7 +2336,7 @@ dependencies = [ "data-encoding", "dns-parser", "either", - "futures", + "futures 0.3.5", "lazy_static", "libp2p-core", "libp2p-swarm", @@ -1393,7 +2356,7 @@ checksum = "8a73a799cc8410b36e40b8f4c4b6babbcb9efd3727111bf517876e4acfa612d3" dependencies = [ "bytes", "fnv", - "futures", + "futures 0.3.5", "futures_codec", "libp2p-core", "log", @@ -1409,7 +2372,7 @@ checksum = "6ef6c490042f549fb1025f2892dfe6083d97a77558f450c1feebe748ca9eb15a" dependencies = [ "bytes", "curve25519-dalek 2.1.0", - "futures", + "futures 0.3.5", "lazy_static", "libp2p-core", "log", @@ -1429,7 +2392,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad063c21dfcea4518ac9e8bd4119d33a5b26c41e674f602f41f05617a368a5c8" dependencies = [ - "futures", + "futures 0.3.5", "libp2p-core", "libp2p-swarm", "log", @@ -1446,7 +2409,7 @@ checksum = "9c0c9e8a4cd69d97e9646c54313d007512f411aba8c5226cfcda16df6a6e84a3" dependencies = [ "async-trait", "bytes", - "futures", + "futures 0.3.5", "libp2p-core", "libp2p-swarm", "log", @@ -1465,7 +2428,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7193e444210132237b81b755ec7fe53f1c4bd2f53cf719729b94c0c72eb6eaa1" dependencies = [ "either", - "futures", + "futures 0.3.5", "libp2p-core", "log", "rand 0.7.3", @@ -1481,7 +2444,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44f42ec130d7a37a7e47bf4398026b7ad9185c08ed26972e2720f8b94112796f" dependencies = [ "async-std", - "futures", + "futures 0.3.5", "futures-timer", "get_if_addrs", "ipnet", @@ -1496,7 +2459,7 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "781d9b9f043dcdabc40640807125368596b849fd4d96cdca2dcf052fdf6f33fd" dependencies = [ - "futures", + "futures 0.3.5", "libp2p-core", "parking_lot 0.11.0", "thiserror", @@ -1543,7 +2506,7 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", ] [[package]] @@ -1555,6 +2518,16 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "mapr" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a28a55dbc005b2f6f123c4058933d57add373d362f6fd3a76aab4fe6973500" +dependencies = [ + "libc", + "winapi 0.3.9", +] + [[package]] name = "matches" version = "0.1.8" @@ -1573,6 +2546,16 @@ version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" +[[package]] +name = "memmap" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" +dependencies = [ + "libc", + "winapi 0.3.9", +] + [[package]] name = "memoffset" version = "0.5.5" @@ -1582,6 +2565,41 @@ dependencies = [ "autocfg", ] +[[package]] +name = "merkletree" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2202d6eb93a775e0a619fc08924b341d0cf12d6e0f064ee52d24311de45b925b" +dependencies = [ + "anyhow", + "arrayref", + "log", + "memmap", + "positioned-io", + "rand 0.7.3", + "rayon", + "serde", + "tempdir", + "tempfile", + "typenum", +] + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "mime_guess" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" +dependencies = [ + "mime", + "unicase", +] + [[package]] name = "minicbor" version = "0.5.1" @@ -1602,6 +2620,47 @@ dependencies = [ "syn", ] +[[package]] +name = "miniz_oxide" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" +dependencies = [ + "adler", + "autocfg", +] + +[[package]] +name = "mio" +version = "0.6.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "miow" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", +] + [[package]] name = "multibase" version = "0.8.0" @@ -1629,60 +2688,219 @@ dependencies = [ ] [[package]] -name = "multimap" -version = "0.8.2" +name = "multimap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333" + +[[package]] +name = "multistream-select" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9157e87afbc2ef0d84cc0345423d715f445edde00141c93721c162de35a05e5" +dependencies = [ + "bytes", + "futures 0.3.5", + "log", + "pin-project", + "smallvec", + "unsigned-varint 0.4.0", +] + +[[package]] +name = "names" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" +dependencies = [ + "rand 0.3.23", +] + +[[package]] +name = "native-tls" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nb-connect" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e847c76b390f44529c2071ef06d0b52fbb4bdb04cc8987a5cfa63954c000abca" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "neptune" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34470665d9fec1660e24ab0890a52a7ddf3c7e27a7cf0cf558799f0be7e18d5" +dependencies = [ + "bellperson", + "blake2s_simd", + "byteorder 1.3.4", + "fff", + "generic-array 0.13.2", + "lazy_static", + "log", + "neptune-triton", + "paired", +] + +[[package]] +name = "neptune-triton" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c06d221737d1bc51247c5e82865a908fa4e821347933fa34de1a5adee6511ab" +dependencies = [ + "cc", +] + +[[package]] +name = "net2" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "5.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" +dependencies = [ + "lexical-core", + "memchr", + "version_check", +] + +[[package]] +name = "num" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e" +dependencies = [ + "num-bigint 0.1.44", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits 0.2.12", +] + +[[package]] +name = "num-bigint" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1" +dependencies = [ + "num-integer", + "num-traits 0.2.12", + "rand 0.4.6", + "rustc-serialize", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits 0.2.12", +] [[package]] -name = "multistream-select" -version = "0.8.2" +name = "num-complex" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9157e87afbc2ef0d84cc0345423d715f445edde00141c93721c162de35a05e5" +checksum = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656" dependencies = [ - "bytes", - "futures", - "log", - "pin-project", - "smallvec", - "unsigned-varint 0.4.0", + "num-traits 0.2.12", + "rustc-serialize", ] [[package]] -name = "names" -version = "0.11.0" +name = "num-integer" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" +checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" dependencies = [ - "rand 0.3.23", + "autocfg", + "num-traits 0.2.12", ] [[package]] -name = "nb-connect" -version = "1.0.0" +name = "num-iter" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e847c76b390f44529c2071ef06d0b52fbb4bdb04cc8987a5cfa63954c000abca" +checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f" dependencies = [ - "libc", - "winapi 0.3.9", + "autocfg", + "num-integer", + "num-traits 0.2.12", ] [[package]] -name = "net2" -version = "0.2.34" +name = "num-rational" +version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" +checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e" dependencies = [ - "cfg-if", - "libc", - "winapi 0.3.9", + "num-bigint 0.1.44", + "num-integer", + "num-traits 0.2.12", + "rustc-serialize", ] [[package]] -name = "nohash-hasher" -version = "0.2.0" +name = "num-traits" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" +checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" +dependencies = [ + "num-traits 0.2.12", +] + +[[package]] +name = "num-traits" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +dependencies = [ + "autocfg", +] [[package]] name = "num_cpus" @@ -1694,6 +2912,27 @@ dependencies = [ "libc", ] +[[package]] +name = "number_prefix" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a" + +[[package]] +name = "object" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37fd5004feb2ce328a52b0b3d01dbf4ffff72583493900ed15f22d4111c51693" + +[[package]] +name = "ocl-core-vector" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4072920739958adeec5abedec51af70febc58f7fff0601aaa0827c1f3c8fefd" +dependencies = [ + "num", +] + [[package]] name = "once_cell" version = "1.4.1" @@ -1712,6 +2951,74 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "openssl" +version = "0.10.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4" +dependencies = [ + "bitflags", + "cfg-if 0.1.10", + "foreign-types", + "lazy_static", + "libc", + "openssl-sys", +] + +[[package]] +name = "openssl-probe" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" + +[[package]] +name = "openssl-src" +version = "111.12.0+1.1.1h" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "858a4132194f8570a7ee9eb8629e85b23cbc4565f2d4a162e87556e5956abf61" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de" +dependencies = [ + "autocfg", + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "output_vt100" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "paired" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ae957e986289a03f1407ce9c88f19e8280e8106d5498a364e3e5b60b1b9fc" +dependencies = [ + "blake2b_simd", + "byteorder 1.3.4", + "digest 0.8.1", + "fff", + "groupy", + "hkdf", + "rand_core 0.5.1", + "serde", +] + [[package]] name = "parity-multiaddr" version = "0.9.2" @@ -1720,7 +3027,7 @@ checksum = "2165a93382a93de55868dcbfa11e4a8f99676a9164eee6a2b4a9479ad319c257" dependencies = [ "arrayref", "bs58", - "byteorder", + "byteorder 1.3.4", "data-encoding", "multihash", "percent-encoding", @@ -1763,7 +3070,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "cloudabi 0.0.3", "libc", "redox_syscall", @@ -1777,7 +3084,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "cloudabi 0.1.0", "instant", "libc", @@ -1786,6 +3093,24 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "pbr" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74333e3d1d8bced07fd0b8599304825684bcdb4a1fcc6fa6a470e6e08cefd254" +dependencies = [ + "crossbeam-channel", + "libc", + "time", + "winapi 0.3.9", +] + +[[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" @@ -1802,6 +3127,26 @@ dependencies = [ "indexmap", ] +[[package]] +name = "phase21" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0f11d2cea752b0c881f90b7c19208af1d08bb6d4e7cebe97c98af5ed0e3cd57" +dependencies = [ + "bellperson", + "blake2b_simd", + "byteorder 1.3.4", + "crossbeam", + "fff", + "groupy", + "log", + "num_cpus", + "paired", + "rand 0.7.3", + "rand_chacha", + "rayon", +] + [[package]] name = "pin-project" version = "0.4.23" @@ -1834,13 +3179,19 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkg-config" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" + [[package]] name = "polling" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0720e0b9ea9d52451cf29d3413ba8a9303f8815d9d9653ef70e03ff73e65566" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "log", "wepoll-sys-stjepang", @@ -1862,16 +3213,40 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9a50142b55ab3ed0e9f68dfb3709f1d90d29da24e91033f28b96330643107dc" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "universal-hash", ] +[[package]] +name = "positioned-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c405a565f48a728dbb07fa1770e30791b0fa3e6344c1e5615225ce84049354d6" +dependencies = [ + "byteorder 0.5.3", + "kernel32-sys", + "libc", + "winapi 0.2.8", +] + [[package]] name = "ppv-lite86" version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" +[[package]] +name = "pretty_assertions" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f81e1644e1b54f5a68959a29aa86cde704219254669da328ecfdf6a1f09d427" +dependencies = [ + "ansi_term", + "ctor", + "difference", + "output_vt100", +] + [[package]] name = "proc-macro-crate" version = "0.1.5" @@ -1944,7 +3319,7 @@ checksum = "02b10678c913ecbd69350e8535c3aef91a8676c0773fc1d7b95cdd196d7f2f26" dependencies = [ "bytes", "heck", - "itertools", + "itertools 0.8.2", "log", "multimap", "petgraph", @@ -1961,7 +3336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72" dependencies = [ "anyhow", - "itertools", + "itertools 0.8.2", "proc-macro2", "quote", "syn", @@ -1992,6 +3367,22 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "qutex" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "084325f9fb9f2c23e4c225be1a4799583badd1666c3c6bbc67bacc6147f20ba1" +dependencies = [ + "crossbeam", + "futures 0.1.30", +] + +[[package]] +name = "radium" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" + [[package]] name = "rand" version = "0.3.23" @@ -2021,7 +3412,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom", + "getrandom 0.1.14", "libc", "rand_chacha", "rand_core 0.5.1", @@ -2059,7 +3450,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom", + "getrandom 0.1.14", ] [[package]] @@ -2071,6 +3462,40 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xorshift" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rayon" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf6960dc9a5b4ee8d3e4c5787b4a112a8818e0290a42ff664ad60692fdf2032" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c4fec834fb6e6d2dd5eece3c7b432a52f0ba887cf40e595190c4107edc08bf" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "lazy_static", + "num_cpus", +] + [[package]] name = "rdrand" version = "0.4.0" @@ -2113,6 +3538,41 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "reqwest" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9eaa17ac5d7b838b7503d118fa16ad88f440498bf9ffe5424e621f93190d61e" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "lazy_static", + "log", + "mime", + "mime_guess", + "native-tls", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_urlencoded", + "tokio", + "tokio-tls", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + [[package]] name = "ring" version = "0.16.15" @@ -2128,19 +3588,46 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "rustc-demangle" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2610b7f643d18c87dff3b489950269617e6601a51f1f05aa5daefee36f64f0b" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustc-hex" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" +[[package]] +name = "rustc-serialize" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" + +[[package]] +name = "rustc_version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084" +dependencies = [ + "semver 0.1.20", +] + [[package]] name = "rustc_version" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" dependencies = [ - "semver", + "semver 0.9.0", ] [[package]] @@ -2149,17 +3636,62 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures", + "futures 0.3.5", "pin-project", "static_assertions", ] +[[package]] +name = "ryu" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" + +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi 0.3.9", +] + [[package]] name = "scopeguard" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "security-framework" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac" + [[package]] name = "semver" version = "0.9.0" @@ -2173,13 +3705,50 @@ dependencies = [ name = "semver-parser" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.116" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.116" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f630a6370fd8e457873b4bd2ffdae75408bc291ba72be773772a4c2a065d9ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95" +dependencies = [ + "itoa", + "ryu", + "serde", +] [[package]] -name = "serde" -version = "1.0.116" +name = "serde_urlencoded" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5" +checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97" +dependencies = [ + "dtoa", + "itoa", + "serde", + "url", +] [[package]] name = "sha-1" @@ -2188,7 +3757,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770" dependencies = [ "block-buffer 0.9.0", - "cfg-if", + "cfg-if 0.1.10", "cpuid-bool", "digest 0.9.0", "opaque-debug 0.3.0", @@ -2213,12 +3782,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2933378ddfeda7ea26f48c555bdad8bb446bf8a3d17832dc83e380d444cfb8c1" dependencies = [ "block-buffer 0.9.0", - "cfg-if", + "cfg-if 0.1.10", "cpuid-bool", "digest 0.9.0", "opaque-debug 0.3.0", ] +[[package]] +name = "sha2-asm" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92cfa120723b595090343400d71e4921ba4fbc7d0d48718d72c20b3348469678" +dependencies = [ + "cc", +] + +[[package]] +name = "sha2raw" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da614e847c49a01979ffa0d9a030d983c4bb6e78a13ff20203a0169deeff42" +dependencies = [ + "block-buffer 0.7.3", + "cpuid-bool", + "digest 0.9.0", + "fake-simd", + "lazy_static", + "opaque-debug 0.2.3", + "sha2-asm", +] + [[package]] name = "sha3" version = "0.9.1" @@ -2231,12 +3824,29 @@ dependencies = [ "opaque-debug 0.3.0", ] +[[package]] +name = "shlex" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" + [[package]] name = "signature" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210" +[[package]] +name = "simplelog" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2736f58087298a448859961d3f4a0850b832e72619d75adc69da7993c2cd3c" +dependencies = [ + "chrono", + "log", + "termcolor", +] + [[package]] name = "slab" version = "0.4.2" @@ -2277,7 +3887,7 @@ dependencies = [ "rand 0.7.3", "rand_core 0.5.1", "ring", - "rustc_version", + "rustc_version 0.2.3", "sha2 0.9.1", "subtle 2.2.3", "x25519-dalek", @@ -2289,7 +3899,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "redox_syscall", "winapi 0.3.9", @@ -2307,6 +3917,120 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "storage-proofs" +version = "5.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2827bf577e6f792ab93508d441acd22421530073e5fcf32b8372221eec1bea" +dependencies = [ + "storage-proofs-core", + "storage-proofs-porep", + "storage-proofs-post", +] + +[[package]] +name = "storage-proofs-core" +version = "5.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900f74556e09cc47d18892bb04ec544b4c8ede1a557f346517687c4f243014b6" +dependencies = [ + "aes 0.3.2", + "anyhow", + "bellperson", + "blake2b_simd", + "blake2s_simd", + "block-modes", + "byteorder 1.3.4", + "config", + "fff", + "fil-blst", + "fil-sapling-crypto", + "fs2", + "generic-array 0.13.2", + "hex", + "itertools 0.9.0", + "lazy_static", + "log", + "memmap", + "merkletree", + "neptune", + "num_cpus", + "paired", + "rand 0.7.3", + "rand_chacha", + "rayon", + "serde", + "serde_json", + "sha2 0.9.1", + "tempfile", + "thiserror", + "toml", +] + +[[package]] +name = "storage-proofs-porep" +version = "5.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed2e6ab67a74d1dc6c26c11d1d2a4cee0f7f150930aa0c57c8f453bba0baaa3" +dependencies = [ + "anyhow", + "bellperson", + "bincode", + "byte-slice-cast", + "byteorder 1.3.4", + "crossbeam", + "digest 0.9.0", + "fff", + "fil-sapling-crypto", + "generic-array 0.13.2", + "hex", + "lazy_static", + "log", + "mapr", + "merkletree", + "neptune", + "num-bigint 0.2.6", + "num-traits 0.2.12", + "num_cpus", + "paired", + "pretty_assertions", + "rand 0.7.3", + "rayon", + "serde", + "serde_json", + "sha2 0.9.1", + "sha2raw", + "storage-proofs-core", +] + +[[package]] +name = "storage-proofs-post" +version = "5.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af3abb1abea372af8cd30b17eee7c0bd3fc1c5dab0529e2bdeecb9afc0fd300f" +dependencies = [ + "anyhow", + "bellperson", + "blake2b_simd", + "blake2s_simd", + "byteorder 1.3.4", + "crossbeam", + "fff", + "fil-sapling-crypto", + "generic-array 0.13.2", + "hex", + "log", + "merkletree", + "neptune", + "num_cpus", + "paired", + "rand 0.7.3", + "rayon", + "serde", + "sha2 0.9.1", + "storage-proofs-core", +] + [[package]] name = "stream-cipher" version = "0.4.1" @@ -2323,11 +4047,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a9baee171ea889cfe5333700f0948777b483db8dc805c5c519ffe92e7714783" dependencies = [ "bitflags", - "byteorder", + "byteorder 1.3.4", "subtle 2.2.3", "tiny-keccak", ] +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126d630294ec449fae0b16f964e35bf3c74f940da9dca17ee9b905f7b3112eb8" +dependencies = [ + "clap", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65e51c492f9e23a220534971ff5afc14037289de430e3c83f9daf6a1b6ae91e8" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "subtle" version = "1.0.0" @@ -2363,6 +4117,18 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "tar" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "489997b7557e9a43e192c527face4feacc78bfbe6eed67fd55c4c9e381cba290" +dependencies = [ + "filetime", + "libc", + "redox_syscall", + "xattr", +] + [[package]] name = "tempdir" version = "0.3.7" @@ -2379,7 +4145,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "rand 0.7.3", "redox_syscall", @@ -2396,6 +4162,34 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a14cd9f8c72704232f0bfc8455c0e861f0ad4eb60cc9ec8a170e231414c1e13" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "termios" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" +dependencies = [ + "libc", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + [[package]] name = "thiserror" version = "1.0.20" @@ -2425,6 +4219,17 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi 0.3.9", +] + [[package]] name = "tiny-cid" version = "0.3.0" @@ -2484,6 +4289,48 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" +[[package]] +name = "tokio" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "iovec", + "lazy_static", + "memchr", + "mio", + "num_cpus", + "pin-project-lite", + "slab", +] + +[[package]] +name = "tokio-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + [[package]] name = "toml" version = "0.5.6" @@ -2493,6 +4340,39 @@ dependencies = [ "serde", ] +[[package]] +name = "tower-service" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" + +[[package]] +name = "tracing" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27" +dependencies = [ + "cfg-if 0.1.10", + "log", + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + [[package]] name = "typenum" version = "1.12.0" @@ -2505,12 +4385,21 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9db035e67dfaf7edd9aebfe8676afcd63eed53c8a4044fed514c8cccf1835177" dependencies = [ - "byteorder", + "byteorder 1.3.4", "crunchy", "rustc-hex", "static_assertions", ] +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + [[package]] name = "unicode-bidi" version = "0.3.4" @@ -2535,6 +4424,12 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" +[[package]] +name = "unicode-width" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" + [[package]] name = "unicode-xid" version = "0.2.1" @@ -2588,12 +4483,24 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "vcpkg" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" + [[package]] name = "vec-arena" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eafc1b9b2dfc6f5529177b62cf806484db55b32dc7c9658a118e11bbeb33061d" +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + [[package]] name = "version_check" version = "0.9.2" @@ -2612,19 +4519,37 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + [[package]] name = "wasm-bindgen" version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0563a9a4b071746dd5aedbc3a28c6fe9be4586fb3fbadb67c400d4f53c6b16c" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", + "serde", + "serde_json", "wasm-bindgen-macro", ] @@ -2649,7 +4574,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95f8d235a77f880bcef268d379810ea6c0af2eacfa90b1ad5af731776e0c4699" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "js-sys", "wasm-bindgen", "web-sys", @@ -2690,7 +4615,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures", + "futures 0.3.5", "js-sys", "parking_lot 0.11.0", "pin-utils", @@ -2743,6 +4668,12 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -2764,6 +4695,25 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "winreg" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + [[package]] name = "x25519-dalek" version = "0.6.0" @@ -2775,13 +4725,22 @@ dependencies = [ "zeroize", ] +[[package]] +name = "xattr" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" +dependencies = [ + "libc", +] + [[package]] name = "yamux" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aeb8c4043cac71c3c299dff107171c220d179492350ea198e109a414981b83c" dependencies = [ - "futures", + "futures 0.3.5", "log", "nohash-hasher", "parking_lot 0.11.0", @@ -2789,6 +4748,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "yansi" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71" + [[package]] name = "zeroize" version = "1.1.0" diff --git a/Cargo.toml b/Cargo.toml index 655508f..1cf4a14 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = ["core", "db", "net"] +members = ["core", "db", "net", "post"] [package] name = "ipfs-embed" diff --git a/post/Cargo.toml b/post/Cargo.toml new file mode 100644 index 0000000..02b182f --- /dev/null +++ b/post/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "ipfs-embed-post" +version = "0.1.0" +authors = ["David Craven "] +edition = "2018" + +[dependencies] +filecoin-proofs-api = "5.2.0" +libipld = { version = "0.7.1", default-features = false } +libp2p = { version = "0.28.1", default-features = false } +tempfile = "3.1.0" + +[dev-dependencies] +env_logger = "0.7.1" +libipld = { version = "0.7.1", default-features = false, features = ["dag-cbor"] } diff --git a/post/src/lib.rs b/post/src/lib.rs new file mode 100644 index 0000000..385ff06 --- /dev/null +++ b/post/src/lib.rs @@ -0,0 +1,158 @@ +use filecoin_proofs_api::{ + seal, Commitment, ProverId, RegisteredSealProof, SectorId, Ticket, UnpaddedByteIndex, + UnpaddedBytesAmount, +}; +use libipld::error::Result; +use libp2p::core::PeerId; +use std::fs::File; +use std::path::Path; +use tempfile::NamedTempFile; + +fn peer_id_to_prover_id(peer_id: &PeerId) -> ProverId { + let mut buf = [0u8; 32]; + let offset = peer_id.as_bytes().len() - 32; + buf.copy_from_slice(&peer_id.as_bytes()[offset..]); + buf +} + +pub struct Seal { + pub registered_proof: RegisteredSealProof, + pub comm_r: Commitment, + pub comm_d: Commitment, + pub peer_id: PeerId, + pub sector_id: u64, + /// Prover randomness + pub ticket: [u8; 32], + /// Verifier randomness + pub seed: [u8; 32], + pub proof: Vec, +} + +impl Seal { + pub fn verify(&self) -> Result { + Ok(seal::verify_seal( + self.registered_proof, + self.comm_r, + self.comm_d, + peer_id_to_prover_id(&self.peer_id), + SectorId::from(self.sector_id), + Ticket::from(self.ticket), + Ticket::from(self.seed), + &self.proof, + )?) + } + + pub fn unseal( + &self, + cache_dir: &Path, + replica_path: &Path, + offset: u64, + num_bytes: u64, + ) -> Result> { + let replica = File::open(replica_path)?; + let mut buf = Vec::with_capacity(num_bytes as usize); + seal::unseal_range( + self.registered_proof, + cache_dir, + replica, + &mut buf, + peer_id_to_prover_id(&self.peer_id), + SectorId::from(self.sector_id), + self.comm_d, + Ticket::from(self.ticket), + UnpaddedByteIndex(offset), + UnpaddedBytesAmount(num_bytes), + )?; + Ok(buf) + } + + pub fn seal( + registered_proof: RegisteredSealProof, + mut data: &[u8], + cache_dir: &Path, + replica_path: &Path, + peer_id: PeerId, + sector_id: u64, + ticket: [u8; 32], + seed: [u8; 32], + ) -> Result { + let prover_id = peer_id_to_prover_id(&peer_id); + let mut pieces_path = NamedTempFile::new()?; + let len = data.len(); + let (info, _size) = seal::add_piece( + registered_proof, + &mut data, + &mut pieces_path, + UnpaddedBytesAmount(len as u64), + &[], + )?; + let piece_infos = &[info]; + let pp1 = seal::seal_pre_commit_phase1( + registered_proof.into(), + cache_dir, + pieces_path.path(), + replica_path, + prover_id, + SectorId::from(sector_id), + Ticket::from(ticket), + piece_infos, + )?; + let pp2 = seal::seal_pre_commit_phase2(pp1, cache_dir, replica_path)?; + let p1 = seal::seal_commit_phase1( + cache_dir, + replica_path, + prover_id, + SectorId::from(sector_id), + Ticket::from(ticket), + Ticket::from(seed), + pp2, + piece_infos, + )?; + let comm_d = p1.comm_d; + let comm_r = p1.comm_r; + let p2 = seal::seal_commit_phase2(p1, prover_id, SectorId::from(sector_id))?; + Ok(Seal { + registered_proof, + peer_id, + sector_id, + ticket, + seed, + comm_r, + comm_d, + proof: p2.proof, + }) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use tempfile::tempdir; + + #[test] + fn test_seal_verify_unseal() { + env_logger::try_init().ok(); + let cache_dir = tempdir().unwrap(); + let replica = NamedTempFile::new().unwrap(); + let peer_id = PeerId::random(); + let sector_id = 42; + let ticket = [23u8; 32]; + let seed = [44u8; 32]; + let data = vec![42u8; 2032]; + + let seal = Seal::seal( + RegisteredSealProof::StackedDrg2KiBV1, + &data, + cache_dir.path(), + replica.path(), + peer_id.clone(), + sector_id, + ticket, + seed, + ) + .unwrap(); + assert!(seal.verify().unwrap()); + let bytes = seal.unseal(cache_dir.path(), replica.path(), 0, data.len() as _).unwrap(); + assert_eq!(bytes, data); + } +} From afdded3bd3e5cf73f1678831e33f20825f15a87e Mon Sep 17 00:00:00 2001 From: David Craven Date: Tue, 10 Nov 2020 11:37:41 +0100 Subject: [PATCH 2/2] more stuff --- post/src/lib.rs | 173 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 135 insertions(+), 38 deletions(-) diff --git a/post/src/lib.rs b/post/src/lib.rs index 385ff06..c88a466 100644 --- a/post/src/lib.rs +++ b/post/src/lib.rs @@ -1,12 +1,12 @@ use filecoin_proofs_api::{ - seal, Commitment, ProverId, RegisteredSealProof, SectorId, Ticket, UnpaddedByteIndex, - UnpaddedBytesAmount, + post, seal, Commitment, PrivateReplicaInfo, ProverId, PublicReplicaInfo, RegisteredSealProof, + SectorId, Ticket, UnpaddedByteIndex, UnpaddedBytesAmount, RegisteredPoStProof, }; use libipld::error::Result; use libp2p::core::PeerId; +use std::collections::BTreeMap; use std::fs::File; use std::path::Path; -use tempfile::NamedTempFile; fn peer_id_to_prover_id(peer_id: &PeerId) -> ProverId { let mut buf = [0u8; 32]; @@ -17,10 +17,10 @@ fn peer_id_to_prover_id(peer_id: &PeerId) -> ProverId { pub struct Seal { pub registered_proof: RegisteredSealProof, - pub comm_r: Commitment, - pub comm_d: Commitment, - pub peer_id: PeerId, + pub prover_id: [u8; 32], pub sector_id: u64, + pub comm_d: Commitment, + pub comm_r: Commitment, /// Prover randomness pub ticket: [u8; 32], /// Verifier randomness @@ -34,7 +34,7 @@ impl Seal { self.registered_proof, self.comm_r, self.comm_d, - peer_id_to_prover_id(&self.peer_id), + ProverId::from(self.prover_id), SectorId::from(self.sector_id), Ticket::from(self.ticket), Ticket::from(self.seed), @@ -56,7 +56,7 @@ impl Seal { cache_dir, replica, &mut buf, - peer_id_to_prover_id(&self.peer_id), + ProverId::from(self.prover_id), SectorId::from(self.sector_id), self.comm_d, Ticket::from(self.ticket), @@ -68,37 +68,38 @@ impl Seal { pub fn seal( registered_proof: RegisteredSealProof, - mut data: &[u8], + prover_id: [u8; 32], + sector_id: u64, cache_dir: &Path, + pieces_path: &Path, replica_path: &Path, - peer_id: PeerId, - sector_id: u64, + mut data: &[u8], ticket: [u8; 32], seed: [u8; 32], ) -> Result { - let prover_id = peer_id_to_prover_id(&peer_id); - let mut pieces_path = NamedTempFile::new()?; + let pieces = File::create(pieces_path)?; let len = data.len(); let (info, _size) = seal::add_piece( registered_proof, &mut data, - &mut pieces_path, + pieces, UnpaddedBytesAmount(len as u64), &[], - )?; - let piece_infos = &[info]; + ).unwrap(); let pp1 = seal::seal_pre_commit_phase1( registered_proof.into(), cache_dir, - pieces_path.path(), + pieces_path, replica_path, prover_id, SectorId::from(sector_id), Ticket::from(ticket), - piece_infos, - )?; - let pp2 = seal::seal_pre_commit_phase2(pp1, cache_dir, replica_path)?; - let p1 = seal::seal_commit_phase1( + &[info], + ).unwrap(); + let pp2 = seal::seal_pre_commit_phase2(pp1, cache_dir, replica_path).unwrap(); + let comm_d = pp2.comm_d; + let comm_r = pp2.comm_r; + /*let p1 = seal::seal_commit_phase1( cache_dir, replica_path, prover_id, @@ -107,52 +108,148 @@ impl Seal { Ticket::from(seed), pp2, piece_infos, - )?; - let comm_d = p1.comm_d; - let comm_r = p1.comm_r; - let p2 = seal::seal_commit_phase2(p1, prover_id, SectorId::from(sector_id))?; + )?;*/ + //let p2 = seal::seal_commit_phase2(p1, prover_id, SectorId::from(sector_id))?; Ok(Seal { registered_proof, - peer_id, + prover_id, sector_id, ticket, seed, comm_r, comm_d, - proof: p2.proof, + proof: Default::default(), //p2.proof, }) } } +pub struct PoSt { + pub registered_proof: RegisteredPoStProof, + pub prover_id: [u8; 32], + pub sector_id: u64, + pub comm_r: Commitment, + pub challenge: [u8; 32], + pub proof: Vec, +} + +impl PoSt { + pub fn new( + registered_proof: RegisteredPoStProof, + prover_id: [u8; 32], + sector_id: u64, + cache_dir: &Path, + replica_path: &Path, + comm_r: Commitment, + challenge: [u8; 32], + ) -> Result { + let priv_replica_info = PrivateReplicaInfo::new( + registered_proof, + comm_r, + cache_dir.into(), + replica_path.into(), + ); + let mut replicas = BTreeMap::new(); + replicas.insert(SectorId::from(sector_id), priv_replica_info); + let mut proofs = post::generate_window_post(&challenge, &replicas, prover_id)?; + let proof = proofs.pop().unwrap().1; + Ok(Self { + registered_proof, + prover_id, + sector_id, + comm_r, + challenge, + proof, + }) + } + + pub fn verify(&self) -> Result { + let pub_replica_info = PublicReplicaInfo::new( + self.registered_proof, + self.comm_r, + ); + let mut replicas = BTreeMap::new(); + replicas.insert(SectorId::from(self.sector_id), pub_replica_info); + Ok(post::verify_window_post( + &self.challenge, + &[(self.registered_proof, &self.proof)], + &replicas, + ProverId::from(self.prover_id), + )?) + } +} + #[cfg(test)] mod tests { use super::*; use tempfile::tempdir; - #[test] + /*#[test] + #[ignore] fn test_seal_verify_unseal() { env_logger::try_init().ok(); let cache_dir = tempdir().unwrap(); let replica = NamedTempFile::new().unwrap(); - let peer_id = PeerId::random(); - let sector_id = 42; - let ticket = [23u8; 32]; - let seed = [44u8; 32]; let data = vec![42u8; 2032]; let seal = Seal::seal( RegisteredSealProof::StackedDrg2KiBV1, - &data, + PeerId::random(), + 42, // sector_id cache_dir.path(), replica.path(), - peer_id.clone(), - sector_id, - ticket, - seed, + &data, + [23u8; 32], // ticket + [44u8; 32], // seed ) .unwrap(); assert!(seal.verify().unwrap()); - let bytes = seal.unseal(cache_dir.path(), replica.path(), 0, data.len() as _).unwrap(); + let bytes = seal + .unseal(cache_dir.path(), replica.path(), 0, data.len() as _) + .unwrap(); assert_eq!(bytes, data); + }*/ + + #[test] + fn test_post_no_seal() { + env_logger::try_init().ok(); + //let cache_dir = tempdir().unwrap(); + //let replica = NamedTempFile::new().unwrap(); + let cache_dir_path = &Path::new("/tmp/cache"); + let pieces_path = &Path::new("/tmp/pieces"); + let replica_path = &Path::new("/tmp/replica"); + + let data = vec![90u8; 2032]; + let prover_id = [103u8; 32]; + let sector_id = 42; + + /*let seal = Seal::seal( + RegisteredSealProof::StackedDrg2KiBV1, + prover_id, + sector_id, + cache_dir_path, + pieces_path, + replica_path, + &data, + [23u8; 32], // ticket + [44u8; 32], // seed + ) + .unwrap();*/ + + let comm_r = seal::fauxrep( + RegisteredSealProof::StackedDrg2KiBV1, + cache_dir_path, + replica_path, + ).unwrap(); + + let post = PoSt::new( + RegisteredPoStProof::StackedDrgWindow2KiBV1, + prover_id, + sector_id, + cache_dir_path, + replica_path, + comm_r, + [93u8; 32], // challenge + ).unwrap(); + assert!(post.verify().unwrap()); } }