All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
0.58.1 (2021-08-17)
Note: Version bump only for package ipfs
0.58.0 (2021-08-17)
0.57.0 (2021-08-11)
- the output type of
ipfs.get
has changed and therecursive
option has been removed fromipfs.ls
since it was not supported everywhere
0.56.1 (2021-07-30)
Note: Version bump only for package ipfs
0.56.0 (2021-07-27)
- ipld-formats no longer supported, use multiformat BlockCodecs instead
Co-authored-by: Rod Vagg [email protected] Co-authored-by: achingbrain [email protected]
0.55.4 (2021-06-18)
Note: Version bump only for package ipfs
0.55.3 (2021-06-05)
0.55.2 (2021-05-26)
Note: Version bump only for package ipfs
0.55.1 (2021-05-11)
Note: Version bump only for package ipfs
0.55.0 (2021-05-10)
- mark ipld options as partial (#3669) (f98af8e)
- only accept cid for ipfs.dag.get (#3675) (bb8f8bc), closes #3637
- update node version in docker build (#3603) (087fd1e)
- upgrade deps with new typedefs (#3550) (a418a52)
- Minimum supported node version is 14
- all core api methods now have types, some method signatures have changed, named exports are now used by the http, grpc and ipfs client modules
0.54.4 (2021-03-10)
Note: Version bump only for package ipfs
0.54.3 (2021-03-09)
0.54.2 (2021-02-08)
Note: Version bump only for package ipfs
0.54.1 (2021-02-02)
Note: Version bump only for package ipfs
0.54.0 (2021-02-01)
- ipfs-repo upgrade requires repo migration to v10
0.53.2 (2021-01-22)
Note: Version bump only for package ipfs
0.53.1 (2021-01-20)
Note: Version bump only for package ipfs
0.53.0 (2021-01-15)
- The websocket transport will only dial DNS+WSS addresses - see https://github.com/libp2p/js-libp2p-websockets/releases/tag/v0.15.0
Co-authored-by: Hugo Dias [email protected]
0.52.3 (2020-12-16)
- export IPFS type (#3447) (cacbfc6), closes #3439
- fix ipfs.ls() for a single file object (#3440) (f243dd1)
0.52.2 (2020-11-25)
Note: Version bump only for package ipfs
0.52.1 (2020-11-16)
0.52.0 (2020-11-09)
- only dag-pb, dag-cbor and raw formats are supported out of the box, any others will need to be configured during node startup.
0.51.0 (2020-10-28)
- disable cors by default (#3275) (3ff833d)
- types path for ipfs-core (#3356) (a6bcad5)
- use fetch in electron renderer and electron-fetch in main (#3251) (639d71f)
- this removes support for SECIO making Noise the only security transport.
Closes ipfs#3210
Co-authored-by: achingbrain [email protected]
-
- CORS origins will need to be configured manually before use with ipfs-http-client
0.50.2 (2020-09-09)
Note: Version bump only for package ipfs
0.50.1 (2020-09-04)
Note: Version bump only for package ipfs
0.50.0 (2020-09-03)
- add protocol list to ipfs id (#3250) (1b6cf60)
- add typeScript support (#3236) (be26dd7), closes #2945 #1166
- add typescript support (#3267) (6816bc6), closes #2945 #1166
- ipns publish example (#3207) (91faec6)
- store pins in datastore instead of a DAG (#2771) (64b7fe4)
- update hapi to v20 (#3245) (1aeef89)
- update to [email protected] (63d4d35)
0.49.1 (2020-08-24)
0.49.0 (2020-08-12)
- make execa a dep, it's used in ipfs config edit (#3193) (19b8113)
- require command for key and pin subcommands (#3196) (5449044)
- send blobs when running ipfs-http-client in the browser (#3184) (6b24463), closes #3138
- support keychain without pass (#3212) (7e0e85c)
- docs: update webrtc config example to use correct case (6a498e9)
- docs: update webrtc instructions for node in faq (#3183) (8f5a19f)
- prioritize noise over secio (#3216) (f3a67c4)
- share IPFS node between browser tabs (#3081) (1b8b1b8), closes #3022
- remove support for key.export over the http api
0.48.1 (2020-07-21)
0.48.0 (2020-07-16)
- do not list raw nodes in a dag as directories (#3155) (585a142)
- error when no command specified (#3145) (4309e10)
- optional arguments go in the options object (#3118) (8cb8c73)
- peer ids are strings now (#3162) (281bfe6)
- still load dag-pb, dag-cbor and raw when specifying custom formats (#3132) (a96e3bc), closes #3129
- unhandledpromiserejection in electron tests (#3146) (4c0c67f)
- use post for preloading (#3149) (c9700f7)
- add interface and http client versions to version output (#3125) (65f8b23), closes #2878
- add size-only flag to cli repo stat command (#3143) (b4d3bf8)
- enable DHT by Routing.Type config key (#3153) (dfe15d7)
- store blocks by multihash instead of CID (#3124) (03b17f5)
- turn on delegate nodes by default (#3148) (3fd2ca8)
0.47.0 (2020-06-24)
- add config.getAll (#3071) (16587f1)
- libp2p noise as fallback for secio (#3074) (660d3db)
- persist peerstore (#3072) (b404974)
- webui v2.9.0 (#3054) (5d9d331)
0.46.0 (2020-06-05)
0.45.0 (2020-05-29)
- upgrade bitswap to use 1.2.0 and better wantlist performance (18283dd)
0.44.0 (2020-05-18)
- fixes browser script tag example (#3034) (ee8b769), closes #3027
- remove ipld all formats and fix traverse ipld example (#3025) (e6079c1)
- remove node globals (#2932) (d0d2f74)
0.43.3 (2020-05-05)
Note: Version bump only for package ipfs
0.43.2 (2020-05-05)
0.43.1 (2020-04-28)
0.43.0 (2020-04-16)
- make http api only accept POST requests (#2977) (943d4a8)
- regression that dht could not be enabled through conf (#2976) (9d88a2e)
-
Where we used to accept all and any HTTP methods, now only POST is accepted. The API client will now only send POST requests too.
-
test: add tests to make sure we are post-only
-
chore: upgrade ipfs-utils
-
fix: return 405 instead of 404 for bad methods
-
fix: reject browsers that do not send an origin
Also fixes running interface tests over http in browsers against js-ipfs
0.42.1 (2020-04-08)
- add default args for ipfs.add (#2950) (a01f5b6)
- add default for cid base and fix cid version override (d951993)
- dont include util.textencoder in the browser (#2919) (3207e3b)
- error when command is unknown (#2916) (743a7fc)
- multiaddr validation to add peer id for listening (#2833) (78cbec1)
- only start prometheus metrics in one place (#2954) (d52a41e), closes #2019
- reuse columns value from process.stdout (e8646d8)
- tag stdin with mtime and mode when piping to cli 'add' (#2832) (8c97de1), closes #2763
- move mfs and multipart files into core (#2811) (82b9e08)
- update dep version and ignore interop test for raw leaves (#2747) (6376cec)
- remove ky from http-client and utils (#2810) (9bc9625), closes #2801
- support mtime-nsecs in mfs cli (#2958) (69c091d), closes #2803
- When the path passed to
ipfs.files.stat(path)
was a hamt sharded dir, the resovled value returned by js-ipfs previously had atype
property of with a value of'hamt-sharded-directory'
. To bring it in line with go-ipfs this value is now'directory'
. - Files that fit into one block imported with either
--cid-version=1
or--raw-leaves=true
previously returned a CID that resolved to a raw node (e.g. a buffer). Returned CIDs now resolve to adag-pb
node that contains a UnixFS entry. This is to allow setting metadata on small files with CIDv1.
0.41.0 (2020-02-13)
0.41.0-rc.2 (2020-02-11)
0.41.0-rc.1 (2020-02-10)
- block put with CID as string (#2760) (cc9a933)
- report correct swarm addresses after listening on new addrs (#2749) (41a7e55), closes #2508
0.41.0-rc.0 (2020-02-03)
- bad merge (714e540)
- correct redirect when it loads webui (#2697) (#2698) (3516bb8)
- ipfs-repo version (f08758e)
- limit SW registration to content root (#2682) (feba661), closes /github.com/ipfs/go-ipfs/issues/4025#issuecomment-342250616
- repo gc error key name (#2618) (5a1d266), closes /docs.ipfs.io/reference/api/http/#api-v0
- support legacy links in cbor data (#2631) (f98023b)
- add --hidden flag to cli add command (#2649) (ed886f4)
- add alias for
ipfs repo stat --human
. (#2609) (f81086c) - add bitswap stat human option in CLI (#2619) (6a2ea52)
- add human flag to repo stat cli command (#2630) (39bc5b4)
- pass libp2pOptions to the bundle function (#2591) (e8e9b91)
- return CID of flushed path from ipfs.files.flush (#2715) (5db7c29)
- support -X special permissions arg to files.chmod (#2719) (d6ece05)
- support UnixFSv1.5 metadata (#2621) (acbda68), closes ipfs/js-datastore-pubsub#20
- web ui 2.7.1 (#2599) (06340ec)
- web ui 2.7.2 (#2651) (7a87d8f)
- Where
PeerID
s were previously CIDs, now they are Strings
ipfs.bitswap.stat().peers[n]
is now a String (was a CID)ipfs.dht.findPeer().id
is now a String (was a CID)ipfs.dht.findProvs()[n].id
is now a String (was a CID)ipfs.dht.provide()[n].id
is now a String (was a CID)ipfs.dht.put()[n].id
is now a String (was a CID)ipfs.dht.query()[n].id
is now a String (was a CID)ipfs.id().id
is now a String (was a CID)ipfs.id().addresses[n]
are now Multiaddrs (were Strings)
- Removes all
codec
/format
options, everything isdag-pb
now.
0.40.0 (2019-12-02)
0.40.0-rc.1 (2019-11-28)
0.40.0-rc.0 (2019-11-11)
- add profiles docs, support in validation and tests (#2545) (37073e6)
- choose import strategy in ipfs.add (#2541) (bba1537)
- dht.provide() should accept string keys (#2573) (#2589) (53c2144)
- fix ls crash (#2546) (09041c3), closes ipfs/js-ipfs-unixfs-exporter#24
- make init options look like go-ipfs (#2544) (13a8289)
- remove superfluous backtick (3bd47c3)
- revert evergreen webui (#2557) (16806d9)
- package: update @hapi/ammo to version 4.0.0 (#2538) (da78142)
- add mssing
dag put
anddag resolve
cli commands (#2521) (8759bf8) - evergreen web ui (#2520) (069bf73)
- integrate ipfs-repo-migrations tool (#2527) (1d12ffb)
- support CIDs in /ipns/ content paths (#2566) (4fa39fb)
- web ui 2.6.0 (#2576) (a61d510)
0.39.0 (2019-10-23)
0.39.0-rc.2 (2019-10-17)
- add profiles docs, support in validation and tests (#2545) (e081e16)
- choose import strategy in ipfs.add (#2541) (e2e6701)
- fix ls crash (#2546) (83eb99b), closes ipfs/js-ipfs-unixfs-exporter#24
- make init options look like go-ipfs (#2544) (d4d6dfe)
0.39.0-rc.1 (2019-10-15)
0.39.0-rc.0 (2019-10-08)
- limit concurrent HTTP requests in browser (#2304) (cf38aea)
- only try to get ipfs if argv is present (#2504) (1281b9f)
- pull in preconfigured chai from interface tests (#2510) (8c01259)
- Add config profile endpoint and CLI (#2165) (7314f0d)
- allow daemon to init and start in a single cmd (#2428) (16d5e7b)
- support block.rm over http api (#2514) (c9be79e)
- web ui 2.5.3 (4f398fc)
- web ui 2.5.4 (#2478) (bff402c)
- e (55c4446)
0.38.0 (2019-09-30)
0.38.0-rc.6 (2019-09-25)
0.38.0-rc.5 (2019-09-18)
0.38.0-rc.4 (2019-09-17)
0.38.0-rc.3 (2019-09-17)
0.38.0-rc.2 (2019-09-16)
0.38.0-rc.1 (2019-09-13)
0.38.0-rc.0 (2019-09-09)
- add support for ipns and recursive to ipfs resolve (#2297) (039675e)
- enable pubsub via config file and enabled by default (#2427) (27751cf), closes ipfs/js-ipfsd-ctl#366 ipfs/go-ipfs#6621
- support adding async iterators (#2379) (3878f0f)
- web ui 2.5.1 (#2434) (39ef553)
- pubsub is now enabled by default and the experimental flag was removed
recursive
is nowtrue
by default inipfs resolve
0.38.0-pre.1 (2019-09-02)
- The default pubsub implementation has changed from floodsub to gossipsub. Additionally, to enable pubsub programmatically set
pubsub.enabled: true
instead ofEXPERIMENTAL.pubsub: true
or via the CLI pass--enable-pubsub
instead of--enable-pubsub-experiment
tojsipfs daemon
.
0.38.0-pre.0 (2019-08-27)
- make progress bar work again when adding files (#2386) (f6dcb0f), closes #2379
- really allow logo to appear on npm (02e521e)
- Order of output from the CLI command
ipfs add
may change between invocations given the same files since it is not longer buffered and sorted.
Previously, js-ipfs buffered all hashes of added files and sorted them before outputting to the terminal, this might be because the glob
module does not return stable results. This gives a poor user experience as you see nothing then everything, compared to go-ipfs
which prints out the hashes as they become available. The tradeoff is the order might be slightly different between invocations, though the hashes are always the same as we sort DAGNode links before serializing so it doesn't matter what order you import them in.
0.37.1 (2019-08-23)
- create HTTP servers in series (#2388) (970a269)
- enable preload on MFS commands that accept IPFS paths (#2355) (0e0d1dd)
- package: update yargs to version 14.0.0 (#2371) (5aadb2d)
- do not load all of a DAG into memory when pinning (#2372) (f357c28), closes #2310
- preload addreses with trailing slash (#2377) (c607971), closes #2333
- allow controlling preload from cli and http api (#2384) (5878a0a)
- resolution of .eth names via .eth.link (#2373) (7e02140)
0.37.0 (2019-08-06)
0.37.0-rc.1 (2019-08-06)
- 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)
0.37.0-rc.0 (2019-07-17)
- allow setting Addresses.Delegates (#2253) (58a9bc4)
- browser video streaming example (#2267) (f5cf216)
- clean repo func on windows (#2243) (26b92a1)
- failing test on config (#2205) (5ed9532)
- ipns reference to libp2p dht config (#2182) (e46e6ad)
- passed config validation (#2270) (80e7d81)
- pin type filtering in pin.ls (#2228) (afdfe7f)
- gateway: disable compression (#2245) (4ee28e0)
- package: update file-type to version 12.0.0 (#2176) (3e63ef2)
- add delegate routers to libp2p config (#2195) (1aaaab9)
- add HTTP Gateway support for /ipns/ paths (#2020) (43ac305), closes #1989
- add support for ipns name resolve /ipns/ (#2002) (5044a30), closes #1918
- randomly pick preload node (#2194) (f596b01)
- ready promise (#2094) (e0994f2)
- update Web UI to v2.4.6 (#2147) (a1a9fe3)
- 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]
0.36.4 (2019-06-18)
0.36.3 (2019-05-30)
- 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)
0.36.2 (2019-05-24)
0.36.1 (2019-05-22)
0.36.0 (2019-05-22)
- use trickle builder in daemon mode too (#2085) (62b873f)
- package: update libp2p-kad-dht to version 0.15.0 (#2049) (5905760)
- browser-mfs example (#2089) (e7d6d3a)
- error when preloding is disabled in the browser (#2086) (a56bcbf)
- traverse-ipld-graphs (tree) example (#2088) (b5c652f)
- update option in exchange files in browser example (#2087) (63469ed)
0.36.0-rc.0 (2019-05-21)
- update ipld formats, async/await mfs/unixfs & base32 cids (#2068) (813048f), closes ipld/js-ipld-dag-pb#137 ipfs/interface-js-ipfs-core#473 ipfs/js-ipfs-http-client#1010 ipfs/js-ipfs-http-response#25 #1995
- 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]
0.36.0-pre.0 (2019-05-17)
- 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)
- 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)
0.35.0 (2019-04-12)
0.35.0-rc.7 (2019-04-12)
- flakey windows test (#1987) (9708c0a)
- really disable DHT (#1991) (2470be8)
- remove non default ipld formats in the browser (#1980) (4376121)
-
Browser application bundles now include only
ipld-dag-pb
,ipld-dag-cbor
andipld-raw
IPLD codecs. Other codecs should be added manually, see https://github.com/ipfs/js-ipfs/blob/master/README.md#optionsipld for details. -
In Node.js
require('ipfs')
- all IPLD formats included
-
In browser application bundle
require('ipfs')
bundled with webpack/browserify/etc.- only
ipld-dag-pb
,ipld-dag-cbor
andipld-raw
included
- only
-
CDN bundle
<script src="https://cdn.jsdelivr.net/npm/ipfs/dist/index.min.js"></script>
- all IPLD formats included
Co-Authored-By: hugomrdias [email protected]
0.35.0-rc.6 (2019-04-11)
0.35.0-rc.5 (2019-04-04)
- force browserify to load Buffer module (#1969) (3654e50)
- stop IPNS republisher ASAP (#1976) (68561c8)
- update link for multihashes (#1975) (4a01bf6)
0.35.0-rc.4 (2019-03-28)
- Constructor config validation is now a bit more strict - it does not allow
null
values or unknown properties.
0.35.0-rc.3 (2019-03-21)
0.35.0-rc.2 (2019-03-21)
0.35.0-rc.1 (2019-03-20)
- cat deeply nested file (#1920) (dcb453a)
- handle subdomains for ipfs.dns (#1933) (29072a5)
- only dial to unconnected peers (#1914) (1478652)
- add HTTP DAG API (#1930) (a033e8b)
- display version info when starting daemon (#1915) (6b789ee)
- provide access to multicodec (#1921) (ceec0bc), closes #1913
- issue-1852: support multiple API and Gateway addresses (#1903) (4ad104d), closes #1852
0.35.0-rc.0 (2019-03-06)
- add support for resolving to the middle of an IPLD block (#1841) (fc08243)
- dht browser disabled (#1879) (7c5a843)
- ipv6 multiaddr in stdout (#1854) (35fd541), closes #1853
- make clear pins function in tests serial (#1910) (503e5ac), closes #1890
- pin.rm test EPERM rename (#1889) (c60de74)
- temporarily disable random walk dht discovery (#1907) (3fff46a)
- add
--enable-preload
to enable/disable preloading for daemons (#1909) (9470900) - limit connections number (#1872) (bebce7f)
ipfs.util.isIPFS
andipfs.util.crypto
have moved to static exports and should be accessed viaconst { isIPFS, crypto } = require('ipfs')
.
The modules available under ipfs.types.*
have also become static exports.
License: MIT Signed-off-by: Alan Shaw [email protected]
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.
License: MIT Signed-off-by: Alan Shaw [email protected]
0.35.0-pre.0 (2019-02-11)
- add missing libp2p-websocket-star dep (#1869) (7cba3dd)
- path to cid-tool commands (#1866) (506f5be)
- swallowed errors (#1860) (47e2b9e), closes #1835 #1858
--local
option has been renamed to--offline
0.34.4 (2019-01-24)
0.34.3 (2019-01-24)
0.34.2 (2019-01-21)
0.34.1 (2019-01-21)
0.34.0 (2019-01-17)
0.34.0-rc.1 (2019-01-15)
- All API methods that returned
big.js
instances now returnbignumber.js
instances.
License: MIT Signed-off-by: Alan Shaw [email protected]
0.34.0-rc.0 (2018-12-18)
- add
addFromFs
method (#1777) (7315aa1) - add from url/stream (#1773) (b6a7ab6)
- add slient option (#1712) (593334b)
- cid base option (#1552) (6d46e2e), closes /github.com/ipfs/go-ipfs/issues/5349#issuecomment-445104823
0.34.0-pre.0 (2018-12-07)
- add dash case to pin cli (#1719) (eacd580)
- add missing dependencies (#1663) (4bcf4a7)
- allow disabling mfs preload from config (#1733) (5f66538)
- better error message when pubsub is not enabled (#1729) (5237dd9)
- examples after files API refactor (#1740) (34ec036)
- ipns datastore key (#1741) (a39770e)
- make circuit relay test (#1710) (345ce91)
- remove electron-webrtc and wrtc for now (#1718) (b6b50d5)
- files API (#1720) (a82a5dc)
- object APIs write methods now return CIDs (#1730) (ac5fa8e), closes /github.com/ipfs/interface-ipfs-core/pull/388#pullrequestreview-173866270
- ipns over dht (#1725) (1a943f8)
- ipns over pubsub (#1559) (8712542)
- Web UI updated to v2.2.0 (#1711) (b2158bc)
- Object API refactor.
Object API methods that write DAG nodes now return a CID instead of a DAG node. Affected methods:
ipfs.object.new
ipfs.object.patch.addLink
ipfs.object.patch.appendData
ipfs.object.patch.rmLink
ipfs.object.patch.setData
ipfs.object.put
Example:
// Before
const dagNode = await ipfs.object.new()
// After
const cid = await ipfs.object.new() // now returns a CID
const dagNode = await ipfs.object.get(cid) // fetch the DAG node that was created
IMPORTANT: DAGNode
instances, which are part of the IPLD dag-pb format have been refactored.
These instances no longer have multihash
, cid
or serialized
properties.
This effects the following API methods that return these types of objects:
ipfs.object.get
ipfs.dag.get
See ipld/js-ipld-dag-pb#99 for more information.
License: MIT Signed-off-by: Alan Shaw [email protected]
- Files API methods
add*
,cat*
,get*
have moved fromfiles
to the root namespace.
Specifically, the following changes have been made:
ipfs.files.add
=>ipfs.add
ipfs.files.addPullStream
=>ipfs.addPullStream
ipfs.files.addReadableStream
=>ipfs.addReadableStream
ipfs.files.cat
=>ipfs.cat
ipfs.files.catPullStream
=>ipfs.catPullStream
ipfs.files.catReadableStream
=>ipfs.catReadableStream
ipfs.files.get
=>ipfs.get
ipfs.files.getPullStream
=>ipfs.getPullStream
ipfs.files.getReadableStream
=>ipfs.getReadableStream
License: MIT Signed-off-by: Alan Shaw [email protected]
0.33.1 (2018-11-05)
0.33.0 (2018-11-01)
0.33.0-rc.4 (2018-11-01)
- remove accidentally committed code (66fa8ef)
- remove local option from global commands (#1648) (8e963f9)
- remove npm script (df32ac4)
- remove unused deps (f7189fb)
- use class is function on ipns (#1617) (c240d49), closes js-peer-id#84 interface-datastore#24 #1615
- dag-cbor nodes now represent links as CID objects
The API for dag-cbor changed.
Links are no longer represented as JSON objects ({"/": "base-encoded-cid"}
,
but as CID objects. ipfs.dag.get()
and now always return links as CID objects. ipfs.dag.put()
also expects links to be represented as CID objects. The old-style JSON objects representation is still
supported, but deprecated.
Prior to this change:
const cid = new CID('QmXed8RihWcWFXRRmfSRG9yFjEbXNxu1bDwgCFAN8Dxcq5')
// Link as JSON object representation
const putCid = await ipfs.dag.put({link: {'/': cid.toBaseEncodedString()}})
const result = await ipfs.dag.get(putCid)
console.log(result.value)
Output:
{ link:
{ '/':
<Buffer 12 20 8a…> } }
Now:
const cid = new CID('QmXed8RihWcWFXRRmfSRG9yFjEbXNxu1bDwgCFAN8Dxcq5')
// Link as CID object
const putCid = await ipfs.dag.put({link: cid})
const result = await ipfs.dag.get(putCid)
console.log(result.value)
Output:
{ link:
CID {
codec: 'dag-pb',
version: 0,
multihash:
<Buffer 12 20 8a…> } }
See ipld/ipld#44 for more information on why this change was made.
- remove
types.dagCBOR
andtypes.dagPB
from public API
If you need the ipld-dag-cbor
or ipld-dag-pb
module in the Browser,
you need to bundle them yourself.
0.33.0-rc.3 (2018-10-24)
0.33.0-rc.2 (2018-10-23)
0.33.0-rc.1 (2018-10-19)
- gateway: X-Ipfs-Path, Etag, Cache-Control, Suborigin (#1537) (fc5bef7)
- add cid command (#1560) (a22c791)
- show Web UI url in daemon output (#1595) (9a82b05)
- update to Web UI 2.0 (#1647) (aea85aa)
0.32.3 (2018-09-28)
- allow null/undefined options (#1581) (c73bd2f), closes #1574
- block.put with non default options (#1600) (4ba0a24)
- ipns datastore get not found (#1558) (4e99cf5)
- report correct size for raw dag nodes (#1591) (549f2f6), closes #1585
- revert libp2p records being signed for ipns (#1570) (855b3bd)
0.32.2 (2018-09-19)
0.32.1 (2018-09-18)
- add libp2p-crypto to deps list (#1572) (7eaf571), closes #1571
- enable tests in node that were not being included (#1499) (2585431)
- fix
block rm
command (#1576) (af30ea5) - mfs preload test (#1551) (7c7a5a6)
0.32.0 (2018-09-11)
- Added
ipfs.name.publish
andipfs.name.resolve
. This only works on your local node for the moment until the DHT lands. API docs can be found here. - Added
ipfs.resolve
API. Note that this is a partial implementation allowing you to resolve IPFS paths like/ipfs/QmRootHash/path/to/file
to/ipfs/QmFileHash
. It does not support IPNS yet. ipfs.files.add*
now supports achunker
option, see the API docs for details
0.31.7 (2018-08-20)
- fails to start when preload disabled (#1516) (511ab47), closes #1514
- npm publishes examples folder (#1513) (4a68ac1)
0.31.6 (2018-08-17)
0.31.5 (2018-08-17)
- add missing space after emoji (5cde7c1)
- improper input validation (#1506) (91a482b)
- object.patch.rmLink not working (#1508) (afd3255)
- stub out call to fetch for ipfs.dns test in browser (#1512) (86c3d81)
0.31.4 (2018-08-09)
- consistent badge style in docs (#1494) (4a72e23)
- files.ls and files.read*Stream tests (#1493) (a0bc79b)
0.31.3 (2018-08-09)
- failing tests in master (#1488) (e607560)
- dag: check dag.put options for plain object (#1480) (d0b671b), closes #1479
- dht: allow for options object in
findProvs()
API (#1457) (99911b1), closes #1322
0.31.2 (2018-08-02)
0.31.1 (2018-07-29)
- logo link (a9219ad)
- XMLHTTPRequest is deprecated and unavailable in service workers (#1478) (7d6f0ca)
0.31.0 (2018-07-29)
- preload content (#1464) (bffe080), closes #1459
- preload on content fetch requests (#1475) (649b755), closes #1473
- remove decomissioned bootstrappers (e3868f4)
- rm decomissioned bootstrappers - nodejs (90e9f68)
- support --raw-leaves (#1454) (1f63e8c)
0.30.1 (2018-07-17)
- aegir docs fails if outer funtion is called pin (#1429) (a08a17d)
- double pre start (#1437) (e6ad63e)
- fixing circuit-relaying example (#1443) (a681fc5), closes #1423
0.30.0 (2018-07-09)
- allow put empty block & add X-Stream-Output header on get (#1408) (52f7aa7)
- broken contributing links (#1386) (cd449ff)
- do not stringify output of object data (#1398) (4e51a69)
- dag: fix default hash algorithm for put() api (#1419) (1a36375)
- dag: make options in
put
API optional (#1415) (d299ed7), closes #1395 - tests: loosen assertion for bitswap.stat test (#1404) (4290256)
- update hlsjs-ipfs-loader version (#1422) (6b14812)
- (BREAKING CHANGE) new libp2p configuration (#1401) (9c60909)
- expose libp2p connection manager configuration options (#1410) (2615f76)
- implement bitswap.wantlist peerid and bitswap.unwant (#1349) (45b705d)
- mfs implementation (#1360) (871d24e), closes #1425
- modular interface tests (#1389) (18888be)
- pin API (#1045) (2a5cc5e), closes #1249
-
libp2p configuration has changed
- old:
libp2p.modules.discovery
- new:
libp2p.modules.peerDiscovery
- old:
License: MIT Signed-off-by: David Dias [email protected]
License: MIT Signed-off-by: Alan Shaw [email protected]
0.29.3 (2018-06-04)
- repo: do not hang on calls to repo gc (9fff46f)
0.29.2 (2018-06-01)
- adds missing breaking changes for 0.29 to changelog (#1370) (61ba99e)
- dont fail on uninitialized repo (#1374) (6f0a95b)
0.29.1 (2018-05-30)
0.29.0 (2018-05-29)
- Add ipfs path to cli help (64c3bfb)
- change ^ to ~ on 0.x.x deps (#1345) (de95989)
- change default config from JSON file to JS module to prevent having it doubly used (#1324) (c3d2d1e), closes #1316
- changes peer prop in return value from swarm.peers to be a PeerId (#1252) (e174866)
- configure webpack to not use esmodules in dependencies (4486acc)
- Display error when using unkown cli option (a849d2f)
- docker init script sed in non existent file (#1246) (75d47c3)
- files.add with pull streams (0e601a7)
- make pubsub.unsubscribe async and alter pubsub.subscribe signature (a115829)
- remove unused var (#1273) (c1e8db1)
- typo (#1367) (2679129)
- use async/setImmediate vs process.nextTick (af55608)
- .stats.bw* - Bandwidth Stats (#1230) (9694925)
- add ability to files.cat with a cid instance (2e332c8)
- Add support for specifying hash algorithms in files.add (a2954cb)
- allow dht to be enabled via cli arg (#1340) (7bb838f)
- Allows for byte offsets when using ipfs.files.cat and friends to request slices of files (a93971a)
- Circuit Relay (#1063) (f7eaa43)
- cli: add IPFS_PATH info to init command help (#1274) (e189b72)
- handle SIGHUP (7a817cf)
- ipfs.ping cli, http-api and core (#1342) (b8171b1)
- jsipfs add --only-hash (#1233) (#1266) (bddc5b4)
- Provide access to bundled libraries when in browser (#1297) (4905c2d)
- use class-is for type checks (5b2cf8c)
- wrap with directory (#1329) (47285a7)
- cli: load only sub-system modules and inline require ipfs (3820be0)
- Argument order for
pubsub.subscribe
has changed:- Old:
pubsub.subscribe(topic, [options], handler, [callback]): Promise
- New:
pubsub.subscribe(topic, handler, [options], [callback]): Promise
- Old:
- 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
- Old:
- Property names on response objects for
ping
are now lowered:- Old:
{ Success, Time, Text }
- New:
{ success, time, text }
- Old:
- In the CLI,
jsipfs object data
no longer returns a newline after the end of the returned data
0.28.2 (2018-03-14)
- match error if repo doesnt exist (#1262) (aea69d3)
- reinstates the non local block check in dht.provide (#1250) (5b736a8)
0.28.1 (2018-03-09)
0.28.0 (2018-03-01)
- cli: show help for subcommands (8c63f8f)
- (cli/init) use cross-platform path separator (bbb7cc5)
- dag: print data in a readable way if it is JSON (42545dc)
- bootstrap (d527b45)
- now properly fix bootstrap in core (9f39a6f)
- Remove scape characteres from error message. (68e7b5a)
- Return swarm http errors as json (d3a0ae1), closes #1176
- stats tests (a0fd355)
- use "ipld" instead of "ipld-resolver" (e7f0432)
ipfs version
flags +ipfs repo version
(#1181) (#1188) (494da7f)- Add /ip6 addresses to bootstrap (3bca165), closes #706
- all pubsub tests passing with libp2p pubsub (6fe015f)
- Bootstrap API compliance (#1218) (9a445d1)
- Implementation of the ipfs.key API (#1133) (d945fce)
- improved multiaddr validation. (d9744a1)
- ipfs shutdown (#1200) (95365fa)
- jsipfs ls -r (Recursive list directory) (#1222) (0f1e00f)
- latest libp2p + other deps. Fix bugs in tests along the way (4b79066)
- reworking tests with new ipfsd-ctl (#1167) (d16a129)
- stats API (stats.bitswap and stats.repo) (#1198) (905bdc0)
- support Jenkins (bc66e9f)
- use PubSub API directly from libp2p (6b9fc95)
- use reduces keysize (#1232) (7f69628)
0.27.7 (2018-01-16)
0.27.6 (2018-01-07)
0.27.5 (2017-12-18)
- cat: test file existence after filtering (#1148) (34f28ef), closes #1142
- ipfs.ls: allow any depth (#1152) (279af78), closes #1079
- use new bitswap stats (#1151) (e223888)
- files.add: directory with odd name (#1155) (058c674)
0.27.4 (2017-12-13)
- files.cat: detect and handle rrors when unknown path and cat dir (#1143) (120d291)
- fix bug introduced by 1143 (#1146) (12cdc08)
0.27.3 (2017-12-10)
- config handler should check if value is null (#1134) (0444c42)
- pubsub: subscribe promises (#1141) (558017d)
0.27.2 (2017-12-09)
0.27.1 (2017-12-07)
0.27.0 (2017-12-04)
- fix the welcome message and throw error when trying to cat a non-exis… (#1032) (25fb390), closes #1031
- make offline error retain stack (#1056) (dce6a49)
- pre 1.0.0 deps should be always installed with ~ and not ^ (c672af7)
- progress bar flakiness (#1042) (d7732c3)
- promisify .block (get, put, rm, stat) (#1085) (cafa52b)
- files.add: glob needs a POSIX path (#1108) (9c29a23)
- promisify node.stop (#1082) (9b385ae)
- pubsub message fields (#1077) (9de6f4c)
- removed error handler that was hiding errors (#1120) (58ded8d)
- Typo (#1044) (179b6a4)
- update *-star multiaddrs to explicity say that they need tcp and a port (#1117) (9eda8a8)
- accept additional transports (6613aa6)
- add circuit relay and aegir 12 (+ big refactor) (104ef1e)
- add WebUI Path (#1124) (8041b48)
- adding appveyor support (#1054) (b92bdfe)
- agent version with package number (#1121) (550f955)
- cli --api option (#1087) (1b1fa05)
- complete PubSub implementation (ac95601)
- implement "ipfs file ls" (#1078) (6db3fb8)
- implementing the new streaming interfaces (#1086) (2c4b8b3)
- ipfs.ls (#1073) (35687cb)
- make js-ipfs daemon stop with same SIG as go-ipfs (#1067) (7dd4e01)
- WebSocketStar (#1090) (33e9949)
- windows interop (#1065) (d8197f9)
0.26.0 (2017-09-13)
- Add --cid-version option to ipfs files add + decodeURIComponent for file and directory names (7544b7b)
- add gateway to ipfs daemon (9f2006e), closes #1006 #1008 #1009
- adds quiet flags (#1001) (d21b492)
- complete the migration to p2p-webrtc-star (#984) (1e5dd2c)
0.25.4 (2017-09-01)
- add multiaddrs for bootstrapers gateway (a15bee9)
0.25.3 (2017-09-01)
- config, dangling comma (4eb63c5)
- only show connected addrs for peers in swarm.peers (d939323)
- remove shutdown bootstrapers from bootstrappers list (5ec27a3)
- add instrumentation (8f0254e)
0.25.2 (2017-08-26)
0.25.1 (2017-07-26)
- js-ipfs daemon config params (#914) (e00b96f), closes #868
- remove non existent commands (#925) (b7e8e88)
- stream issue, do not use isstream, use is-stream (#937) (da66b1f)
0.25.0 (2017-07-12)
- bootstrap:add: prevent duplicate inserts (#893) (ce504cd)
- swarm: move isConnected filter from addrs to peers (#901) (e2f371b)
- circle ci, thanks victor! (b074966)
- do not let lodash mess with libp2p modules (1f68b9b)
- is online is only online if libp2p is online (#891) (8b0f996)
- issue #905 (#906) (cbcf90e)
- setImmediate polyfilled in node.id() (#909) (ebaf9a0)
- succeed when stopping already stopped (74f3185)
0.24.1 (2017-05-29)
0.24.0 (2017-05-24)
- cli flag typos (c5bb0b9)
- example, now files from datatransfer is a FileList which is not an array (d7c9eec)
- issue-858 (481933a)
- last touches for dns websockets bootstrapers (3b680a7)
- linting (68ee42e)
- make start an async event (78ba1e8)
- missing import (6aa914d)
- options to the HTTP API (f1eb595)
- removed hard-coded timeout on test and liting fixes (0a3bbcb)
- run webworker tests (23c84f6)
- object.get: treat ipfs hash strings as default base58 encoded (7b3caef)
- update bootstrapers (7e7d9eb)
- add dns ws bootstrappers (a856578)
- add WebRTC by default as a multiaddr (4ea1571)
- add websocket bootstrapers to the config (602d033)
- DHT integration PART I (860165c)
- new libp2p-api (7bf75d1)
- update to new libp2p events for peers (ca88706)
- update to the latest libp2p (aca4297)
0.23.1 (2017-03-27)
0.23.0 (2017-03-24)
- files.add: error on invalid input (#782) (c851ca0)
- give the daemon time to spawn (2bf32cd)
- linting on transfer-files example (f876171)
- offer an init event to monitor when repo is there and avoid setTimeout (c4130b9)
- pull-stream-to-stream replaced with duplex stream (#809) (4b064a1)
- bootstrap is enabled by default now (64cde5d)
- bootstrap is enabled by default now (2642417)
- datastore, ipfs-block and all the deps that were updated (68d92b6)
- no need anymore to append ipfs/Qmhash to webrtc-star multiaddrs (a77ae3c)
0.22.1 (2017-02-24)
- interop tests with multiplex passing (cb109fc)
- core: allow IPFS object to be created without supplying configOpts (f620d71)
- deps: update multiplex libp2p-ipfs deps (5605148)
0.22.0 (2017-02-15)
- lint (ffc120a)
- make sure all deps are up to date, expose Buffer type (7eb630d)
- readable-stream needs to be 1.1.14 (e999f05)
- tidy dag cli up (b90ba76)
- breaking change: experimental config options (#749) (69fa802)
- dag: basics (get, put) (#746) (e5ec0cf)
- dag: Resolve API (#751) (4986908)
- merge of get and resolve (#761) (b081e35)
0.21.8 (2017-01-31)
0.21.7 (2017-01-30)
- default config file (01ef4b5)
0.21.6 (2017-01-29)
0.21.5 (2017-01-29)
0.21.4 (2017-01-28)
0.21.3 (2017-01-25)
0.21.2 (2017-01-23)
0.21.1 (2017-01-23)
0.21.0 (2017-01-17)
- point to a specific go-ipfs version (still waiting for another 0.4.5 pre release though (19dbb1e)
0.20.4 (2016-12-26)
- bitswap wantlist http endpoint (58f0885)
- bitswap wantlist stats (9db86f5)
- change default values of js-ipfs to avoid clash with go-ipfs + clean the browserify example (6d52e1c)
- npm scripts (eadcec0)
- pass a first arg to bitswap to be removed after new bitswap is merged, so that tests pass now (bddcee7)
- init: add empty unixfs dir to match go-ipfs (a967bb0)
- object: add template option to object.new (9058118)
- add multicastdns to the mix (c2ddefb)
0.20.2 (2016-12-09)
- cli: Tell user to init repo if not initialized when starting daemon (fa7e275)
0.20.1 (2016-11-28)
0.19.0 (2016-11-26)
- addLink and rmLink (7fad4d8)
- apply CR (698f708)
- lint: install missing plugin (20e3d2e)
- lint: use eslint directly (443dd9e)
- lint and polish: add a little more comments (d6ce83d)
- cli: migrate to awesome-dag-pb (3bb3ba8)
- core: migrate to awesome dag-pb (db550a1)
- examples: add a getting-started example (7485ac5)
- http: migrate to awesome dag-pb (ca9935f)
- swarm: update swarm.peers to new api (265a77a)
0.18.0 (2016-11-12)
- async .key (2d2185b)
- don't break backwards compatibility on the Block API (3674b8e)
- cli: alias add, cat and get to top-level cli (6ad325b)
- block API uses CIDs (2eeea35)
- migrate cli to use new async DAGNode interface (1b0b22d)
- migrate core to use new async DAGNode interface (254afdc)
- migrate files to use IPLD Resolver (0fb1a1a)
- migrate http-api to use new async DAGNode interface (01e56ec)
- migrate init to IPLD resolver (61d1084)
- object API internals updated to use CID (5cb10cc)
- update cli and http to support new ipld block api with IPLD (5dbb799)
- http: better error messages (cd7f77d)
- http: set default headers for browsers (6a21cd0)
0.17.0 (2016-10-10)
- cli: Fix issue with right cwd not being set (e5f5e1b)
- deps: move blob stores to dependencies (8f33d11)
- files.get: fix the command (7015586)
- http-api: add joi validation to bootstrap (028a98c)
0.16.0 (2016-09-15)
- cli: add output for cli init (29c9793)
- always use files.cat (5b8da13)
- cli: make ipfs files add work online and offline (3edc2b9), closes #480
- cli: pipe content to the cli from cat it is a stream (3e4e2fd)
- cli: use right argument for cli .cat (2bf49ea)
- cli: use right argument for cli .cat (dd3fe88)
- config: better http-api and interface-ipfs-core compliant (2beac9c)
- http: get handler reads the stream (b0a6db9)
- swarm: fix cli commands and enable tests (6effa19)
- version: better http-api and interface-ipfs-core compliant (0ee7215)
- add: add the http endpoint for files.add (e29f429)
- files: get interface-ipfs-core files tests pass through http-api (11cb4ca)
- files: interface-ipfs-core tests over ipfs-api (001a6eb)
- swarm: interface-ipfs-core swarm compatibility (3b32dfd)
- swarm: make interface-ipfs-core compliant (ef729bb), closes #439
- tests: waste less time generating keys (cb10ab7)
0.15.0 (2016-09-09)
- cli: fix the files API commands (138f519)
- config: support null values (0 or empty string) on get and set (a3d98a8)
- repo: init does not break if no opts are passed. Fixes #349 (ca700cc)
- style: apply CR (97af048)
- test: make the version test fetch the version from package.json instead of a hardcoded value (50c9f7c)
- bitswap tests, config, id: cope with the nuances of the config API (.replace) and make necessary changes to make it all work again (cc0c8fd)
- block-core: add compliance with interface-ipfs-core on block-API (5e6387d)
- block-http: tests passing according with compliance (a4071f0)
- config: make the config impl spec compliant (76b6670)
- config-http: return error if value is invalid (f7a668d)
- factory: add ipfs factory to files (eba0398)
- factory: add ipfs factory, verify it works with object tests (3db096e)
- files.add: update API to conform latest interface-ipfs-core updates (28b0bb7)
- http: Refactor inject tests, made them all pass again (31f673d)
- http: refactor ipfs-api tests and make them all pass again (56904fd)
- object-http: support protobuf encoded values (5f02303)
- roadmap: update (418660f)
- roadmap: update roadmap ms2 with extra added goals (ac5352e)
- disable PhantomJS (921b11e)
- tests: all tests running (44dba6c)
- tests: factory-http (08a4b19)
0.14.3 (2016-08-10)
- interface: update interface-ipfs-core to v0.6.0 (d855740)
0.14.2 (2016-08-09)
- upgrade aegir and ensure glob is mocked (3c70eaa), closes #354 #353
- cli: replace ronin with yargs (cba42ca), closes #331
- version: return actual js-ipfs version (6377ab2), closes #377
- use static version of package.json (3ffdc27)
- update all dependencies (b90747e)
0.14.1 (2016-06-29)
0.14.0 (2016-06-27)
0.13.0 (2016-06-07)
0.12.0 (2016-06-06)
- handle new wantlist format (7850dbb)
0.11.1 (2016-05-30)
0.11.0 (2016-05-27)
0.10.3 (2016-05-26)
0.10.2 (2016-05-26)
- use passed in repo location in the browser (4b55102)
0.10.1 (2016-05-25)
0.10.0 (2016-05-24)
0.9.0 (2016-05-24)
0.8.0 (2016-05-23)
0.7.0 (2016-05-21)
0.6.1 (2016-05-19)
0.6.0 (2016-05-19)
0.5.0 (2016-05-16)
- files:add: simplify checkPath (46d9e6a)
- files:get: simplify checkArgs (7f89bfb)
- http:object: proper handling of empty args (9763f86)