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

upgrade to quinn@0.11 & rustls@0.23 #2273

Closed
11 of 12 tasks
dignifiedquire opened this issue May 8, 2024 · 3 comments
Closed
11 of 12 tasks

upgrade to quinn@0.11 & rustls@0.23 #2273

dignifiedquire opened this issue May 8, 2024 · 3 comments
Assignees
Labels
Milestone

Comments

@dignifiedquire
Copy link
Contributor

dignifiedquire commented May 8, 2024

WIP branch: https://github.com/n0-computer/iroh/tree/dig/quinn11

  • The dig/quinn11 branch needs to work and pass all tests
    • On patched dependencies
    • On released dependencies
  • We need an iroh-quinn version released for 0.11
  • We need a new quic-rpc version released
  • We need a new axum-server version released
  • We need a new tokio-rustls-acme release
  • We should upgrade request @0.12.5 so it uses rustls@0.23

Once the basics work, we need to make it good:

  • get net performance numbers
    • we have declared per to be ok

Nice to have:

Outstanding issues:

  • When sending to the relay all packets are copied.
    • AsyncUdpSocket @0.10 gave us Bytes, but @0.11 gives us a &[u8] and we end up copying this to send it along channels to the relay actors. That's a severe performance regression
  • Review all newly added TODO items
@ramfox ramfox moved this to 📋 Backlog in iroh May 21, 2024
@flub flub self-assigned this Jun 20, 2024
@flub flub moved this from 📋 Backlog to 🏗 In progress in iroh Jun 20, 2024
@ramfox ramfox added this to the v0.21.0 milestone Jul 10, 2024
@dignifiedquire dignifiedquire modified the milestones: v0.21.0, v0.22.0 Jul 15, 2024
@matheus23
Copy link
Contributor

Can I help move this along somehow?
For browser work, it'd be great to have rustls upgraded to version 0.22 or above, because at that version it doesn't depend on std::time::Instant::now anymore, which panics in Wasm.

@flub
Copy link
Contributor

flub commented Jul 29, 2024

Can I help move this along somehow? For browser work, it'd be great to have rustls upgraded to version 0.22 or above, because at that version it doesn't depend on std::time::Instant::now anymore, which panics in Wasm.

It's currently in the mode of making the test suite pass. All "changes" should be done and it is "just" debugging. So the work right now is: run test suite, pick most promising failing test, debug it, push fix, run test suite again to see if more failures are magically fixed, pick next test.

But most test failures have just been fixes in the test suite, so progress has been slow.

@dignifiedquire dignifiedquire modified the milestones: v0.22.0, v0.23.0 Jul 31, 2024
@ramfox ramfox modified the milestones: v0.23.0, v0.24.0 Aug 19, 2024
github-merge-queue bot pushed a commit that referenced this issue Aug 28, 2024
## Description

Upgrades the Quinn and Rustls dependencies. This touches a lot of
dependencies and affects a lot of the internal API due to the changes in
Quinn.

## Breaking Changes

- `iroh::net::endpoint::Endpoint::accept` now returns `Incoming` instead
of `Connecting`. This allows rejecting incoming connections earlier,
notify the initiating side to retry later and more. To get back
`Connecting`, simply use `Incoming::accept()`. If all you did with
`Connecting` before was to `.await` it, you can do the same with
`Incoming`, too, and get back a `Connection`.
- Removed `iroh::net::endpoint::Builder::concurrent_connections`. The
amount of concurrent connections is now controlled by either calling
`Incoming::accept` or `Incoming::refuse` after `Endpoint::accept`.

## Notes & open questions

See #2273 for the tracking issue coordinating all this work. This is the
last piece of the puzzle.

## Change checklist

- [x] Self-review.
- [x] Documentation updates following the [style
guide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),
if relevant.
- [x] Tests if relevant.
- [x] All breaking changes documented.

---------

Co-authored-by: dignifiedquire <me@dignifiedquire.com>
Co-authored-by: Philipp Krüger <philipp.krueger1@gmail.com>
@ramfox
Copy link
Contributor

ramfox commented Aug 29, 2024

Closed by #2595

@ramfox ramfox closed this as completed Aug 29, 2024
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in iroh Aug 29, 2024
matheus23 added a commit that referenced this issue Nov 14, 2024
## Description

Upgrades the Quinn and Rustls dependencies. This touches a lot of
dependencies and affects a lot of the internal API due to the changes in
Quinn.

## Breaking Changes

- `iroh::net::endpoint::Endpoint::accept` now returns `Incoming` instead
of `Connecting`. This allows rejecting incoming connections earlier,
notify the initiating side to retry later and more. To get back
`Connecting`, simply use `Incoming::accept()`. If all you did with
`Connecting` before was to `.await` it, you can do the same with
`Incoming`, too, and get back a `Connection`.
- Removed `iroh::net::endpoint::Builder::concurrent_connections`. The
amount of concurrent connections is now controlled by either calling
`Incoming::accept` or `Incoming::refuse` after `Endpoint::accept`.

## Notes & open questions

See #2273 for the tracking issue coordinating all this work. This is the
last piece of the puzzle.

## Change checklist

- [x] Self-review.
- [x] Documentation updates following the [style
guide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),
if relevant.
- [x] Tests if relevant.
- [x] All breaking changes documented.

---------

Co-authored-by: dignifiedquire <me@dignifiedquire.com>
Co-authored-by: Philipp Krüger <philipp.krueger1@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

No branches or pull requests

5 participants