Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to tokio v1.0 #2129

Closed
4 of 5 tasks
AgeManning opened this issue Dec 28, 2020 · 6 comments
Closed
4 of 5 tasks

Update to tokio v1.0 #2129

AgeManning opened this issue Dec 28, 2020 · 6 comments
Labels
A1 enhancement New feature or request

Comments

@AgeManning
Copy link
Member

AgeManning commented Dec 28, 2020

Description

We are currently at tokio 0.3 and only some of the ecosystem updated to this intermediate version leaving us with scattered dependencies that we manually updated.

Once all the ecosystem have updated to tokio v1 we should do a clean update across our dependencies that rely on tokio.

The main ones are:

  • hyper
  • warp
  • discv5
  • web3
  • reqwest
@AgeManning AgeManning added A1 enhancement New feature or request labels Dec 28, 2020
@ghost
Copy link

ghost commented Dec 29, 2020

Adding myself to this thread, as AFAIK reqwest is only used by testing in the Remote Signer. Maybe it'd be better to find an alternative for mock HTTP calls.

@pawanjay176
Copy link
Member

Made a PR for discv5 here sigp/discv5#57

@michaelsproul
Copy link
Member

Reqwest has support now: https://github.com/seanmonstar/reqwest/releases/tag/v0.11.0

btw @hermanjunge reqwest is used by the eth2 crate which wraps API access to the beacon node for the validator client (amongst other things).

@pawanjay176
Copy link
Member

warp seems good to go as well https://github.com/seanmonstar/warp/releases/tag/v0.3.0

@realbigsean
Copy link
Member

Ive started working on this

bors bot pushed a commit that referenced this issue Feb 10, 2021
## Issue Addressed

resolves #2129
resolves #2099 
addresses some of #1712
unblocks #2076
unblocks #2153 

## Proposed Changes

- Updates all the dependencies mentioned in #2129, except for web3. They haven't merged their tokio 1.0 update because they are waiting on some dependencies of their own. Since we only use web3 in tests, I think updating it in a separate issue is fine. If they are able to merge soon though, I can update in this PR. 

- Updates `tokio_util` to 0.6.2 and `bytes` to 1.0.1.

- We haven't made a discv5 release since merging tokio 1.0 updates so I'm using a commit rather than release atm. **Edit:** I think we should merge an update of `tokio_util` to 0.6.2 into discv5 before this release because it has panic fixes in `DelayQueue`  --> PR in discv5:  sigp/discv5#58

## Additional Info

tokio 1.0 changes that required some changes in lighthouse:

- `interval.next().await.is_some()` -> `interval.tick().await`
- `sleep` future is now `!Unpin` -> tokio-rs/tokio#3028
- `try_recv` has been temporarily removed from `mpsc` -> tokio-rs/tokio#3350
- stream features have moved to `tokio-stream` and `broadcast::Receiver::into_stream()` has been temporarily removed -> `tokio-rs/tokio#2870
- I've copied over the `BroadcastStream` wrapper from this PR, but can update to use `tokio-stream` once it's merged tokio-rs/tokio#3384

Co-authored-by: realbigsean <seananderson33@gmail.com>
@paulhauner
Copy link
Member

Resolved in #2172

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A1 enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants