js-ipfs 0.38.0 released

js-ipfs 0.38.0 released

Garbage collection, gossipsub, IPNS support for ipfs resolve, oh my!

$ npm install -g ipfs

# 🔦 Highlights

Garbage collection, gossipsub & IPNS support for ipfs resolve! Also a new release process!

# 🗑️ Garbage collection

Support for garbage collection has shipped with 0.38.0! This means that blocks in your IPFS Repo will be removed whenever gc is run unless they are pinned.

This is essential for keeping your repo to a manageable size, but must be run manually for the time being.

Use it with the following command:

$ jsipfs repo gc
removed Qmfoo
removed Qmbar

To prevent blocks being collected, pin them:

$ jsipfs pin add Qmbaz
pinned Qmbaz recursively

# 💬 Gossipsub enabled by default

Pubsub is now enabled by default with Gossipsub as the default implementation.

More efficient than Floodsub (opens new window), Gossipsub (opens new window) creates an overlay on top of the network of nodes which propagates messages to a subset of subscribers instead of broadcasting messages to everyone.

Read more about the design at libp2p/specs/pubsub/gossipsub (opens new window)

# 📛 IPNS support for ipfs resolve

You can now resolve IPNS (opens new window) names via ipfs resolve, what's more the recursive option is now on by default.

$ jsipfs resolve /ipns/Qmqux

# 🎁 New relase process & a call for early testers

This is the first release to follow our new, more predictable, more rigorous release process. It's outlined in the release issue template (opens new window), but in short we have defined steps, with an additional period for internal & external testing and gathering feedback on the changes.

It's also the first release to ship with lockfiles for yarn and npm. This is to ensure that you only get the dependencies that we have validated with CI, and not untested code that may have been released with breaking changes since CI last ran on the release candidate.

But the best bit is that we run the test suites of third party repos (opens new window) with the RCs as part of CI to ensure we don't break anything - if you would like your project added to that list, please send a PR to EARLY_TESTERS.md (opens new window) adding a link to your repo! That way you'll get early warning of any work that needs to be done to upgrade your project to the latest & greatest.

# 🏗 API Changes

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

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

# 🙌🏽 Want to contribute?

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

  • Check the issues with the help wanted label in the js-ipfs repo (opens new window)
  • Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
  • Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
  • Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
  • Join the 🚀 IPFS Core Implementations Weekly Sync 🛰 (opens new window) and be part of the action!

# ⁉️ Do you have questions?

The best place to ask your questions about IPFS, how it works and what you can do with it is at discuss.ipfs.tech (opens new window). We are also available at the #ipfs channel on Freenode.