All Versions
202
Latest Version
Avg Release Cycle
18 days
Latest Release
335 days ago

Changelog History
Page 8

  • v0.37.0-rc.1 Changes

    August 06, 2019

    πŸ› Bug Fixes

    • βž• add CORS headers to gateway responses (#2254) (5156a47)
    • ⏱ disable socket timeout for pubsub subscriptions (#2303) (3583cc2)
    • 🚚 move mfs cmds and safer exit (#1981) (fee0141)
    • 🚀 swarm.peers latency value when unknown (#2336) (6248ec1)
    • βœ… use ephemeral ports in API/Gateway bind test (#2305) (24679af)
    • πŸ“¦ package: update ipfs-mfs to version 0.12.0 (#2275) (c15f146)
  • v0.37.0-rc.0 Changes

    July 17, 2019

    πŸ› Bug Fixes

    ♻️ Code Refactoring

    πŸ”‹ Features

    πŸ’₯ BREAKING CHANGES

    • gateway: Gateway now implicitly responds with the contents of /index.html when accessing a directory / instead of redirecting to /index.html.

    This changes current logic (redirect to index.html) to match what go-ipfs does (return index.html without changing URL)

    We also ensure directory URLs always end with '/'

    License: MIT Signed-off-by: Marcin Rataj [email protected]

  • v0.36.4 Changes

    June 18, 2019
  • v0.36.3 Changes

    May 30, 2019

    πŸ› Bug Fixes

    • double callback in object.links for cbor data (#2111) (5d080c0)
    • πŸ›  fixes rabin chunker truncating files (#2114) (76689ff)
    • πŸ“¦ package: update bignumber.js to version 9.0.0 (#2123) (37903ad)
  • v0.36.2 Changes

    May 24, 2019

    πŸ› Bug Fixes

  • v0.36.1 Changes

    May 22, 2019

    πŸ› Bug Fixes

  • v0.36.0 Changes

    May 22, 2019

    πŸ‘ > URL safe CIDs, refs commands, DOM File support and more!

    🍱 πŸ”¦ Highlights

    🧬 Base32 encoding for v1 CIDs

    0️⃣ As a stepping stone towards switching to CIDv1 by default for all CIDs, we're shipping a small change to v1 CIDs that means their string form is base32 encoded instead of base58btc. So, instead of:

    $ jsipfs add --cid-version 1 guardian.jpgadded zb2rhk6GMPQF3hfzwXTaNYFLKomMeC6UXdUt6jZKPpeVirLtV guardian.jpg
    

    You'll now get back a base32 encoded CID:

    $ jsipfs add --cid-version 1 guardian.jpgadded bafkreibu6pkzh33dfwfa3bg3twih7uiohu6d6cr34txljekdn3cvwoujiu guardian.jpg
    

    You can read more about this change here.

    PR: #2050

    🍱 πŸ‘‰ Added refs and refs local commands

    We've added the refs and refs local commands to the core, CLI and HTTP API. These commands allow you to list out all the CIDs referenced by a given DAG node or all the CIDs in your local repo. You can even choose the display format.

    PR: #2004

    🍱 πŸ—„ Support for adding DOM File objects

    🌐 Finally! You can just add a File to IPFS without having to jump through hoops converting it to a Buffer first. Sensational!

    A File, by the way, is what you'll get back from a <input type="file"> or the drag and drop API, so being able to easily take that file and add it to IPFS makes onboarding new frontend devs way easier (as well as way more convenient for all you old frontend devs 😜).

    PR: #2013

    🍱 πŸ”¬ MDNS discovery compatibility

    ⚑️ The libp2p discovery module for finding IPFS nodes over MDNS has been updated so that your JS IPFS node is now able to find Go IPFS nodes on the local network too. It's a backwards compatible change so older nodes will still be able to find your node and you'll still be able to find them.

    PR: libp2p/js-libp2p-mdns#80

    🍱 🚀 28% faster stream multiplexing

    We switched the multiplexing implementation to one that's simpler, smaller and faster. We're estimating it to be around 28% faster than the old implementation.

    PR: #1884

    🍱 β›© Gateway improvements

    ⬆️ The IPFS HTTP gateway that JS IPFS exposes when run as a daemon in Node.js has been upgraded to support a number of HTTP features like conditional requests, byte range requests as well as getting some bug fixes, mini features and other improvements. There's too much to list here but check out the PR for and in depth description of what's changed.

    PR: #1989

    πŸ” Pubsub message signing

    πŸš€ Messages sent over Pubsub will now be automatically signed by the initial publisher, and included as a signature property on each Pubsub message. IPFS and Libp2p will be verifying the signatures of Pubsub messages by default in future releases, which will enable us to verify the authenticity of all messages sent over the network before they are processed. Verification is not yet required by default, but it will be in future releases, and all unsigned messages will not be processed or forwarded.

    PR: libp2p/js-libp2p#362

    πŸ— πŸ— API Changes

    πŸ’₯ 1. BREAKING : The default string encoding for version 1 CIDs has changed to base32 πŸ’₯ 2. BREAKING : IPLD formats have been updated to the latest versions. IPLD nodes returned by ipfs.dag and ipfs.object commands have significant breaking changes. If you are using these commands in your application you are likely to encounter the following changes to dag-pb nodes (the default node type that IPFS creates):

    • DAGNode properties have been renamed as follows:
      • data => Data
      • links => Links
      • size => size (Note: no change)
    • Additionally, the Links property of a DAGNode now returns plain JS objects with Hash, Name and Tsize properties, NOT DAGLink instances
    • DAGLink properties have been renamed as follows:
      • cid => Hash
      • name => Name
      • size => Tsize
    • See CHANGELOGs for each IPLD format for it's respective changes, you can read more about the dag-pb changes in the CHANGELOG
      1. Commands refs and refs local have been added to core, the CLI and the HTTP API
    • Core API docs
    • HTTP API docs
    • CLI API docs 🌐 4. Support for DOM File objects has been added to ipfs.add

    πŸš€ ❀️ Huge thank you to everyone that made this release possible

    πŸš€ In 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.

  • v0.36.0-rc.0 Changes

    May 21, 2019

    ♻️ Code Refactoring

    πŸ’₯ BREAKING CHANGES

    • 0️⃣ The default string encoding for version 1 CIDs has changed to base32.

    ⚑️ IPLD formats have been updated to the latest versions. IPLD nodes returned by ipfs.dag and ipfs.object commands have significant breaking changes. If you are using these commands in your application you are likely to encounter the following changes to dag-pb nodes (the default node type that IPFS creates):

    • DAGNode properties have been renamed as follows:
      • data => Data
      • links => Links
      • size => size (Note: no change)
    • DAGLink properties have been renamed as follows:
      • cid => Hash
      • name => Name
      • size => Tsize

    πŸ‘€ See CHANGELOGs for each IPLD format for it's respective changes, you can read more about the dag-pb changes in the CHANGELOG

    License: MIT Signed-off-by: Alan Shaw [email protected]

  • v0.36.0-pre.0 Changes

    May 17, 2019

    πŸ› Bug Fixes

    • πŸ“¦ package: update ipfs-http-client to version 31.0.0 (#2052) (906f8d0)
    • correctly validate ipld config (#2033) (eebc17a)
    • πŸ“¦ package: update hapi-pino to version 6.0.0 (#2043) (f4e3bd0)

    πŸ”‹ Features

    • βž• add support for File DOM API to files-regular (#2013) (0a08192)
    • implement ipfs refs and refs local (#2004) (6dc9075)
    • gateway: add streaming, conditional and range requests (#1989) (48a8e75)
  • v0.35.0 Changes

    April 12, 2019

    Small, acyclic and flexible, just the way you like it

    🍱 πŸ”¦ Highlights

    🍱 βœ‚οΈ Huge bundle size cuts!

    πŸ’» One of the biggest goals for JS IPFS is to enable the distributed web in the browser. Part of that is being a good web citizen and minimising the amount of code we ship, to ensure IPFS downloads quicker, npm install's quicker, loads quicker and utilizes fewer resources. It's especially important on resource constrained mobiles and IoT devices.

    The good news you want to hear is that we’ve now chopped around 50% off the bundle size of JS IPFS since 0.33, that’s a reduction of nearly half of the code we were previously shipping! This is an amazing improvement and a great reason to upgrade.

    🍱 🌳 DAG HTTP API

    The HTTP API now has endpoints for DAG operations like get, put and resolve. Hooray! It was actually super easy so we just decided to do it spontaneously. I know, we're so zany.

    On a more serious note, this brings JS IPFS another step closer to feature parity with Go IPFS. We're pushing forwards with this in every release πŸš€ - stay tuned!

    πŸ™‰ Multiple address listening for API and Gateway servers

    The HTTP API and the HTTP Gateway started by your IPFS node can now listen on multiple addresses. It's a backward compatible change, all you have to do is change the value of Addresses.API or Addresses.Gateway in your JSON config file to be an array of multiaddrs instead of a single string multiaddr. Here's an example:

    { "Addresses": { "API": ["/ip4/127.0.0.1/tcp/5001", "/ip6/::1/tcp/5002"], "Gateway": ["/ip4/127.0.0.1/tcp/8080", "/ip6/::1/tcp/8080"] } }
    

    🍱 πŸ”­ Recursive DNS link lookups

    🍱 DNS link TXT records like dnslink=/ipns/domain.com can now be recursively resolved until they hit an IPFS hash like /ipfs/QmHash. Even better, that's the new default. πŸ‘Œ

    πŸ— πŸ— API Changes

    • CLI
      • The global flag --local was renamed to --offline
      • Added flag --enable-preload to jsipfs daemon command to allow users to enable or disable content preloading
    • Core

    🚚 ipfs.util.isIPFS and ipfs.util.crypto have moved to static exports and should now be accessed like:

    const { isIPFS, crypto } = require('ipfs')
    

    🚚 ipfs.types.* have moved to static exports and should now be accessed like:

    const { Buffer, CID, multiaddr, multibase, multihash, PeerId, PeerInfo } = require('ipfs')
    

    πŸ‘ ipfs.resolve now supports resolving to the middle of an IPLD block instead of erroring. Given:

    b = {"c": "some value"} a = {"b": {"/": cidOf(b) }}
    

    ipfs resolve /ipld/cidOf(a)/b/c should return /ipld/cidOf(b)/c. That is, it resolves the path as much as it can. Previously it would simply fail with an error.

    0️⃣ ipfs.dns now resolves recursively by default, set the recursive options to false to prevent this behaviour

    • HTTP API
      • Added the following DAG endpoints:
      • /api/v0/dag/put
      • /api/v0/dag/get
      • /api/v0/dag/resolve

    πŸš€ ❀️ Huge thank you to everyone that made this release possible

    πŸš€ In 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.