js-libp2p 0.25.0 released

by Jacob Heun on 2019-04-12

Save the routers, save the world.

🔦 Highlights

Libp2p 0.25 is already in the new js-ipfs 0.35 release. If you’re using js-ipfs, you’ll get these changes immediately if you upgrade there!

☎️ Auto Dial

Libp2p will now auto dial to discovered peers by default. This can be disabled in configuration if you need to do any specialized dialing. Discovered peers will only be dialed if we are under our min peers threshold, which is configured for the Connection Manager. You can read more about Peer Discovery and Auto Dial here.

✂️ Better Connection Management

We fixed an issue with Libp2p Switch that resulted in the Connection Manager thinking there were far fewer connections than there actually were. The Connection Manager is back to keeping your router safe and your connection count within its configured range.

📔 Blacklisting Undialable Nodes

Libp2p will now blacklist nodes that aren’t dialable. The blacklisting includes an exponential backoff with a random jitter. This along with auto dial, helps to ensure libp2p is spending its connection resources wisely. You can read more about the configuration options in the libp2p-switch readme.

🔢 Dial Queues

Libp2p Switch now has better queuing for dials! Previously, the only limiting of dials was done per peer. Now, all dials will enter a global queue so that we can better manage connection attempts. The current default limit is 100 parallel dials, but you can configure this to your needs. If a peer is already connected, any calls to .dial() or .dialProtocol() skip the line and will be executed immediately. Any dials done as a result of Auto Dial will take a back seat.

⚖️ Smaller than ever

Since the 0.24 release, libp2p has dropped some weight. The bundle size is now ~42% smaller!

🏗 API Changes

❤️ Huge thank you to everyone that made this release possible

In alphabetical order, here are all the humans that contributed to the release:

🙌🏽 Want to contribute?

Would you like to contribute to the libp2p project and don’t know how? Well, there are a few places you can get started:

⁉️ Do you have questions?

The best place to ask your questions about libp2p, how it works and what you can do with it is at discuss.libp2p.io. We are also available at the #libp2p channel on Freenode.