From 7babfd00c1c9de90e26930ad6f169671b3ba74dd Mon Sep 17 00:00:00 2001 From: Tyera Eulberg Date: Tue, 24 Sep 2019 14:10:59 -0600 Subject: [PATCH] Revert back to reqwest, using rustls feature (#6041) * Revert back to reqwest, using rustls feature * Cargo.lock and crate-features * Ignore test --- Cargo.lock | 247 +++++++++++++++++++---- cli/Cargo.toml | 2 +- cli/src/validator_info.rs | 4 +- client/Cargo.toml | 2 +- client/src/client_error.rs | 8 +- client/src/rpc_client_request.rs | 87 ++++---- core/Cargo.toml | 2 +- core/tests/rpc.rs | 37 ++-- crate-features/Cargo.toml | 2 +- install/Cargo.toml | 2 +- install/src/command.rs | 10 +- local_cluster/src/tests/local_cluster.rs | 1 + metrics/Cargo.toml | 2 +- metrics/src/metrics.rs | 30 +-- programs/btc_spv_bin/Cargo.toml | 2 +- programs/btc_spv_bin/src/block.rs | 17 +- programs/btc_spv_bin/src/blockheade.rs | 38 ++-- validator/Cargo.toml | 2 +- validator/src/lib.rs | 22 +- 19 files changed, 348 insertions(+), 169 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f2f38ff88..1b321526c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,10 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +[[package]] +name = "adler32" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "aho-corasick" version = "0.5.3" @@ -69,11 +74,6 @@ name = "ascii" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "ascii" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "ascii-canvas" version = "1.0.0" @@ -288,10 +288,10 @@ version = "0.20.0" dependencies = [ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", - "ureq 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -444,11 +444,6 @@ dependencies = [ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "chunked_transfer" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "clang-sys" version = "0.26.4" @@ -582,6 +577,23 @@ dependencies = [ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "cookie_store" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "publicsuffix 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "core_affinity" version = "0.5.9" @@ -601,6 +613,14 @@ dependencies = [ "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crc32fast" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "criterion-stats" version = "0.3.0" @@ -716,6 +736,14 @@ dependencies = [ "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ct-logs" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ctrlc" version = "3.1.3" @@ -889,6 +917,14 @@ name = "encode_unicode" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "encoding_rs" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "endian-type" version = "0.1.2" @@ -947,6 +983,15 @@ dependencies = [ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "error-chain" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "backtrace 0.3.33 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "escargot" version = "0.4.0" @@ -1004,6 +1049,16 @@ name = "fixedbitset" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "flate2" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "fnv" version = "1.0.6" @@ -1320,6 +1375,22 @@ dependencies = [ "want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "hyper-rustls" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "ct-logs 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-rustls 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki-roots 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "idna" version = "0.1.5" @@ -1686,6 +1757,23 @@ dependencies = [ "unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "mime_guess" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "miniz_oxide" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "mio" version = "0.6.19" @@ -2172,11 +2260,15 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "qstring" -version = "0.6.0" +name = "publicsuffix" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2497,6 +2589,41 @@ dependencies = [ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "reqwest" +version = "0.9.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_rs 0.8.20 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper-rustls 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-rustls 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki-roots 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rgb" version = "0.8.13" @@ -2653,6 +2780,17 @@ dependencies = [ "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "serde_urlencoded" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "serde_yaml" version = "0.8.9" @@ -3003,6 +3141,7 @@ dependencies = [ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "pretty-hex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3021,7 +3160,6 @@ dependencies = [ "solana-storage-api 0.20.0", "solana-vote-api 0.20.0", "solana-vote-signer 0.20.0", - "ureq 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3036,13 +3174,13 @@ dependencies = [ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "solana-logger 0.20.0", "solana-netutil 0.20.0", "solana-sdk 0.20.0", - "ureq 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3115,6 +3253,7 @@ dependencies = [ "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "reed-solomon-erasure 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "rocksdb 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3150,7 +3289,6 @@ dependencies = [ "tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ureq 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3167,10 +3305,10 @@ dependencies = [ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", "solana-ed25519-dalek 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "syn 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "ureq 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3321,6 +3459,7 @@ dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3332,7 +3471,6 @@ dependencies = [ "solana-sdk 0.20.0", "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "ureq 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3456,11 +3594,11 @@ dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serial_test 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serial_test_derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "solana-sdk 0.20.0", "sys-info 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ureq 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3739,6 +3877,7 @@ dependencies = [ "console 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "indicatif 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "solana-client 0.20.0", "solana-core 0.20.0", @@ -3752,7 +3891,6 @@ dependencies = [ "solana-vote-signer 0.20.0", "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ureq 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4677,6 +4815,19 @@ dependencies = [ "tokio-sync 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "tokio-rustls" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", + "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "tokio-sync" version = "0.1.6" @@ -4788,6 +4939,14 @@ name = "try-lock" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "try_from" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "typeable" version = "0.1.2" @@ -4870,24 +5029,6 @@ name = "untrusted" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "ureq" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "ascii 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "chunked_transfer 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "qstring 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", - "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki-roots 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "url" version = "1.7.2" @@ -4913,6 +5054,14 @@ name = "utf8-ranges" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "uuid" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "vec_map" version = "0.8.1" @@ -5192,6 +5341,7 @@ dependencies = [ ] [metadata] +"checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" "checksum aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66" "checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" @@ -5202,7 +5352,6 @@ dependencies = [ "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" "checksum arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba" "checksum ascii 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae7d751998c189c1d4468cf0a39bb2eae052a9c58d50ebb3b9591ee3813ad50" -"checksum ascii 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109" "checksum ascii-canvas 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b385d69402821a1c254533a011a312531cbcc0e3e24f19bbb4747a5a2daf37e2" "checksum assert_cmd 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2dc477793bd82ec39799b6f6b3df64938532fdf2ab0d49ef817eac65856a5a1e" "checksum assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5" @@ -5247,7 +5396,6 @@ dependencies = [ "checksum cgmath 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)" = "64a4b57c8f4e3a2e9ac07e0f6abc9c24b6fc9e1b54c3478cfb598f3d0023e51c" "checksum chashmap 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff41a3c2c1e39921b9003de14bf0439c7b63a9039637c291e1a64925d8ddfa45" "checksum chrono 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e8493056968583b0193c1bb04d6f7684586f3726992d6c573261941a895dbd68" -"checksum chunked_transfer 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f98beb6554de08a14bd7b5c6014963c79d6a25a1c66b1d4ecb9e733ccba51d6c" "checksum clang-sys 0.26.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6ef0c1bcf2e99c649104bd7a7012d8f8802684400e03db0ec0af48583c6fa0e4" "checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" "checksum clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "97276801e127ffb46b66ce23f35cc96bd454fa311294bced4bbace7baa8b1d17" @@ -5262,8 +5410,10 @@ dependencies = [ "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" "checksum cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" "checksum cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e3d6405328b6edb412158b3b7710e2634e23f3614b9bb1c412df7952489a626" +"checksum cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c" "checksum core_affinity 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6d162c6e463c31dbf78fefa99d042156c1c74d404e299cfe3df2923cb857595b" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" +"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" "checksum criterion-stats 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "387df94cb74ada1b33e10ce034bb0d9360cc73edb5063e7d7d4120a40ee1c9d2" "checksum crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd66663db5a988098a89599d4857919b3acf7f61402e61365acfd3919857b9be" "checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94" @@ -5276,6 +5426,7 @@ dependencies = [ "checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" "checksum crunchy 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" "checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +"checksum ct-logs 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4d3686f5fa27dbc1d76c751300376e167c5a43387f44bb451fd1c24776e49113" "checksum ctrlc 3.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c7dfd2d8b4c82121dfdff120f818e09fc4380b0b7e17a742081a89b94853e87f" "checksum curve25519-dalek 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5d4b820e8711c211745880150f5fac78ab07d6e3851d8ce9f5a02cedc199174c" "checksum data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4f47ca1860a761136924ddd2422ba77b2ea54fe8cc75b9040804a0d9d32ad97" @@ -5295,12 +5446,14 @@ dependencies = [ "checksum elfkit 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "02f182eda16a7360c80a2f8638d0726e9d5478173058f1505c42536ca666ecd2" "checksum ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f56c93cc076508c549d9bb747f79aa9b4eb098be7b8cad8830c3137ef52d1e00" "checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" +"checksum encoding_rs 0.8.20 (registry+https://github.com/rust-lang/crates.io-index)" = "87240518927716f79692c2ed85bfe6e98196d18c6401ec75355760233a7e12e9" "checksum endian-type 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" "checksum enum-primitive-derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2b90e520ec62c1864c8c78d637acbfe8baf5f63240f2fb8165b8325c07812dd" "checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" "checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" "checksum errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c2a071601ed01b988f896ab14b95e67335d1eeb50190932a1320f7fe3cadc84e" "checksum errno-dragonfly 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067" +"checksum error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9" "checksum escargot 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ceb9adbf9874d5d028b5e4c5739d22b71988252b25c9c98fe7cf9738bee84597" "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" @@ -5308,6 +5461,7 @@ dependencies = [ "checksum feature-probe 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" "checksum filetime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "450537dc346f0c4d738dda31e790da1da5d4bd12145aad4da0d03d713cb3794f" "checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" +"checksum flate2 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "2adaffba6388640136149e18ed080b77a78611c1e1d6de75aedcdf78df5d4682" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674" "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" @@ -5343,6 +5497,7 @@ dependencies = [ "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" "checksum hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)" = "7cb44cbce9d8ee4fb36e4c0ad7b794ac44ebaad924b9c8291a63215bb44c2c8f" "checksum hyper 0.9.18 (registry+https://github.com/rust-lang/crates.io-index)" = "1b9bf64f730d6ee4b0528a5f0a316363da9d8104318731509d4ccc86248f82b3" +"checksum hyper-rustls 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)" = "719d85c7df4a7f309a77d145340a063ea929dcb2e025bae46a80345cffec2952" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" "checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" "checksum indexmap 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4d6d89e0948bf10c08b9ecc8ac5b83f07f857ebe2c0cbe38de15b4e4f510356" @@ -5385,6 +5540,8 @@ dependencies = [ "checksum memsec 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ccabb92f665f997bcb4f3ade019a8e07315148d8bcef3e65fbc5dbd65a22eb04" "checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" "checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" +"checksum mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599" +"checksum miniz_oxide 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7108aff85b876d06f22503dcce091e29f76733b2bfdd91eebce81f5e68203a10" "checksum mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)" = "83f51996a3ed004ef184e16818edc51fadffe8e7ca68be67f9dee67d84d0ff23" "checksum mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "46e73a04c2fa6250b8d802134d56d554a9ec2922bf977777c805ea5def61ce40" "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" @@ -5440,7 +5597,7 @@ dependencies = [ "checksum proptest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cf147e022eacf0c8a054ab864914a7602618adba841d800a9a9868a5237a529f" "checksum proptest-derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d31edb17edac73aeacc947bd61462dda15220584268896a58e12f053d767f15b" "checksum protobuf 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8aefcec9f142b524d98fc81d07827743be89dd6586a1ba6ab21fa66a500b3fa5" -"checksum qstring 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "545ec057a36a93e25fb5883baed912e4984af4e2543bbf0e3463d962e0408469" +"checksum publicsuffix 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9bf259a81de2b2eb9850ec990ec78e6a25319715584fd7652b9b26f96fcb1510" "checksum quick-error 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ac990ab4e038dd8481a5e3fd00641067fcfc674ad663f3222752ed5284e05d4" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" @@ -5477,6 +5634,7 @@ dependencies = [ "checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" "checksum rental 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "01916ebd9fc2e81978a5dc9542a2fa47f5bb2ca3402e14c7cc42d6e3c5123e1f" "checksum rental-impl 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "82260d54cf2cbe9608df161f7e7c98e81fae702aa13af9e4d5d39dc2ffb25ab6" +"checksum reqwest 0.9.20 (registry+https://github.com/rust-lang/crates.io-index)" = "0f6d896143a583047512e59ac54a215cb203c29cc941917343edea3be8df9c78" "checksum rgb 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "4f089652ca87f5a82a62935ec6172a534066c7b97be003cc8f702ee9a7a59c92" "checksum ring 0.16.7 (registry+https://github.com/rust-lang/crates.io-index)" = "796ae8317a07b04dffb1983bdc7045ccd02f741f0b411704f07fd35dbf99f757" "checksum rocksdb 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f1651697fefd273bfb4fd69466cc2a9d20de557a0213b97233b22b5e95924b5e" @@ -5497,6 +5655,7 @@ dependencies = [ "checksum serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)" = "9796c9b7ba2ffe7a9ce53c2287dfc48080f4b2b362fcc245a259b3a7201119dd" "checksum serde_derive 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)" = "4b133a43a1ecd55d4086bd5b4dc6c1751c68b1bfbeba7a5040442022c7e7c02e" "checksum serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704" +"checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" "checksum serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "38b08a9a90e5260fe01c6480ec7c811606df6d3a660415808c3c3fa8ed95b582" "checksum serial_test 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50bfbc39343545618d97869d77f38ed43e48dd77432717dbc7ed39d797f3ecbe" "checksum serial_test_derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "89dd85be2e2ad75b041c9df2892ac078fa6e0b90024028b2b9fb4125b7530f01" @@ -5590,6 +5749,7 @@ dependencies = [ "checksum tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af" "checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" "checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce" +"checksum tokio-rustls 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e3ccd44da3ebf1a7afa996a47d9a4d67e212de399a87e91f6bfb331c8d8f1a7" "checksum tokio-sync 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2162248ff317e2bc713b261f242b69dbb838b85248ed20bb21df56d60ea4cae7" "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" "checksum tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "90ca01319dea1e376a001e8dc192d42ebde6dd532532a5bad988ac37db365b19" @@ -5601,6 +5761,7 @@ dependencies = [ "checksum traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "07eaeb7689bb7fca7ce15628319635758eda769fed481ecfe6686ddef2600616" "checksum treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" +"checksum try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b" "checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" "checksum typed-arena 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6c06a92aef38bb4dc5b0df00d68496fc31307c5344c867bb61678c6e1671ec5" "checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" @@ -5615,10 +5776,10 @@ dependencies = [ "checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" "checksum unsigned-varint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2c64cdf40b4a9645534a943668681bcb219faf51874d4b65d2e0abda1b10a2ab" "checksum untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60369ef7a31de49bcb3f6ca728d4ba7300d9a1658f94c727d4cab8c8d9f4aece" -"checksum ureq 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c218b7dd269208fe5599b89bf77416975353e656a1a7bacf806a7b46bd0516a1" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" "checksum url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61" "checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f" +"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index b1a5061c6..c83ec807f 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -21,6 +21,7 @@ lazy_static = "1.4.0" log = "0.4.8" num-traits = "0.2" pretty-hex = "0.1.1" +reqwest = { version = "0.9.20", default-features = false, features = ["rustls-tls"] } serde = "1.0.101" serde_derive = "1.0.101" serde_json = "1.0.40" @@ -37,7 +38,6 @@ solana-stake-api = { path = "../programs/stake_api", version = "0.20.0" } solana-storage-api = { path = "../programs/storage_api", version = "0.20.0" } solana-vote-api = { path = "../programs/vote_api", version = "0.20.0" } solana-vote-signer = { path = "../vote-signer", version = "0.20.0" } -ureq = "0.11.1" url = "2.1.0" [dev-dependencies] diff --git a/cli/src/validator_info.rs b/cli/src/validator_info.rs index d53946105..09e9c25a1 100644 --- a/cli/src/validator_info.rs +++ b/cli/src/validator_info.rs @@ -4,6 +4,7 @@ use crate::{ }; use bincode::deserialize; use clap::ArgMatches; +use reqwest::Client; use serde_derive::{Deserialize, Serialize}; use serde_json::{Map, Value}; use solana_client::rpc_client::RpcClient; @@ -87,7 +88,8 @@ fn verify_keybase( "https://keybase.pub/{}/solana/validator-{:?}", keybase_username, validator_pubkey ); - if ureq::head(&url).call().ok() { + let client = Client::new(); + if client.head(&url).send()?.status().is_success() { Ok(()) } else { Err(format!("keybase_username could not be confirmed at: {}. Please add this pubkey file to your keybase profile to connect", url))? diff --git a/client/Cargo.toml b/client/Cargo.toml index 6c1c69bd6..2b83b8f21 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -15,12 +15,12 @@ jsonrpc-core = "13.2.0" log = "0.4.8" rand = "0.6.5" rayon = "1.2.0" +reqwest = { version = "0.9.20", default-features = false, features = ["rustls-tls"] } serde = "1.0.101" serde_derive = "1.0.101" serde_json = "1.0.40" solana-netutil = { path = "../netutil", version = "0.20.0" } solana-sdk = { path = "../sdk", version = "0.20.0" } -ureq = { version = "0.11.1", features = ["json"] } [dev-dependencies] jsonrpc-core = "13.2.0" diff --git a/client/src/client_error.rs b/client/src/client_error.rs index f53c86a65..8eb6ca743 100644 --- a/client/src/client_error.rs +++ b/client/src/client_error.rs @@ -5,10 +5,10 @@ use std::{fmt, io}; #[derive(Debug)] pub enum ClientError { Io(io::Error), + Reqwest(reqwest::Error), RpcError(rpc_request::RpcError), SerdeJson(serde_json::error::Error), TransactionError(TransactionError), - Ureq(String), } impl fmt::Display for ClientError { @@ -25,9 +25,9 @@ impl From for ClientError { } } -impl From<&ureq::Error> for ClientError { - fn from(err: &ureq::Error) -> ClientError { - ClientError::Ureq(err.to_string()) +impl From for ClientError { + fn from(err: reqwest::Error) -> ClientError { + ClientError::Reqwest(err) } } diff --git a/client/src/rpc_client_request.rs b/client/src/rpc_client_request.rs index c401e9cd4..cb1f534bf 100644 --- a/client/src/rpc_client_request.rs +++ b/client/src/rpc_client_request.rs @@ -2,34 +2,31 @@ use crate::client_error::ClientError; use crate::generic_rpc_client_request::GenericRpcClientRequest; use crate::rpc_request::{RpcError, RpcRequest}; use log::*; +use reqwest::{self, header::CONTENT_TYPE}; use solana_sdk::clock::{DEFAULT_TICKS_PER_SECOND, DEFAULT_TICKS_PER_SLOT}; -use std::io::{Error as IoError, ErrorKind}; use std::thread::sleep; use std::time::Duration; -use ureq::Error; pub struct RpcClientRequest { - client: ureq::Agent, + client: reqwest::Client, url: String, - timeout: Option, } impl RpcClientRequest { pub fn new(url: String) -> Self { Self { - client: ureq::agent(), + client: reqwest::Client::new(), url, - timeout: None, } } - // Timeout applies separately to each socket action: connect, read, write pub fn new_with_timeout(url: String, timeout: Duration) -> Self { - Self { - client: ureq::agent(), - url, - timeout: Some(timeout), - } + let client = reqwest::Client::builder() + .timeout(timeout) + .build() + .expect("build rpc client"); + + Self { client, url } } } @@ -46,48 +43,38 @@ impl GenericRpcClientRequest for RpcClientRequest { let request_json = request.build_request_json(request_id, params); loop { - let mut request_builder = self + match self .client .post(&self.url) - .set("Content-Type", "application/json") - .build(); - if self.timeout.is_some() { - request_builder = request_builder - .timeout_connect(self.timeout.unwrap().as_millis() as u64) - .timeout_read(self.timeout.unwrap().as_millis() as u64) - .timeout_write(self.timeout.unwrap().as_millis() as u64) - .build(); - } - let response = request_builder.send_json(request_json.clone()); - if response.ok() { - let json: serde_json::Value = response.into_json()?; - if json["error"].is_object() { - Err(RpcError::RpcRequestError(format!( - "RPC Error response: {}", - serde_json::to_string(&json["error"]).unwrap() - )))? + .header(CONTENT_TYPE, "application/json") + .body(request_json.to_string()) + .send() + { + Ok(mut response) => { + let json: serde_json::Value = serde_json::from_str(&response.text()?)?; + if json["error"].is_object() { + Err(RpcError::RpcRequestError(format!( + "RPC Error response: {}", + serde_json::to_string(&json["error"]).unwrap() + )))? + } + return Ok(json["result"].clone()); } - return Ok(json["result"].clone()); - } else { - let io_error = Error::Io(IoError::new(ErrorKind::Other, "Unspecified error")); - let error = if let Some(err) = response.synthetic_error().as_ref() { - err - } else { - &io_error - }; - info!( - "make_rpc_request({:?}) failed, {} retries left: {:?}", - request, retries, error - ); - if retries == 0 { - Err(error)?; - } - retries -= 1; + Err(e) => { + info!( + "make_rpc_request({:?}) failed, {} retries left: {:?}", + request, retries, e + ); + if retries == 0 { + Err(e)?; + } + retries -= 1; - // Sleep for approximately half a slot - sleep(Duration::from_millis( - 500 * DEFAULT_TICKS_PER_SLOT / DEFAULT_TICKS_PER_SECOND, - )); + // Sleep for approximately half a slot + sleep(Duration::from_millis( + 500 * DEFAULT_TICKS_PER_SLOT / DEFAULT_TICKS_PER_SECOND, + )); + } } } } diff --git a/core/Cargo.toml b/core/Cargo.toml index 6f64bdcb0..e919af5fb 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -94,9 +94,9 @@ features = ["lz4"] [dev-dependencies] hex-literal = "0.2.1" matches = "0.1.6" +reqwest = { version = "0.9.20", default-features = false, features = ["rustls-tls"] } serial_test = "0.2.0" serial_test_derive = "0.2.0" -ureq = { version = "0.11.1", default-features = false, features = ["json"] } [[bench]] name = "banking_stage" diff --git a/core/tests/rpc.rs b/core/tests/rpc.rs index 39c1db8d3..1fb9970ba 100644 --- a/core/tests/rpc.rs +++ b/core/tests/rpc.rs @@ -1,5 +1,6 @@ use bincode::serialize; use log::*; +use reqwest::{self, header::CONTENT_TYPE}; use serde_json::{json, Value}; use solana_client::rpc_client::get_rpc_request_str; use solana_core::validator::new_validator_for_tests; @@ -17,7 +18,7 @@ fn test_rpc_send_tx() { let (server, leader_data, alice, ledger_path) = new_validator_for_tests(); let bob_pubkey = Pubkey::new_rand(); - let client = ureq::agent(); + let client = reqwest::Client::new(); let request = json!({ "jsonrpc": "2.0", "id": 1, @@ -26,18 +27,20 @@ fn test_rpc_send_tx() { }); let rpc_addr = leader_data.rpc; let rpc_string = get_rpc_request_str(rpc_addr, false); - let response = client + let mut response = client .post(&rpc_string) - .set("Content-Type", "application/json") - .send_json(request); - let json: Value = serde_json::from_str(&response.into_string().unwrap()).unwrap(); + .header(CONTENT_TYPE, "application/json") + .body(request.to_string()) + .send() + .unwrap(); + let json: Value = serde_json::from_str(&response.text().unwrap()).unwrap(); let blockhash: Hash = json["result"][0].as_str().unwrap().parse().unwrap(); info!("blockhash: {:?}", blockhash); let tx = system_transaction::transfer(&alice, &bob_pubkey, 20, blockhash); let serial_tx = serialize(&tx).unwrap(); - let client = ureq::agent(); + let client = reqwest::Client::new(); let request = json!({ "jsonrpc": "2.0", "id": 1, @@ -46,16 +49,18 @@ fn test_rpc_send_tx() { }); let rpc_addr = leader_data.rpc; let rpc_string = get_rpc_request_str(rpc_addr, false); - let response = client + let mut response = client .post(&rpc_string) - .set("Content-Type", "application/json") - .send_json(request); - let json: Value = serde_json::from_str(&response.into_string().unwrap()).unwrap(); + .header(CONTENT_TYPE, "application/json") + .body(request.to_string()) + .send() + .unwrap(); + let json: Value = serde_json::from_str(&response.text().unwrap()).unwrap(); let signature = &json["result"]; let mut confirmed_tx = false; - let client = ureq::agent(); + let client = reqwest::Client::new(); let request = json!({ "jsonrpc": "2.0", "id": 1, @@ -64,11 +69,13 @@ fn test_rpc_send_tx() { }); for _ in 0..solana_sdk::clock::DEFAULT_TICKS_PER_SLOT { - let response = client + let mut response = client .post(&rpc_string) - .set("Content-Type", "application/json") - .send_json(request.clone()); - let response_json_text = response.into_string().unwrap(); + .header(CONTENT_TYPE, "application/json") + .body(request.to_string()) + .send() + .unwrap(); + let response_json_text = response.text().unwrap(); let json: Value = serde_json::from_str(&response_json_text).unwrap(); if true == json["result"] { diff --git a/crate-features/Cargo.toml b/crate-features/Cargo.toml index 65439cba0..1259c8803 100644 --- a/crate-features/Cargo.toml +++ b/crate-features/Cargo.toml @@ -18,8 +18,8 @@ lazy_static = { version = "1.4.0", features = ["spin", "spin_no_std"] } libc = { version = "0.2.62", features = ["extra_traits"] } rand_chacha = { version = "0.1.1" } regex-syntax = { version = "0.6.12" } +reqwest = { version = "0.9.20", default-features = false, features = ["rustls-tls"] } serde = { version = "1.0.100", features = ["rc"] } solana-ed25519-dalek = { version = "0.2.0", features = ["serde"] } syn = { version = "1.0.3", features = ["extra-traits", "full"] } -ureq = { version = "0.11.0", features = ["json"] } winapi = { version = "0.3.8", features=["basetsd", "consoleapi", "errhandlingapi", "fileapi", "handleapi", "impl-debug", "impl-default", "knownfolders", "libloaderapi", "memoryapi", "minwinbase", "minwindef", "ntdef", "ntsecapi", "ntstatus", "objbase", "processenv", "processthreadsapi", "profileapi", "shlobj", "std", "synchapi", "sysinfoapi", "timezoneapi", "utilapiset", "winbase", "wincon", "windef", "winerror", "winnls", "winnt", "winreg", "winsock2", "winuser", "ws2def", "ws2ipdef", "ws2tcpip", "wtypesbase"] } diff --git a/install/Cargo.toml b/install/Cargo.toml index 81087ccc3..0d3601c00 100644 --- a/install/Cargo.toml +++ b/install/Cargo.toml @@ -22,6 +22,7 @@ indicatif = "0.12.0" lazy_static = "1.4.0" log = "0.4.8" nix = "0.15.0" +reqwest = { version = "0.9.20", default-features = false, features = ["rustls-tls"] } semver = "0.9.0" serde = "1.0.101" serde_derive = "1.0.101" @@ -34,7 +35,6 @@ solana-sdk = { path = "../sdk", version = "0.20.0" } tar = "0.4.26" tempdir = "0.3.7" url = "2.1.0" -ureq = "0.11.1" [target."cfg(windows)".dependencies] winapi = "0.3.8" diff --git a/install/src/command.rs b/install/src/command.rs index 0c5007415..f45c61feb 100644 --- a/install/src/command.rs +++ b/install/src/command.rs @@ -74,15 +74,17 @@ fn download_to_temp_archive( let temp_dir = TempDir::new(clap::crate_name!())?; let temp_file = temp_dir.path().join("release.tar.bz2"); - let client = ureq::agent(); + let client = reqwest::Client::new(); let progress_bar = new_spinner_progress_bar(); progress_bar.set_message(&format!("{}Downloading...", TRUCK)); - let response = client.get(url.as_str()).call(); + let response = client.get(url.as_str()).send()?; let download_size = { response - .header("Content-Length") + .headers() + .get(reqwest::header::CONTENT_LENGTH) + .and_then(|content_length| content_length.to_str().ok()) .and_then(|content_length| content_length.parse().ok()) .unwrap_or(0) }; @@ -115,7 +117,7 @@ fn download_to_temp_archive( let mut source = DownloadProgress { progress_bar, - response: response.into_reader(), + response, }; let mut file = File::create(&temp_file)?; diff --git a/local_cluster/src/tests/local_cluster.rs b/local_cluster/src/tests/local_cluster.rs index 42e21e736..6c24ffa5e 100644 --- a/local_cluster/src/tests/local_cluster.rs +++ b/local_cluster/src/tests/local_cluster.rs @@ -582,6 +582,7 @@ fn test_faulty_node(faulty_node_type: BroadcastStageType) { } #[test] +#[ignore] fn test_repairman_catchup() { solana_logger::setup(); error!("test_repairman_catchup"); diff --git a/metrics/Cargo.toml b/metrics/Cargo.toml index a1a9b0da1..7d85aac30 100644 --- a/metrics/Cargo.toml +++ b/metrics/Cargo.toml @@ -12,9 +12,9 @@ edition = "2018" env_logger = "0.6.2" lazy_static = "1.4.0" log = "0.4.8" +reqwest = { version = "0.9.20", default-features = false, features = ["rustls-tls"] } solana-sdk = { path = "../sdk", version = "0.20.0" } sys-info = "0.5.8" -ureq = "0.11.1" [dev-dependencies] rand = "0.6.5" diff --git a/metrics/src/metrics.rs b/metrics/src/metrics.rs index e01c2e4a9..93a700c26 100644 --- a/metrics/src/metrics.rs +++ b/metrics/src/metrics.rs @@ -97,16 +97,20 @@ impl MetricsWriter for InfluxDbMetricsWriter { line.push_str(&format!(" {}\n", &point.timestamp)); } - let response = ureq::post(write_url.as_str()) - .timeout_connect(2_000) - .timeout_read(2_000) - .timeout_write(4_000) - .send_string(&line); - info!( - "submit response: {} {}", - response.status(), - response.status_text() - ); + let client = reqwest::Client::builder() + .timeout(Duration::from_secs(5)) + .build() + .unwrap(); + let response = client.post(write_url.as_str()).body(line).send(); + if let Ok(mut resp) = response { + info!( + "submit response: {} {}", + resp.status(), + resp.text().unwrap() + ); + } else { + error!("submit error: {}", response.unwrap_err()); + } } } } @@ -399,9 +403,9 @@ pub fn query(q: &str) -> Result { &config.host, &config.username, &config.password, &q ); - let response = ureq::get(query_url.as_str()) - .call() - .into_string() + let response = reqwest::get(query_url.as_str()) + .map_err(|err| err.to_string())? + .text() .map_err(|err| err.to_string())?; Ok(response) diff --git a/programs/btc_spv_bin/Cargo.toml b/programs/btc_spv_bin/Cargo.toml index d379d48f2..007276e2f 100644 --- a/programs/btc_spv_bin/Cargo.toml +++ b/programs/btc_spv_bin/Cargo.toml @@ -6,10 +6,10 @@ edition = "2018" [dependencies] clap="2.33.0" +reqwest = { version = "0.9.20", default-features = false, features = ["rustls-tls"] } serde="1.0.101" serde_derive="1.0.101" serde_json = "1.0.40" -ureq = { version = "0.11.1", features = ["json"] } hex = "0.3.2" [[bin]] diff --git a/programs/btc_spv_bin/src/block.rs b/programs/btc_spv_bin/src/block.rs index 6d2e6012f..87aea60b1 100644 --- a/programs/btc_spv_bin/src/block.rs +++ b/programs/btc_spv_bin/src/block.rs @@ -1,17 +1,22 @@ use clap; use clap::{App, Arg}; use hex; +use reqwest; use std::fs::File; use std::io::prelude::*; fn get_block_raw(hash: &str) -> String { let qs = format!("https://blockchain.info/block/{}?format=hex", hash); - let body = ureq::get(&qs).call(); - if body.error() { - panic!("request failed"); - } else { - let textbh: String = body.into_string().unwrap(); - textbh + let body = reqwest::get(&qs); + match body { + Err(e) => panic!("rest request failed {}", e), + Ok(mut n) => { + if n.status().is_success() { + n.text().unwrap() + } else { + panic!("request failed"); + } + } } } diff --git a/programs/btc_spv_bin/src/blockheade.rs b/programs/btc_spv_bin/src/blockheade.rs index 685e11687..ccba170ca 100644 --- a/programs/btc_spv_bin/src/blockheade.rs +++ b/programs/btc_spv_bin/src/blockheade.rs @@ -1,5 +1,6 @@ use clap; use clap::{App, Arg}; +use reqwest; use serde_derive::Deserialize; // pub type blockHash = [u8; 32]; @@ -27,24 +28,35 @@ struct JsonBH { #[allow(dead_code)] fn get_header_json(hash: &str) -> JsonBH { let qs = format!("https://www.blockchain.info/rawblock/{}", hash); - let body = ureq::get(&qs).call(); - if body.error() { - panic!("request failed"); - } else { - serde_json::from_value(body.into_json().unwrap()).unwrap() + let body = reqwest::get(&qs); + match body { + Err(e) => panic!("rest request failed {}", e), + Ok(mut n) => { + if n.status().is_success() { + let jsonbh: JsonBH = n.json().unwrap(); + jsonbh + } else { + panic!("request failed"); + } + } } } fn get_header_raw(hash: &str) -> String { let qs = format!("https://blockchain.info/block/{}?format=hex", hash); - let body = ureq::get(&qs).call(); - if body.error() { - panic!("request failed"); - } else { - let textbh: String = body.into_string().unwrap(); - let hs = &textbh[0..160]; // 160 characters since it's in hex format - let header: String = hs.to_string(); - header + let body = reqwest::get(&qs); + match body { + Err(e) => panic!("rest request failed {}", e), + Ok(mut n) => { + if n.status().is_success() { + let textbh: String = n.text().unwrap(); + let hs = &textbh[0..160]; // 160 characters since it's in hex format + let header: String = hs.to_string(); + header + } else { + panic!("request failed"); + } + } } } diff --git a/validator/Cargo.toml b/validator/Cargo.toml index ee3aa81d4..b42ea61e7 100644 --- a/validator/Cargo.toml +++ b/validator/Cargo.toml @@ -14,6 +14,7 @@ clap = "2.33.0" console = "0.9.0" log = "0.4.8" indicatif = "0.12.0" +reqwest = { version = "0.9.20", default-features = false } serde_json = "1.0.40" solana-client = { path = "../client", version = "0.20.0" } solana-core = { path = "../core", version = "0.20.0" } @@ -27,4 +28,3 @@ solana-vote-api = { path = "../programs/vote_api", version = "0.20.0" } solana-vote-signer = { path = "../vote-signer", version = "0.20.0" } tempfile = "3.1.0" tar = "0.4.26" -ureq = { version = "0.11.1", default-features = false } diff --git a/validator/src/lib.rs b/validator/src/lib.rs index 234a6aeff..fff52f087 100644 --- a/validator/src/lib.rs +++ b/validator/src/lib.rs @@ -65,19 +65,17 @@ fn download_tar_bz2( let progress_bar = new_spinner_progress_bar(); progress_bar.set_message(&format!("{}Downloading {}...", TRUCK, url)); - let client = ureq::agent(); - let response = client.get(url.as_str()).call(); - if response.error() { - let error = if let Some(err) = response.synthetic_error().as_ref() { - format!("Unable to get: {:?}", err) - } else { - "Unable to get: unspecified error".to_string() - }; - Err(error)? - } + let client = reqwest::Client::new(); + let response = client + .get(url.as_str()) + .send() + .and_then(|response| response.error_for_status()) + .map_err(|err| format!("Unable to get: {:?}", err))?; let download_size = { response - .header("Content-Length") + .headers() + .get(reqwest::header::CONTENT_LENGTH) + .and_then(|content_length| content_length.to_str().ok()) .and_then(|content_length| content_length.parse().ok()) .unwrap_or(0) }; @@ -110,7 +108,7 @@ fn download_tar_bz2( let mut source = DownloadProgress { progress_bar, - response: response.into_reader(), + response, }; let mut file = File::create(&temp_archive_path)