Skip to content

Commit af27e43

Browse files
Jorropoaschmahmann
authored andcommitted
chore: Add release notes for 0.13.1
1 parent bc4f854 commit af27e43

File tree

1 file changed

+102
-15
lines changed

1 file changed

+102
-15
lines changed

CHANGELOG.md

Lines changed: 102 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,92 @@
11
# go-ipfs changelog
22

3+
## v0.13.1 2022-07-06
4+
5+
This release includes security fixes for various DOS vectors when importing untrusted user input with `ipfs dag import`
6+
and the [`v0/dag/import`](https://docs.ipfs.io/reference/http/api/#api-v0-dag-import) endpoint.
7+
8+
View the linked [security advisory](https://github.com/ipfs/go-ipfs/security/advisories/GHSA-f2gr-7299-487h) for more information.
9+
10+
### Changelog
11+
12+
- github.com/ipfs/go-ipfs:
13+
- chore: update car
14+
- github.com/ipld/go-car (v0.3.2 -> v0.4.0) & (v2.1.1 -> v2.4.0):
15+
- Bump version in prep for releasing go-car `v0`
16+
- Revert changes to `insertionindex`
17+
- Revert changes to `index.Index` while keeping most of security fixes
18+
- Return error when section length is invalid `varint`
19+
- Drop repeated package name from `CarStats`
20+
- Benchmark `Reader.Inspect` with and without hash validation
21+
- Use consistent CID mismatch error in `Inspect` and `BlockReader.Next`
22+
- Use streaming APIs to verify the hash of blocks in CAR `Inspect`
23+
- test: add fuzzing for reader#Inspect
24+
- feat: add block hash validation to Inspect()
25+
- feat: add Reader#Inspect() function to check basic validity of a CAR and return stats
26+
- Remove support for `ForEach` enumeration from car-index-sorted
27+
- Use a fix code as the multihash code for `CarIndexSorted`
28+
- Fix testutil assertion logic and update index generation tests
29+
- fix: tighter constraint of singleWidthIndex width, add index recommentation docs
30+
- fix: explicitly disable serialization of insertionindex
31+
- feat: MaxAllowed{Header,Section}Size option
32+
- feat: MaxAllowedSectionSize default to 32M
33+
- fix: use CidFromReader() which has overread and OOM protection
34+
- fix: staticcheck catches
35+
- fix: revert to internalio.NewOffsetReadSeeker in Reader#IndexReader
36+
- fix index comparisons
37+
- feat: Refactor indexes to put storage considerations on consumers
38+
- test: v2 add fuzzing of the index
39+
- fix: v2 don't divide by zero in width indexes
40+
- fix: v2 don't allocate indexes too big
41+
- test: v2 add fuzzing to Reader
42+
- fix: v2 don't accept overflowing offsets while reading v2 headers
43+
- test: v2 add fuzzing to BlockReader
44+
- fix: v2 don't OOM if the header size is too big
45+
- test: add fuzzing of NewCarReader
46+
- fix: do bound check while checking for CIDv0
47+
- fix: don't OOM if the header size is too big
48+
- Add API to regenerate index from CARv1 or CARv2
49+
- PrototypeChooser support (#305) ([ipld/go-car#305](https://github.com/ipld/go-car/pull/305))
50+
- bump to newer blockstore err not found (#301) ([ipld/go-car#301](https://github.com/ipld/go-car/pull/301))
51+
- Car command supports for `largebytes` nodes (#296) ([ipld/go-car#296](https://github.com/ipld/go-car/pull/296))
52+
- fix(test): rootless fixture should have no roots, not null roots
53+
- Allow extracton of a raw unixfs file (#284) ([ipld/go-car#284](https://github.com/ipld/go-car/pull/284))
54+
- cmd/car: use a better install command in the README
55+
- feat: --version selector for `car create` & update deps
56+
- feat: add option to create blockstore that writes a plain CARv1 (#288) ([ipld/go-car#288](https://github.com/ipld/go-car/pull/288))
57+
- add `car detach-index list` to list detached index contents (#287) ([ipld/go-car#287](https://github.com/ipld/go-car/pull/287))
58+
- add `car root` command (#283) ([ipld/go-car#283](https://github.com/ipld/go-car/pull/283))
59+
- make specification of root cid in get-dag command optional (#281) ([ipld/go-car#281](https://github.com/ipld/go-car/pull/281))
60+
- Update `version.json` after manual tag push
61+
- Update v2 to context datastores (#275) ([ipld/go-car#275](https://github.com/ipld/go-car/pull/275))
62+
- update context datastore ([ipld/go-car#273](https://github.com/ipld/go-car/pull/273))
63+
- Traversal-based car creation (#269) ([ipld/go-car#269](https://github.com/ipld/go-car/pull/269))
64+
- Seek to start before index generation in `ReadOnly` blockstore
65+
- support extraction of unixfs content stored in car files (#263) ([ipld/go-car#263](https://github.com/ipld/go-car/pull/263))
66+
- Add a barebones readme to the car CLI (#262) ([ipld/go-car#262](https://github.com/ipld/go-car/pull/262))
67+
- sync: update CI config files (#261) ([ipld/go-car#261](https://github.com/ipld/go-car/pull/261))
68+
- fix!: use -version=n instead of -v1 for index command
69+
- feat: fix get-dag and add version=1 option
70+
- creation of car from file / directory (#246) ([ipld/go-car#246](https://github.com/ipld/go-car/pull/246))
71+
- forEach iterates over index in stable order (#258) ([ipld/go-car#258](https://github.com/ipld/go-car/pull/258))
72+
- github.com/multiformats/go-multicodec (v0.4.1 -> v0.5.0):
73+
- Bump version to 0.5.0
74+
- Bump version to 0.4.2
75+
- deps: update stringer version in go generate command
76+
- docs(readme): improved usage examples (#66) ([multiformats/go-multicodec#66](https://github.com/multiformats/go-multicodec/pull/66))
77+
78+
### ❤ Contributors
79+
80+
| Contributor | Commits | Lines ± | Files Changed |
81+
|-------------|---------|---------|---------------|
82+
| Masih H. Derkani | 27 | +1494/-1446 | 100 |
83+
| Rod Vagg | 31 | +2021/-606 | 105 |
84+
| Will | 19 | +1898/-151 | 69 |
85+
| Jorropo | 27 | +1638/-248 | 76 |
86+
| Aayush Rajasekaran | 1 | +130/-100 | 10 |
87+
| whyrusleeping | 1 | +24/-22 | 4 |
88+
| Marcin Rataj | 1 | +27/-1 | 1 |
89+
390
## v0.13.0 2022-05-04
491

592
We're happy to announce go-ipfs 0.13.0, packed full of changes and improvements!
@@ -140,7 +227,7 @@ There are two ways for requesting CID specific response format:
140227

141228
```console
142229
$ curl -H 'Accept: application/vnd.ipld.raw' "http://127.0.0.1:8080/ipfs/QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN" --output block.bin
143-
$ cat block.bin | ipfs block put
230+
$ cat block.bin | ipfs block put
144231
$ ipfs cat QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN
145232
hello
146233
```
@@ -2123,7 +2210,7 @@ As usual, this release includes important fixes, some of which may be critical f
21232210
- `ipfs dag put`
21242211
- defaults changed to reduce ambiguity and surprises: input is now assumed to be [`dag-json`](https://ipld.io/specs/codecs/dag-json/spec/), and data is serialized to [`dag-cbor`](https://ipld.io/specs/codecs/dag-cbor/spec/) at rest.
21252212
- `--format` and `--input-enc` were removed and replaced with `--store-codec` and `--input-codec`
2126-
- codec names now match the ones defined in the [multicodec table](https://github.com/multiformats/multicodec/blob/master/table.csv)
2213+
- codec names now match the ones defined in the [multicodec table](https://github.com/multiformats/multicodec/blob/master/table.csv)
21272214
- dag-pb (e.g. unixfs) field names changed - impacts userland code that works with `dag-pb` objects stored via `dag put`
21282215

21292216
Keep reading to learn more details.
@@ -3507,7 +3594,7 @@ Examples include:
35073594
```
35083595
ipfs pin remote service add myservice https://myservice.tld:1234/api/path myaccess key
35093596

3510-
ipfs pin remote add /ipfs/bafymydata --service=myservice --name=myfile
3597+
ipfs pin remote add /ipfs/bafymydata --service=myservice --name=myfile
35113598
ipfs pin remote ls --service=myservice --name=myfile
35123599
ipfs pin remote ls --service=myservice --cid=bafymydata
35133600
ipfs pin remote rm --serivce=myservice --name=myfile
@@ -3530,7 +3617,7 @@ Previously DNSLink names would have trouble loading over subdomain gateways with
35303617

35313618
`/ipns/en.wikipedia-on-ipfs.org` →
35323619
`ipns://en.wikipedia-on-ipfs.org` →
3533-
`https://dweb.link/ipns/en.wikipedia-on-ipfs.org`
3620+
`https://dweb.link/ipns/en.wikipedia-on-ipfs.org`
35343621
`https://en-wikipedia--on--ipfs-org.ipns.dweb.link` :point_left: _a single DNS label, no TLS error_
35353622

35363623
#### QUIC update
@@ -5258,7 +5345,7 @@ default. This:
52585345

52595346
* Ensures that every dapp gets its own browser origin.
52605347
* Makes it easier to write websites that "just work" with IPFS because absolute paths will now work (though you should still use relative links because they're better).
5261-
5348+
52625349
Paths addressing the gateway by IP address (`http://127.0.0.1:5001/ipfs/CID`) will not be altered as IP addresses can't have subdomains.
52635350

52645351
Note: cURL doesn't follow redirects by default. To avoid breaking cURL and other clients that don't support redirects, go-ipfs will return the requested file along with the redirect. Browsers will follow the redirect and abort the download while cURL will ignore the redirect and finish the download.
@@ -5287,7 +5374,7 @@ This feature will be enabled by default in 0.6.0.
52875374

52885375
##### IPNS with base32 PIDs
52895376

5290-
IPNS names can now be expressed as special multibase CIDs. E.g.,
5377+
IPNS names can now be expressed as special multibase CIDs. E.g.,
52915378

52925379
> /ipns/bafzbeibxfjp4gaxc4cdn57257cyvc7jfa4rlp4e5min6geg44m57g6nx7e
52935380

@@ -5385,7 +5472,7 @@ IPFS now allows rapid reading and writing of blocks in [`.car` format](https://g
53855472
~$ ipfs dag export QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc \
53865473
| xz > welcome_to_ipfs.car.xz
53875474

5388-
0s 6.73 KiB / ? [-------=-------------------------------------] 5.16 MiB/s 0s
5475+
0s 6.73 KiB / ? [-------=-------------------------------------] 5.16 MiB/s 0s
53895476

53905477
```
53915478
Then on another `ipfs` instance, not even connected to the network:
@@ -5413,7 +5500,7 @@ To enable structured logging, set the `IPFS_LOGGING_FMT` environment variable to
54135500

54145501
Note: while we've switched to using Zap as the logging backend, most of go-ipfs still logs strings.
54155502

5416-
##### Systemd Support
5503+
##### Systemd Support
54175504

54185505
For Linux users, this release includes support for two systemd features: socket activation and startup/shutdown notifications. This makes it possible to:
54195506

@@ -5470,7 +5557,7 @@ type Plugin interface {
54705557
}
54715558
```
54725559

5473-
to
5560+
to
54745561

54755562
```go
54765563
type Environment struct {
@@ -6480,7 +6567,7 @@ This release includes fixes for the following regressions:
64806567
networking module, causing it to announce the wrong addresses and sometimes
64816568
complain about not being able to determine the IP address
64826569
([ipfs/go-ipfs#6415](https://github.com/ipfs/go-ipfs/pull/6415)).
6483-
6570+
64846571
It also includes fixes for:
64856572

64866573
1. Pins not being persisted after `ipfs block add --pin`
@@ -6765,13 +6852,13 @@ rce is stdin.
67656852
-p, --progress bool - Stream progress data.
67666853
-t, --trickle bool - Use trickle-dag format for da
67676854
g generation.
6768-
-n, --only-hash bool - Only chunk and hash - do not
6855+
-n, --only-hash bool - Only chunk and hash - do not
67696856
write to disk.
67706857
-w, --wrap-with-directory bool - Wrap files with a directory o
67716858
bject.
67726859
-s, --chunker string - Chunking algorithm, size-[byt
67736860
es] or rabin-[min]-[avg]-[max]. Default: size-262144.
6774-
--pin bool - Pin this object when adding.
6861+
--pin bool - Pin this object when adding.
67756862
Default: true.
67766863
--raw-leaves bool - Use raw blocks for leaf nodes
67776864
. (experimental).
@@ -7269,7 +7356,7 @@ performance issues that we've now fixed in this release. Specifically:
72697356
* We've fixed quite a number of performance issues that only show up when
72707357
rapidly forming new connections. This will actually help _all_ nodes but will
72717358
especially help relays.
7272-
7359+
72737360
If you've enabled relay _hop_ (`Swarm.EnableRelayHop`) in go-ipfs 0.4.19 and it
72747361
hasn't burned down your machine yet, this release should improve things
72757362
significantly. However, relays are still under heavy load so running an open
@@ -8336,7 +8423,7 @@ bafybeicg2rebjoofv4kbyovkw7af3rpiitvnl6i7ckcywaq6xjcxnc2mby
83368423

83378424
The refactored `ipfs p2p` command allows forwarding TCP streams through two IPFS
83388425
nodes from one host to another. It's `ssh -L` but for IPFS. You can find
8339-
documentation
8426+
documentation
83408427
[here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#ipfs-p2p).
83418428
It's still experimental but we don't expect too many breaking changes at this
83428429
point (it will very likely be stabilized in the next release). Quick summary of
@@ -9974,7 +10061,7 @@ few other improvements to other parts of the codebase. Notably:
997410061
- 81% coverage on blockstore ([ipfs/go-ipfs#3074](https://github.com/ipfs/go-ipfs/pull/3074))
997510062
- 80% coverage of unixfs/mod ([ipfs/go-ipfs#3096](https://github.com/ipfs/go-ipfs/pull/3096))
997610063
- 82% coverage on blocks ([ipfs/go-ipfs#3086](https://github.com/ipfs/go-ipfs/pull/3086))
9977-
- 87% coverage on unixfs ([ipfs/go-ipfs#3492](https://github.com/ipfs/go-ipfs/pull/3492))
10064+
- 87% coverage on unixfs ([ipfs/go-ipfs#3492](https://github.com/ipfs/go-ipfs/pull/3492))
997810065
- Improve coverage on routing/offline ([ipfs/go-ipfs#3516](https://github.com/ipfs/go-ipfs/pull/3516))
997910066
- Add test for flags package ([ipfs/go-ipfs#3449](https://github.com/ipfs/go-ipfs/pull/3449))
998010067
- improve test coverage on merkledag package ([ipfs/go-ipfs#3113](https://github.com/ipfs/go-ipfs/pull/3113))

0 commit comments

Comments
 (0)