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.31 #2481

Closed
13 of 23 tasks
marten-seemann opened this issue Aug 15, 2023 · 1 comment
Closed
13 of 23 tasks

go-libp2p v0.31 #2481

marten-seemann opened this issue Aug 15, 2023 · 1 comment

Comments

@marten-seemann
Copy link
Contributor

marten-seemann commented Aug 15, 2023

🗺 What's left for release

Planned release date: Aug 28th (Kubo v0.23 cutoff is Aug 31st, see ipfs/kubo#10014)

Experimental libp2p+HTTP:

Misc:

QUIC:

🔦 Highlights

< top highlights for this release notes >

libp2p+HTTP

We're introducing a new experimental API in go-libp2p, enabling developers to utilize libp2p with the well-known semantics of HTTP. This isn't a special flavor of HTTP; it's standard HTTP, but enhanced with libp2p. Developers can now benefit from HTTP intermediaries such as CDN caching and layer 7 load balancing. This allows developers to create HTTP applications that operate over NATs and seamlessly tap into libp2p's diverse transport options to boost connectivity. In addition, the HTTP transport now joins the roster of supported transports in libp2p.

The new API is under libp2phttp.Host in the "github.com/libp2p/go-libp2p/p2p/http" package. This is like the stream transport host (host.Host in "github.com/libp2p/go-libp2p/core/host"), but exposes HTTP request/response rather than a stream API. Refer to the godoc for details on the API and examples.

QUIC Generic Segmentation Offload

This release updates quic-go to v0.38.x, which enables GSO (Generic Segmentation Offload) in the send path, drastically increasing the packet send rate. Without GSO, quic-go had to use a single sendmsg syscall for every UDP datagram sent. GSO allows us to pass one giant (up to 64k) datagram to the sendmsg syscall, and have the kernel chop it into MTU sized (~1300 bytes) datagrams before sending them out on the wire. For more details on syscall optimizations, CloudFlare published an excellent blog post about this a while ago. GSO is currently only available on Linux (and with kernels >4.18).

Changelog

< changelog generated by scripts/mkreleaselog >

✅ Release Checklist

@master255
Copy link

Great Job!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@marten-seemann @master255 @p-shahi and others