kubo/config
Guillaume Michel 006f9dc704
feat: opt-in new Sweep provide system (#10834)
* reprovide sweep draft

* update reprovider dep

* go mod tidy

* fix provider type

* change router type

* dual reprovider

* revert to provider.System

* back to start

* SweepingReprovider test

* fix nil pointer deref

* noop provider for nil dht

* disabled initial network estimation

* another iteration

* suppress missing self addrs err

* silence empty rt err on lan dht

* comments

* new attempt at integrating

* reverting changes in core/node/libp2p/routing.go

* removing SweepingProvider

* make reprovider optional

* add noop reprovider

* update KeyChanFunc type alias

* restore boxo KeyChanFunc

* fix missing KeyChanFunc

* test(sharness): PARALLEL=1 and timeout 30m

running sequentially to see where timeout occurs

* initialize MHStore

* revert workflow debug

* config

* config docs

* merged IpfsNode provider and reprovider

* move Provider interface to from kad-dht to node

* moved Provider interface from kad-dht to kubo/core/node

* mod_tidy

* Add Clear to Provider interface

* use latest kad-dht commit

* make linter happy

* updated boxo provide interface

* boxo PR fix

* using latest kad-dht commit

* use latest boxo release

* fix fx

* fx cyclic deps

* fix merge issues

* extended tests

* don't provide LAN DHT

* docs

* restore dual dht provider

* don't start provider before it is online

* address linter

* dual/provider fix

* add delay in provider tests for dht bootstrap

* add OfflineDelay parameter to config

* remove increase number of workers in test

* improved keystore gc process

* fix: replace incorrect logger import in coreapi

replaced github.com/labstack/gommon/log with the standard
github.com/ipfs/go-log/v2 logger used throughout kubo.
removed unused labstack dependency from go.mod files.

* fix: remove duplicate WithDefault call in provider config

* fix: use correct option method for burst workers

* fix: improve error messages for experimental sweeping provider

updated error messages to clearly indicate when commands are unavailable
due to experimental sweeping provider being enabled via Reprovider.Sweep.Enabled=true

* docs: remove obsolete KeyStoreGCInterval config

removed from config.md as option no longer exists (removed in b540fba1a)
updated keystore description to reflect gc happens at reprovide interval

* docs: add TODO placeholder changelog for experimental sweeping DHT provider

using v0.38-TODO.md name to avoid merge conflicts with master branch
and allow CI tests to run. will be renamed to v0.38.md once config
migration is added to the PR

* fix: provideKeysRec go routine

* clear keystore on close

* fix: datastore prefix

* fix: improve error handling in provideKeysRec

- close errCh channel to distinguish between nil and pending errors
- check for pending errors when provided.New closes
- handle context cancellation during error send
- prevent race condition where errors could be silently lost

this ensures DAG walk errors are always propagated correctly

* address gammazero's review

* rename BurstProvider to LegacyProvider

* use latest provider/keystore

* boxo: make mfs StartProviding async

* bump boxo

* chore: update boxo to f2b4e12fb9a8ac138ccb82aae3b51ec51d9f631c

- updated boxo dependency to specified commit
- updated go.mod and go.sum files across all modules

* use latest kad-dht/boxo

* Buffered SweepingProvider wrapper

* use latest kad-dht commit

* allow no DHT router

* use latest kad-dht & boxo

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: gammazero <11790789+gammazero@users.noreply.github.com>
2025-09-18 17:22:04 +02:00
..
serialize refactor: using error is instead of == (#10093) 2023-08-22 14:53:29 +00:00
addresses.go Fix typos 2022-03-18 00:58:36 +01:00
api_test.go feat(rpc): Opt-in HTTP RPC API Authorization (#10218) 2023-11-17 01:29:29 +01:00
api.go feat(rpc): Opt-in HTTP RPC API Authorization (#10218) 2023-11-17 01:29:29 +01:00
autoconf_client.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
autoconf_test.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
autoconf.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
autonat.go feat: run AutoNAT V2 service in addition to V1 (#10468) 2024-08-06 21:51:45 +02:00
autotls.go feat(AutoTLS): enabled by default with 1h RegistrationDelay (#10724) 2025-02-25 22:25:58 +01:00
bitswap.go feat: opt-in http retrieval client (#10772) 2025-05-06 19:06:40 +02:00
bootstrap_peers_test.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
bootstrap_peers.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
config_test.go feat: Provider.WorkerCount and stats reprovide (#10779) 2025-04-30 15:32:03 +02:00
config.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
datastore.go feat: expose BlockKeyCacheSize and enable WriteThrough datastore options (#10614) 2024-12-19 23:12:05 +00:00
discovery.go config: remove all options that are marked as REMOVED 2024-01-22 15:33:27 +01:00
dns.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
experiments.go fix(config): wire up Provider.Enabled flag (#10804) 2025-05-15 19:19:18 +02:00
gateway.go feat(gateway): improved error page with retrieval state details (#10950) 2025-09-08 19:49:00 +02:00
http_retrieval.go feat: HTTP retrieval enabled by default (#10836) 2025-06-17 01:48:46 +02:00
identity.go style: gofumpt and godot [skip changelog] (#10081) 2023-08-17 14:02:08 +02:00
import_test.go feat(config): validate Import config at daemon startup (#10957) 2025-09-09 01:53:18 +02:00
import.go feat(config): validate Import config at daemon startup (#10957) 2025-09-09 01:53:18 +02:00
init_test.go chore: clean migration 2023-11-29 12:29:59 +01:00
init.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
internal.go bitswap/client: configurable broadcast reduction (#10825) 2025-06-17 04:35:21 -07:00
ipns.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
migration_test.go go-ipfs-config: Removed Peers from migration config 2021-05-03 09:08:16 -07:00
migration.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
mounts.go feat(fuse): Expose MFS as FUSE mount point (#10781) 2025-05-06 21:55:53 +02:00
peering.go chore: bump go-libp2p v0.22.0 & go1.18&go1.19 2022-09-09 17:09:38 +02:00
plugins.go fix: disable telemetry in test profile (#10931) 2025-08-24 14:30:35 +02:00
profile.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
provider.go fix(config): wire up Provider.Enabled flag (#10804) 2025-05-15 19:19:18 +02:00
pubsub.go feat: Pubsub.SeenMessagesStrategy (#9543) 2023-01-27 00:24:35 +01:00
remotepin.go go-ipfs-config: add support for pinning mfs (#116) 2021-01-28 18:05:47 -05:00
reprovider_test.go feat: Reprovider.Strategy: rename "flat" to "all" (#10928) 2025-08-21 19:02:29 +02:00
reprovider.go feat: opt-in new Sweep provide system (#10834) 2025-09-18 17:22:04 +02:00
routing_test.go style: gofumpt and godot [skip changelog] (#10081) 2023-08-17 14:02:08 +02:00
routing.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
swarm.go feat(config): connmgr: expose silence period (#10827) 2025-06-17 15:55:57 +02:00
types_test.go style: gofumpt and godot [skip changelog] (#10081) 2023-08-17 14:02:08 +02:00
types.go graphsync: remove support for the server 2023-11-22 06:57:45 +03:00
version.go feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00