js-ipfs 0.39.0 released

by Alex Potsides on 2019-10-24

Configure your node with preset profiles! Limit outgoing browser requests! Start your node from fresh with one command!

🔦 Highlights

🛠 Config profiles

IPFS now supports the jsipfs config profile subcommand which you can use to update your configuration with certain presets suited for different use cases.

You can examine available profiles with the jsipfs config profile ls command:

$ jsipfs config profile ls
server:
 Recommended for nodes with public IPv4 address (servers, VPSes, etc.)...
local-discovery:
 Sets default values to fields affected by `server` profile...
test:
 Reduces external interference, useful for running ipfs in test environments...
default-networking:
 Restores default network settings. Inverse profile of the `test` profile.
lowpower:
 Reduces daemon overhead on the system. May affect node functionality...
default-power:
 Inverse of "lowpower" profile.

Apply them with jsipfs config profile apply:

$ jsipfs config profile apply lowpower
... output shows the difference between the old config and the new

You will need to restart your daemon for changes to take effect.

Profiles can also be applied on init:

$ jsipfs init --profile server

Or when starting the daemon (more on that in the ‘Init and start’ section below):

$ jsipfs daemon --init-profile server

🌐 Concurrent HTTP requests limited in the browser

Interacting with IPFS can cause a lot of preloading and other background requests to be made - most browsers can only have so many requests in flight to a single origin at once so this can cause requests to the same origins made outside of IPFS to take time as they wait their turn to be processed.

As of ipfs@0.39.0, the concurrency of HTTP requests for DNS resolution and preloading are limited to ensure there are always connections available to speedily process requests made by users.

🌅 Init and start your daemon in one command

When a new user first starts up the IPFS daemon they’ve been greeted by an unfriendly message telling them to init it first.

No longer! Now on first startup, the daemon will auto-init its repo, removing a tiny bit of friction from getting on to the distributed web. 🙌

🚯 block rm now supported over the HTTP API

Previously this command only worked with the daemon turned off, now you can use the low level jsipfs block rm command with the daemon running.

N.b. it’s rare that you would need to use this command, a more common approach would be to call jsipfs repo gc instead which removes all non-pinned blocks from your IPFS repo.

🏗 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:

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

Comments