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

feat(iroh-relay): add QUIC endpoint for QUIC Address Discovery #2964

Closed
ramfox opened this issue Nov 25, 2024 · 0 comments · Fixed by #2965
Closed

feat(iroh-relay): add QUIC endpoint for QUIC Address Discovery #2964

ramfox opened this issue Nov 25, 2024 · 0 comments · Fixed by #2965
Assignees
Milestone

Comments

@ramfox
Copy link
Contributor

ramfox commented Nov 25, 2024

Also, need to add configuration to RelayNode in iroh-net, that is enabled by default, that allows you to configure a custom QUIC port for that relay.

@ramfox ramfox added this to the v0.29.0 milestone Nov 25, 2024
@ramfox ramfox self-assigned this Nov 25, 2024
@ramfox ramfox added this to iroh Nov 25, 2024
@ramfox ramfox changed the title iroh-relay(feat): add QUIC endpoint for QUIC Address Discovery feat(iroh-relay): add QUIC endpoint for QUIC Address Discovery Nov 25, 2024
@ramfox ramfox moved this to 📋 Backlog in iroh Nov 25, 2024
@ramfox ramfox moved this from 📋 Backlog to 🏗 In progress in iroh Nov 25, 2024
@ramfox ramfox moved this from 🏗 In progress to 👀 In review in iroh Nov 27, 2024
github-merge-queue bot pushed a commit that referenced this issue Dec 2, 2024
…e iroh relay. (#2965)

## Description

This PR adds a QUIC endpoint to the relay server that can do QUIC
address discovery. It also contains structs/functions for properly doing
the Client side interaction for this process.

Also, this adjust the `RelayNode` to include configuration on how to
speak to the QUIC endpoint on the relay server.

QUIC is disabled by default and requires a `TlsConfig` to be configured
in order to work.

closes #2964 

## Breaking Changes

- `iroh_base::relay_map::RelayNode` now has field `quic` that takes a
`Option<iroh_base::relay_map::QuicConfig>`
- `iroh::test_utils::run_relay_server_with(stun: Option<StunConfig>)` =>
`iroh::test_utils::run_relay_server_with(stun: Option<StunConfig>, quic:
bool)`
- when `quic` is `true`, it will start a quic server for QUIC address
discovery, that has self signed tls certs for testing.
- `iroh_relay::server::ServerConfig` has field `quic` that takes a
`Option<iroh_relay::server::QuicConfig>`
- `iroh_relay::server::TlsConfig.quic_bind_addr` is a new field that
takes a `SocketAddr`
- `iroh_relay::server::TlsConfig.server_config` is a new field that
takes a `rustls::ServerConfig`
- field `config` has been removed from variant
`iroh_relay::server::CertConfig::LetsEncrypt`
- variant `iroh_relay::server::CertConfig::LetsEncrypt` has a new field
`state` that takes a `tokio_rustls_acme::AcmeState<EC, EA>`
- variant `iroh_relay::server::CertConfig::Manual` no longer has field
`private_key`

## 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: “ramfox” <“[email protected]”>
@github-project-automation github-project-automation bot moved this from 👀 In review to ✅ Done in iroh Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant