Skip to content

Latest commit

 

History

History
164 lines (124 loc) · 10.3 KB

097-js-ipfs-0.46.md

File metadata and controls

164 lines (124 loc) · 10.3 KB
date permalink title header_image description author tags
2020-06-08
/2020-06-08-js-ipfs-0-46/
js-IPFS 0.46.0 released with new faster bitswap and go-IPFS 0.5 compat
/header-image-js-ipfs-placeholder.png
Alex Potsides
js-ipfs

🔦 Highlights

Bitswap 1.2.0, transfer speed improvements & go-IPFS 0.5.x compatibility

Blink and you’ll miss it, [email protected] [email protected] has been released; goodies include Bitswap 1.2.0, much faster file transfers, and go-IPFS 0.5.x compatibility!

↔️ Bitswap 1.2.0

Version 1.2.0 of the Bitswap protocol has landed in js-IPFS and brings a host of performance improvements around coordinating the supply of blocks to peers across the network. For example, peers can now respond to WANTs with messages saying they have the block but not sending it, in order to later send multiple blocks in one message instead of many small messages resulting in less chatty network operations and faster overall transfer times.

See ipfs/js-ipfs-bitswap#204 for more!

💨 Faster file transfers

The Bitswap module has had a bit of an overhaul and is now much faster at pulling blocks from other nodes across the network. Before, we waited a little while before sending our wantlist to newly connected peers—we’ve reduced that window and seen a massive speedup (smaller bars are better):

Graphs showing Bitswap speedups

As you can see, the new js-IPFS is about 3x faster at pulling large files from other nodes on the network than the previous release, and that increases to about 5x as the files get smaller.

We’re not stopping there though, there are plenty more performance improvements on the way!

See ipfs/js-ipfs-bitswap#224 for all the details.

🤝 go-IPFS v0.5.x compatibility

The new version of go-IPFS brought a whole slew of changes with it—check out our blog post for more details.

The good news is js-IPFS has taken on a whole heap of these features and the ipfs-http-client is now 100% compatible with [email protected]. Your js-IPFS nodes will now happily chat away to go-IPFS nodes over the network via Bitswap and gossipsub too.

See ipfs/js-ipfs#3013 for the full rundown.

✨New features

  • Using an AbortSignal to cancel a request to get a block (via ipfs.dag.get or ipfs.cat for example) will now cause those blocks to be removed from your wantlist (ipfs/js-ipfs-bitswap#214)
  • ipfs.dht.get(key, [options]) accepts a string or a buffer as key (#3013) (0900bb9)

🦟 Bugs fixed

🏗 API Changes

Core API

  • ipfs.ls no longer supports a sort option (#3013) (0900bb9)
  • ipfs.key.gen defaults to 2048 bit RSA keys (#3013) (0900bb9)

CLI

  • ipfs files ls no longer supports the -U (unsorted) flag (#3013) (0900bb9)

HTTP API

  • POST /api/v0/pin/list no longer supports non-streaming responses (#3013) (0900bb9)

HTTP API Client

  • ipfs.dht.get resolves to a Buffer in line with the core API (#3013) (0900bb9)

🗺️ What’s next?

Check out the js-IPFS Project Roadmap which contains headline features organised in the order we hope them to land.

Only large features are called out in the roadmap, expect lots of small bugfix releases between the roadmapped items!

😍 Huge thank you to everyone that made this release possible

🙌🏽 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:

⁉️ 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. We are also available at the #ipfs channel on Freenode.