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

go-libp2p v0.23 #1690

Closed
15 of 21 tasks
marten-seemann opened this issue Aug 19, 2022 · 0 comments
Closed
15 of 21 tasks

go-libp2p v0.23 #1690

marten-seemann opened this issue Aug 19, 2022 · 0 comments

Comments

@marten-seemann
Copy link
Contributor

marten-seemann commented Aug 19, 2022

🗺 What's left for release

WebTransport: Tracking issue #1717

Yamux:

Misc:

https://github.com/orgs/libp2p/projects/3/views/2?filterQuery=release%3A%220.23%22

🔦 Highlights

WebTransport

go-libp2p now has experimental support for WebTransport, powered by webtransport-go. WebTransport is a brand-new transport protocol currently under development at the IETF and w3c, and already supported by Chrome. WebTransport allows browsers to establish an encrypted, stream-multiplexed connection (running on top of QUIC) to servers.

js-libp2p is currently working on a WebTransport client implementation: https://github.com/libp2p/js-libp2p-webtransport.

How to enable

Because support is still experimental, WebTransport has be explicitly enabled. When constructing a node, pass in the WebTransport transport, and configure a WebTransport listen address:

host, err := libp2p.New(
	libp2p.DefaultTransports,
	libp2p.Transport(webtransport.New),
        libp2p.ListenAddrStrings("/ip4/0.0.0.0/udp/1234/quic/webtransport"),
)

Other

  • It's now possible to disable reuseport for the QUIC transport (quic: add DisableReuseport option #1476). Note: If disabled, QUIC cannot be use for NAT hole punching.
  • If no listen addresses are specified, a libp2p now listens on TCP and QUIC (both IPv4 and IPv6).
  • Transports can now have a say in how a multiaddr is resolved: Add Resolver interface to transport #1719. This allows transports to modify the multiaddr before the address is dialed. A transport can set the SNI field for TLS or decide to do its own domain name resolution.
  • Yamux now regularly remeasures the RTT of the underlying connection. The RTT is used to auto-tune the size of the receive buffer.
  • The QUIC and TCP transports now don't collect metrics, unless the WithMetrics option is passed to their constructor (QUIC change, TCP change).

Changelog

< changelog generated by scripts/mkreleaselog >

✅ Release Checklist

  • Stage 0 - Finishing Touches
    • Go through relevant libp2p repos looking for unreleased changes that should make it into the release. If you find any, cut releases.
    • Run go get -u ./... to see if there are any out-of-date deps that look important. If there are, bubble them. Try to avoid directly updating indirect deps in go-libp2p's go.mod when possible.
  • Stage 1 - Release
    • Publish the release through the GitHub UI, adding the release notes. Some users rely on this to receive notifications of new releases.
    • Announce the release on the discuss.libp2p.io.
  • Stage 2 - Update Upstream
  • Make required changes to the release process.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

1 participant