-
Notifications
You must be signed in to change notification settings - Fork 279
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
Tracking issue: mplex deprecation #553
Comments
Eth consensus still specifies And some eth2 clients still don't have a prod-ready yamux (nimbus doesn't, last time I talked to lodestar they didn't, and I think teku doesn't) edit: apparently jvm-libp2p barely supports yamux |
Lodestar latest stable supports mplex only but we have a complete implementation of yamux in heavy testing for the last 1-2 months. Hopefully we can rollut soonish |
People can still configure js-libp2p with mplex and continue to use it if they wish, they'll just get a warning when they do an |
Thank you @Menduist, I wasn't aware. What would be the process to get that spec changed? |
The first step would be for every client to have yamux enabled by default (which requires stable support in their underlying libp2ps, and proper testing) Once that is done & we are confident in all yamuxes, we can update the specs to remove mandatory support |
Nope. It is already "annoying" to use because you need to add a separate dependency. A next step could be to remove it from the mono-repo and add it to a community maintained one for people that still want to use it. |
Kubo removed mplex support: ipfs/kubo#9958. |
Per ipfs/kubo#10069, Kubo is actually going to disable mplex by default for the next Kubo release and then followup with removing mplex in the next release. I know the woes of mplex have been decried many times before. Is there a canonical place that we point to for explaining why not to use mplex. I think it would be good to link to that from this issue (and others like ipfs/kubo#10069) |
When libp2p/blog#106 is done we can point users to this blog post. Afaik there's no other place other than https://docs.libp2p.io/concepts/multiplex/mplex/#drawbacks atm |
## Issue Addressed N/A ## Proposed Changes In #4431 , we seem to have removed support for mplex as it is being deprecated in libp2p. See libp2p/specs#553 . Related rust-libp2p PR libp2p/rust-libp2p#3920 However, since this isn't part of the official [consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#multiplexing), we still need to support mplex. > Clients MUST support [mplex](https://github.com/libp2p/specs/tree/master/mplex) and MAY support [yamux](https://github.com/hashicorp/yamux/blob/master/spec.md). This PR adds back mplex support as before.
## Issue Addressed N/A ## Proposed Changes In #4431 , we seem to have removed support for mplex as it is being deprecated in libp2p. See libp2p/specs#553 . Related rust-libp2p PR libp2p/rust-libp2p#3920 However, since this isn't part of the official [consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#multiplexing), we still need to support mplex. > Clients MUST support [mplex](https://github.com/libp2p/specs/tree/master/mplex) and MAY support [yamux](https://github.com/hashicorp/yamux/blob/master/spec.md). This PR adds back mplex support as before.
## Issue Addressed N/A ## Proposed Changes In #4431 , we seem to have removed support for mplex as it is being deprecated in libp2p. See libp2p/specs#553 . Related rust-libp2p PR libp2p/rust-libp2p#3920 However, since this isn't part of the official [consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#multiplexing), we still need to support mplex. > Clients MUST support [mplex](https://github.com/libp2p/specs/tree/master/mplex) and MAY support [yamux](https://github.com/hashicorp/yamux/blob/master/spec.md). This PR adds back mplex support as before.
I guess an even better phrasing for this would be: "If you need a dedicated muxer, yamux should be used. Overall, QUIC should be preferred over TCP"? |
Other past discussion: #402 |
good point @thomaseizinger pushing change now |
N/A In sigp#4431 , we seem to have removed support for mplex as it is being deprecated in libp2p. See libp2p/specs#553 . Related rust-libp2p PR libp2p/rust-libp2p#3920 However, since this isn't part of the official [consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#multiplexing), we still need to support mplex. > Clients MUST support [mplex](https://github.com/libp2p/specs/tree/master/mplex) and MAY support [yamux](https://github.com/hashicorp/yamux/blob/master/spec.md). This PR adds back mplex support as before.
N/A In sigp#4431 , we seem to have removed support for mplex as it is being deprecated in libp2p. See libp2p/specs#553 . Related rust-libp2p PR libp2p/rust-libp2p#3920 However, since this isn't part of the official [consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#multiplexing), we still need to support mplex. > Clients MUST support [mplex](https://github.com/libp2p/specs/tree/master/mplex) and MAY support [yamux](https://github.com/hashicorp/yamux/blob/master/spec.md). This PR adds back mplex support as before.
Things left to do:
@achingbrain Anything left to do on the JS side?
@mxinden @thomaseizinger Anything left to do on the Rust side? Feel free to add to above list.
The text was updated successfully, but these errors were encountered: