Skip to content

Commit

Permalink
publish new versions
Browse files Browse the repository at this point in the history
  • Loading branch information
JonasKruckenberg committed Oct 2, 2021
1 parent 34793b8 commit fa4dde1
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 9 deletions.
19 changes: 11 additions & 8 deletions .changes/ipfs-v0.10.0.md → CHANGELOG.md
@@ -1,8 +1,8 @@
---
"go-ipfs-sidecar": minor
---
# Changelog

# go-ipfs v0.10.0 Release
## \[0.10.0]

- # go-ipfs v0.10.0 Release

We're happy to announce go-ipfs 0.10.0. This release brings some big changes to the IPLD internals of go-ipfs that make working with non-UnixFS DAGs easier than ever. There are also a variety of new commands and configuration options available.

Expand All @@ -16,7 +16,7 @@ dag-pb (e.g. unixfs) field names changed - impacts userland code that works with
no longer emits an additional new-line character at the end of the data output
ipfs dag put
defaults changed to reduce ambiguity and surprises: input is now assumed to be dag-json, and data is serialized to dag-cbor at rest.
--format and --input-enc were removed and replaced with --store-codec and --input-codec
\--format and --input-enc were removed and replaced with --store-codec and --input-codec
codec names now match the ones defined in the multicodec table
dag-pb (e.g. unixfs) field names changed - impacts userland code that works with dag-pb objects stored via dag put
Keep reading to learn more details.
Expand All @@ -39,9 +39,9 @@ The json and cbor multicodec names (as used by input-enc and format options) are
protobuf is no longer used as the codec name for dag-pb
The codec name raw is used to mean Bytes in the IPLD Data Model
UnixFS refactor. The dag-pb codec, which is used to encode UnixFS data for IPFS, is now represented through the dag API in a form that mirrors the protobuf schema used to define the binary format. This unifies the implementations and specification of dag-pb across the IPLD and IPFS stacks. Previously, additional layers of code for file and directory handling within IPFS between protobuf serialization and UnixFS obscured the protobuf representation. Much of this code has now been replaced and there are fewer layers of transformation. This means that interacting with dag-pb data via the dag API will use different forms:
Previously, using dag get on a dag-pb block would present the block serialized as JSON as {"data":"padded-base64-bytes","links":[{"Name":"foo","Size":100,"Cid":{"/":"Qm..."}},...]}.
Now, the dag-pb data with dag-json codec for output will be serialized using the data model from the dag-pb specification: {"Data":{"/":{"bytes":"unpadded-base64-bytes"}},"Links":[{"Name":"foo","Tsize":100,"Hash":{"/":"Qm..."}},...]}. Aside from the change in byte formatting, most field names have changed: data → Data, links → Links, Size → Tsize, Cid → Hash. Note that this output can be changed now using the output-codec option to specify an alternative codec.
Similarly, using dag put and a store-codec option of dag-pb now requires that the input conform to this dag-pb specified form. Previously, input using {"data":"...","links":[...]} was accepted, now it must be {"Data":"...","Links":[...]}.
Previously, using dag get on a dag-pb block would present the block serialized as JSON as {"data":"padded-base64-bytes","links":\[{"Name":"foo","Size":100,"Cid":{"/":"Qm..."}},...]}.
Now, the dag-pb data with dag-json codec for output will be serialized using the data model from the dag-pb specification: {"Data":{"/":{"bytes":"unpadded-base64-bytes"}},"Links":\[{"Name":"foo","Tsize":100,"Hash":{"/":"Qm..."}},...]}. Aside from the change in byte formatting, most field names have changed: data → Data, links → Links, Size → Tsize, Cid → Hash. Note that this output can be changed now using the output-codec option to specify an alternative codec.
Similarly, using dag put and a store-codec option of dag-pb now requires that the input conform to this dag-pb specified form. Previously, input using {"data":"...","links":\[...]} was accepted, now it must be {"Data":"...","Links":\[...]}.
Previously it was not possible to use paths to navigate to any of these properties of a dag-pb node, the only possible paths were named links, e.g. dag get QmFoo/NamedLink where NamedLink was one of the links whose name was NamedLink. This functionality remains the same, but by prefixing the path with /ipld/ we enter data model pathing semantics and can dag get /ipld/QmFoo/Links/0/Hash to navigate to links or /ipld/QmFoo/Data to simply retrieve the data section of the node, for example.
ℹ See the dag-pb specification for details on the codec and its data model representation.
ℹ See this detailed write-up for further background on these changes.
Expand Down Expand Up @@ -92,3 +92,6 @@ dag import command now supports --stats option which will include the number of
This release adds swarm peering command for easy management of the peering subsystem. Peer in the peering subsystem is maintained to be connected at all times, and gets reconnected on disconnect with a back-off.

See ipfs swarm peering --help for more details.

- [4874a8a](https://github.com/JonasKruckenberg/go-ipfs-sidecar/commit/4874a8a10ff55de0e977c4860aaa51cc503df6c6) Create ipfs-v0.10.0.md on 2021-10-02
- [34793b8](https://github.com/JonasKruckenberg/go-ipfs-sidecar/commit/34793b8b2edc569d21bd0e30daf6b41b4001b91e) Update ipfs-v0.10.0.md on 2021-10-02
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "go-ipfs-sidecar",
"version": "0.9.1",
"version": "0.10.0",
"main": "dist/index.cjs",
"module": "dist/index.mjs",
"types": "./types.d.ts",
Expand Down

0 comments on commit fa4dde1

Please sign in to comment.