Overview
We are excited to introduce Curio v1.25.1
. This release brings the debut of the Proof Declaration Protocol (PDP), empowering storage providers with verifiable hot storage capabilities alongside various improvements and fixes.
You can read more about Curio in our documentation.
Compatibility
This release is compatible with Lotus versions v1.33.0
. For the latest compatibility details, refer to the Curio version compatibility matrix.
⭐ Highlights
Proof Declaration Protocol (PDP)
Proof Declaration Protocol (Proof of Data Possession) is now supported in Curio, introducing a new on-demand proof mechanism for hot storage. With PDP, storage providers can cryptographically prove they hold an unsealed, immediately available copy of client data without the need to retrieve or unseal it. This new feature unlocks fast, verifiable retrieval use cases and complements Filecoin’s existing sealed storage (PoRep) by enabling a hot storage tier:
-
On-demand Proofs: Clients can challenge a storage provider at any time to quickly verify data availability via small random spot-checks (~160 bytes per challenge).
-
No Sealing/Unsealing Required: Data remains in raw form, eliminating sealing delays and making it suitable for real-time applications (e.g. web services, AI datasets).
-
Dynamic Datasets: PDP allows adding or removing data from proof sets, supporting mutable data collections that can be updated on the fly.
-
Easy Setup: Curio includes a new pdptool CLI for managing PDP proofs – providers can create ProofSets, upload files to be included in PDP, and declare proofs on-chain. No GPUs are required to participate in PDP, lowering the barrier to entry for hot storage providers.
This PDP integration is backed by smart contracts on the Filecoin network (FEVM), ensuring verifiable on-chain proof of data possession. Storage providers can now offer verifiable hot storage services with sub-second data access. 🚀
🛠️ Improvements
-
HTTP-Based MK12 Deals: Curio’s market now supports HTTP-based deal making for storage deals (Boost-style MK12 deals).
-
Optional CUDA Dependency: Installing and running Curio in a PDP-only mode no longer requires CUDA libraries. Users focusing solely on PDP operations can deploy Curio on machines without GPUs – make install now succeeds without CUDA, avoiding previous installation errors.
-
Missing Sector Alerts: Added proactive alerts for any missing sector files in storage. Curio will now flag missing or inaccessible sector data, helping operators quickly detect and resolve issues related to lost or moved sector files.
-
Message Fixer Tool: A new CLI tool is available to sync message status from Filfox. In case a message gets stuck or missed, operators can update the message with on-chain state fetched from the Filfox explorer to reconcile Curio’s view with the chain. Ex:
curio toolbox fix-msg --all
-
Cheaper ProveCommit Aggregation: Curio’s prove commit message aggregation no longer relies on fee thresholds. Instead, batching is governed by time and size limits as per network parameters. This aligns with the latest network upgrade (e.g. FIP-0100) by removing the batch balancer.
Web UI Enhancements
-
Pending Messages: The UI now displays pending chain messages (such as deal publish or proof submissions) so providers can track on-chain operations awaiting inclusion.
-
PDP ProofSet View: Introduced PDP support in the UI, allowing providers to view and inspect PDP ProofSets and associated pieces through the browser. This ensures PDP data and status are visible and manageable via the dashboard.
🐞 Bug Fixes
-
UI Sector List: Fixed the Web UI’s sector list to properly show expired sectors. Previously expired/terminated sectors were hidden; the UI now correctly displays them, providing an accurate view of all sector states.
-
WindowPoSt Handling: Resolved several issues with Window PoSt tasks. Curio will now cancel a WindowPoSt task if the deadline has passed (preventing false failure logs), and the cancellation conditions have been corrected to avoid stuck WdPoSt processes. These fixes improve reliability and ensure no erroneous alerts for skipped or late proofs.
-
Deal Ingestion & Piece Locator: Fixed an issue with the piece locator’s database transaction during deal ingestion (FindURL). The offline deal data fetch now operates within the proper transaction scope, eliminating errors when adding piece URLs.
-
Build Process: The make batch build process has been fixed by separating out the sptool build. This resolves prior build failures when running batch build tasks and updates the documentation accordingly.
What's Changed
- fix: batch build by @LexLuthr in #470
- use correct parameters for aggregation by @LexLuthr in #479
- Update Makefile for Non-CUDA Installs by @TippyFlitsUK in #481
- fix: UI sector list for expired sectors by @LexLuthr in #463
- wdpost should cancel if deadline is closed by @LexLuthr in #462
- http based mk12 deals by @LexLuthr in #469
- chore(deps): bump golang.org/x/net from 0.37.0 to 0.38.0 by @dependabot in #482
- fix: findURL transaction by @LexLuthr in #495
- feat: PDP by @magik6k in #227
- chore(deps): bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2 by @dependabot in #500
- alert for missing sectors by @LexLuthr in #486
- fix: wdPost by @LexLuthr in #499
- feat: pending messages in UI by @LexLuthr in #490
- tool to update msg watcher from FilFox if required by @LexLuthr in #487
- pdp browser rendering by @LexLuthr in #498
- no fee based aggregation/batching by @LexLuthr in #492
- fix: wdPost cancel condition by @LexLuthr in #503
- fix piecepark conflict spec in deal ingest by @magik6k in #504
- use full node for eth client by @LexLuthr in #509
- release v1.25.1 by @LexLuthr in #510
- update lotus 1.33.0 by @LexLuthr in #511
Full Changelog: v1.25.0...v1.25.1