mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-20 21:34:46 +00:00
Upgrade to tokio 0.3 (#1839)
## Description This PR updates Lighthouse to tokio 0.3. It includes a number of dependency updates and some structural changes as to how we create and spawn tasks. This also brings with it a number of various improvements: - Discv5 update - Libp2p update - Fix for recompilation issues - Improved UPnP port mapping handling - Futures dependency update - Log downgrade to traces for rejecting peers when we've reached our max Co-authored-by: blacktemplar <blacktemplar@a1.net>
This commit is contained in:
@@ -12,9 +12,10 @@ eth1 = {path = "../../beacon_node/eth1"}
|
||||
types = { path = "../../consensus/types" }
|
||||
validator_client = { path = "../../validator_client" }
|
||||
parking_lot = "0.11.0"
|
||||
futures = "0.3.5"
|
||||
tokio = "0.2.22"
|
||||
futures = "0.3.7"
|
||||
tokio = "0.3.2"
|
||||
eth1_test_rig = { path = "../eth1_test_rig" }
|
||||
env_logger = "0.7.1"
|
||||
clap = "2.33.3"
|
||||
rayon = "1.4.1"
|
||||
tokio-compat-02 = "0.1"
|
||||
|
||||
@@ -46,13 +46,13 @@ pub async fn verify_first_finalization<E: EthSpec>(
|
||||
/// Delays for `epochs`, plus half a slot extra.
|
||||
pub async fn epoch_delay(epochs: Epoch, slot_duration: Duration, slots_per_epoch: u64) {
|
||||
let duration = slot_duration * (epochs.as_u64() * slots_per_epoch) as u32 + slot_duration / 2;
|
||||
tokio::time::delay_for(duration).await
|
||||
tokio::time::sleep(duration).await
|
||||
}
|
||||
|
||||
/// Delays for `slots`, plus half a slot extra.
|
||||
async fn slot_delay(slots: Slot, slot_duration: Duration) {
|
||||
let duration = slot_duration * slots.as_u64() as u32 + slot_duration / 2;
|
||||
tokio::time::delay_for(duration).await;
|
||||
tokio::time::sleep(duration).await;
|
||||
}
|
||||
|
||||
/// Verifies that all beacon nodes in the given network have a head state that has a finalized
|
||||
|
||||
@@ -197,6 +197,12 @@ pub fn run_eth1_sim(matches: &ArgMatches) -> Result<(), String> {
|
||||
Ok::<(), String>(())
|
||||
};
|
||||
|
||||
env.runtime().block_on(main_future).unwrap();
|
||||
env.runtime()
|
||||
.block_on(tokio_compat_02::FutureExt::compat(main_future))
|
||||
.unwrap();
|
||||
|
||||
env.fire_signal();
|
||||
env.shutdown_on_idle();
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ use node_test_rig::{
|
||||
use rayon::prelude::*;
|
||||
use std::net::{IpAddr, Ipv4Addr};
|
||||
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||
use tokio::time::{delay_until, Instant};
|
||||
use tokio::time::{sleep_until, Instant};
|
||||
use types::{Epoch, EthSpec, MainnetEthSpec};
|
||||
|
||||
pub fn run_no_eth1_sim(matches: &ArgMatches) -> Result<(), String> {
|
||||
@@ -111,7 +111,7 @@ pub fn run_no_eth1_sim(matches: &ArgMatches) -> Result<(), String> {
|
||||
* The processes that will run checks on the network as it runs.
|
||||
*/
|
||||
let checks_fut = async {
|
||||
delay_until(genesis_instant).await;
|
||||
sleep_until(genesis_instant).await;
|
||||
|
||||
let (finalization, block_prod) = futures::join!(
|
||||
// Check that the chain finalizes at the first given opportunity.
|
||||
@@ -156,6 +156,11 @@ pub fn run_no_eth1_sim(matches: &ArgMatches) -> Result<(), String> {
|
||||
Ok::<(), String>(())
|
||||
};
|
||||
|
||||
env.runtime().block_on(main_future).unwrap();
|
||||
env.runtime()
|
||||
.block_on(tokio_compat_02::FutureExt::compat(main_future))
|
||||
.unwrap();
|
||||
|
||||
env.fire_signal();
|
||||
env.shutdown_on_idle();
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user