master
md 154 lines 10.6 KB
Rendered Raw
1 # Kubo changelog v0.31
2
3 - [v0.31.0](#v0310)
4
5 ## v0.31.0
6
7 - [Overview](#overview)
8 - [🔦 Highlights](#-highlights)
9 - [Experimental Pebble Datastore](#experimental-pebble-datastore)
10 - [New metrics](#new-metrics)
11 - [`lowpower` profile no longer breaks DHT announcements](#lowpower-profile-no-longer-breaks-dht-announcements)
12 - [go 1.23, boxo 0.24 and go-libp2p 0.36.5](#go-123-boxo-024-and-go-libp2p-0365)
13 - [📝 Changelog](#-changelog)
14 - [👨‍👩‍👧‍👦 Contributors](#-contributors)
15
16 ### Overview
17
18 ### 🔦 Highlights
19
20 #### Experimental Pebble Datastore
21
22 [Pebble](https://github.com/ipfs/kubo/blob/master/docs/config.md#pebbleds-profile) provides a high-performance alternative to leveldb as the datastore, and provides a modern replacement for [legacy badgerv1](https://github.com/ipfs/kubo/blob/master/docs/config.md#badgerds-profile).
23
24 A fresh Kubo node can be initialized with [`pebbleds` profile](https://github.com/ipfs/kubo/blob/master/docs/config.md#pebbleds-profile) via `ipfs init --profile pebbleds`.
25
26 There are a number of parameters available for tuning pebble's performance to your specific needs. Default values are used for any parameters that are not configured or are set to their zero-value.
27 For a description of the available tuning parameters, see [kubo/docs/datastores.md#pebbleds](https://github.com/ipfs/kubo/blob/master/docs/datastores.md#pebbleds).
28
29 #### New metrics
30
31 - Added 3 new go metrics: `go_gc_gogc_percent`, `go_gc_gomemlimit_bytes` and `go_sched_gomaxprocs_threads` as those are [recommended by the Go team](https://github.com/prometheus/client_golang/pull/1559)
32 - Added [network usage metrics](https://github.com/prometheus/client_golang/pull/1555): `process_network_receive_bytes_total` and `process_network_transmit_bytes_total`
33 - Removed `go_memstat_lookups_total` metric [which was always 0](https://github.com/prometheus/client_golang/pull/1577)
34
35 #### `lowpower` profile no longer breaks DHT announcements
36
37 We've notices users were applying `lowpower` profile, and then reporting content routing issues. This was because `lowpower` disabled reprovider system and locally hosted data was no longer announced on Amino DHT.
38
39 This release changes [`lowpower` profile](https://github.com/ipfs/kubo/blob/master/docs/config.md#lowpower-profile) to not change reprovider settings, ensuring the new users are not sabotaging themselves. It also adds [`announce-on`](https://github.com/ipfs/kubo/blob/master/docs/config.md#announce-on-profile) and [`announce-off`](https://github.com/ipfs/kubo/blob/master/docs/config.md#announce-off-profile) profiles for controlling announcement settings separately.
40
41 > [!IMPORTANT]
42 > If you've ever applied the `lowpower` profile before, there is a high chance your node is not announcing to DHT anymore.
43 > If you have `Reprovider.Interval` set to `0` you may want to set it to `22h` (or run `ipfs config profile apply announce-on`) to fix your system.
44 >
45 > As a convenience, `ipfs daemon` will warn if reprovide system is disabled, creating oportinity to fix configuration if it was not intentional.
46
47 #### go 1.23, boxo 0.24 and go-libp2p 0.36.5
48
49 Various bugfixes. Please update.
50
51 ### 📝 Changelog
52
53 <details><summary>Full Changelog</summary>
54
55 - github.com/ipfs/kubo:
56 - fix: go 1.23(.2) (#10540) ([ipfs/kubo#10540](https://github.com/ipfs/kubo/pull/10540))
57 - chore: bump version to 0.32.0-dev
58 - feat(routing/http): support IPIP-484 and streaming (#10534) ([ipfs/kubo#10534](https://github.com/ipfs/kubo/pull/10534))
59 - fix(daemon): webui URL when rpc is catch-all (#10520) ([ipfs/kubo#10520](https://github.com/ipfs/kubo/pull/10520))
60 - chore: update changelog and config doc with more info about pebble (#10533) ([ipfs/kubo#10533](https://github.com/ipfs/kubo/pull/10533))
61 - feat: pebbleds profile and plugin (#10530) ([ipfs/kubo#10530](https://github.com/ipfs/kubo/pull/10530))
62 - chore: dependency updates for 0.31 (#10511) ([ipfs/kubo#10511](https://github.com/ipfs/kubo/pull/10511))
63 - feat: explicit announce-on/off profiles (#10524) ([ipfs/kubo#10524](https://github.com/ipfs/kubo/pull/10524))
64 - fix(core): look for MFS root in local repo only (#8661) ([ipfs/kubo#8661](https://github.com/ipfs/kubo/pull/8661))
65 - Fix issue in ResourceManager and nopfsPlugin about repo path (#10492) ([ipfs/kubo#10492](https://github.com/ipfs/kubo/pull/10492))
66 - feat(bitswap): allow configuring WithWantHaveReplaceSize (#10512) ([ipfs/kubo#10512](https://github.com/ipfs/kubo/pull/10512))
67 - refactor: simplify logic for MFS pinning (#10506) ([ipfs/kubo#10506](https://github.com/ipfs/kubo/pull/10506))
68 - docs: clarify Gateway.PublicGateways (#10525) ([ipfs/kubo#10525](https://github.com/ipfs/kubo/pull/10525))
69 - chore: clarify dep update in RELEASE_CHECKLIST.md (#10518) ([ipfs/kubo#10518](https://github.com/ipfs/kubo/pull/10518))
70 - feat: ipfs-webui v4.3.2 (#10523) ([ipfs/kubo#10523](https://github.com/ipfs/kubo/pull/10523))
71 - docs(config): add useful references
72 - docs(config): improve profile descriptions (#10517) ([ipfs/kubo#10517](https://github.com/ipfs/kubo/pull/10517))
73 - docs: update RELEASE_CHECKLIST.md (#10496) ([ipfs/kubo#10496](https://github.com/ipfs/kubo/pull/10496))
74 - chore: create next changelog (#10510) ([ipfs/kubo#10510](https://github.com/ipfs/kubo/pull/10510))
75 - Merge Release: v0.30.0 [skip changelog] ([ipfs/kubo#10508](https://github.com/ipfs/kubo/pull/10508))
76 - chore: boxo v0.23.0 and go-libp2p v0.36.3 (#10507) ([ipfs/kubo#10507](https://github.com/ipfs/kubo/pull/10507))
77 - docs: replace outdated package paths described in rpc README (#10505) ([ipfs/kubo#10505](https://github.com/ipfs/kubo/pull/10505))
78 - fix: switch back to go 1.22 (#10502) ([ipfs/kubo#10502](https://github.com/ipfs/kubo/pull/10502))
79 - fix(cli): preserve hostname specified with --api in http request headers (#10497) ([ipfs/kubo#10497](https://github.com/ipfs/kubo/pull/10497))
80 - chore: upgrade to go 1.23 (#10486) ([ipfs/kubo#10486](https://github.com/ipfs/kubo/pull/10486))
81 - fix: error during config when running benchmarks (#10495) ([ipfs/kubo#10495](https://github.com/ipfs/kubo/pull/10495))
82 - chore: update go-unixfsnode, cmds, and boxo (#10494) ([ipfs/kubo#10494](https://github.com/ipfs/kubo/pull/10494))
83 - Docs fix spelling issues (#10493) ([ipfs/kubo#10493](https://github.com/ipfs/kubo/pull/10493))
84 - chore: update version (#10491) ([ipfs/kubo#10491](https://github.com/ipfs/kubo/pull/10491))
85 - github.com/ipfs/boxo (v0.23.0 -> v0.24.0):
86 - Release v0.24.0 ([ipfs/boxo#683](https://github.com/ipfs/boxo/pull/683))
87 - github.com/ipfs/go-ipld-cbor (v0.1.0 -> v0.2.0):
88 - v0.2.0
89 - deprecate DumpObject() in favor of better named Encode()
90 - add an EncodeWriter method, using the pooled marshallers
91 - fix expCid vs actualCid guard
92 - github.com/ipld/go-car/v2 (v2.13.1 -> v2.14.2):
93 - v2.14.2 bump
94 - fix: goreleaser v2 compat, trigger release-binaries with workflow_run
95 - v2.14.1 bump
96 - chore: update fuzz to Go 1.22
97 - v2.14.0 bump
98 - fix(cmd): properly pick up --inverse and --cid-file args ([ipld/go-car#531](https://github.com/ipld/go-car/pull/531))
99 - Re-factor cmd functions to library ([ipld/go-car#524](https://github.com/ipld/go-car/pull/524))
100 - ci: uci/copy-templates ([ipld/go-car#521](https://github.com/ipld/go-car/pull/521))
101 - Add a `car ls --unixfs-blocks` to render two-column output ([ipld/go-car#514](https://github.com/ipld/go-car/pull/514))
102 - github.com/libp2p/go-libp2p (v0.36.3 -> v0.36.5):
103 - chore: remove Roadmap file (#2954) ([libp2p/go-libp2p#2954](https://github.com/libp2p/go-libp2p/pull/2954))
104 - fix: Release v0.36.5
105 - autonatv2: recover from panics (#2992) ([libp2p/go-libp2p#2992](https://github.com/libp2p/go-libp2p/pull/2992))
106 - basichost: ensure no duplicates in Addrs output (#2980) ([libp2p/go-libp2p#2980](https://github.com/libp2p/go-libp2p/pull/2980))
107 - Release v0.36.4
108 - peerstore: better GC in membacked peerstore (#2960) ([libp2p/go-libp2p#2960](https://github.com/libp2p/go-libp2p/pull/2960))
109 - fix: use quic.Version instead of the deprecated quic.VersionNumber (#2955) ([libp2p/go-libp2p#2955](https://github.com/libp2p/go-libp2p/pull/2955))
110 - tcp: fix metrics for multiple calls to Close (#2953) ([libp2p/go-libp2p#2953](https://github.com/libp2p/go-libp2p/pull/2953))
111 - github.com/libp2p/go-libp2p-kbucket (v0.6.3 -> v0.6.4):
112 - release v0.6.4 ([libp2p/go-libp2p-kbucket#135](https://github.com/libp2p/go-libp2p-kbucket/pull/135))
113 - feat: add log printing when peer added and removed table ([libp2p/go-libp2p-kbucket#134](https://github.com/libp2p/go-libp2p-kbucket/pull/134))
114 - Upgrade to go-log v2.5.1 ([libp2p/go-libp2p-kbucket#132](https://github.com/libp2p/go-libp2p-kbucket/pull/132))
115 - chore: update go-libp2p-asn-util
116 - github.com/multiformats/go-multiaddr-dns (v0.3.1 -> v0.4.0):
117 - Release v0.4.0 (#64) ([multiformats/go-multiaddr-dns#64](https://github.com/multiformats/go-multiaddr-dns/pull/64))
118 - Limit total number of resolved addresses from DNS response (#63) ([multiformats/go-multiaddr-dns#63](https://github.com/multiformats/go-multiaddr-dns/pull/63))
119 - fix!: Only resolve the first DNS-like component (#61) ([multiformats/go-multiaddr-dns#61](https://github.com/multiformats/go-multiaddr-dns/pull/61))
120 - sync: update CI config files (#43) ([multiformats/go-multiaddr-dns#43](https://github.com/multiformats/go-multiaddr-dns/pull/43))
121 - remove deprecated types ([multiformats/go-multiaddr-dns#37](https://github.com/multiformats/go-multiaddr-dns/pull/37))
122 - remove Jenkinsfile ([multiformats/go-multiaddr-dns#40](https://github.com/multiformats/go-multiaddr-dns/pull/40))
123 - sync: update CI config files (#29) ([multiformats/go-multiaddr-dns#29](https://github.com/multiformats/go-multiaddr-dns/pull/29))
124 - use net.IP.Equal to compare IP addresses ([multiformats/go-multiaddr-dns#30](https://github.com/multiformats/go-multiaddr-dns/pull/30))
125
126 </details>
127
128 ### 👨‍👩‍👧‍👦 Contributors
129
130 | Contributor | Commits | Lines ± | Files Changed |
131 |-------------|---------|---------|---------------|
132 | Will Scott | 3 | +731/-581 | 14 |
133 | Daniel N | 17 | +1034/-191 | 33 |
134 | Marco Munizaga | 5 | +721/-404 | 12 |
135 | Andrew Gillis | 9 | +765/-266 | 35 |
136 | Marcin Rataj | 17 | +568/-323 | 41 |
137 | Daniel Norman | 3 | +232/-111 | 10 |
138 | sukun | 4 | +93/-8 | 8 |
139 | Jorropo | 2 | +48/-45 | 5 |
140 | Marten Seemann | 3 | +19/-47 | 5 |
141 | fengzie | 1 | +29/-26 | 5 |
142 | Rod Vagg | 7 | +27/-11 | 9 |
143 | gopherfarm | 1 | +14/-14 | 6 |
144 | web3-bot | 3 | +13/-10 | 3 |
145 | Michael Muré | 2 | +16/-5 | 4 |
146 | i-norden | 1 | +9/-9 | 1 |
147 | Elias Rad | 1 | +7/-7 | 4 |
148 | Prithvi Shahi | 1 | +0/-11 | 2 |
149 | Lucas Molas | 1 | +5/-4 | 1 |
150 | elecbug | 1 | +6/-2 | 1 |
151 | gammazero | 2 | +2/-2 | 2 |
152 | chris erway | 1 | +2/-2 | 2 |
153 | Russell Dempsey | 1 | +2/-1 | 1 |
154 | guillaumemichel | 1 | +1/-1 | 1 |