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

Connection gating: adapt QUIC transport #931

Closed
1 task done
raulk opened this issue May 15, 2020 · 2 comments
Closed
1 task done

Connection gating: adapt QUIC transport #931

raulk opened this issue May 15, 2020 · 2 comments

Comments

@raulk
Copy link
Member

raulk commented May 15, 2020

Motivation

Now that #872 has landed, we have the abstractions and the hooks in the right places to actively intercept inbound and outbound connections at the following lifecycle stages:

  • peer being dialled.
  • address being dialled.
  • connection being accepted.
  • connection secured and authenticated.
  • connection fully upgraded (or equivalent, i.e. we have a fully capable connection).

Transports that call the Upgrader are benefitting from the interception checkpoints automatically, but transports that support native crypto and multiplexing do not call the upgrader. One such example is QUIC.

For those cases, go-libp2p is now injecting the ConnectionGater to transports so we can manage connections at the very edges of system.

Goals

  • Replace the *filter.Filters parameter in the QUIC transport constructor with connmgr.ConnectionGater, and call the right checkpoints at the right time.
    • note: for the sake of cleanliness, the Filters => ConnectionGater migration will be a breaking one, i.e. we have stopped injecting the *filter.Filters struct into constructors, so this adaption is totally necessary.

This is a follow-up to #872.

@raulk
Copy link
Member Author

raulk commented May 15, 2020

@marten-seemann are you available to take this one? I'm happy to do it too.

@raulk
Copy link
Member Author

raulk commented May 19, 2020

Fixed by libp2p/go-libp2p-quic-transport#152.

@raulk raulk closed this as completed May 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant