You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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:
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
*filter.Filters
parameter in the QUIC transport constructor withconnmgr.ConnectionGater
, and call the right checkpoints at the right time.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.
The text was updated successfully, but these errors were encountered: