-
Notifications
You must be signed in to change notification settings - Fork 48
js-ipfs 0.29.0 release blog post #163
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
--- | ||
date: 2018-05-29 | ||
url: 38-js-ipfs-0-29 | ||
title: js-ipfs 0.29.0 released | ||
author: David Dias | ||
--- | ||
|
||
<blockquote class="twitter-tweet" data-conversation="none" data-lang="en"><p lang="en" dir="ltr">I love the smell of a new release in the morning 😁<a href="https://twitter.com/hashtag/IPFS?src=hash&ref_src=twsrc%5Etfw">#IPFS</a> <a href="https://twitter.com/hashtag/JS?src=hash&ref_src=twsrc%5Etfw">#JS</a> v0.29.0 🚀<br><br>✔ Test <br>✔ Build dist version <br>✔ Update Contributors list <br>✔ Bump Version: v0.28.2 -> v0.29.0 <br>✔ Gen Changelog <br>✔ Publish to npm 🌟<br><br>Find the latest on your favorite module store!</p>— David Dias (@daviddias) <a href="https://twitter.com/daviddias/status/1001432008302694400?ref_src=twsrc%5Etfw">May 29, 2018</a></blockquote> | ||
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> | ||
|
||
# 🔦 Highlights | ||
|
||
### 🏎 Bitswap is 30% faster | ||
|
||
Bitswap is now 30% thanks to fixing a bug on [js-ipfs-bitswap](https://github.com/ipfs/js-ipfs-bitswap/pull/175#issuecomment-390957244) that was causing every message to be sent individually. | ||
|
||
### 👓 js-ipfs now works with uglify-es just fine | ||
|
||
The duck typing throughout js-ipfs has been improved and that means that now you can use uglify-es again to minify your js-ipfs code. The result is that the js-ipfs bundled version is now back to its minified size as well. | ||
|
||
### ☎️ Circuit Relay was merged in | ||
|
||
Circuit Relay enables connectivity between any two nodes through a third relay node. This ensures connectivity in almost every scenario, that is, as long as peers can connect to some public IP node. Learn how to use it [here](https://github.com/ipfs/js-ipfs/tree/master/examples/circuit-relaying). This was one of the two features that js-ipfs was missing to get full connectivity. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I feel like this needs more bravado. This is BIG news! Maybe first item? More emoji? Mention NAT traversal? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It is indeed a big deal. We should be careful to mention that we still need a go release to work out all the issues with go interop. RE: NAT traversal, we might want to say that our next steps are building on top of circuit with true NAT traversal with the use of UPnP and NAT-PMP, which will allow opening external ports on the users router as well as the possibility of using techniques such as |
||
|
||
### 🗑 S3 backend for IPFS | ||
|
||
Ever wished you could use an external storage backend to store all your IPFS blocks? Now you do and we got a tutorial for you! See how to configure a repo at https://github.com/ipfs/js-ipfs/tree/master/examples/custom-ipfs-repo and if you want to learn how to use S3 as your external backend, then consult https://github.com/ipfs/js-datastore-s3/tree/master/examples/full-s3-repo. | ||
|
||
### 📜 README Overhaul | ||
|
||
The js-ipfs README keeps improving, now with 40% more information about the multiple arguments you can pass to IPFS. Read all the options at https://github.com/ipfs/js-ipfs#api | ||
|
||
### 🎷 Project Tracking | ||
|
||
If you haven't already, I welcome you to check how the js-ipfs team tracks their work at https://github.com/ipfs/js-ipfs/blob/master/MGMT.md. It is fun to see the issues fly through the [waffle board](https://waffle.io/ipfs/js-waffle). | ||
|
||
### ✅ Config validation and config reuse fix | ||
|
||
In addition to better documentation on how to configure your node, you now get some config validation in case you mistype something. Also as a bonus, you can now spin multiple nodes in the same process without them getting confused and using the same config. | ||
|
||
### 📖 interface-ipfs-core keeps getting more API calls documented and tested | ||
|
||
Make yourself familiar with the IPFS Core API at https://github.com/ipfs/interface-ipfs-core/tree/master/SPEC. New additions include files.add --wrapWithDirectory, --onlyHash and others. | ||
|
||
### 📊 Bandwidth stats now available | ||
|
||
Bandwidth statistics for your IPFS node from the `libp2p` layer are now exposed and available to query for the whole node, per peer or per protocol. You can also use Node streams or pull streams to get a continuous feed of that tasty statistical juice. | ||
|
||
### 📡 Fully Async PubSub API | ||
|
||
The PubSub API has been updated to expose Async calls (with Callbacks and Promises). This was necessary as some nodes exist behind an HTTP API and using a fake sync API would create race conditions. Make sure to update your use of PubSub, you can see the API changes below. | ||
|
||
### 🛎 Ping API implemented | ||
|
||
JS IPFS now has API calls for pinging other peers. Fun fact, this was actually the first thing a js-ipfs node did, but it got lost in a massive refactor and now it is back and not only in js-ipfs core, it is also available through the CLI and HTTP API | ||
|
||
### ⚛️ Electron Main Process support with Electron 2.0 | ||
|
||
As a good surprise, Electron 2.0 has better support for Native Modules and with that, js-ipfs can run on the Main process mode. This concludes the [full support for IPFS in electron](https://github.com/ipfs/notes/issues/256). | ||
|
||
# 🏗 API Changes | ||
|
||
1. Argument order for `pubsub.subscribe` has changed: | ||
* Old: `pubsub.subscribe(topic, [options], handler, [callback]): Promise` | ||
* New: `pubsub.subscribe(topic, handler, [options], [callback]): Promise` | ||
2. The `pubsub.unsubscribe` method has become async meaning that it now takes a callback or returns a promise: | ||
* Old: `pubsub.unsubscribe(topic, handler): undefined` | ||
* New: `pubsub.unsubscribe(topic, handler, [callback]): Promise` | ||
3. Property names on response objects for `ping` are now lowered: | ||
* Old: `{ Success, Time, Text }` | ||
* New: `{ success, time, text }` | ||
4. In the CLI, `jsipfs object data` no longer returns a newline after the end of the returned data | ||
|
||
# 🙌🏽 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.io/ and help users finding their answers. | ||
- Join the [ⒿⓈ⚡️ js-ipfs Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/js-ipfs/issues/1179) 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.io](http://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode. | ||
|
||
That is all for this post. Thank you for being part of the community. I bid you a good day! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo "Bitswap is now 30% thanks" -> "Bitswap is now 30% faster, thanks"