docs/changelogs/v0.23.md
Gateway.DisableHTMLErrors configuration option/routing/v1 endpoint for delegated routing needs/quic (Draft 29) supportMplex is being deprecated, this is because it is unreliable and randomly drop streams when sending data too fast.
New pieces of code rely on backpressure, that means the stream will dynamically slow down the sending rate if data is getting backed up. Backpressure is provided by Yamux and QUIC.
In case you need compatibility with older implementations that do not ship with Yamux (like default's JS-IPFS) you can turned it back ON in the config with:
$ ipfs config --json Swarm.Transports.Multiplexers.Mplex 200
We will completely remove Mplex in v0.24 as it makes protocols very bad to implement, if you are in this situation you need to add yamux support to your other implementation.
When requesting a CAR from the gateway, the root of the CAR might no longer be
meaningful. By default, the CAR root will be the last resolvable segment of the
path. However, in situations where the path cannot be resolved, such as when
the path does not exist, a CAR will be sent with a root of bafkqaaa (empty CID).
This CAR will contain all blocks necessary to validate that the path does not exist without having to trust the gateway.
Gateway.DisableHTMLErrors configuration optionThe Gateway.DisableHTMLErrors configuration option forces errors to be
displayed in browsers as plain text (text/plain) rather than HTML error
pages. It's especially beneficial for whitelabel or middleware deployments that
wish to avoid IPFS branding and links on error pages in browsers.
In this version, we updated Kubo to support Go 1.20+. In Go 1.20, a regression
regarding multipart headers was introduced.
This only affects ipfs add when a file name has binary characters in its name.
As a consequence, we had to update the encoding of the file name headers. This is
the compatibility table:
| New Client | Old Client | |
|---|---|---|
| New Server | β | π‘* |
| Old Server | β | β |
*Old clients can only send Unicode file paths to the server.
/routing/v1 endpoint for delegated routing needsThe Routing system configured in Kubo can be now exposed on the gateway port as a standard
HTTP Routing V1 API endpoint. This allows
self-hosting and experimentation with custom delegated routers. This is disabled by default,
but can be enabled by setting Gateway.ExposeRoutingAPI to true .
In this update, we've introduced an experimental opt-in feature allowing users to
serve a subset of Trustless Gateway responses,
such as blocks and CARs, over libp2p. This enhancement leverages the ongoing
/http/1.1 specification work in libp2p
to make it easier to support HTTP semantics over libp2p streams.
This development means that if users wish to utilize the Trustless Gateway API for data transport, they can now do so even in scenarios where standard HTTP might be problematic, such as when the endpoint is behind a firewall or when attempting to serve data to a browser without a CA certificate.
See HTTP Gateway over Libp2p for details about this experiment.
/quic (Draft 29) supportKubo no longer supports QUIC Draft 29. This means that older nodes aren't able to connect
to newer nodes using QUIC Draft 29. However, they are still able to connect through any other
transport that both nodes talk (such as QUIC RFC 9000, or TCP). QUIC Draft 29 was a preliminary implementation of QUIC before
the official RFC 9000 was published, and it has now been dropped by go-libp2p
and therefore Kubo.
In Kubo 0.18, we shipped a migration
to have listeners for both /quic (Draft 29) and /quic-v1 (RFC 9000). Similarly, in this
version we are shipping a migration to remove the current /quic addresses, maintaining
the /quic-v1 addresses only. For more background information, check issue #9496.
Thanks to probelab.io's RFM17.1 DHT servers will now cache the addresses of content hosts for the lifetime of the provider record.
This means clients who resolve content from these servers get a responses which include both peer id and multiaddresses. In most cases this enables skipping a second query which resolves the peer id to multiaddresses for stable enough peers.
This will improve content fetching lantency in the network overtime as servers updates.
lsing directories and reading dag-pb files on a fuse volume have been fixed. #9044
Thx a lot @bmwiedemann for debugging this issue.
| Contributor | Commits | Lines Β± | Files Changed |
|---|---|---|---|
| Rod Vagg | 48 | +3578/-1789 | 110 |
| Henrique Dias | 24 | +3173/-1128 | 104 |
| Jorropo | 51 | +1721/-1297 | 252 |
| Marco Munizaga | 6 | +1989/-505 | 39 |
| Kay | 3 | +487/-474 | 163 |
| hannahhoward | 8 | +626/-136 | 23 |
| Calvin Behling | 6 | +496/-259 | 20 |
| Eric Myhre | 9 | +610/-121 | 16 |
| Adin Schmahmann | 17 | +659/-45 | 35 |
| Marten Seemann | 17 | +218/-477 | 119 |
| Sukun | 11 | +481/-174 | 29 |
| CJB | 1 | +639/-2 | 5 |
| Hector Sanjuan | 10 | +450/-127 | 21 |
| Wondertan | 2 | +203/-127 | 8 |
| Marcin Rataj | 11 | +148/-86 | 18 |
| Andrew Gillis | 2 | +163/-14 | 5 |
| P. Reis | 3 | +120/-4 | 4 |
| Will Scott | 4 | +107/-12 | 6 |
| Amir Mohammad Fakhimi | 1 | +97/-2 | 5 |
| Ed Schouten | 1 | +55/-7 | 2 |
| Icarus9913 | 1 | +30/-30 | 18 |
| Dirk McCormick | 1 | +3/-42 | 1 |
| RaΓΊl Kripalani | 1 | +20/-18 | 4 |
| Michael MurΓ© | 1 | +26/-7 | 5 |
| Prem Chaitanya Prathi | 1 | +28/-1 | 2 |
| ShengTao | 1 | +13/-14 | 4 |
| Prithvi Shahi | 3 | +14/-13 | 3 |
| web3-bot | 5 | +12/-10 | 9 |
| Alejandro Criado-PΓ©rez | 1 | +11/-11 | 6 |
| Steven Allen | 2 | +6/-10 | 2 |
| Andrej Manduch | 1 | +5/-5 | 3 |
| Russell Dempsey | 2 | +4/-2 | 2 |
| Johannes Maria Frank | 1 | +4/-1 | 1 |
| downIoads | 1 | +2/-2 | 1 |
| Will | 2 | +2/-2 | 2 |
| Marin Kirkov | 1 | +2/-2 | 2 |
| Gus Eggert | 1 | +2/-2 | 1 |
| Bernhard M. Wiedemann | 1 | +4/-0 | 1 |
| Dennis Trautwein | 1 | +1/-2 | 1 |
| βGheisMohammadiβ | 1 | +1/-1 | 1 |
| cce | 1 | +1/-1 | 1 |
| Joao Andrade | 1 | +1/-1 | 1 |
| guillaumemichel | 1 | +1/-0 | 1 |
| Santiago Botto | 1 | +0/-1 | 1 |