Bleeding edge discovery (#2435)
* Update discovery banning logic and tokio * Update to latest discovery * Shift to latest discovery * Fmt
This commit is contained in:
parent
f4bc9db16d
commit
c1d2e35c9e
@ -27,7 +27,7 @@ eth2_wallet = { path = "../crypto/eth2_wallet" }
|
|||||||
eth2_wallet_manager = { path = "../common/eth2_wallet_manager" }
|
eth2_wallet_manager = { path = "../common/eth2_wallet_manager" }
|
||||||
rand = "0.7.3"
|
rand = "0.7.3"
|
||||||
validator_dir = { path = "../common/validator_dir" }
|
validator_dir = { path = "../common/validator_dir" }
|
||||||
tokio = { version = "1.1.0", features = ["full"] }
|
tokio = { version = "1.7.1", features = ["full"] }
|
||||||
eth2_keystore = { path = "../crypto/eth2_keystore" }
|
eth2_keystore = { path = "../crypto/eth2_keystore" }
|
||||||
account_utils = { path = "../common/account_utils" }
|
account_utils = { path = "../common/account_utils" }
|
||||||
slashing_protection = { path = "../validator_client/slashing_protection" }
|
slashing_protection = { path = "../validator_client/slashing_protection" }
|
||||||
|
@ -26,7 +26,7 @@ slog = { version = "2.5.2", features = ["max_level_trace", "release_max_level_tr
|
|||||||
slog-term = "2.6.0"
|
slog-term = "2.6.0"
|
||||||
slog-async = "2.5.0"
|
slog-async = "2.5.0"
|
||||||
ctrlc = { version = "3.1.6", features = ["termination"] }
|
ctrlc = { version = "3.1.6", features = ["termination"] }
|
||||||
tokio = { version = "1.1.0", features = ["time"] }
|
tokio = { version = "1.7.1", features = ["time"] }
|
||||||
exit-future = "0.2.0"
|
exit-future = "0.2.0"
|
||||||
dirs = "3.0.1"
|
dirs = "3.0.1"
|
||||||
logging = { path = "../common/logging" }
|
logging = { path = "../common/logging" }
|
||||||
|
@ -40,7 +40,7 @@ eth2_ssz_derive = "0.1.0"
|
|||||||
state_processing = { path = "../../consensus/state_processing" }
|
state_processing = { path = "../../consensus/state_processing" }
|
||||||
tree_hash = "0.1.1"
|
tree_hash = "0.1.1"
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
tokio = "1.1.0"
|
tokio = "1.7.1"
|
||||||
eth1 = { path = "../eth1" }
|
eth1 = { path = "../eth1" }
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
genesis = { path = "../genesis" }
|
genesis = { path = "../genesis" }
|
||||||
|
@ -26,7 +26,7 @@ error-chain = "0.12.4"
|
|||||||
serde_yaml = "0.8.13"
|
serde_yaml = "0.8.13"
|
||||||
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
||||||
slog-async = "2.5.0"
|
slog-async = "2.5.0"
|
||||||
tokio = "1.1.0"
|
tokio = "1.7.1"
|
||||||
dirs = "3.0.1"
|
dirs = "3.0.1"
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
reqwest = { version = "0.11.0", features = ["native-tls-vendored"] }
|
reqwest = { version = "0.11.0", features = ["native-tls-vendored"] }
|
||||||
|
@ -26,7 +26,7 @@ tree_hash = "0.1.1"
|
|||||||
eth2_hashing = "0.1.0"
|
eth2_hashing = "0.1.0"
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.11.0"
|
||||||
slog = "2.5.2"
|
slog = "2.5.2"
|
||||||
tokio = { version = "1.1.0", features = ["full"] }
|
tokio = { version = "1.7.1", features = ["full"] }
|
||||||
state_processing = { path = "../../consensus/state_processing" }
|
state_processing = { path = "../../consensus/state_processing" }
|
||||||
libflate = "1.0.2"
|
libflate = "1.0.2"
|
||||||
lighthouse_metrics = { path = "../../common/lighthouse_metrics"}
|
lighthouse_metrics = { path = "../../common/lighthouse_metrics"}
|
||||||
|
@ -5,7 +5,7 @@ authors = ["Sigma Prime <contact@sigmaprime.io>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
discv5 = { version = "0.1.0-beta.5", features = ["libp2p"] }
|
discv5 = { version = "0.1.0-beta.6", features = ["libp2p"] }
|
||||||
unsigned-varint = { version = "0.6.0", features = ["codec"] }
|
unsigned-varint = { version = "0.6.0", features = ["codec"] }
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
hashset_delay = { path = "../../common/hashset_delay" }
|
hashset_delay = { path = "../../common/hashset_delay" }
|
||||||
@ -16,7 +16,7 @@ eth2_ssz = "0.1.2"
|
|||||||
eth2_ssz_derive = "0.1.0"
|
eth2_ssz_derive = "0.1.0"
|
||||||
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
||||||
lighthouse_version = { path = "../../common/lighthouse_version" }
|
lighthouse_version = { path = "../../common/lighthouse_version" }
|
||||||
tokio = { version = "1.1.0", features = ["time", "macros"] }
|
tokio = { version = "1.7.1", features = ["time", "macros"] }
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
futures-io = "0.3.7"
|
futures-io = "0.3.7"
|
||||||
error-chain = "0.12.4"
|
error-chain = "0.12.4"
|
||||||
@ -47,7 +47,7 @@ default-features = false
|
|||||||
features = ["websocket", "identify", "mplex", "yamux", "noise", "gossipsub", "dns-tokio", "tcp-tokio"]
|
features = ["websocket", "identify", "mplex", "yamux", "noise", "gossipsub", "dns-tokio", "tcp-tokio"]
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tokio = { version = "1.1.0", features = ["full"] }
|
tokio = { version = "1.7.1", features = ["full"] }
|
||||||
slog-term = "2.6.0"
|
slog-term = "2.6.0"
|
||||||
slog-async = "2.5.0"
|
slog-async = "2.5.0"
|
||||||
tempfile = "3.1.0"
|
tempfile = "3.1.0"
|
||||||
|
@ -151,6 +151,16 @@ impl Default for Config {
|
|||||||
.build()
|
.build()
|
||||||
.expect("valid gossipsub configuration");
|
.expect("valid gossipsub configuration");
|
||||||
|
|
||||||
|
// Discv5 Unsolicited Packet Rate Limiter
|
||||||
|
let filter_rate_limiter = Some(
|
||||||
|
discv5::RateLimiterBuilder::new()
|
||||||
|
.total_n_every(10, Duration::from_secs(1)) // Allow bursts, average 10 per second
|
||||||
|
.ip_n_every(9, Duration::from_secs(1)) // Allow bursts, average 9 per second
|
||||||
|
.node_n_every(8, Duration::from_secs(1)) // Allow bursts, average 8 per second
|
||||||
|
.build()
|
||||||
|
.expect("The total rate limit has been specified"),
|
||||||
|
);
|
||||||
|
|
||||||
// discv5 configuration
|
// discv5 configuration
|
||||||
let discv5_config = Discv5ConfigBuilder::new()
|
let discv5_config = Discv5ConfigBuilder::new()
|
||||||
.enable_packet_filter()
|
.enable_packet_filter()
|
||||||
@ -164,6 +174,10 @@ impl Default for Config {
|
|||||||
.disable_report_discovered_peers()
|
.disable_report_discovered_peers()
|
||||||
.ip_limit() // limits /24 IP's in buckets.
|
.ip_limit() // limits /24 IP's in buckets.
|
||||||
.incoming_bucket_limit(8) // half the bucket size
|
.incoming_bucket_limit(8) // half the bucket size
|
||||||
|
.filter_rate_limiter(filter_rate_limiter)
|
||||||
|
.filter_max_bans_per_ip(Some(5))
|
||||||
|
.filter_max_nodes_per_ip(Some(10))
|
||||||
|
.ban_duration(Some(Duration::from_secs(3600)))
|
||||||
.ping_interval(Duration::from_secs(300))
|
.ping_interval(Duration::from_secs(300))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
@ -497,13 +497,13 @@ impl<TSpec: EthSpec> Discovery<TSpec> {
|
|||||||
// first try and convert the peer_id to a node_id.
|
// first try and convert the peer_id to a node_id.
|
||||||
if let Ok(node_id) = peer_id_to_node_id(peer_id) {
|
if let Ok(node_id) = peer_id_to_node_id(peer_id) {
|
||||||
// If we could convert this peer id, remove it from the DHT and ban it from discovery.
|
// If we could convert this peer id, remove it from the DHT and ban it from discovery.
|
||||||
self.discv5.ban_node(&node_id);
|
self.discv5.ban_node(&node_id, None);
|
||||||
// Remove the node from the routing table.
|
// Remove the node from the routing table.
|
||||||
self.discv5.remove_node(&node_id);
|
self.discv5.remove_node(&node_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
for ip_address in ip_addresses {
|
for ip_address in ip_addresses {
|
||||||
self.discv5.ban_ip(ip_address);
|
self.discv5.ban_ip(ip_address, None);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -512,11 +512,11 @@ impl<TSpec: EthSpec> Discovery<TSpec> {
|
|||||||
// first try and convert the peer_id to a node_id.
|
// first try and convert the peer_id to a node_id.
|
||||||
if let Ok(node_id) = peer_id_to_node_id(peer_id) {
|
if let Ok(node_id) = peer_id_to_node_id(peer_id) {
|
||||||
// If we could convert this peer id, remove it from the DHT and ban it from discovery.
|
// If we could convert this peer id, remove it from the DHT and ban it from discovery.
|
||||||
self.discv5.permit_node(&node_id);
|
self.discv5.ban_node_remove(&node_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
for ip_address in ip_addresses {
|
for ip_address in ip_addresses {
|
||||||
self.discv5.permit_ip(ip_address);
|
self.discv5.ban_ip_remove(&ip_address);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -944,7 +944,9 @@ impl<TSpec: EthSpec> Discovery<TSpec> {
|
|||||||
*self.network_globals.local_enr.write() = enr;
|
*self.network_globals.local_enr.write() = enr;
|
||||||
return Poll::Ready(DiscoveryEvent::SocketUpdated(socket));
|
return Poll::Ready(DiscoveryEvent::SocketUpdated(socket));
|
||||||
}
|
}
|
||||||
_ => {} // Ignore all other discv5 server events
|
Discv5Event::EnrAdded { .. }
|
||||||
|
| Discv5Event::TalkRequest(_)
|
||||||
|
| Discv5Event::NodeInserted { .. } => {} // Ignore all other discv5 server events
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ merkle_proof = { path = "../../consensus/merkle_proof" }
|
|||||||
eth2_ssz = "0.1.2"
|
eth2_ssz = "0.1.2"
|
||||||
eth2_hashing = "0.1.0"
|
eth2_hashing = "0.1.0"
|
||||||
tree_hash = "0.1.1"
|
tree_hash = "0.1.1"
|
||||||
tokio = { version = "1.1.0", features = ["full"] }
|
tokio = { version = "1.7.1", features = ["full"] }
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.11.0"
|
||||||
slog = "2.5.2"
|
slog = "2.5.2"
|
||||||
exit-future = "0.2.0"
|
exit-future = "0.2.0"
|
||||||
|
@ -7,7 +7,7 @@ edition = "2018"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
warp = { git = "https://github.com/paulhauner/warp ", branch = "cors-wildcard" }
|
warp = { git = "https://github.com/paulhauner/warp ", branch = "cors-wildcard" }
|
||||||
serde = { version = "1.0.116", features = ["derive"] }
|
serde = { version = "1.0.116", features = ["derive"] }
|
||||||
tokio = { version = "1.1.0", features = ["macros","sync"] }
|
tokio = { version = "1.7.1", features = ["macros","sync"] }
|
||||||
tokio-stream = { version = "0.1.3", features = ["sync"] }
|
tokio-stream = { version = "0.1.3", features = ["sync"] }
|
||||||
tokio-util = "0.6.3"
|
tokio-util = "0.6.3"
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.11.0"
|
||||||
|
@ -23,7 +23,7 @@ warp_utils = { path = "../../common/warp_utils" }
|
|||||||
malloc_utils = { path = "../../common/malloc_utils" }
|
malloc_utils = { path = "../../common/malloc_utils" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tokio = { version = "1.1.0", features = ["sync"] }
|
tokio = { version = "1.7.1", features = ["sync"] }
|
||||||
reqwest = { version = "0.11.0", features = ["json"] }
|
reqwest = { version = "0.11.0", features = ["json"] }
|
||||||
environment = { path = "../../lighthouse/environment" }
|
environment = { path = "../../lighthouse/environment" }
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
|
@ -31,7 +31,7 @@ eth2_ssz_types = { path = "../../consensus/ssz_types" }
|
|||||||
tree_hash = "0.1.1"
|
tree_hash = "0.1.1"
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
error-chain = "0.12.4"
|
error-chain = "0.12.4"
|
||||||
tokio = { version = "1.1.0", features = ["full"] }
|
tokio = { version = "1.7.1", features = ["full"] }
|
||||||
tokio-stream = "0.1.3"
|
tokio-stream = "0.1.3"
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.11.0"
|
||||||
smallvec = "1.6.1"
|
smallvec = "1.6.1"
|
||||||
|
@ -8,7 +8,7 @@ edition = "2018"
|
|||||||
beacon_chain = { path = "../beacon_chain" }
|
beacon_chain = { path = "../beacon_chain" }
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
slot_clock = { path = "../../common/slot_clock" }
|
slot_clock = { path = "../../common/slot_clock" }
|
||||||
tokio = { version = "1.1.0", features = ["full"] }
|
tokio = { version = "1.7.1", features = ["full"] }
|
||||||
slog = "2.5.2"
|
slog = "2.5.2"
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.11.0"
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
|
@ -13,7 +13,7 @@ eth2_network_config = { path = "../common/eth2_network_config" }
|
|||||||
eth2_ssz = "0.1.2"
|
eth2_ssz = "0.1.2"
|
||||||
slog = "2.5.2"
|
slog = "2.5.2"
|
||||||
sloggers = "1.0.1"
|
sloggers = "1.0.1"
|
||||||
tokio = "1.1.0"
|
tokio = "1.7.1"
|
||||||
log = "0.4.11"
|
log = "0.4.11"
|
||||||
slog-term = "2.6.0"
|
slog-term = "2.6.0"
|
||||||
logging = { path = "../common/logging" }
|
logging = { path = "../common/logging" }
|
||||||
|
@ -89,6 +89,7 @@ pub async fn run<T: EthSpec>(config: BootNodeConfig<T>, log: slog::Logger) {
|
|||||||
// Ignore these events here
|
// Ignore these events here
|
||||||
}
|
}
|
||||||
Discv5Event::EnrAdded { .. } => {} // Ignore
|
Discv5Event::EnrAdded { .. } => {} // Ignore
|
||||||
|
Discv5Event::TalkRequest(_) => {} // Ignore
|
||||||
Discv5Event::NodeInserted { .. } => {} // Ignore
|
Discv5Event::NodeInserted { .. } => {} // Ignore
|
||||||
Discv5Event::SocketUpdated(socket_addr) => {
|
Discv5Event::SocketUpdated(socket_addr) => {
|
||||||
info!(log, "External socket address updated"; "socket_addr" => format!("{:?}", socket_addr));
|
info!(log, "External socket address updated"; "socket_addr" => format!("{:?}", socket_addr));
|
||||||
|
@ -9,4 +9,4 @@ futures = "0.3.7"
|
|||||||
tokio-util = { version = "0.6.2", features = ["time"] }
|
tokio-util = { version = "0.6.2", features = ["time"] }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tokio = { version = "1.1.0", features = ["time", "rt-multi-thread", "macros"] }
|
tokio = { version = "1.7.1", features = ["time", "rt-multi-thread", "macros"] }
|
||||||
|
@ -10,7 +10,7 @@ edition = "2018"
|
|||||||
reqwest = { version = "0.11.0", features = ["json","stream"] }
|
reqwest = { version = "0.11.0", features = ["json","stream"] }
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
task_executor = { path = "../task_executor" }
|
task_executor = { path = "../task_executor" }
|
||||||
tokio = "1.1.0"
|
tokio = "1.7.1"
|
||||||
eth2 = {path = "../eth2"}
|
eth2 = {path = "../eth2"}
|
||||||
serde_json = "1.0.58"
|
serde_json = "1.0.58"
|
||||||
serde = "1.0.116"
|
serde = "1.0.116"
|
||||||
|
@ -11,6 +11,6 @@ remote_signer_test = { path = "../../testing/remote_signer_test" }
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
reqwest = { version = "0.11.0", features = ["json"] }
|
reqwest = { version = "0.11.0", features = ["json"] }
|
||||||
serde = { version = "1.0.116", features = ["derive"] }
|
serde = { version = "1.0.116", features = ["derive"] }
|
||||||
tokio = { version = "1.1.0", features = ["time"] }
|
tokio = { version = "1.7.1", features = ["time"] }
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
sensitive_url = { path = "../sensitive_url" }
|
sensitive_url = { path = "../sensitive_url" }
|
||||||
|
@ -5,7 +5,7 @@ authors = ["Sigma Prime <contact@sigmaprime.io>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tokio = { version = "1.1.0", features = ["rt"] }
|
tokio = { version = "1.7.1", features = ["rt"] }
|
||||||
slog = "2.5.2"
|
slog = "2.5.2"
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
exit-future = "0.2.0"
|
exit-future = "0.2.0"
|
||||||
|
@ -14,7 +14,7 @@ beacon_chain = { path = "../../beacon_node/beacon_chain" }
|
|||||||
state_processing = { path = "../../consensus/state_processing" }
|
state_processing = { path = "../../consensus/state_processing" }
|
||||||
safe_arith = { path = "../../consensus/safe_arith" }
|
safe_arith = { path = "../../consensus/safe_arith" }
|
||||||
serde = { version = "1.0.116", features = ["derive"] }
|
serde = { version = "1.0.116", features = ["derive"] }
|
||||||
tokio = { version = "1.1.0", features = ["sync"] }
|
tokio = { version = "1.7.1", features = ["sync"] }
|
||||||
headers = "0.3.2"
|
headers = "0.3.2"
|
||||||
lighthouse_metrics = { path = "../lighthouse_metrics" }
|
lighthouse_metrics = { path = "../lighthouse_metrics" }
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
|
@ -27,7 +27,7 @@ dirs = "3.0.1"
|
|||||||
genesis = { path = "../beacon_node/genesis" }
|
genesis = { path = "../beacon_node/genesis" }
|
||||||
deposit_contract = { path = "../common/deposit_contract" }
|
deposit_contract = { path = "../common/deposit_contract" }
|
||||||
tree_hash = "0.1.1"
|
tree_hash = "0.1.1"
|
||||||
tokio = { version = "1.1.0", features = ["full"] }
|
tokio = { version = "1.7.1", features = ["full"] }
|
||||||
clap_utils = { path = "../common/clap_utils" }
|
clap_utils = { path = "../common/clap_utils" }
|
||||||
eth2_libp2p = { path = "../beacon_node/eth2_libp2p" }
|
eth2_libp2p = { path = "../beacon_node/eth2_libp2p" }
|
||||||
validator_dir = { path = "../common/validator_dir", features = ["insecure_keys"] }
|
validator_dir = { path = "../common/validator_dir", features = ["insecure_keys"] }
|
||||||
|
@ -19,7 +19,7 @@ spec-minimal = []
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
beacon_node = { "path" = "../beacon_node" }
|
beacon_node = { "path" = "../beacon_node" }
|
||||||
tokio = "1.1.0"
|
tokio = "1.7.1"
|
||||||
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
||||||
sloggers = "1.0.1"
|
sloggers = "1.0.1"
|
||||||
types = { "path" = "../consensus/types" }
|
types = { "path" = "../consensus/types" }
|
||||||
|
@ -5,7 +5,7 @@ authors = ["Paul Hauner <paul@paulhauner.com>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tokio = { version = "1.1.0", features = ["macros", "rt", "rt-multi-thread" ] }
|
tokio = { version = "1.7.1", features = ["macros", "rt", "rt-multi-thread" ] }
|
||||||
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
slog = { version = "2.5.2", features = ["max_level_trace"] }
|
||||||
sloggers = "1.0.1"
|
sloggers = "1.0.1"
|
||||||
types = { "path" = "../../consensus/types" }
|
types = { "path" = "../../consensus/types" }
|
||||||
|
@ -14,6 +14,6 @@ slog = "2.5.2"
|
|||||||
slot_clock = { path = "../../common/slot_clock" }
|
slot_clock = { path = "../../common/slot_clock" }
|
||||||
state_processing = { path = "../../consensus/state_processing" }
|
state_processing = { path = "../../consensus/state_processing" }
|
||||||
task_executor = { path = "../../common/task_executor" }
|
task_executor = { path = "../../common/task_executor" }
|
||||||
tokio = { version = "1.1.0", features = ["full"] }
|
tokio = { version = "1.7.1", features = ["full"] }
|
||||||
tokio-stream = "0.1.3"
|
tokio-stream = "0.1.3"
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
|
@ -5,7 +5,7 @@ authors = ["Paul Hauner <paul@paulhauner.com>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tokio = { version = "1.1.0", features = ["time"] }
|
tokio = { version = "1.7.1", features = ["time"] }
|
||||||
tokio-compat-02 = "0.2.0"
|
tokio-compat-02 = "0.2.0"
|
||||||
web3 = { version = "0.16.0", default-features = false, features = ["http-tls", "signing", "ws-tls-tokio"] }
|
web3 = { version = "0.16.0", default-features = false, features = ["http-tls", "signing", "ws-tls-tokio"] }
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
|
@ -15,7 +15,7 @@ reqwest = { version = "0.11.0", features = ["blocking", "json"] }
|
|||||||
serde = { version = "1.0.116", features = ["derive"] }
|
serde = { version = "1.0.116", features = ["derive"] }
|
||||||
serde_json = "1.0.58"
|
serde_json = "1.0.58"
|
||||||
tempfile = "3.1.0"
|
tempfile = "3.1.0"
|
||||||
tokio = { version = "1.1.0", features = ["time"] }
|
tokio = { version = "1.7.1", features = ["time"] }
|
||||||
types = { path = "../../consensus/types" }
|
types = { path = "../../consensus/types" }
|
||||||
sensitive_url = { path = "../../common/sensitive_url" }
|
sensitive_url = { path = "../../common/sensitive_url" }
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ types = { path = "../../consensus/types" }
|
|||||||
validator_client = { path = "../../validator_client" }
|
validator_client = { path = "../../validator_client" }
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.11.0"
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
tokio = "1.1.0"
|
tokio = "1.7.1"
|
||||||
eth1_test_rig = { path = "../eth1_test_rig" }
|
eth1_test_rig = { path = "../eth1_test_rig" }
|
||||||
env_logger = "0.8.2"
|
env_logger = "0.8.2"
|
||||||
clap = "2.33.3"
|
clap = "2.33.3"
|
||||||
|
@ -9,7 +9,7 @@ name = "validator_client"
|
|||||||
path = "src/lib.rs"
|
path = "src/lib.rs"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tokio = { version = "1.1.0", features = ["time", "rt-multi-thread", "macros"] }
|
tokio = { version = "1.7.1", features = ["time", "rt-multi-thread", "macros"] }
|
||||||
deposit_contract = { path = "../common/deposit_contract" }
|
deposit_contract = { path = "../common/deposit_contract" }
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
@ -30,7 +30,7 @@ serde_yaml = "0.8.13"
|
|||||||
slog = { version = "2.5.2", features = ["max_level_trace", "release_max_level_trace"] }
|
slog = { version = "2.5.2", features = ["max_level_trace", "release_max_level_trace"] }
|
||||||
slog-async = "2.5.0"
|
slog-async = "2.5.0"
|
||||||
slog-term = "2.6.0"
|
slog-term = "2.6.0"
|
||||||
tokio = { version = "1.1.0", features = ["time"] }
|
tokio = { version = "1.7.1", features = ["time"] }
|
||||||
futures = "0.3.7"
|
futures = "0.3.7"
|
||||||
dirs = "3.0.1"
|
dirs = "3.0.1"
|
||||||
directory = { path = "../common/directory" }
|
directory = { path = "../common/directory" }
|
||||||
|
Loading…
Reference in New Issue
Block a user