Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.
Compare
Choose a tag to compare
@achingbrain achingbrain released this 31 Mar 09:35
· 820 commits to master since this release

2.0.0 (2020-03-31)

Bug Fixes

chore

Code Refactoring

Features

  • add circuit relay and aegir 12 (+ big refactor) (104ef1e)

BREAKING CHANGES

  • Where PeerIDs 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.