docs/changelogs/v0.34.md
<a href="http://ipshipyard.com/"></a>
This release was brought to you by the Shipyard team.
IPFS_LOG_LEVEL deprecatedStarting now, any publicly dialable Kubo node with a /tcp listener that remains online for at least one hour will receive a TLS certificate through the AutoTLS feature.
This occurs automatically, with no need for manual setup.
To bypass the 1-hour delay and enable AutoTLS immediately, users can explicitly opt-in by running the following commands:
$ ipfs config --json AutoTLS.Enabled true
$ ipfs config --json AutoTLS.RegistrationDelay 0
AutoTLS will remain disabled under the following conditions:
/ws (WebSocket) listenerswarm.key/tcp listenerTo troubleshoot, use GOLOG_LOG_LEVEL="error,autotls=info.
For more details, check out the AutoTLS configuration documentation or dive deeper with AutoTLS libp2p blog post.
The WebUI, accessible at http://127.0.0.1:5001/webui/, now includes support for CAR file import and QR code sharing directly from the Files view. Additionally, the Peers screen has been updated with the latest ipfs-geoip dataset.
ipfs config is now validating json fields (#10679).bitswap reprovide command. Make sure to switch to modern routing reprovide. (#10677)stats reprovide command now shows additional stats for Routing.AcceleratedDHTClient, indicating the last and next reprovide times. (#10677)ipfs files cp now performs basic codec check and will error when source is not a valid UnixFS (only dag-pb and raw codecs are allowed in MFS)This release includes performance and reliability improvements and fixes for minor resource leaks. One of the performance changes greatly improves the bitswap clients ability to operate under high load, that could previously result in an out of memory condition.
Many complaints about IPNS being slow are tied to the default --ttl in ipfs name publish, which was set to 1 hour. To address this, weβve lowered the default IPNS Record TTL during publishing to 5 minutes, matching similar TTL defaults in DNS. This update is now part of boxo/ipfs (GO, boxo#859) and @helia/ipns (JS, helia#749).
[!TIP] IPNS TTL recommendations when even faster update propagation is desired:
- As a Publisher: Lower the
--ttl(e.g.,ipfs name publish --ttl=1m) to further reduce caching delays. If using DNSLink, ensure the DNS TXT record TTL matches the IPNS record TTL.- As a Gateway Operator: Override publisher TTLs for faster updates using configurations like
Ipns.MaxCacheTTLin Kubo orRAINBOW_IPNS_MAX_CACHE_TTLin Rainbow.
IPFS_LOG_LEVEL deprecatedThe variable has been deprecated. Please use GOLOG_LOG_LEVEL instead for configuring logging levels.
If the pebble database format is not explicitly set in the config, then automatically upgrade it to the latest format version supported by the release ob pebble used by kubo. This will ensure that the database format is sufficiently up-to-date to be compatible with a major version upgrade of pebble. This is necessary before upgrading to use pebble v2.
An update was made to the badger v1 datastore that avoids use of mmap in 32-bit environments, which has been seen to cause issues on some platforms. Please be aware that this could lead to a performance regression for users of badger in a 32-bit environment. Badger users are advised to move to the flatds or pebble datastore.
The go-ds-xxx datastore implementations have been updated to support the updated go-datastore v0.8.2 query API. This update removes the datastore implementations' dependency on goprocess and updates the query API.
Kubo previously depended on multiple multi-error packages, github.com/hashicorp/go-multierror and go.uber.org/multierr. These have nearly identical functionality so there was no need to use both. Therefore, go.uber.org/multierr was selected as the package to depend on. Any future code needing multi-error functionality should use go.uber.org/multierr to avoid introducing unneeded dependencies.
The reprovide process can be quite slow. In default settings, the reprovide process will start reading CIDs that belong to the pinset. During this operation, starvation can occur for other operations that need pinset access (see https://github.com/ipfs/kubo/issues/10596).
We have now switch to buffering pinset-related cids that are going to be reprovided in memory, so that we can free pinset mutexes as soon as possible so that pinset-writes and subsequent read operations can proceed. The downside is larger pinsets will need some extra memory, with an estimation of ~1GiB of RAM memory-use per 20 million items to be reprovided.
Use Reprovider.Strategy to balance announcement prioritization, speed, and memory utilization.
go-libp2p to v0.41.0 (incl. v0.40.0)go-libp2p-kad-dht to v0.30.2 (incl. v0.29.0, v0.29.1, v0.29.2, v0.30.0, v0.30.1)boxo to v0.29.1 (incl. v0.28.0 v0.29.0)ipfs-webui to v4.6.0 (incl. v4.5.0)p2p-forge/client to v0.4.0go-datastore to v0.8.2 (incl. v0.7.0, v0.8.0)files cp (#10701) (ipfs/kubo#10701)bitswap reprovide (#10699) (ipfs/kubo#10699)DefaultRecordTTL to 5m (#859) (ipfs/boxo#859)ipld/merkledag from gogo protobuf (#841) (ipfs/boxo#841)ipld/unixfs from gogo protobuf (#840) (ipfs/boxo#840)extAddr (#3140) (libp2p/go-libp2p#3140)| Contributor | Commits | Lines Β± | Files Changed |
|---|---|---|---|
| Hector Sanjuan | 100 | +4777/-1495 | 200 |
| Marco Munizaga | 22 | +3482/-1632 | 122 |
| Andrew Gillis | 69 | +1628/-1509 | 191 |
| sukun | 13 | +1240/-288 | 67 |
| Simon Menke | 7 | +766/-97 | 16 |
| Guillaume Michel | 33 | +438/-383 | 62 |
| Marcin Rataj | 24 | +494/-266 | 47 |
| Sergey Gorbunov | 4 | +384/-103 | 20 |
| AvyChanna | 1 | +294/-193 | 9 |
| gammazero | 22 | +208/-217 | 28 |
| Dennis Trautwein | 3 | +425/-0 | 8 |
| web3-bot | 18 | +193/-184 | 46 |
| Steven Allen | 8 | +204/-82 | 13 |
| Marten Seemann | 5 | +215/-63 | 11 |
| Daniel Norman | 2 | +225/-0 | 6 |
| Abhinav Prakash | 1 | +190/-2 | 4 |
| guillaumemichel | 3 | +93/-56 | 15 |
| youyyytrok | 1 | +84/-63 | 29 |
| Nishant Das | 2 | +111/-1 | 4 |
| Pop Chunhapanya | 1 | +109/-0 | 2 |
| Michael MurΓ© | 7 | +78/-29 | 15 |
| Jorropo | 4 | +53/-20 | 7 |
| Ryan Skidmore | 1 | +62/-0 | 2 |
| GITSRC | 1 | +44/-0 | 3 |
| Russell Dempsey | 1 | +22/-17 | 10 |
| Adin Schmahmann | 2 | +29/-8 | 3 |
| Gabriel Cruz | 1 | +13/-13 | 1 |
| Wlynxg | 3 | +12/-9 | 3 |
| Khaled Yakdan | 1 | +11/-10 | 1 |
| Yahya Hassanzadeh, Ph.D. | 1 | +17/-0 | 1 |
| Can ZHANG | 2 | +15/-2 | 3 |
| Pavel Zbitskiy | 1 | +13/-1 | 2 |
| Yuttakhan B. | 1 | +6/-6 | 6 |
| Hlib Kanunnikov | 2 | +9/-2 | 4 |
| Petar Maymounkov | 1 | +7/-2 | 1 |
| Prithvi Shahi | 2 | +8/-0 | 2 |
| Piotr Galar | 1 | +4/-4 | 2 |
| Michael Vorburger | 1 | +6/-0 | 1 |
| Gus Eggert | 2 | +6/-0 | 2 |
| RaΓΊl Kripalani | 1 | +4/-0 | 1 |
| linchizhen | 1 | +1/-1 | 1 |
| achingbrain | 1 | +1/-1 | 1 |
| Rod Vagg | 1 | +1/-1 | 1 |
| Ian Davis | 1 | +1/-1 | 1 |
| Fabio Bozzo | 1 | +1/-1 | 1 |
go-libp2p to v0.41.1
quic-go to v0.50.1