docs/changelogs/v0.21.md
DeserializedResponses config flagclient/rpc migration of go-ipfs-http-clienttext/htmlipfs dag stat deduping statisticsKubo now stores a subset of connected peers as backup bootstrap nodes (kubo#8856).
These nodes are used in addition to the explicitly defined bootstrappers in the
Bootstrap configuration.
This enhancement improves the resiliency of the system, as it eliminates the necessity of relying solely on the default bootstrappers operated by Protocol Labs for joining the public IPFS swarm. Previously, this level of robustness was only available in LAN contexts with mDNS peer discovery enabled.
With this update, the same level of robustness is applied to peers that lack mDNS peers and solely rely on the public DHT.
DeserializedResponses config flagThis release introduces the
Gateway.DeserializedResponses
configuration flag.
With this flag, one can explicitly configure whether the gateway responds to deserialized requests or not. By default, this flag is enabled.
Disabling deserialized responses allows the gateway to operate as a Trustless Gateway limited to three verifiable response types: application/vnd.ipld.raw, application/vnd.ipld.car, and application/vnd.ipfs.ipns-record.
With deserialized responses disabled, the Kubo gateway can serve as a block backend for other software (like bifrost-gateway, IPFS in Chromium etc) without the usual risks associated with hosting deserialized data behind third-party CIDs.
client/rpc migration of go-ipfs-http-clientThe go-ipfs-http-client RPC has
been migrated into kubo/client/rpc.
With this change the two will be kept in sync, in some previous releases we updated the CoreAPI with new Kubo features but forgot to port those to the http-client, making it impossible to use them together with the same coreapi version.
For smooth transition v0.7.0 of go-ipfs-http-client provides updated stubs
for Kubo v0.21.
In this release, we improved the HTML templates of our HTTP gateway:
HTML responses are returned when request's Accept header includes text/html.
| DAG-CBOR Preview | Error Page |
|---|---|
text/htmlHTTP 301 redirects from path to subdomain no longer include the target data in the body. The data is returned only once, with the final HTTP 200 returned from the target subdomain.
The HTTP 301 body now includes human-readable text/html message
for clients that do not follow redirects by default:
$ curl "https://subdomain-gw.example.net/ipfs/${cid}/"
<a href="https://${cid}.ipfs.subdomain-gw.example.net/">Moved Permanently</a>.
Rationale can be found in kubo#9913.
The gateway now supports optional CAR export parameters
dag-scope=block|entity|all and entity-bytes=from:to as specified in
IPIP-402.
Batch block retrieval minimizes round trips, catering to the requirements of light HTTP clients for directory enumeration, range requests, and content path resolution.
ipfs dag stat deduping statisticsipfs dat stat now accept multiple CIDs and will dump advanced statistics
on the number of shared blocks and size of each CID.
$ ipfs dag stat --progress=false QmfXuRxzyVy5H2LssLgtXrKCrNvDY8UBvMp2aoW8LS8AYA QmfZDyu2UFfUhL4VdHaw7Hofivmn5D4DdQj38Lwo86RsnB
CID Blocks Size
QmfXuRxzyVy5H2LssLgtXrKCrNvDY8UBvMp2aoW8LS8AYA 3 2151
QmfZDyu2UFfUhL4VdHaw7Hofivmn5D4DdQj38Lwo86RsnB 4 3223
Summary
Total Size: 3326
Unique Blocks: 5
Shared Size: 2048
Ratio: 1.615755
ipfs --enc=json dag stat's keys are a non breaking change, new keys have been added but old keys with previous semantics are still here.
The accelerated DHT client is now the main recommended solution for users who are hosting lots of data. By trading some upfront DHT caching and increased memory usage, one gets provider throughput improvements up to 6 millions times bigger dataset. See the docs for more info.
The Experimental.AcceleratedDHTClient flag moved to Routing.AcceleratedDHTClient.
A config migration has been added to handle this automatically.
A new tracker estimates the providing speed and warns users if they should be using AcceleratedDHTClient because they are falling behind.
| Contributor | Commits | Lines ยฑ | Files Changed |
|---|---|---|---|
| Jorropo | 47 | +4394/-4458 | 202 |
| Henrique Dias | 48 | +4344/-3962 | 205 |
| ลukasz Magiera | 68 | +3604/-886 | 172 |
| Adin Schmahmann | 8 | +1754/-1057 | 37 |
| galargh | 7 | +1355/-1302 | 15 |
| Gus Eggert | 7 | +1566/-655 | 33 |
| rvagg | 1 | +396/-389 | 3 |
| Michael Murรฉ | 3 | +547/-202 | 14 |
| Guillaume Michel - guissou | 5 | +153/-494 | 17 |
| guillaumemichel | 15 | +446/-189 | 28 |
| Laurent Senta | 4 | +472/-152 | 29 |
| Rod Vagg | 6 | +554/-37 | 23 |
| Marcin Rataj | 11 | +330/-82 | 21 |
| Arthur Gavazza | 1 | +296/-87 | 7 |
| Lucas Molas | 1 | +323/-56 | 6 |
| Marco Munizaga | 5 | +227/-97 | 17 |
| Alex | 8 | +163/-116 | 10 |
| Steven Allen | 11 | +154/-114 | 14 |
| Marten Seemann | 6 | +214/-41 | 12 |
| web3-bot | 9 | +76/-75 | 28 |
| Hector Sanjuan | 2 | +5/-96 | 4 |
| Sukun | 1 | +83/-17 | 3 |
| Steve Loeppky | 2 | +100/-0 | 2 |
| Edgar Lee | 1 | +46/-46 | 12 |
| Ivan Schasny | 1 | +67/-5 | 4 |
| imthe1 | 1 | +65/-3 | 5 |
| godcong | 2 | +30/-31 | 5 |
| Will Scott | 4 | +36/-23 | 6 |
| Petar Maymounkov | 1 | +45/-9 | 1 |
| Ross Jones | 1 | +43/-1 | 2 |
| William Entriken | 1 | +38/-0 | 1 |
| Joรฃo Pedro | 1 | +35/-0 | 1 |
| jhertz | 1 | +21/-0 | 2 |
| Nikhilesh Susarla | 1 | +21/-0 | 3 |
| Matt Joiner | 1 | +11/-9 | 2 |
| Vlad | 2 | +4/-2 | 2 |
| Russell Dempsey | 2 | +4/-2 | 2 |
| Will | 2 | +2/-2 | 2 |
| Piotr Galar | 1 | +1/-1 | 1 |
| Joel Gustafson | 1 | +1/-1 | 1 |
| Dennis Trautwein | 1 | +1/-1 | 1 |
| Bryan Stenson | 1 | +1/-1 | 1 |