Reodered sections and updated titles
Steve Loeppky committed
Dec 12, 2022 at 21:12 UTC
e1f5cf53b6a943ac46fb05e58e8ec5e58ab9705f
1 file changed
+54
-45
docs/changelogs/v0.18.md
+54
-45
@@ -10,23 +10,58 @@ Below is an outline of all that is in this release, so you get a sense of all th
10
11
- [Overview](#overview)
12
- [🔦 Highlights](#-highlights)
13
- - [DAG-JSON and DAG-CBOR Response Formats on Gateways](#dag-json-and-dag-cbor-response-formats-on-gateways)
14
- - [🐎 Fast directory listings with DAG sizes](#-fast-directory-listings-with-dag-sizes)
15
- - [Content Routing](#content-routing)
16
- - [WebTransport enabled by default](#webtransport-enabled-by-default)
17
- - [WebTransport + QUIC on one single port](#webtransport--quic-on-one-single-port)
18
- - [QUICv1 & WebTransport Config Migration](#quicv1--webtransport-config-migration)
19
- - [/quic Draft-29 early-deprecation](#quic-draft-29-early-deprecation)
20
- - [Provider Record Republish and Expiration](#provider-record-republish-and-expiration)
13
+ - [Content routing](#content-routing)
14
+ - [Default InterPlanetary Network Indexer](#default-interplanetary-network-indexer)
15
+ - [Increase provider record republish interval and expiration](#increase-provider-record-republish-interval-and-expiration)
16
+ - [Gateways](#gateways)
17
+ - [DAG-JSON and DAG-CBOR response formats](#dag-json-and-dag-cbor-response-formats)
18
+ - [🐎 Fast directory listings with DAG sizes](#-fast-directory-listings-with-dag-sizes)
19
+ - [QUIC and WebTransport](#quic-and-webtransport)
20
+ - [WebTransport enabled by default](#webtransport-enabled-by-default)
21
+ - [QUIC and WebTransport share a single port](#quic-and-webtransport-share-a-single-port)
22
+ - [QUICv1 and WebTransport config migration](#quicv1-and-webtransport-config-migration)
23
+ - [/quic draft-29 deprecation notice](#quic-draft-29-deprecation-notice)
24
- [Improving libp2p resource management integration](#improving-libp2p-resource-management-integration)
22
-- [Changelog](#changelog)
23
-- [Contributors](#contributors)
25
+- [📝 Changelog](#-changelog)
26
+- [👨👩👧👦 Contributors](#%E2%80%8D%E2%80%8D%E2%80%8D-contributors)
27
28
<!-- /TOC -->
29
30
### 🔦 Highlights
31
29
-#### (DAG-)JSON and (DAG-)CBOR Response Formats on Gateways
32
+#### Content routing
33
+
34
+##### Default InterPlanetary Network Indexer
35
+
36
+Content routing is the process of discovering which peers provide a piece of content. Kubo has traditionally only supported [libp2p's implementation of Kademlia DHT](https://github.com/libp2p/specs/tree/master/kad-dht) for content routing.
37
+
38
+Kubo can now bridge networks by including support for the [delegated routing HTTP API](https://github.com/ipfs/specs/pull/337). Users can compose content routers using the `Routing.Routers` config, to pick content routers with different tradeoffs than a Kademlia DHT (for example, high-performance and high-capacity centralized endpoints, dedicated Kademlia DHT nodes, routers with unique provider records, privacy-focused content routers, etc.).
39
+
40
+One example is [InterPlanetary Network Indexers](https://github.com/ipni/specs/blob/main/IPNI.md#readme), which are HTTP endpoints that cache records from both the IPFS network and other sources such as web3.storage and Filecoin. This improves not only content availability by enabling Kubo to transparently fetch content directly from Filecoin storage providers, but also improves IPFS content routing latency by an order of magnitude and decreases resource consumption.
41
+*Note:* it's possible to retrieve content stored by Filecoin Storage Providers (SPs) from Kubo if the SPs service Bitswap requests. As of this release, some SPs are advertising Bitswap. You can follow the roadmap progress for IPNIs and Bitswap in SPs [here](https://www.starmaps.app/roadmap/github.com/protocol/bedrock/issues/1).
42
+
43
+In this release, the default content router is changed from `dht` to `auto`. The `auto` router includes the IPFS DHT in addition to the [cid.contact](https://cid.contact) IPNI instance. In future releases, we plan to expand the functionality of `auto` to encompass automatic discovery of content routers, which will improve performance and content availability (for example, see [IPIP-342](https://github.com/ipfs/specs/pull/342)).
44
+
45
+Previous behavior can be restored by setting `Routing.Type` to `dht`.
46
+
47
+Alternative routing rules, including alternative IPNI endpoints, can be configured in `Routing.Routers` after setting `Routing.Type` to `custom`.
48
+
49
+Learn more in [`Routing` docs](https://github.com/ipfs/kubo/blob/master/docs/config.md#routing).
50
+
51
+##### Increase provider record republish interval and expiration
52
+
53
+Default `Reprovider.Interval` changed from 12h to 22h to match new defaults for the Provider Record Expiration (48h) in [go-libp2p-kad-dht v0.20.0](https://github.com/libp2p/go-libp2p-kad-dht/releases/tag/v0.20.0).
54
+
55
+Rationale for increasing this can be found in
56
+[RFM 17: Provider Record Livenes Report](https://github.com/protocol/network-measurements/blob/master/results/rfm17-provider-record-liveness.md),
57
+[kubo#9326](https://github.com/ipfs/kubo/pull/9326),
58
+and the upstream DHT specifications at [libp2p/specs#451](https://github.com/libp2p/specs/pull/451).
59
+
60
+Learn more: [`Reprovider` config](https://github.com/ipfs/go-ipfs/blob/master/docs/config.md#reprovider)
61
+
62
+#### Gateways
63
+
64
+##### (DAG-)JSON and (DAG-)CBOR response formats
65
66
Implemented [IPIP-328](https://github.com/ipfs/specs/pull/328) which adds support
67
to DAG-JSON and DAG-CBOR, as well as their non-DAG variants, to the gateway. Now,
@@ -78,7 +113,7 @@ $ curl "http://127.0.0.1:8080/ipfs/$DIR_CID?format=dag-json" | jq
113
}
114
```
115
81
-#### 🐎 Fast directory listings with DAG sizes
116
+##### 🐎 Fast directory listings with DAG sizes
117
118
Fast listings are now enabled for _all_ UnixFS directories: big and small.
119
There is no linear slowdown caused by reading size metadata from child nodes,
@@ -89,37 +124,22 @@ As an example, the CID
124
directory with over 10k (10100) of files. Listing big directories was fast
125
since Kubo 0.13, but in this release it will also include the size column.
126
92
-#### Content Routing
93
-
94
-Content routing is the process of discovering which peers provide a piece of content. Kubo has traditionally only supported [libp2p's implementation of Kademlia DHT](https://github.com/libp2p/specs/tree/master/kad-dht) for content routing.
95
-
96
-Kubo can now bridge networks by including support for the [delegated routing HTTP API](https://github.com/ipfs/specs/pull/337). Users can compose content routers using the `Routing.Routers` config, to pick content routers with different tradeoffs than a Kademlia DHT (for example, high-performance and high-capacity centralized endpoints, dedicated Kademlia DHT nodes, routers with unique provider records, privacy-focused content routers, etc.).
97
-
98
-One example is [InterPlanetary Network Indexers](https://github.com/ipni/specs/blob/main/IPNI.md#readme), which are HTTP endpoints that cache records from both the IPFS network and other sources such as web3.storage and Filecoin. This improves not only content availability by enabling Kubo to transparently fetch content directly from Filecoin storage providers, but also improves IPFS content routing latency by an order of magnitude and decreases resource consumption.
99
-*Note:* it's possible to retrieve content stored by Filecoin Storage Providers (SPs) from Kubo if the SPs service Bitswap requests. As of this release, some SPs are advertising Bitswap. You can follow the roadmap progress for IPNIs and Bitswap in SPs [here](https://www.starmaps.app/roadmap/github.com/protocol/bedrock/issues/1).
100
-
101
-In this release, the default content router is changed from `dht` to `auto`. The `auto` router includes the IPFS DHT in addition to the [cid.contact](https://cid.contact) IPNI instance. In future releases, we plan to expand the functionality of `auto` to encompass automatic discovery of content routers, which will improve performance and content availability (for example, see [IPIP-342](https://github.com/ipfs/specs/pull/342)).
102
-
103
-Previous behavior can be restored by setting `Routing.Type` to `dht`.
104
-
105
-Alternative routing rules, including alternative IPNI endpoints, can be configured in `Routing.Routers` after setting `Routing.Type` to `custom`.
106
-
107
-Learn more in [`Routing` docs](https://github.com/ipfs/kubo/blob/master/docs/config.md#routing).
127
+#### QUIC and WebTransport
128
109
-#### WebTransport enabled by default
129
+##### WebTransport enabled by default
130
131
[WebTransport](https://github.com/libp2p/go-libp2p/issues/1717) is a new libp2p transport that [has been introduced in v0.16](v0.16.md#-webtransport-new-experimental-transport) that is based on top of QUIC and HTTP3.
132
133
This allows browsers to contact Kubo nodes, so now instead of just serving requests for other system level applicative nodes, you can also serve requests directly to a browser.
134
For the full story see [connectivity.libp2p.io](https://connectivity.libp2p.io/).
135
116
-##### WebTransport + QUIC on one single port
136
+##### QUIC and WebTransport share a single port
137
138
The new feature that allows us to ship WebTransport by default is that [go-libp2p now supports running WebTransport and QUIC transports on the same QUIC listener](https://github.com/libp2p/go-libp2p/issues/1759).
139
140
To use this feature, you just have to register two listen address on the same `/ipX/.../udp/XXX` prefix.
141
122
-#### QUICv1 & WebTransport Config Migration
142
+##### QUICv1 and WebTransport config migration
143
144
Go-libp2p now differentiate the first version of QUIC we implemented (and were using until then), `Draft-29`, and the ratified protocol in RFC9000, `QUICv1`.
145
This manifest as two different multiaddr components `/quic` (old Draft-29) and `/quic-v1`.
@@ -133,23 +153,12 @@ To support QUICv1 and WebTransport by default we run a new migration (n°`13`) w
153
- Replace all `/quic/webtransport` to `/quic-v1/webtransport`.
154
- For all `/quic` listener, keep the Draft-29 listener, and on the same ip and port, add `/quic-v1` and `/quic-v1/webtransport` listeners.
155
136
-##### `/quic` (Draft-29) early-deprecation
156
+##### `/quic` (draft-29) deprecation notice
157
158
We plan to remove support for QUIC Draft-29 in the mid to long term future.
159
160
You must not use `/quic` for new deployements and use `/quic-v1` instead.
161
142
-#### Provider Record Republish and Expiration
143
-
144
-Default `Reprovider.Interval` changed from 12h to 22h to match new defaults for the Provider Record Expiration (48h) in [go-libp2p-kad-dht v0.20.0](https://github.com/libp2p/go-libp2p-kad-dht/releases/tag/v0.20.0).
145
-
146
-Rationale for increasing this can be found in
147
-[RFM 17: Provider Record Livenes Report](https://github.com/protocol/network-measurements/blob/master/results/rfm17-provider-record-liveness.md),
148
-[kubo#9326](https://github.com/ipfs/kubo/pull/9326),
149
-and the upstream DHT specifications at [libp2p/specs#451](https://github.com/libp2p/specs/pull/451).
150
-
151
-Learn more: [`Reprovider` config](https://github.com/ipfs/go-ipfs/blob/master/docs/config.md#reprovider)
152
-
162
#### Improving libp2p resource management integration
163
To help protect nodes from DoS (resource exhaustion) and eclipse attacks,
164
Kubo enabled the [go-libp2p Network Resource Manager](https://github.com/libp2p/go-libp2p/tree/master/p2p/host/resource-manager)
@@ -163,6 +172,6 @@ and various improvements have been made to improve the UX including:
172
4. Adjusted log messages and levels to make clear that the resource manager is likely doing your node a favor by bounding resources.
173
5. [Other miscellaneous config and command bugs reported by users](https://github.com/ipfs/kubo/issues/9442).
174
166
-### Changelog
175
+### 📝 Changelog
176
168
-### Contributors
177
+### 👨👩👧👦 Contributors