Skip to content

Releases: ipfs/kubo

v0.29.0-rc2

04 Jun 18:20
c526f29
Compare
Choose a tag to compare
v0.29.0-rc2 Pre-release
Pre-release

v0.29.0-rc1

27 May 13:26
v0.29.0-rc1
Compare
Choose a tag to compare
v0.29.0-rc1 Pre-release
Pre-release

v0.28.0

15 Apr 08:59
v0.28.0
e7f0f34
Compare
Choose a tag to compare

Overview

RPC client: removed deprecated DHT API

The deprecated DHT API commands in the RPC client have been removed. Instead, use the Routing API.

Gateway: /api/v0 is removed

The legacy subset of the Kubo RPC that was available via the Gateway port and was deprecated is now completely removed. You can read more in #10312.

If you have a legacy software that relies on this behavior, and want to expose parts of /api/v0 next to /ipfs, use reverse-proxy in front of Kubo to mount both Gateway and RPC on the same port. NOTE: exposing RPC to the internet comes with security risk: make sure to specify access control via API.Authorizations.

Removed deprecated Object API commands

The Object API commands deprecated back in 2021 have been removed, except for object diff, object patch add-link and object patch rm-link, whose alternatives have not yet been built (see issues 4801 and 4782).

Kubo ignores loopback addresses on LAN DHT and private addresses on WAN DHT

Kubo no longer keeps track of loopback and private addresses on the LAN and WAN DHTs, respectively. This means that other nodes will not try to dial likely undialable addresses.

To support testing scenarios where multiple Kubo instances run on the same machine, Routing.LoopbackAddressesOnLanDHT is set to true when the test profile is applied.

Pin roots are now prioritized when announcing

The root CIDs of pinned content are now prioritized when announcing to the Amino DHT with Reprovider.Strategy set to all (default) or pinned, making the important CIDs accessible faster.

📝 Changelog

Security Note: CVE-2024-22189 has been addressed by upgrading to quic-go v0.42.0.

Full Changelog

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Henrique Dias 19 +867/-2806 96
Rod Vagg 7 +921/-475 25
Marcin Rataj 8 +358/-344 18
Guillaume Michel - guissou 1 +145/-485 13
Jorropo 8 +429/-136 22
Łukasz Magiera 4 +284/-48 11
whyrusleeping 1 +90/-90 2
Michael Muré 2 +48/-73 9
Marco Munizaga 6 +86/-29 10
guillaumemichel 3 +93/-1 3
Marten Seemann 1 +31/-4 4
godeamon 3 +11/-8 3
shuangcui 1 +6/-6 5
occupyhabit 1 +3/-3 3
crazehang 1 +2/-2 1
Dennis Trautwein 1 +1/-2 1
“GheisMohammadi” 1 +1/-1 1
web3-bot 1 +2/-0 1
Daniel Norman 1 +1/-1 1

This release was brought to you by the Shipyard team.

v0.28.0-rc1

11 Apr 06:20
v0.28.0-rc1
Compare
Choose a tag to compare
v0.28.0-rc1 Pre-release
Pre-release

v0.27.0

04 Mar 11:45
v0.27.0
59bcea8
Compare
Choose a tag to compare

Overview

🔦 Highlights

Gateway: support for /api/v0 is deprecated

Support for exposing the legacy subset of Kubo RPC via the Gateway port is deprecated and should not be used. It will be removed in the next version. You can read more in #10312.

If you have a legacy software that relies on this behavior, and want to expose parts of /api/v0 next to /ipfs, use reverse-proxy in front of Kubo to mount both Gateway and RPC on the same port. NOTE: exposing RPC to the internet comes with security risk: make sure to specify access control via API.Authorizations.

IPNS resolver cache's TTL can now be configured

You can now configure the upper-bound of a cached IPNS entry's Time-To-Live via Ipns.MaxCacheTTL.

RPC client: deprecated DHT API, added Routing API

The RPC client for GO (kubo/client/rpc) now includes a Routing API to match the available commands in /api/v0/routing. In addition, the DHT API has been marked as deprecated.

In the next version, all DHT deprecated methods will be removed from the Go RPC client.

Deprecated DHT commands removed from /api/v0/dht

All the DHT commands that were deprecated for over a year were finally removed from /api/v0/dht. Users should switch to modern /api/v0/routing which works with both Amino DHT and Delegated Routers.

Repository migrations are now trustless

Kubo now only uses trustless requests (e.g., CAR files) when downloading repository migrations via HTTP. This further strengthens Kubo by not delegating trust to public gateways. The migration binaries are locally verified before being executed.

📝 Changelog

Full Changelog

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Henrique Dias 26 +1668/-1484 96
Sukun 13 +983/-618 68
Jorropo 18 +501/-222 32
Marten Seemann 2 +17/-244 5
dozyio 1 +117/-132 31
Marcin Rataj 7 +100/-20 8
Alexandr Burdiyan 2 +29/-54 2
Tyler 1 +17/-19 2
KeienWang 2 +14/-14 12
Håvard Anda Estensen 1 +14/-14 11
Halimao 2 +17/-4 2
hannahhoward 1 +14/-6 2
alex 1 +8/-8 4
shuoer86 1 +7/-7 5
John Chase 1 +0/-12 1
GoodDaisy 1 +5/-5 4
Michael Muré 1 +6/-2 1
吴小白 1 +3/-3 3
Vehorny 1 +3/-3 2
Eric 1 +1/-1 1

<img align="left" ...

Read more

v0.27.0-rc2

01 Mar 10:48
v0.27.0-rc2
4bc1939
Compare
Choose a tag to compare
v0.27.0-rc2 Pre-release
Pre-release

v0.27.0-rc1

20 Feb 10:36
v0.27.0-rc1
Compare
Choose a tag to compare
v0.27.0-rc1 Pre-release
Pre-release

v0.26.0

22 Jan 15:28
v0.26.0
096f510
Compare
Choose a tag to compare

Overview

🔦 Highlights

Kubo binary imports

For users of Kubo preloaded plugins there is now a way to create a kubo instance with your plugins by depending on the cmd/ipfs/kubo package rather than rebuilding kubo with the included plugins.

See the customization docs for more information.

Several deprecated commands have been removed

Several deprecated commands have been removed:

Support optional pin names

You can now add a name to a pin when pinning a CID. To do so, use ipfs pin add --name "Some Name" bafy.... You can list your pins, including their names, with ipfs pin ls --names.

jaeger trace exporter has been removed

jaeger exporter has been removed from upstream, you should use otlp exporter instead.
See the boxo tracing docs for an example.

📝 Changelog

Full Changelog
  • github.com/ipfs/kubo:
    • chore: update version
    • chore: update version
    • feat(pinning): allow for overwriting pin name
    • chore: update otlp
    • Revert "build,docker: add support for riscv64"
    • feat: support optional pin names (#10261) (ipfs/kubo#10261)
    • build,docker: add support for riscv64
    • feat(cmd/ipfs): Make it possible to depend on cmd/ipfs/kubo for easier preloaded plugin management (ipfs/kubo#10219)
    • docs: fix broken link in HTTP RPC client doc (#10267) (ipfs/kubo#10267)
    • Merge Release: v0.25.0 [skip changelog] (ipfs/kubo#10260)
    • docs: add detail to NOpfs instructions in content-blocking.md
    • commands: remove several deprecated commands
    • fix: allow daemon to start correctly if the API is null (#10062) (ipfs/kubo#10062)
    • chore: update version
  • github.com/ipfs/boxo (v0.16.0 -> v0.17.0):
  • github.com/ipfs/go-ipld-cbor (v0.0.6 -> v0.1.0):
  • github.com/ipfs/go-unixfsnode (v1.8.1 -> v1.9.0):
    • v1.9.0 bump
    • feat: expose ToDirEntryFrom to allow sub-dag representation
    • feat: new UnixFS{File,Directory} with options pattern
    • feat: testutil generator enhancements
  • github.com/ipld/go-car/v2 (v2.10.2-0.20230622090957-499d0c909d33 -> v2.13.1):
    • fix: BlockMetadata#Offset should be for section, not block data
    • fix: add closed check, expose storage.ErrClosed
    • fix: switch constructor args to match storage.New*, make roots plural
    • feat: add DeferredCarWriter
    • feat: fix BlockReader#SkipNext & add SourceOffset property
    • v0.6.2 (ipld/go-car#464)
    • fix: opt-in way to allow empty list of roots in CAR headers (ipld/go-car#461)
  • github.com/libp2p/go-libp2p-asn-util (v0.3.0 -> v0.4.1):
    • chore: release v0.4.1
    • fix: add Init method on backward compat
    • chore: release v0.4.0
    • rewrite representation to a sorted binary list and embed it
    • docs: fix incorrect markdown === in README
    • ci: run go generate on CI (#27) (libp2p/go-libp2p-asn-util#27)
  • github.com/multiformats/go-multiaddr (v0.12.0 -> v0.12.1):
    • v0.12.1 bump
    • manet: reduce allocations in resolve unspecified address
  • github.com/whyrusleeping/cbor-gen (v0.0.0-20230126041949-52956bd4c9aa -> v0.0.0-20240109153615-66e95c3e8a87):

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Henrique Dias 11 +493/-1184 48
Łukasz Magiera 3 +610/-582 16
Rod Vagg 11 +1030/-151 18
whyrusleeping 6 +553/-388 14
Jorropo 13 +561/-348 84
Jeromy Johnson 1 +771/-48 6
Steven Allen 2 +264/-135 4
Forrest 1 +214/-0 5
Marcin Rataj 1 +89/-24 2
sukun 1 +31/-11 5
Will Scott 3 +25/-10 3
Adin Schmahmann 3 +21/-5 3
web3-bot 2 +8/-8 3
Marten Seemann 1 +13/-1 1
Bumblefudge 1 +5/-2 1
Will 1 +1/-1 1
Nicholas Ericksen 1 +1/-1 1
0xbasar 1 +1/-1 1

This release was brought to you by the Shipyard team.

v0.26.0-rc1

11 Jan 09:45
v0.26.0-rc1
Compare
Choose a tag to compare
v0.26.0-rc1 Pre-release
Pre-release

v0.25.0

14 Dec 16:58
v0.25.0
413a52d
Compare
Choose a tag to compare

Overview

🔦 Highlights

WebUI: Updated Peers View

WebUI v4.2.0 shipped with updated ipfs-geoip dataset and ability to filter the peers table.

RPC API.Authorizations

Kubo RPC API now supports optional HTTP Authorization.

Granular control over user access to the RPC can be defined in the API.Authorizations map in the configuration file, allowing different users or apps to have unique access secrets and allowed paths.

This feature is opt-in. By default, no authorization is set up. For configuration instructions, refer to the documentation.

MPLEX Removal

After deprecating and removing mplex support by default in v0.23.0.

We now fully removed it. If you still need mplex support to talk with other pieces of software, please try updating them, and if they don't support yamux or QUIC talk to us about it.

Mplex is unreliable by design, it will drop data and generete errors when sending data too fast, yamux and QUIC support backpressure, that means if we send data faster than the remote machine can process it, we slows down to match the remote's speed.

Graphsync Experiment Removal

Currently the Graphsync server is to our knowledge not used due to lack of compatible software. And we are left to have to maintain the go-graphsync implementation when trying to update Kubo because some dependency changed and it fails to build anymore.

For more information see #9747.

Commands ipfs key sign and ipfs key verify

This allows the Kubo node to sign arbitrary bytes to prove ownership of a PeerID or an IPNS Name. To avoid signature reuse, the signed payload is always prefixed with libp2p-key signed message:.

These commands are also both available through the RPC client and implemented in client/rpc.

For more information see #10230.

📝 Changelog

Full Changelog
  • github.com/ipfs/kubo:
    • chore: update version
    • fix: allow daemon to start correctly if the API is null (#10062) (ipfs/kubo#10062)
    • chore: update version
    • feat: ipfs key sign|verify (#10235) (ipfs/kubo#10235)
    • docs(cli): fix spelling
    • feat: webui v4.2.0 (#10241) (ipfs/kubo#10241)
    • Migrate coreiface (ipfs/kubo#10237)
    • docs: clarify WebRTCDirect cannot reuse the same port as QUIC
    • libp2p: remove mplex
    • graphsync: remove support for the server
    • docs: move kubo-specific docs (#10226) (ipfs/kubo#10226)
    • feat(rpc): Opt-in HTTP RPC API Authorization (#10218) (ipfs/kubo#10218)
    • docs: clarify ipfs id agent version
    • fix: regression in 'ipfs dns'
    • docs(changelog): clarify webrtc in v0.24
    • chore: create next changelog
    • Merge Release: v0.24.0 (ipfs/kubo#10209)
    • fix: allow event emitting to happen in parallel with getting the query channel
    • fixes to routing put command (#10205) (ipfs/kubo#10205)
    • docs: fix accelerated-dht-client
    • docs/config: remove extra commas in PublicGateways example entries
    • docs: make it clear Web RTC Direct is experimental
    • feat: add WebRTC Direct support
    • docs: update EARLY_TESTERS.md (#10194) (ipfs/kubo#10194)
    • Update Version: v0.24 (ipfs/kubo#10191)
  • github.com/ipfs/boxo (v0.15.0 -> v0.16.0):
  • github.com/libp2p/go-libp2p (v0.32.1 -> v0.32.2):
    • release v0.32.2

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Łukasz Magiera 149 +7833/-2505 375
Henrique Dias 26 +2498/-7535 210
Steven Allen 48 +497/-373 129
Jorropo 9 +247/-604 49
Michael Muré 6 +306/-79 14
Adin Schmahmann 3 +275/-8 5
Lucas Molas 1 +181/-56 2
Laurent Senta 1 +109/-24 7
Lars Gierth 6 +82/-18 8
Petar Maymounkov 1 +66/-32 3
web3-bot 1 +47/-42 17
Marcin Rataj 6 +57/-23 8
Kevin Atkinson 5 +31/-31 17
Marten Seemann 3 +27/-28 16
Hector Sanjuan 3 +28/-14 10
Overbool 2 +36/-3 3
Raúl Kripalani 1 +11/-12 4
hannahhoward 2 +11/-7 6
Jeromy Johnson 5 +9/-9 5
ForrestWeston 1 +14/-1 1
Russell Dempsey 1 +10/-2 2
Will Scott 1 +8/-1 1
Jeromy 2 +4/-4 2
sukun 1 +2/-2 1
Steve Loeppky 1 +2/-2 1
Jonas Keunecke 1 +2/-2 1
Edgar Lee 1 +3/-1 1
Dreamacro 1 +2/-2 2
godcong 1 +1/-1 1
Cole Brown 1 +1/-1 1