js-ipfs 0.32.0 released

js-ipfs 0.32.0 released

A pinch of IPNS, some chunking of files and you'll have a delicious IPFS stew for supper.

# πŸ”¦ Highlights

# πŸ“› IPNS locally

IPNS has it's foot in the door, and it's coming in! In this release IPNS works for your local node. It means you can now publish (opens new window) records to your local repo and read (opens new window) them back. There's still some way to go but you know the saying right, "from small beginnings comes great IPNS"?

# πŸ•΅οΈβ€β™€οΈ Partial ipfs.resolve

In preparation for IPNS landing, we've rolled out a partial implementation of the resolve (opens new window) command. The idea of the resolve command is to figure out the underlying hash of the content referred to by an IPNS name or an IPFS path.

The new resolve command can resolve paths like /ipfs/QmRootHash/path/to/file to /ipfs/QmFileHash and will soon be able to deal with IPNS names in an upcoming release.

# πŸ“¦ libp2p bundle function

We made it even easier to create your libp2p bundle! If you're looking to create a completely custom libp2p bundle then you can now pass a function in place of your libp2p config (opens new window) which should return your libp2p bundle. It's passed useful information like the IPFS node peer ID so you should be able to build your bundle exactly the way you want! You're welcome 😁

# πŸ₯’ Support for chunking algorithm

Slice and dice your DAG nodes the way you wantℒ️. When adding data to your IPFS node you can now specify the size of the chunks it creates from your data or even use rabin fingerprinting (opens new window) to create some fancy variable length chunks for better deduping.

Rabin (opens new window) is a native module and must be compiled on your system when you run npm install ipfs. Native modules depend on specific languages and tools (opens new window) to be pre-installed on your computer and because of this has been made an optional dependency (opens new window). That means that it's πŸ‘Œ if it fails to install, it just won't be available to use in IPFS. If you're thinking of using rabin chunking then be sure to check that it installed properly in your install logs.

Check out the docs for the files.add chunker option (opens new window) for more.

# πŸ— API Changes

  • Added ipfs.name.publish and ipfs.name.resolve. This only works on your local node for the moment until the DHT lands. API docs can be found here (opens new window).
  • Added ipfs.resolve API. Note that this is a partial implementation allowing you to resolve IPFS paths like /ipfs/QmRootHash/path/to/file to /ipfs/QmFileHash. It does not support IPNS yet.
  • ipfs.files.add* now supports a chunker option, see the API docs (opens new window) for details

# πŸ™ŒπŸ½ 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 at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
  • Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
  • 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 βš‘οΈβ’Ώβ“ˆ Core Dev Team Weekly Sync πŸ™ŒπŸ½ (opens new window) and be part of the Sprint 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.