Skip to content

Releases: libp2p/go-libp2p-kad-dht

v0.36.0

26 Nov 18:36
f46f48a

Choose a tag to compare

Note

This release was brought to you by the Shipyard team.

Overview

This release brings major improvements to the Sweep provider system: detailed runtime statistics, persistence of reprovide state across restarts, and better connection handling. These features ship to Kubo users in v0.39.

Highlights

Sweep provider statistics API

The SweepingProvider now exposes detailed runtime statistics through a new Stats() method, enabling monitoring tools to track provider health and throughput.

Available metrics include:

  • Queue sizes and worker utilization
  • Reprovide schedule and progress
  • Network statistics (connected peers, regions)
  • Operation rates and success counts

This powers the ipfs provide stat command in Kubo v0.39+. See #1144.

Reprovide cycle persistence and resume

The Sweep provider now persists its state to the datastore and automatically resumes after restarts:

  • Persistent progress: The provider saves its position in the reprovide cycle. On restart, it continues from where it stopped instead of starting over.
  • Catch-up reproviding: If the node was offline, all CIDs overdue for reprovide are immediately queued.
  • Persistent provide queue: Pending provide operations survive restarts.

This fixes the long-standing issue where restarts would reset the reprovide cycle. See #1167, #1170, #1176,
#1193.

Connectivity callbacks

Users can now register callbacks to be notified when the provider's connectivity status changes. This enables applications to track and react to connectivity state transitions. See #1194.

Connection protection during provides

New option to protect libp2p connections and keep addresses in the peerstore during provide operations. This prevents the connection manager from pruning connections that are actively being used for provides. See #1172.

Metric rename: provider_provides_total

The Sweep provider metric has been renamed from total_provide_count_total to provider_provides_total to follow OpenTelemetry naming conventions and match other kad-dht metrics.

Migration: Update any Prometheus queries or dashboards using the old metric name. See #1195.

What's Changed

Full Changelog: v0.35.1...v0.36.0

v0.35.1

03 Oct 14:38
f67e4d8

Choose a tag to compare

Note

This release was brought to you by the Shipyard team.

Provider Memory Optimizations

Memory optimizations for the provider.

What's Changed

Full Changelog: v0.35.0...v0.35.1

v0.35.0

01 Oct 10:03
6e9a59c

Choose a tag to compare

Note

This release was brought to you by the Shipyard team.

🚀 Introducing the New Provider Package

We're excited to introduce the new provider package - a complete rethinking of content providing works in the DHT, using the Reprovide Sweep technique. Say goodbye to manual reprovide management! The provider package now handles both initial provides and periodic reprovides automatically.

🎯 Why This Matters

This package replaces the boxo provider with a significantly more efficient implementation that addresses key performance bottlenecks:

Intelligent Batching 🧠
Instead of providing records randomly, we now batch provides by keyspace distance. This means fewer DHT lookups, faster provides, and consistent reprovide scheduling.

Smooth Resource Usage 📊
Reprovides are evenly distributed over time rather than creating periodic traffic spikes. Your node's resource consumption is now predictable and steady.

⚠️ Early Access

This is the initial release of the provider package. While fully functional, we're continuing to add features and refine the API in upcoming releases. Expect interface changes as we iterate based on community feedback.

🔜 What's Next

Stay tuned for additional provider features in future releases. Check the provider package documentation for usage examples and current capabilities.

What's Changed

Full Changelog: v0.34.0...v0.35.0

v0.34.0

12 Aug 15:33
3c81035

Choose a tag to compare

What's Changed

Full Changelog: v0.33.1...v0.34.0

v0.33.1

21 May 08:26
2a7d79e

Choose a tag to compare

Highlights

  • Fix concurrency in fullrt

What's Changed

Full Changelog: v0.33.0...v0.33.1

This release was brought to you by the Shipyard team.

v0.33.0

09 May 11:24
010ef38

Choose a tag to compare

What's Changed

  • fix/updates to use context passed in New function for context cancellation by @blockchainluffy in #1081

New Contributors

Full Changelog: v0.32.0...v0.33.0

v0.32.0

29 Apr 15:34
4304f67

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.31.0...v0.32.0

This release was brought to you by the Shipyard team.

v0.31.0

02 Apr 11:25
0af4169

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.30.2...v0.31.0

This release was brought to you by the Shipyard team.

v0.30.2

05 Mar 00:18
1fab30b

Choose a tag to compare

What's Changed

  • do not use multiple multi-error packages, pick one by @gammazero in #1058

Full Changelog: v0.30.1...v0.30.2

v0.30.1

04 Mar 17:48
be63fe9

Choose a tag to compare

What's Changed

Full Changelog: v0.30.0...v0.30.1