-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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 #872
Comments
A timestamp in the |
As discussed with @raulk offline, we are going to call it the For now, the first win is to get in the connection gating work. |
@willscott I don't think I heard about the UUID idea yet -- where can I find more info? Some notes from @aarshkshah1992 and my discussion.
|
in the previous revision of the OP of this issue |
@raulk @willscott Apologies, it was a WIP spec that I wanted to refine after the discussion with @raulk and so got rid of it for now to not confuse readers. |
While the filters wont get applied for QUIC etc. in the upgrader, they will get applied before we incorporate the connection into the Swarm.
The reason we seem to have injected these filters into the upgrader is to save the cost of upgrading a raw inbound connection as the Swarm can't help us there until connection has been upgraded. |
sorry, may I ask when this feature can be completed? |
@wenchaopeng likely this week. |
@raulk received, you are doing a great thing, thank you! |
Bulk of the work is completed here, and everything has landed onto corresponding master branches. I'm going to open follow-up issues for each TODO item, so we can close this epic. |
This is done, but cannot be released until we implement #931, or we'll cause a regression in the QUIC transport. |
Can we keep this issue open until the feature is released? Otherwise, I am not sure what to track for the availability of connection gating. Thanks! |
@prestonvanloon That makes sense. The main thing left now before we release this is #931 which should land soon. |
@prestonvanloon Released! Read all about it: https://github.com/libp2p/go-libp2p/releases/tag/v0.9.0 |
See libp2p/go-libp2p-core#99 for the motivation for this issue.
TODO (PRs to be merged)
The
ConnectionGater
interface in core (status: released):add connection gating interfaces and types. go-libp2p-core#139
Use the ConnectionGater in the transport upgrader (status: released):
call the connection gater when accepting connections and after crypto handshake go-libp2p-transport-upgrader#55
Use the ConnectionGater in Swarm (status: released):
implement connection gating support: intercept peer, address dials, upgraded conns go-libp2p-swarm#201
Shim the Filter to a ConnectionGater (status: done in implement connection gating at the top level #881):
Shim for Connection Gater go-maddr-filter#22
Deprecate Filters with ConnectionGater in libp2p and inject it to Swarm and Upgrader. Also, reflection magic to inject gaters into transports (should they need them) (status: merged): implement connection gating at the top level #881
TODO (Work to be done)
MockConnGater
in Swarm to "go-libp2p/p2p/net/mock ". See implement connection gating support: intercept peer, address dials, upgraded conns go-libp2p-swarm#201 (comment).The text was updated successfully, but these errors were encountered: