mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-17 12:58:31 +00:00
Add SensitiveUrl to redact user secrets from endpoints (#2326)
## Issue Addressed #2276 ## Proposed Changes Add the `SensitiveUrl` struct which wraps `Url` and implements custom `Display` and `Debug` traits to redact user secrets from being logged in eth1 endpoints, beacon node endpoints and metrics. ## Additional Info This also includes a small rewrite of the eth1 crate to make requests using `Url` instead of `&str`. Some error messages have also been changed to remove `Url` data.
This commit is contained in:
@@ -5,6 +5,7 @@ use eth1::{Config, Service};
|
||||
use eth1::{DepositCache, DEFAULT_CHAIN_ID, DEFAULT_NETWORK_ID};
|
||||
use eth1_test_rig::GanacheEth1Instance;
|
||||
use merkle_proof::verify_merkle_proof;
|
||||
use sensitive_url::SensitiveUrl;
|
||||
use slog::Logger;
|
||||
use sloggers::{null::NullLoggerBuilder, Build};
|
||||
use std::ops::Range;
|
||||
@@ -53,7 +54,7 @@ fn random_deposit_data() -> DepositData {
|
||||
/// Blocking operation to get the deposit logs from the `deposit_contract`.
|
||||
async fn blocking_deposit_logs(eth1: &GanacheEth1Instance, range: Range<u64>) -> Vec<Log> {
|
||||
get_deposit_logs_in_range(
|
||||
ð1.endpoint(),
|
||||
&SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap(),
|
||||
ð1.deposit_contract.address(),
|
||||
range,
|
||||
timeout(),
|
||||
@@ -65,7 +66,7 @@ async fn blocking_deposit_logs(eth1: &GanacheEth1Instance, range: Range<u64>) ->
|
||||
/// Blocking operation to get the deposit root from the `deposit_contract`.
|
||||
async fn blocking_deposit_root(eth1: &GanacheEth1Instance, block_number: u64) -> Option<Hash256> {
|
||||
get_deposit_root(
|
||||
ð1.endpoint(),
|
||||
&SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap(),
|
||||
ð1.deposit_contract.address(),
|
||||
block_number,
|
||||
timeout(),
|
||||
@@ -77,7 +78,7 @@ async fn blocking_deposit_root(eth1: &GanacheEth1Instance, block_number: u64) ->
|
||||
/// Blocking operation to get the deposit count from the `deposit_contract`.
|
||||
async fn blocking_deposit_count(eth1: &GanacheEth1Instance, block_number: u64) -> Option<u64> {
|
||||
get_deposit_count(
|
||||
ð1.endpoint(),
|
||||
&SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap(),
|
||||
ð1.deposit_contract.address(),
|
||||
block_number,
|
||||
timeout(),
|
||||
@@ -119,7 +120,7 @@ mod eth1_cache {
|
||||
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![eth1.endpoint()],
|
||||
endpoints: vec![SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap()],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
lowest_cached_block_number: initial_block_number,
|
||||
follow_distance,
|
||||
@@ -200,7 +201,7 @@ mod eth1_cache {
|
||||
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![eth1.endpoint()],
|
||||
endpoints: vec![SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap()],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
lowest_cached_block_number: get_block_number(&web3).await,
|
||||
follow_distance: 0,
|
||||
@@ -255,7 +256,7 @@ mod eth1_cache {
|
||||
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![eth1.endpoint()],
|
||||
endpoints: vec![SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap()],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
lowest_cached_block_number: get_block_number(&web3).await,
|
||||
follow_distance: 0,
|
||||
@@ -306,7 +307,7 @@ mod eth1_cache {
|
||||
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![eth1.endpoint()],
|
||||
endpoints: vec![SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap()],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
lowest_cached_block_number: get_block_number(&web3).await,
|
||||
follow_distance: 0,
|
||||
@@ -359,7 +360,7 @@ mod deposit_tree {
|
||||
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![eth1.endpoint()],
|
||||
endpoints: vec![SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap()],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
deposit_contract_deploy_block: start_block,
|
||||
follow_distance: 0,
|
||||
@@ -440,7 +441,7 @@ mod deposit_tree {
|
||||
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![eth1.endpoint()],
|
||||
endpoints: vec![SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap()],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
deposit_contract_deploy_block: start_block,
|
||||
lowest_cached_block_number: start_block,
|
||||
@@ -582,7 +583,7 @@ mod http {
|
||||
|
||||
async fn get_block(eth1: &GanacheEth1Instance, block_number: u64) -> Block {
|
||||
eth1::http::get_block(
|
||||
ð1.endpoint(),
|
||||
&SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap(),
|
||||
BlockQuery::Number(block_number),
|
||||
timeout(),
|
||||
)
|
||||
@@ -698,7 +699,7 @@ mod fast {
|
||||
let now = get_block_number(&web3).await;
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![eth1.endpoint()],
|
||||
endpoints: vec![SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap()],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
deposit_contract_deploy_block: now,
|
||||
lowest_cached_block_number: now,
|
||||
@@ -775,7 +776,7 @@ mod persist {
|
||||
|
||||
let now = get_block_number(&web3).await;
|
||||
let config = Config {
|
||||
endpoints: vec![eth1.endpoint()],
|
||||
endpoints: vec![SensitiveUrl::parse(eth1.endpoint().as_str()).unwrap()],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
deposit_contract_deploy_block: now,
|
||||
lowest_cached_block_number: now,
|
||||
@@ -885,7 +886,10 @@ mod fallbacks {
|
||||
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![endpoint1.endpoint(), endpoint2.endpoint()],
|
||||
endpoints: vec![
|
||||
SensitiveUrl::parse(endpoint1.endpoint().as_str()).unwrap(),
|
||||
SensitiveUrl::parse(endpoint2.endpoint().as_str()).unwrap(),
|
||||
],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
lowest_cached_block_number: initial_block_number,
|
||||
follow_distance: 0,
|
||||
@@ -961,7 +965,10 @@ mod fallbacks {
|
||||
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![endpoint2.endpoint(), endpoint1.endpoint()],
|
||||
endpoints: vec![
|
||||
SensitiveUrl::parse(endpoint2.endpoint().as_str()).unwrap(),
|
||||
SensitiveUrl::parse(endpoint1.endpoint().as_str()).unwrap(),
|
||||
],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
lowest_cached_block_number: initial_block_number,
|
||||
follow_distance: 0,
|
||||
@@ -1028,7 +1035,10 @@ mod fallbacks {
|
||||
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![endpoint2.endpoint(), endpoint1.endpoint()],
|
||||
endpoints: vec![
|
||||
SensitiveUrl::parse(endpoint2.endpoint().as_str()).unwrap(),
|
||||
SensitiveUrl::parse(endpoint1.endpoint().as_str()).unwrap(),
|
||||
],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
lowest_cached_block_number: initial_block_number,
|
||||
follow_distance: 0,
|
||||
@@ -1081,7 +1091,10 @@ mod fallbacks {
|
||||
|
||||
let service = Service::new(
|
||||
Config {
|
||||
endpoints: vec![endpoint1.endpoint(), endpoint2.endpoint()],
|
||||
endpoints: vec![
|
||||
SensitiveUrl::parse(endpoint1.endpoint().as_str()).unwrap(),
|
||||
SensitiveUrl::parse(endpoint2.endpoint().as_str()).unwrap(),
|
||||
],
|
||||
deposit_contract_address: deposit_contract.address(),
|
||||
lowest_cached_block_number: initial_block_number,
|
||||
follow_distance: 0,
|
||||
|
||||
Reference in New Issue
Block a user