From 3dad214577564d822ae4f0dce408ac353061f486 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Fri, 4 Jun 2021 22:53:39 +0100 Subject: [PATCH 1/3] cargo update --- Cargo.lock | 241 +++++++++++++++++++++++++---------------------------- 1 file changed, 114 insertions(+), 127 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 310387218..9e685521f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -33,9 +33,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.15" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" dependencies = [ "memchr", ] @@ -76,12 +76,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - [[package]] name = "bellman" version = "0.8.1" @@ -243,10 +237,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] -name = "cpuid-bool" -version = "0.1.2" +name = "cpufeatures" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" +checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8" +dependencies = [ + "libc", +] [[package]] name = "crossbeam" @@ -274,12 +271,12 @@ dependencies = [ [[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.3", + "crossbeam-utils 0.8.5", ] [[package]] @@ -310,14 +307,14 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12" +checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.3", + "crossbeam-utils 0.8.5", "lazy_static", - "memoffset 0.6.3", + "memoffset 0.6.4", "scopeguard", ] @@ -345,11 +342,10 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49" +checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" dependencies = [ - "autocfg", "cfg-if 1.0.0", "lazy_static", ] @@ -387,9 +383,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "3.0.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f627126b946c25a4638eec0ea634fc52506dea98db118aae985118ce7c3d723f" +checksum = "639891fde0dbea823fc3d798a0fdf9d2f9440a42d64a78ab3488b0ca025117b3" dependencies = [ "byteorder", "digest", @@ -419,18 +415,18 @@ dependencies = [ [[package]] name = "directories" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fed639d60b58d0f53498ab13d26f621fd77569cc6edb031f4cc36a2ad9da0f" +checksum = "e69600ff1703123957937708eb27f7a564e48885c537782722ed0ba3189ce1d7" dependencies = [ "dirs-sys", ] [[package]] name = "dirs-sys" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a" +checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780" dependencies = [ "libc", "redox_users", @@ -505,18 +501,18 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures-channel" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939" +checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94" +checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1" [[package]] name = "futures-cpupool" @@ -530,16 +526,17 @@ dependencies = [ [[package]] name = "futures-task" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80" +checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae" [[package]] name = "futures-util" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1" +checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967" dependencies = [ + "autocfg", "futures-core", "futures-task", "pin-project-lite", @@ -567,6 +564,17 @@ dependencies = [ "wasi 0.9.0+wasi-snapshot-preview1", ] +[[package]] +name = "getrandom" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.10.2+wasi-snapshot-preview1", +] + [[package]] name = "group" version = "0.8.0" @@ -602,9 +610,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "http" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747" +checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" dependencies = [ "bytes", "fnv", @@ -613,9 +621,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfb77c123b4e2f72a2069aeae0b4b4949cc7e966df277813fc16347e7549737" +checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9" dependencies = [ "bytes", "http", @@ -624,9 +632,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.3.5" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691" +checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68" [[package]] name = "httpdate" @@ -710,9 +718,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.91" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8916b1f6ca17130ec6568feccee27c156ad12037880833a3b842a823236502e7" +checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36" [[package]] name = "librustzcash" @@ -746,9 +754,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" +checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" dependencies = [ "scopeguard", ] @@ -788,9 +796,9 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "memchr" -version = "2.3.4" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" +checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" [[package]] name = "memoffset" @@ -803,9 +811,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d" +checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" dependencies = [ "autocfg", ] @@ -857,8 +865,8 @@ checksum = "8ace44e2c64f785c3c37605ecf7504e5fc4efbb2936a49cc56c1084d79657a4d" dependencies = [ "aho-corasick", "atomic-shim", - "crossbeam-epoch 0.9.3", - "crossbeam-utils 0.8.3", + "crossbeam-epoch 0.9.5", + "crossbeam-utils 0.8.5", "dashmap", "indexmap", "metrics", @@ -953,9 +961,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "ordered-float" -version = "2.1.1" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "766f840da25490628d8e63e529cd21c014f6600c6b8517add12a6fa6167a6218" +checksum = "f100fcfb41e5385e0991f74981732049f9b896821542a219420491046baafdc2" dependencies = [ "num-traits", ] @@ -990,25 +998,25 @@ dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.2.5", + "redox_syscall", "smallvec", "winapi", ] [[package]] name = "pin-project" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc174859768806e91ae575187ada95c91a29e96a98dc5d2cd9a1fed039501ba6" +checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a490329918e856ed1b083f244e3bfe2d8c4f336407e4ea9e1a9f479ff09049e5" +checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f" dependencies = [ "proc-macro2", "quote", @@ -1041,9 +1049,9 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro2" -version = "1.0.24" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" dependencies = [ "unicode-xid", ] @@ -1084,7 +1092,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom", + "getrandom 0.1.16", "libc", "rand_chacha", "rand_core", @@ -1107,7 +1115,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom", + "getrandom 0.1.16", ] [[package]] @@ -1130,35 +1138,28 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.57" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "redox_syscall" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9" +checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc" dependencies = [ "bitflags", ] [[package]] name = "redox_users" -version = "0.3.5" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" +checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" dependencies = [ - "getrandom", - "redox_syscall 0.1.57", - "rust-argon2", + "getrandom 0.2.3", + "redox_syscall", ] [[package]] name = "regex" -version = "1.4.5" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" dependencies = [ "aho-corasick", "memchr", @@ -1167,31 +1168,18 @@ dependencies = [ [[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.23" +version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" - -[[package]] -name = "rust-argon2" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" -dependencies = [ - "base64", - "blake2b_simd", - "constant_time_eq", - "crossbeam-utils 0.8.3", -] +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" [[package]] name = "scopeguard" @@ -1201,18 +1189,18 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "serde" -version = "1.0.125" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" +checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.125" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" +checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" dependencies = [ "proc-macro2", "quote", @@ -1221,13 +1209,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa827a14b29ab7f44778d14a88d3cb76e949c45083f7dbfa507d0cb699dc12de" +checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12" dependencies = [ "block-buffer", "cfg-if 1.0.0", - "cpuid-bool", + "cpufeatures", "digest", "opaque-debug", ] @@ -1272,9 +1260,9 @@ checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" [[package]] name = "syn" -version = "1.0.65" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1d708c221c5a612956ef9f75b37e454e88d1f7b899fbd3a18d4252012d663" +checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" dependencies = [ "proc-macro2", "quote", @@ -1283,18 +1271,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" +checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" +checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d" dependencies = [ "proc-macro2", "quote", @@ -1312,20 +1300,19 @@ dependencies = [ [[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", ] [[package]] name = "tokio" -version = "1.4.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134af885d758d645f0f0505c9a8b3f9bf8a348fd822e112ab5248138348f1722" +checksum = "0a38d31d7831c6ed7aad00aa4c12d9375fd225a6dd77da1d25b707346319a975" dependencies = [ "autocfg", "libc", @@ -1336,9 +1323,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf7b11a536f46a809a8a9f0bb4237020f70ecbf115b842360afb127ea2fda57" +checksum = "c49e3df43841dafb86046472506755d8501c5615673955f6aa17181125d13c37" dependencies = [ "proc-macro2", "quote", @@ -1353,9 +1340,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" +checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" dependencies = [ "cfg-if 1.0.0", "pin-project-lite", @@ -1370,7 +1357,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9965507e507f12c8901432a33e31131222abac31edd90cabbcf85cf544b7127a" dependencies = [ "chrono", - "crossbeam-channel 0.5.0", + "crossbeam-channel 0.5.1", "tracing-subscriber", ] @@ -1387,18 +1374,18 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" +checksum = "a9ff14f98b1a4b289c6248a023c1c2fa1491062964e9fed67ab29c4e4da4a052" dependencies = [ "lazy_static", ] [[package]] name = "tracing-subscriber" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "705096c6f83bf68ea5d357a6aa01829ddbdac531b357b45abeca842938085baa" +checksum = "aa5553bf0883ba7c9cbe493b085c29926bd41b66afc31ff72cf17ff4fb60dcd5" dependencies = [ "ansi_term", "chrono", @@ -1425,9 +1412,9 @@ checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" [[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 = "version_check" @@ -1453,9 +1440,9 @@ 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 = "winapi" @@ -1545,6 +1532,6 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a974bcdd357f0dca4d41677db03436324d45a4c9ed2d0b873a5a360ce41c36" +checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" From 419275c4f520ec32f8f2fc5c92c4f28ffa6fd568 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Fri, 4 Jun 2021 23:11:01 +0100 Subject: [PATCH 2/3] Migrate to latest zcash_* crates This includes the ff 0.10 dependency stack. --- Cargo.lock | 250 +++++++++++++++++++++------ Cargo.toml | 21 ++- src/rust/src/rustzcash.rs | 8 +- src/rust/src/tests/key_agreement.rs | 2 +- src/rust/src/tests/key_components.rs | 2 +- src/rust/src/tests/signatures.rs | 2 +- 6 files changed, 215 insertions(+), 70 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9e685521f..f20b849fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -61,6 +61,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +[[package]] +name = "arrayvec" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a2f58b0bb10c380af2b26e57212856b8c9a59e0925b4c20f4a174a49734eaf7" + [[package]] name = "atomic-shim" version = "0.1.0" @@ -78,9 +84,9 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "bellman" -version = "0.8.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7089887635778eabf0038a166f586eee5413fb85c8fa6c9a754914f0f644f49f" +checksum = "7db9a104adfbc817ea09dec27d616c32dbf1d56fd741dcdc2444a3dfa1b9fffd" dependencies = [ "bitvec", "blake2s_simd", @@ -92,7 +98,7 @@ dependencies = [ "group", "num_cpus", "pairing", - "rand_core", + "rand_core 0.6.2", "subtle", ] @@ -114,12 +120,13 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] name = "bitvec" -version = "0.18.5" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98fcd36dda4e17b7d7abc64cb549bf0201f4ab71e00700c798ca7e62ed3761fa" +checksum = "5237f00a8c86130a0cc317830e558b966dd7850d48a953d998c813f01a41b527" dependencies = [ "funty", "radium", + "tap", "wyz", ] @@ -130,7 +137,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.5.2", "constant_time_eq", ] @@ -141,7 +148,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.5.2", "constant_time_eq", ] @@ -172,15 +179,14 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "bls12_381" -version = "0.3.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4caf0101205582491f772d60a6fcb6bcec19963e68209cb631851eeadb01421f" +checksum = "54757888b09a69be70b5ec303e382a74227392086ba808cb01eeca29233a2397" dependencies = [ - "bitvec", "ff", "group", "pairing", - "rand_core", + "rand_core 0.6.2", "subtle", ] @@ -389,7 +395,7 @@ checksum = "639891fde0dbea823fc3d798a0fdf9d2f9440a42d64a78ab3488b0ca025117b3" dependencies = [ "byteorder", "digest", - "rand_core", + "rand_core 0.5.1", "subtle", "zeroize", ] @@ -436,22 +442,21 @@ dependencies = [ [[package]] name = "ed25519-zebra" version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a128b76af6dd4b427e34a6fd43dc78dbfe73672ec41ff615a2414c1a0ad0409" +source = "git+https://github.com/ZcashFoundation/ed25519-zebra.git?rev=d3512400227a362d08367088ffaa9bd4142a69c7#d3512400227a362d08367088ffaa9bd4142a69c7" dependencies = [ "curve25519-dalek", "hex", - "rand_core", + "rand_core 0.6.2", "serde", "sha2", "thiserror", + "zeroize", ] [[package]] name = "equihash" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4127688f6177e3f57521881cb1cfd90d1228214f9dc43b8efe6f6c6948cd8280" +source = "git+https://github.com/zcash/librustzcash.git?rev=2ba80739710f2511b18b67a7f9e082d390427a00#2ba80739710f2511b18b67a7f9e082d390427a00" dependencies = [ "blake2b_simd", "byteorder", @@ -459,12 +464,12 @@ dependencies = [ [[package]] name = "ff" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01646e077d4ebda82b73f1bca002ea1e91561a77df2431a9e79729bcc31950ef" +checksum = "63eec06c61e487eecf0f7e6e6372e596a81922c28d33e645d6983ca6493a1af0" dependencies = [ "bitvec", - "rand_core", + "rand_core 0.6.2", "subtle", ] @@ -489,9 +494,9 @@ dependencies = [ [[package]] name = "funty" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" +checksum = "1847abb9cb65d566acd5942e94aea9c8f547ad02c98e1649326fc0e8910b8b1e" [[package]] name = "futures" @@ -577,16 +582,30 @@ dependencies = [ [[package]] name = "group" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc11f9f5fbf1943b48ae7c2bf6846e7d827a512d1be4f23af708f5ca5d01dde1" +checksum = "1c363a5301b8f153d80747126a04b3c82073b9fe3130571a9d170cacdeaf7912" dependencies = [ "byteorder", "ff", - "rand_core", + "rand_core 0.6.2", "subtle", ] +[[package]] +name = "halo2" +version = "0.0.1" +source = "git+https://github.com/zcash/halo2.git?rev=32cdcfa66fbc4ca3103115518d374f4cfe6c3b7a#32cdcfa66fbc4ca3103115518d374f4cfe6c3b7a" +dependencies = [ + "blake2b_simd", + "crossbeam-utils 0.8.5", + "ff", + "group", + "num_cpus", + "pasta_curves", + "rand", +] + [[package]] name = "hashbrown" version = "0.9.1" @@ -698,15 +717,15 @@ checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] name = "jubjub" -version = "0.5.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "620638af3b80d23f4df0cae21e3cc9809ac8826767f345066f010bcea66a2c55" +checksum = "593fc4726ca80edb47ee18ab4d826719e25c2096991a79308b44fb915c6014ef" dependencies = [ "bitvec", "bls12_381", "ff", "group", - "rand_core", + "rand_core 0.6.2", "subtle", ] @@ -731,7 +750,6 @@ dependencies = [ "blake2s_simd", "bls12_381", "ed25519-zebra", - "funty", "group", "hyper", "ipnet", @@ -739,7 +757,7 @@ dependencies = [ "libc", "metrics", "metrics-exporter-prometheus", - "rand_core", + "rand_core 0.6.2", "subtle", "thiserror", "tokio", @@ -898,6 +916,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "nonempty" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fa586da3e43cc7df44aae0e21ed2e743218b876de3f38035683d30bd8a3828e" + [[package]] name = "ntapi" version = "0.3.6" @@ -959,6 +983,26 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "orchard" +version = "0.0.0" +source = "git+https://github.com/zcash/orchard.git?rev=cd1e72bbcd9f2e873408aa365537c89824cb7430#cd1e72bbcd9f2e873408aa365537c89824cb7430" +dependencies = [ + "aes", + "arrayvec 0.7.0", + "bitvec", + "blake2b_simd", + "ff", + "fpe", + "group", + "halo2", + "nonempty", + "pasta_curves", + "rand", + "reddsa", + "subtle", +] + [[package]] name = "ordered-float" version = "2.5.1" @@ -970,11 +1014,10 @@ dependencies = [ [[package]] name = "pairing" -version = "0.18.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f702cdbee9e0a6272452c20dec82465bc821116598b4eeb63e9a71a69dbf7fd" +checksum = "7de9d09263c9966e8196fe0380c9dbbc7ea114b5cf371ba29004bc1f9c6db7f3" dependencies = [ - "ff", "group", ] @@ -1003,6 +1046,21 @@ dependencies = [ "winapi", ] +[[package]] +name = "pasta_curves" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "179df750e20069669699f537ec0c4bcb248283f45a78b8c66d797fb73dbbb455" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "lazy_static", + "rand", + "static_assertions", + "subtle", +] + [[package]] name = "pin-project" version = "1.0.7" @@ -1082,31 +1140,30 @@ dependencies = [ [[package]] name = "radium" -version = "0.3.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" [[package]] name = "rand" -version = "0.7.3" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" dependencies = [ - "getrandom 0.1.16", "libc", "rand_chacha", - "rand_core", + "rand_core 0.6.2", "rand_hc", ] [[package]] name = "rand_chacha" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.2", ] [[package]] @@ -1119,12 +1176,21 @@ dependencies = [ ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "rand_core" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" dependencies = [ - "rand_core", + "getrandom 0.2.3", +] + +[[package]] +name = "rand_hc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" +dependencies = [ + "rand_core 0.6.2", ] [[package]] @@ -1136,6 +1202,23 @@ dependencies = [ "bitflags", ] +[[package]] +name = "reddsa" +version = "0.0.0" +source = "git+https://github.com/str4d/redjubjub.git?rev=d5d8c5f3bb704bad8ae88fe4a29ae1f744774cb2#d5d8c5f3bb704bad8ae88fe4a29ae1f744774cb2" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest", + "group", + "jubjub", + "pasta_curves", + "rand_core 0.6.2", + "serde", + "thiserror", + "zeroize", +] + [[package]] name = "redox_syscall" version = "0.2.8" @@ -1252,6 +1335,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "subtle" version = "2.4.0" @@ -1269,6 +1358,24 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "synstructure" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "thiserror" version = "1.0.25" @@ -1468,9 +1575,12 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "wyz" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" +checksum = "129e027ad65ce1453680623c3fb5163cbf7107bfe1aa32257e7d0e63f9ced188" +dependencies = [ + "tap", +] [[package]] name = "zcash_history" @@ -1483,11 +1593,24 @@ dependencies = [ "byteorder", ] +[[package]] +name = "zcash_note_encryption" +version = "0.0.0" +source = "git+https://github.com/zcash/librustzcash.git?rev=2ba80739710f2511b18b67a7f9e082d390427a00#2ba80739710f2511b18b67a7f9e082d390427a00" +dependencies = [ + "blake2b_simd", + "byteorder", + "crypto_api_chachapoly", + "ff", + "group", + "rand_core 0.6.2", + "subtle", +] + [[package]] name = "zcash_primitives" version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "926666fae42e08d65ddba7c3808873d1e6cd6e7dd86e84f51a909c79b5fe285c" +source = "git+https://github.com/zcash/librustzcash.git?rev=2ba80739710f2511b18b67a7f9e082d390427a00#2ba80739710f2511b18b67a7f9e082d390427a00" dependencies = [ "aes", "bitvec", @@ -1499,23 +1622,25 @@ dependencies = [ "equihash", "ff", "fpe", - "funty", "group", "hex", "jubjub", "lazy_static", "log", + "nonempty", + "orchard", + "pasta_curves", "rand", - "rand_core", + "rand_core 0.6.2", "sha2", "subtle", + "zcash_note_encryption", ] [[package]] name = "zcash_proofs" version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc3cd16a4efbebf925756f339d01e876816d37d1f458bd8243edb3bd8dbad74b" +source = "git+https://github.com/zcash/librustzcash.git?rev=2ba80739710f2511b18b67a7f9e082d390427a00#2ba80739710f2511b18b67a7f9e082d390427a00" dependencies = [ "bellman", "blake2b_simd", @@ -1526,7 +1651,7 @@ dependencies = [ "group", "jubjub", "lazy_static", - "rand_core", + "rand_core 0.6.2", "zcash_primitives", ] @@ -1535,3 +1660,18 @@ name = "zeroize" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] diff --git a/Cargo.toml b/Cargo.toml index bf7362894..4434ade99 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,22 +20,22 @@ path = "src/rust/src/rustzcash.rs" crate-type = ["staticlib"] [dependencies] -bellman = "0.8" +bellman = "0.10" blake2b_simd = "0.5" blake2s_simd = "0.5" -bls12_381 = "0.3" -group = "0.8" +bls12_381 = "0.5" +group = "0.10" libc = "0.2" -jubjub = "0.5" +jubjub = "0.7" subtle = "2.2" -rand_core = "0.5.1" +rand_core = "0.6" tracing = "0.1" tracing-core = "0.1" tracing-appender = "0.1" zcash_history = "0.2" zcash_primitives = "0.5" zcash_proofs = "0.5" -ed25519-zebra = "2.0.0" +ed25519-zebra = "2.2.0" # Metrics hyper = { version = "=0.14.2", default-features = false, features = ["server", "tcp", "http1"] } @@ -45,9 +45,6 @@ metrics-exporter-prometheus = "0.3" thiserror = "1" tokio = { version = "1.0", features = ["rt", "net", "time", "macros"] } -# Temporary workaround for https://github.com/myrrlyn/funty/issues/3 -funty = "=1.1.0" - [dependencies.tracing-subscriber] version = "0.2.12" default-features = false @@ -57,3 +54,9 @@ features = ["ansi", "chrono", "env-filter"] lto = true panic = 'abort' codegen-units = 1 + +[patch.crates-io] +ed25519-zebra = { git = "https://github.com/ZcashFoundation/ed25519-zebra.git", rev = "d3512400227a362d08367088ffaa9bd4142a69c7" } +orchard = { git = "https://github.com/zcash/orchard.git", rev = "cd1e72bbcd9f2e873408aa365537c89824cb7430" } +zcash_primitives = { git = "https://github.com/zcash/librustzcash.git", rev = "2ba80739710f2511b18b67a7f9e082d390427a00" } +zcash_proofs = { git = "https://github.com/zcash/librustzcash.git", rev = "2ba80739710f2511b18b67a7f9e082d390427a00" } diff --git a/src/rust/src/rustzcash.rs b/src/rust/src/rustzcash.rs index 9994995d2..1443282be 100644 --- a/src/rust/src/rustzcash.rs +++ b/src/rust/src/rustzcash.rs @@ -45,10 +45,12 @@ use zcash_primitives::{ block::equihash, constants::{CRH_IVK_PERSONALIZATION, PROOF_GENERATION_KEY_GENERATOR, SPENDING_KEY_GENERATOR}, merkle_tree::MerklePath, - note_encryption::sapling_ka_agree, - primitives::{Diversifier, Note, PaymentAddress, ProofGenerationKey, Rseed, ViewingKey}, - redjubjub::{self, Signature}, sapling::{merkle_hash, spend_sig}, + sapling::{ + note_encryption::sapling_ka_agree, + redjubjub::{self, Signature}, + Diversifier, Note, PaymentAddress, ProofGenerationKey, Rseed, ViewingKey, + }, transaction::components::Amount, zip32, }; diff --git a/src/rust/src/tests/key_agreement.rs b/src/rust/src/tests/key_agreement.rs index 3b326e98a..a69cc1159 100644 --- a/src/rust/src/tests/key_agreement.rs +++ b/src/rust/src/tests/key_agreement.rs @@ -1,6 +1,6 @@ use group::{Group, GroupEncoding}; use rand_core::{OsRng, RngCore}; -use zcash_primitives::primitives::{Diversifier, ViewingKey}; +use zcash_primitives::sapling::{Diversifier, ViewingKey}; use crate::{ librustzcash_sapling_generate_r, librustzcash_sapling_ka_agree, diff --git a/src/rust/src/tests/key_components.rs b/src/rust/src/tests/key_components.rs index 70caf8dc5..1169c4801 100644 --- a/src/rust/src/tests/key_components.rs +++ b/src/rust/src/tests/key_components.rs @@ -1,7 +1,7 @@ use group::GroupEncoding; use zcash_primitives::{ constants::SPENDING_KEY_GENERATOR, - primitives::{Diversifier, Nullifier, ProofGenerationKey, Rseed}, + sapling::{Diversifier, Nullifier, ProofGenerationKey, Rseed}, }; use crate::{ diff --git a/src/rust/src/tests/signatures.rs b/src/rust/src/tests/signatures.rs index b348794be..cd5dd7d12 100644 --- a/src/rust/src/tests/signatures.rs +++ b/src/rust/src/tests/signatures.rs @@ -1,6 +1,6 @@ use zcash_primitives::{ constants::SPENDING_KEY_GENERATOR, - redjubjub::{PrivateKey, PublicKey, Signature}, + sapling::redjubjub::{PrivateKey, PublicKey, Signature}, }; #[test] From 3d6c1e4426ba1d4e601327b6cbe88f9683518083 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Fri, 4 Jun 2021 23:21:06 +0100 Subject: [PATCH 3/3] metrics 0.16 and metrics-exporter-prometheus 0.5 Includes the allowlist logic that we upstreamed. --- Cargo.lock | 105 +++++++++++++++++++-- Cargo.toml | 4 +- contrib/debian/copyright | 6 -- src/rust/src/metrics_ffi.rs | 48 +++++----- src/rust/src/metrics_ffi/prometheus.rs | 124 ------------------------- 5 files changed, 120 insertions(+), 167 deletions(-) delete mode 100644 src/rust/src/metrics_ffi/prometheus.rs diff --git a/Cargo.lock b/Cargo.lock index f20b849fa..7ef44032e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -31,6 +31,17 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "ahash" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98" +dependencies = [ + "getrandom 0.2.3", + "once_cell", + "version_check", +] + [[package]] name = "aho-corasick" version = "0.7.18" @@ -453,6 +464,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + [[package]] name = "equihash" version = "0.1.0" @@ -612,6 +629,15 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + [[package]] name = "hermit-abi" version = "0.1.18" @@ -691,7 +717,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.9.1", ] [[package]] @@ -838,21 +864,23 @@ dependencies = [ [[package]] name = "metrics" -version = "0.14.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e285601dcfb9f3a8f37a7093b9956a0df730b50848c8ac0117406aff06c851" +checksum = "9c0a7fa53d812d26e59d2baf7a6f77442041454ab32908eb304447f00f0dd4de" dependencies = [ "metrics-macros", "proc-macro-hack", + "t1ha", ] [[package]] name = "metrics-exporter-prometheus" -version = "0.3.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d23bb354bd7dd5d244f2e9a389a0c3249bb6b994aca71bd6c2f7cd6fa2657fc" +checksum = "423ac561fc3300388e62947ce7f944ba6d40468afe9916ce5b7774171d8b38b8" dependencies = [ "hyper", + "ipnet", "metrics", "metrics-util", "parking_lot", @@ -863,9 +891,9 @@ dependencies = [ [[package]] name = "metrics-macros" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ac60cd4d3a869fd39d57baf0ed7f79fb677580d8d6655c4330d4f1126bc27b" +checksum = "caa72e4a3d157986dd2565c82ecbddcc23941513669a3766b938f6b72eb87f3f" dependencies = [ "lazy_static", "proc-macro-hack", @@ -877,21 +905,25 @@ dependencies = [ [[package]] name = "metrics-util" -version = "0.6.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ace44e2c64f785c3c37605ecf7504e5fc4efbb2936a49cc56c1084d79657a4d" +checksum = "c0c93306cf63ff153c57963151a011194af0f33c91fe30ec30faf98732350a1a" dependencies = [ "aho-corasick", "atomic-shim", "crossbeam-epoch 0.9.5", "crossbeam-utils 0.8.5", "dashmap", + "hashbrown 0.11.2", "indexmap", "metrics", + "num_cpus", "ordered-float", "parking_lot", "quanta", + "radix_trie", "sketches-ddsketch", + "t1ha", ] [[package]] @@ -916,6 +948,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + [[package]] name = "nonempty" version = "0.6.0" @@ -1144,6 +1185,16 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + [[package]] name = "rand" version = "0.8.3" @@ -1264,12 +1315,36 @@ version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver", +] + [[package]] name = "scopeguard" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + [[package]] name = "serde" version = "1.0.126" @@ -1370,6 +1445,18 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "t1ha" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa44aa51ae1a544e2c35a38831ba54ae40591f21384816f531b84f3e984b9ccc" +dependencies = [ + "cfg-if 0.1.10", + "lazy_static", + "num-traits", + "rustc_version", +] + [[package]] name = "tap" version = "1.0.1" diff --git a/Cargo.toml b/Cargo.toml index 4434ade99..6491301c2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,8 +40,8 @@ ed25519-zebra = "2.2.0" # Metrics hyper = { version = "=0.14.2", default-features = false, features = ["server", "tcp", "http1"] } ipnet = "2" -metrics = "0.14.2" -metrics-exporter-prometheus = "0.3" +metrics = "0.16" +metrics-exporter-prometheus = "0.5" thiserror = "1" tokio = { version = "1.0", features = ["rt", "net", "time", "macros"] } diff --git a/contrib/debian/copyright b/contrib/debian/copyright index 8b048579e..d2c2fbc58 100644 --- a/contrib/debian/copyright +++ b/contrib/debian/copyright @@ -137,12 +137,6 @@ Files: src/rust/include/tracing.h Copyright: Copyright (c) 2020 Jack Grigg License: Expat -Files: src/rust/src/metrics_ffi/prometheus.rs -Copyright: - 2020-2021 The contributors to the metrics project - 2021 Jack Grigg -License: Expat - Files: src/secp256k1/* Copyright: Copyright (c) 2013 Pieter Wuille License: Expat diff --git a/src/rust/src/metrics_ffi.rs b/src/rust/src/metrics_ffi.rs index 6acb51347..cdc4530b9 100644 --- a/src/rust/src/metrics_ffi.rs +++ b/src/rust/src/metrics_ffi.rs @@ -1,5 +1,5 @@ use libc::{c_char, c_double}; -use metrics::{try_recorder, GaugeValue, Key, KeyData, Label}; +use metrics::{try_recorder, GaugeValue, Key, Label}; use metrics_exporter_prometheus::PrometheusBuilder; use std::ffi::CStr; use std::net::{IpAddr, SocketAddr}; @@ -7,8 +7,6 @@ use std::ptr; use std::slice; use tracing::error; -mod prometheus; - #[no_mangle] pub extern "C" fn metrics_run( bind_address: *const c_char, @@ -64,11 +62,18 @@ pub extern "C" fn metrics_run( prometheus_port, ); - prometheus::install(bind_address, PrometheusBuilder::new(), allow_ips).is_ok() + allow_ips + .into_iter() + .fold( + PrometheusBuilder::new().listen_address(bind_address), + |builder, subnet| builder.add_allowed(subnet), + ) + .install() + .is_ok() } pub struct FfiCallsite { - key_data: KeyData, + key: Key, } #[no_mangle] @@ -98,7 +103,7 @@ pub extern "C" fn metrics_callsite( .collect(); Box::into_raw(Box::new(FfiCallsite { - key_data: KeyData::from_parts(name, labels), + key: Key::from_parts(name, labels), })) } @@ -139,7 +144,7 @@ pub extern "C" fn metrics_key( .collect(); Box::into_raw(Box::new(FfiKey { - inner: Key::Owned(KeyData::from_parts(name, labels)), + inner: Key::from_parts(name, labels), })) } } @@ -148,7 +153,7 @@ pub extern "C" fn metrics_key( pub extern "C" fn metrics_static_increment_counter(callsite: *const FfiCallsite, value: u64) { if let Some(recorder) = try_recorder() { let callsite = unsafe { callsite.as_ref().unwrap() }; - recorder.increment_counter(Key::Borrowed(&callsite.key_data), value); + recorder.increment_counter(&callsite.key, value); } } @@ -157,7 +162,7 @@ pub extern "C" fn metrics_increment_counter(key: *mut FfiKey, value: u64) { if let Some(recorder) = try_recorder() { if !key.is_null() { let key = unsafe { Box::from_raw(key) }; - recorder.increment_counter(key.inner, value); + recorder.increment_counter(&key.inner, value); } } } @@ -166,10 +171,7 @@ pub extern "C" fn metrics_increment_counter(key: *mut FfiKey, value: u64) { pub extern "C" fn metrics_static_update_gauge(callsite: *const FfiCallsite, value: c_double) { if let Some(recorder) = try_recorder() { let callsite = unsafe { callsite.as_ref().unwrap() }; - recorder.update_gauge( - Key::Borrowed(&callsite.key_data), - GaugeValue::Absolute(value), - ); + recorder.update_gauge(&callsite.key, GaugeValue::Absolute(value)); } } @@ -178,7 +180,7 @@ pub extern "C" fn metrics_update_gauge(key: *mut FfiKey, value: c_double) { if let Some(recorder) = try_recorder() { if !key.is_null() { let key = unsafe { Box::from_raw(key) }; - recorder.update_gauge(key.inner, GaugeValue::Absolute(value)); + recorder.update_gauge(&key.inner, GaugeValue::Absolute(value)); } } } @@ -187,10 +189,7 @@ pub extern "C" fn metrics_update_gauge(key: *mut FfiKey, value: c_double) { pub extern "C" fn metrics_static_increment_gauge(callsite: *const FfiCallsite, value: c_double) { if let Some(recorder) = try_recorder() { let callsite = unsafe { callsite.as_ref().unwrap() }; - recorder.update_gauge( - Key::Borrowed(&callsite.key_data), - GaugeValue::Increment(value), - ); + recorder.update_gauge(&callsite.key, GaugeValue::Increment(value)); } } @@ -199,7 +198,7 @@ pub extern "C" fn metrics_increment_gauge(key: *mut FfiKey, value: c_double) { if let Some(recorder) = try_recorder() { if !key.is_null() { let key = unsafe { Box::from_raw(key) }; - recorder.update_gauge(key.inner, GaugeValue::Increment(value)); + recorder.update_gauge(&key.inner, GaugeValue::Increment(value)); } } } @@ -208,10 +207,7 @@ pub extern "C" fn metrics_increment_gauge(key: *mut FfiKey, value: c_double) { pub extern "C" fn metrics_static_decrement_gauge(callsite: *const FfiCallsite, value: c_double) { if let Some(recorder) = try_recorder() { let callsite = unsafe { callsite.as_ref().unwrap() }; - recorder.update_gauge( - Key::Borrowed(&callsite.key_data), - GaugeValue::Decrement(value), - ); + recorder.update_gauge(&callsite.key, GaugeValue::Decrement(value)); } } @@ -220,7 +216,7 @@ pub extern "C" fn metrics_decrement_gauge(key: *mut FfiKey, value: c_double) { if let Some(recorder) = try_recorder() { if !key.is_null() { let key = unsafe { Box::from_raw(key) }; - recorder.update_gauge(key.inner, GaugeValue::Decrement(value)); + recorder.update_gauge(&key.inner, GaugeValue::Decrement(value)); } } } @@ -229,7 +225,7 @@ pub extern "C" fn metrics_decrement_gauge(key: *mut FfiKey, value: c_double) { pub extern "C" fn metrics_static_record_histogram(callsite: *const FfiCallsite, value: c_double) { if let Some(recorder) = try_recorder() { let callsite = unsafe { callsite.as_ref().unwrap() }; - recorder.record_histogram(Key::Borrowed(&callsite.key_data), value); + recorder.record_histogram(&callsite.key, value); } } @@ -238,7 +234,7 @@ pub extern "C" fn metrics_record_histogram(key: *mut FfiKey, value: c_double) { if let Some(recorder) = try_recorder() { if !key.is_null() { let key = unsafe { Box::from_raw(key) }; - recorder.record_histogram(key.inner, value); + recorder.record_histogram(&key.inner, value); } } } diff --git a/src/rust/src/metrics_ffi/prometheus.rs b/src/rust/src/metrics_ffi/prometheus.rs deleted file mode 100644 index da11f5f6b..000000000 --- a/src/rust/src/metrics_ffi/prometheus.rs +++ /dev/null @@ -1,124 +0,0 @@ -// This is mostly code copied from metrics_exporter_prometheus. The copied portions are -// licensed under the same terms as the zcash codebase (reproduced below from -// https://github.com/metrics-rs/metrics/blob/main/metrics-exporter-prometheus/LICENSE): -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -use hyper::{ - server::{conn::AddrStream, Server}, - service::{make_service_fn, service_fn}, - {Body, Error as HyperError, Response, StatusCode}, -}; -use metrics::SetRecorderError; -use metrics_exporter_prometheus::{PrometheusBuilder, PrometheusRecorder}; -use std::future::Future; -use std::io; -use std::net::SocketAddr; -use std::thread; -use thiserror::Error as ThisError; -use tokio::{pin, runtime, select}; - -/// Errors that could occur while installing a Prometheus recorder/exporter. -#[derive(Debug, ThisError)] -pub enum InstallError { - /// Creating the networking event loop did not succeed. - #[error("failed to spawn Tokio runtime for endpoint: {0}")] - Io(#[from] io::Error), - - /// Binding/listening to the given address did not succeed. - #[error("failed to bind to given listen address: {0}")] - Hyper(#[from] HyperError), - - /// Installing the recorder did not succeed. - #[error("failed to install exporter as global recorder: {0}")] - Recorder(#[from] SetRecorderError), -} - -/// A copy of `PrometheusBuilder::build_with_exporter` that adds support for an IP address -/// or subnet allowlist. -pub(super) fn build( - bind_address: SocketAddr, - builder: PrometheusBuilder, - allow_ips: Vec, -) -> Result< - ( - PrometheusRecorder, - impl Future> + Send + 'static, - ), - InstallError, -> { - let recorder = builder.build(); - let handle = recorder.handle(); - - let server = Server::try_bind(&bind_address)?; - - let exporter = async move { - let make_svc = make_service_fn(move |socket: &AddrStream| { - let remote_addr = socket.remote_addr().ip(); - let allowed = allow_ips.iter().any(|subnet| subnet.contains(&remote_addr)); - let handle = handle.clone(); - - async move { - Ok::<_, HyperError>(service_fn(move |_| { - let handle = handle.clone(); - - async move { - if allowed { - let output = handle.render(); - Ok(Response::new(Body::from(output))) - } else { - Response::builder() - .status(StatusCode::FORBIDDEN) - .body(Body::empty()) - } - } - })) - } - }); - - server.serve(make_svc).await - }; - - Ok((recorder, exporter)) -} - -/// A copy of `PrometheusBuilder::install` that adds support for an IP address or subnet -/// allowlist. -pub(super) fn install( - bind_address: SocketAddr, - builder: PrometheusBuilder, - allow_ips: Vec, -) -> Result<(), InstallError> { - let runtime = runtime::Builder::new_current_thread() - .enable_all() - .build()?; - - let (recorder, exporter) = { - let _guard = runtime.enter(); - build(bind_address, builder, allow_ips)? - }; - metrics::set_boxed_recorder(Box::new(recorder))?; - - thread::Builder::new() - .name("zcash-prometheus".to_string()) - .spawn(move || { - runtime.block_on(async move { - pin!(exporter); - loop { - select! { - _ = &mut exporter => {} - } - } - }); - })?; - - Ok(()) -}