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
I was advised to create an issue from #2860 (reply in thread). Iroh-net's Endpoint::connect is hard-coded to use a TransportConfig of every-second keepalives with 30-second timeouts (latter default from Quinn), regardless of any TransportConfig that was passed to Builder::transport_config (which is only used for incoming connections). This effectively means that you can only increase the keepalive interval and reduce the timeout from these defaults.
I can't think of a great reason that the incoming and outgoing TransportConfig values should ever be different, so I think the default should be to use the Endpoint's configured values for outgoing connections. However, if there is a use case for this (perhaps different ALPNs should have different timeouts), a method like connect_with(node_addr, alpn, transport_config) could work well.
The text was updated successfully, but these errors were encountered:
Add an Endpoint::connect_with_transport_config(&self, node_addr: impl Into<NodeAddr>, alpn: &[u8], transport_config: TransportConfig) (modulo some bikeshedding).
Modify connect_quinn to take the TransportConfig as well, so that the above can work. But in the first instance keep the current default TransportConfig but moved into connect, things work now for many folks and we need to be careful changing those values. I'd like to give folks a chance to try things out first before changing the defaults.
If Builder::transport_config is used use that as the default in connect as well as for accepting.
Previously the TransportConfig was hardcoded for the
client (client/server in QUIC terminology: client initiates the
connection, server accepts the connection). This rendered some
customisations on the server-side, as supported by the Builder,
impossible since the client would negotiate different limits.
Specifically the QUIC keep-alives were at a 1s or faster interval
while the connection timeout was at 30s or less.
This adds a new API marked as experimental which allows customising
the transport config for clients.
Secondly it also respects any custom TransportConfig set in the
Builder for clients as well as servers. This is not a behaviour
change since the parameters set by default are now moved to the
Builder and due to how these are negotiated it does not matter that
the server will now also have the same values set by default.
Closes#2872.
flub
linked a pull request
Jan 9, 2025
that will
close
this issue
I was advised to create an issue from #2860 (reply in thread). Iroh-net's Endpoint::connect is hard-coded to use a TransportConfig of every-second keepalives with 30-second timeouts (latter default from Quinn), regardless of any TransportConfig that was passed to Builder::transport_config (which is only used for incoming connections). This effectively means that you can only increase the keepalive interval and reduce the timeout from these defaults.
I can't think of a great reason that the incoming and outgoing TransportConfig values should ever be different, so I think the default should be to use the Endpoint's configured values for outgoing connections. However, if there is a use case for this (perhaps different ALPNs should have different timeouts), a method like
connect_with(node_addr, alpn, transport_config)
could work well.The text was updated successfully, but these errors were encountered: