9072acbfa6
## Issue Addressed NA ## Proposed Changes Implements the `PrettyReqwestError` to wrap a `reqwest::Error` and give nicer `Debug` formatting. It also wraps the `Url` component in a `SensitiveUrl` to avoid leaking sensitive info in logs. ### Before ``` Reqwest(reqwest::Error { kind: Request, url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(9999), path: "/eth/v1/node/version", query: None, fragment: None }, source: hyper::Error(Connect, ConnectError("tcp connect error", Os { code: 61, kind: ConnectionRefused, message: "Connection refused" })) }) ``` ### After ``` HttpClient(url: http://localhost:9999/, kind: request, detail: error trying to connect: tcp connect error: Connection refused (os error 61)) ``` ## Additional Info I've also renamed the `Reqwest` error enum variants to `HttpClient`, to give people a better chance at knowing what's going on. Reqwest is pretty odd and looks like a typo. I've implemented it in the `eth2` and `execution_layer` crates. This should affect most logs in the VC and EE-related ones in the BN. I think the last crate that could benefit from the is the `beacon_node/eth1` crate. I haven't updated it in this PR since its error type is not so amenable to it (everything goes into a `String`). I don't have a whole lot of time to jig around with that at the moment and I feel that this PR as it stands is a significant enough improvement to merge on its own. Leaving it as-is is fine for the time being and we can always come back for it later (or implement in-protocol deposits!).
49 lines
1.5 KiB
TOML
49 lines
1.5 KiB
TOML
[package]
|
|
name = "eth2"
|
|
version = "0.1.0"
|
|
authors = ["Paul Hauner <paul@paulhauner.com>"]
|
|
edition = "2021"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
serde = { version = "1.0.116", features = ["derive"] }
|
|
serde_json = "1.0.58"
|
|
types = { path = "../../consensus/types" }
|
|
reqwest = { version = "0.11.0", features = ["json", "stream"] }
|
|
lighthouse_network = { path = "../../beacon_node/lighthouse_network" }
|
|
proto_array = { path = "../../consensus/proto_array", optional = true }
|
|
ethereum_serde_utils = "0.5.0"
|
|
eth2_keystore = { path = "../../crypto/eth2_keystore" }
|
|
libsecp256k1 = "0.7.0"
|
|
ring = "0.16.19"
|
|
bytes = "1.0.1"
|
|
account_utils = { path = "../../common/account_utils" }
|
|
sensitive_url = { path = "../../common/sensitive_url" }
|
|
ethereum_ssz = "0.5.0"
|
|
ethereum_ssz_derive = "0.5.0"
|
|
futures-util = "0.3.8"
|
|
futures = "0.3.8"
|
|
store = { path = "../../beacon_node/store", optional = true }
|
|
slashing_protection = { path = "../../validator_client/slashing_protection", optional = true }
|
|
mediatype = "0.19.13"
|
|
mime = "0.3.16"
|
|
pretty_reqwest_error = { path = "../../common/pretty_reqwest_error" }
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1.14.0", features = ["full"] }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
psutil = { version = "3.2.2", optional = true }
|
|
procinfo = { version = "0.4.2", optional = true }
|
|
|
|
[features]
|
|
default = ["lighthouse"]
|
|
lighthouse = [
|
|
"proto_array",
|
|
"psutil",
|
|
"procinfo",
|
|
"store",
|
|
"slashing_protection",
|
|
]
|