3.1 KiB
Kubo changelog v0.23
v0.23.0
Overview
🔦 Highlights
Mplex deprecation
Mplex 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 dynamicaly 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.
Gateway: meaningful CAR responses on Not Found errors
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.
Binary characters in file names: no longer works with old clients and new Kubo servers
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.
Self-hosting /routing/v1
endpoint for delegated routing needs
The 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
.