2.0.0 (2020-03-31)
Bug Fixes
chore
Code Refactoring
- return peer IDs as strings not CIDs (#2729) (16d540c)
- 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
Features
- add circuit relay and aegir 12 (+ big refactor) (104ef1e)
BREAKING CHANGES
- 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)
- 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]
- 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.