docs: v0.13.1 (#9093)
Co-authored-by: Adin Schmahmann <adin.schmahmann@gmail.com>
Jorropo committed
Jul 6, 2022 at 17:32 UTC
df34bad3c73c4ab3f81dc0cfacff9a27b6b8b7a5
1 file changed
+102
-15
CHANGELOG.md
+102
-15
@@ -1,5 +1,92 @@
1
# go-ipfs changelog
2
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
+
90
## v0.13.0 2022-05-04
91
92
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:
227
228
```console
229
$ 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
231
$ ipfs cat QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN
232
hello
233
```
@@ -2123,7 +2210,7 @@ As usual, this release includes important fixes, some of which may be critical f
2210
- `ipfs dag put`
2211
- 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.
2212
- `--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)
2214
- dag-pb (e.g. unixfs) field names changed - impacts userland code that works with `dag-pb` objects stored via `dag put`
2215
2216
Keep reading to learn more details.
@@ -3507,7 +3594,7 @@ Examples include:
3594
```
3595
ipfs pin remote service add myservice https://myservice.tld:1234/api/path myaccess key
3596
3510
-ipfs pin remote add /ipfs/bafymydata --service=myservice --name=myfile
3597
+ipfs pin remote add /ipfs/bafymydata --service=myservice --name=myfile
3598
ipfs pin remote ls --service=myservice --name=myfile
3599
ipfs pin remote ls --service=myservice --cid=bafymydata
3600
ipfs pin remote rm --serivce=myservice --name=myfile
@@ -3530,7 +3617,7 @@ Previously DNSLink names would have trouble loading over subdomain gateways with
3617
3618
`/ipns/en.wikipedia-on-ipfs.org` →
3619
`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`
3621
`https://en-wikipedia--on--ipfs-org.ipns.dweb.link` :point_left: _a single DNS label, no TLS error_
3622
3623
#### QUIC update
@@ -5258,7 +5345,7 @@ default. This:
5345
5346
* Ensures that every dapp gets its own browser origin.
5347
* 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
+
5349
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.
5350
5351
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.
5374
5375
##### IPNS with base32 PIDs
5376
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.,
5378
5379
> /ipns/bafzbeibxfjp4gaxc4cdn57257cyvc7jfa4rlp4e5min6geg44m57g6nx7e
5380
@@ -5385,7 +5472,7 @@ IPFS now allows rapid reading and writing of blocks in [`.car` format](https://g
5472
~$ ipfs dag export QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc \
5473
| xz > welcome_to_ipfs.car.xz
5474
5388
- 0s 6.73 KiB / ? [-------=-------------------------------------] 5.16 MiB/s 0s
5475
+ 0s 6.73 KiB / ? [-------=-------------------------------------] 5.16 MiB/s 0s
5476
5477
```
5478
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
5500
5501
Note: while we've switched to using Zap as the logging backend, most of go-ipfs still logs strings.
5502
5416
-##### Systemd Support
5503
+##### Systemd Support
5504
5505
For Linux users, this release includes support for two systemd features: socket activation and startup/shutdown notifications. This makes it possible to:
5506
@@ -5470,7 +5557,7 @@ type Plugin interface {
5557
}
5558
```
5559
5473
-to
5560
+to
5561
5562
```go
5563
type Environment struct {
@@ -6480,7 +6567,7 @@ This release includes fixes for the following regressions:
6567
networking module, causing it to announce the wrong addresses and sometimes
6568
complain about not being able to determine the IP address
6569
([ipfs/go-ipfs#6415](https://github.com/ipfs/go-ipfs/pull/6415)).
6483
-
6570
+
6571
It also includes fixes for:
6572
6573
1. Pins not being persisted after `ipfs block add --pin`
@@ -6765,13 +6852,13 @@ rce is stdin.
6852
-p, --progress bool - Stream progress data.
6853
-t, --trickle bool - Use trickle-dag format for da
6854
g generation.
6768
- -n, --only-hash bool - Only chunk and hash - do not
6855
+ -n, --only-hash bool - Only chunk and hash - do not
6856
write to disk.
6857
-w, --wrap-with-directory bool - Wrap files with a directory o
6858
bject.
6859
-s, --chunker string - Chunking algorithm, size-[byt
6860
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.
6862
Default: true.
6863
--raw-leaves bool - Use raw blocks for leaf nodes
6864
. (experimental).
@@ -7269,7 +7356,7 @@ performance issues that we've now fixed in this release. Specifically:
7356
* We've fixed quite a number of performance issues that only show up when
7357
rapidly forming new connections. This will actually help _all_ nodes but will
7358
especially help relays.
7272
-
7359
+
7360
If you've enabled relay _hop_ (`Swarm.EnableRelayHop`) in go-ipfs 0.4.19 and it
7361
hasn't burned down your machine yet, this release should improve things
7362
significantly. However, relays are still under heavy load so running an open
@@ -8336,7 +8423,7 @@ bafybeicg2rebjoofv4kbyovkw7af3rpiitvnl6i7ckcywaq6xjcxnc2mby
8423
8424
The refactored `ipfs p2p` command allows forwarding TCP streams through two IPFS
8425
nodes from one host to another. It's `ssh -L` but for IPFS. You can find
8339
-documentation
8426
+documentation
8427
[here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#ipfs-p2p).
8428
It's still experimental but we don't expect too many breaking changes at this
8429
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:
10061
- 81% coverage on blockstore ([ipfs/go-ipfs#3074](https://github.com/ipfs/go-ipfs/pull/3074))
10062
- 80% coverage of unixfs/mod ([ipfs/go-ipfs#3096](https://github.com/ipfs/go-ipfs/pull/3096))
10063
- 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))
10065
- Improve coverage on routing/offline ([ipfs/go-ipfs#3516](https://github.com/ipfs/go-ipfs/pull/3516))
10066
- Add test for flags package ([ipfs/go-ipfs#3449](https://github.com/ipfs/go-ipfs/pull/3449))
10067
- improve test coverage on merkledag package ([ipfs/go-ipfs#3113](https://github.com/ipfs/go-ipfs/pull/3113))