date | permalink | title | description | author | header_image | tags | |
---|---|---|---|---|---|---|---|
2019-04-12 |
/80-js-ipfs-0-35/ |
js-ipfs 0.35.0 released |
Alan Shaw |
/header-image-js-ipfs-placeholder.png |
|
Small, acyclic and flexible, just the way you like it
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.
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!
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"]
}
}
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. 👌
-
CLI
- The global flag
--local
was renamed to--offline
- Added flag
--enable-preload
tojsipfs daemon
command to allow users to enable or disable content preloading
- The global flag
-
Core
-
ipfs.util.isIPFS
andipfs.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. -
ipfs.dns
now resolves recursively by default, set therecursive
options tofalse
to prevent this behaviour
-
-
HTTP API
- Added the following DAG endpoints:
/api/v0/dag/put
/api/v0/dag/get
/api/v0/dag/resolve
- Added the following DAG endpoints:
In alphabetical order, here are all the humans that contributed to the release:
- a1300 (1 comment)
- Aarnav (1 issue)
- Adam Gall (1 comment)
- Adam Uhlíř (1 PR, 2 issues, 4 reviews, 10 comments)
- Aditya Bose (1 PR)
- Alan Shaw (82 PRs, 11 issues, 114 reviews, 235 comments)
- Alberto Elias (3 PRs, 3 issues, 1 review, 13 comments)
- Alex North (1 PR, 1 comment)
- Alex Potsides (18 PRs, 2 issues, 43 reviews, 35 comments)
- André Cruz (1 issue, 6 comments)
- Andrej Novikov (1 comment)
- Andrew Nesbitt (7 PRs)
- Andrius Bacianskas (1 comment)
- Angelo (1 comment)
- Arkadiy Kukarkin (9 comments)
- ask03 (1 issue)
- Ayush Gupta (1 comment)
- Barry G (1 issue, 6 comments)
- Baruch Velez (1 comment)
- Beeno Tung (1 PR, 3 comments)
- Benjamín Vázquez (1 issue)
- Blake Byrnes (3 reviews, 2 comments)
- Brendan Miller (1 comment)
- Brian (1 issue, 9 comments)
- Chad Retz (2 comments)
- Chance Hudson (1 PR, 1 issue, 4 reviews)
- CHEVALAY JOSSELIN (1 PR, 1 issue, 5 comments)
- Chris Anderson (1 PR, 3 reviews)
- Chris de Jong (1 comment)
- Christian Couder (1 comment)
- cloudbitsum (1 issue, 1 comment)
- comntr (3 issues, 2 comments)
- Daniel Krech (1 PR, 1 comment)
- David (1 PR)
- David Ammouial (1 comment)
- David Dias (1 PR, 1 issue, 28 reviews, 23 comments)
- Davit Barbakadze (1 issue, 3 comments)
- Despoinis (1 issue, 2 comments)
- Diogo Silva (3 PRs, 1 review, 1 comment)
- dirkmc (17 PRs, 24 reviews, 14 comments)
- Dmitriy Ryajov (1 comment)
- Dustin (1 comment)
- edoo (1 PR)
- Elad (1 comment)
- Federico Luzzi (2 issues)
- Filip Š (1 PR, 2 comments)
- Francis Gulotta (4 comments)
- Franck Royer (1 comment)
- Friedel Ziegelmayer (2 reviews, 9 comments)
- Georgios Rassias (1 PR, 4 comments)
- Gorka Ludlow (1 comment)
- Grant Herman (4 PRs, 1 issue, 3 reviews, 12 comments)
- Guilherme Gervasio (1 issue, 1 comment)
- Guy Sviry (1 issue, 1 comment)
- Haywirez (1 comment)
- hazae41 (1 issue, 3 comments)
- Henrique Dias (1 review, 8 comments)
- Henry Rodrick (1 review, 1 comment)
- heqimagic (1 issue, 1 comment)
- Huberto Kaiser Filho (2 issues, 4 comments)
- Hugo Dias (16 PRs, 3 issues, 29 reviews, 48 comments)
- Hunter Trujillo (1 issue, 2 comments)
- Irakli Gozalishvili (6 PRs, 16 issues, 14 reviews, 50 comments)
- isan_rivkin (2 PRs, 5 comments)
- IwraStudios (1 issue)
- Jacob Heun (26 PRs, 5 issues, 67 reviews, 86 comments)
- Jakub Sztandera (5 comments)
- James Cullum (Pseudonym) (1 comment)
- JamesYin (4 comments)
- João Antunes (1 PR, 2 issues, 4 comments)
- John Hiesey (1 comment)
- Jon (1 comment)
- Jon Chiang (1 comment)
- Jonathan Gaillard (1 issue, 2 comments)
- jzstern (1 comment)
- kesavananbu (1 comment)
- klueq (1 comment)
- kwakwaa (2 issues, 1 comment)
- lanmower (1 issue)
- LifeBCE (2 issues, 3 comments)
- Lorenzo Setale (1 comment)
- LuffySmile (1 issue)
- Łukasz Magiera (5 reviews, 4 comments)
- Maciej Krüger (4 reviews, 26 comments)
- Marcin Czenko (1 issue, 1 comment)
- Marcin Rataj (6 PRs, 7 issues, 9 reviews, 16 comments)
- Mark Robert Henderson (3 issues, 9 comments)
- Martín Acosta (1 issue)
- Martin Heidegger (1 issue)
- Matt Joiner (1 comment)
- Matt Ober (2 issues, 4 comments)
- Matteo Collina (2 comments)
- Michael Muré (1 PR)
- Mikeal Rogers (1 PR, 6 issues, 7 reviews, 36 comments)
- Mikerah (1 PR, 1 comment)
- Mitra Ardron (3 comments)
- Mounish Sai (1 PR)
- Nate Foss (1 comment)
- Nick Poulden (1 comment)
- nijynot (1 comment)
- Nitin Patel (10 PRs, 5 issues, 7 reviews, 13 comments)
- noot (1 review, 1 comment)
- Oli Evans (9 PRs, 2 issues, 6 reviews, 16 comments)
- Olivier Sarrouy (1 issue, 2 comments)
- ondratra (1 issue, 2 comments)
- Patrick Bay (1 issue)
- Pedro Gomes (1 issue, 4 comments)
- Pedro Teixeira (2 issues, 1 review, 9 comments)
- Perry Kundert (2 PRs)
- Pius Nyakoojo (1 PR)
- Portia Burton (1 PR, 3 comments)
- postables (1 issue)
- Prabhat (3 comments)
- pranav maheshwari (1 issue, 2 comments)
- projectoblio (1 issue, 2 comments)
- Rafael Matias (1 PR)
- Raúl Kripalani (2 issues, 9 comments)
- Richard Schneider (1 comment)
- Robert Kiel (1 PR, 1 comment)
- Robert Misiorowski (4 issues, 7 comments)
- Rod Vagg (1 PR, 9 reviews, 6 comments)
- Rômulo Alves (2 comments)
- rori4 (1 issue, 2 comments)
- Sam Strauch (1 issue)
- Sameer Puri (2 PRs, 2 reviews, 4 comments)
- Steven Allen (2 PRs, 2 comments)
- Taaliman (1 issue, 1 comment)
- Teri Chadbourne (1 issue, 4 comments)
- Theo Gravity (1 comment)
- Thomas Eizinger (3 PRs, 1 issue, 8 comments)
- Tim Schuppener (1 issue, 2 comments)
- Tyler van der Hoeven (1 comment)
- ukrocks007 (1 issue)
- useaquestion (1 issue, 2 comments)
- UtopiaCreatorX (1 issue, 2 comments)
- vasa (1 issue, 3 comments)
- Vasco Santos (26 PRs, 7 issues, 83 reviews, 43 comments)
- Victor Bjelkholm (1 review, 1 comment)
- Vincent Martin (2 comments)
- Vishal1010101 (1 comment)
- Volker Mische (30 PRs, 3 issues, 65 reviews, 76 comments)
- w3cshare (1 comment)
- Whyrusleeping (1 issue)
- X5 Engine (1 issue, 4 comments)
- xialvjun (1 issue)
- Yusef Napora (2 PRs, 1 comment)
- yuwiggin (1 issue, 1 comment)
- Zane Starr (2 PRs, 2 reviews)
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/team-mgmt/#weekly-ipfs-all-hands
- 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 🙌🏽 and be part of the Sprint action!
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.