Skip to content

Releases: filecoin-project/curio

v1.25.1

20 May 15:39
b219def
Compare
Choose a tag to compare

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

  1. 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.

  2. 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

Full Changelog: v1.25.0...v1.25.1

v1.25.0

10 Apr 11:58
8fe9b8a
Compare
Choose a tag to compare

Overview

We are excited to introduce Curio v1.25.0. This release enable the Filecoin Network upgrade to NV25 for Curio.

📖 You can read more about Curio in our documentation.

Compatibility

This release is compatible with Lotus versionv1.32.2. For the latest compatibility details, refer to the Curio version compatibility matrix.

⭐ Highlights

Balance Manager

The Balance Manager is a subsystem within Curio responsible for automatically managing balances for certain actors. Currently, it is used to top up deal collateral when the available balance falls below a defined threshold. In future iterations, the Balance Manager will be extended to handle control addresses and other balance-related operations.

CIDGravity Integration

Curio supports CIDGravity as external deal filter. CIDGravity is a powerful pricing and client management tool designed for Filecoin storage providers. It enables storage providers to efficiently filter storage and retrieval deals through a user-friendly interface. With CIDGravity, providers can set rules and policies for accepting or rejecting deals based on their business preferences, ensuring better control over their storage operations.

Human-friendly wallet names

Curio now supports assigning human-friendly names to wallets and PeerIDs through the new Wallets page in the UI. Once an entry is added, the UI will display the assigned name instead of the raw value. Names can be edited or deleted directly from the Wallets page.

🏗️ Improvements

  • BindSDRTreeToNode configuration option now ensures TreeD and TreeRC tasks run on the same node as the SDR task for improved data locality. Make sure TreeD and TreeRC tasks are enabled with sufficient resources before enabling this option.
  • New cli flag --db-cassandra-port allows users to choose a non default CQL API port for connecting to YugabyteDB CQL APIs.
  • PreCommit and Commit batch creation logic has been fully migrated to SQL to improve consistency. This eliminates race conditions that previously led to the same sector being assigned to multiple batches.
  • SupraSeal Batching: Fixed incorrect assumptions about hasher behaviour, resolving issues in single-hasher configurations.

🐛 Bug Fixes

  • Resolved the "0 rows found" error when deleting a deal pipeline from the UI.
  • Fixed an issue where sealed sectors were not reflected in the deal pipeline, causing deal processing to get stuck.
  • Fixed a bug where an unsealed copy was always retained, even when the deal explicitly specified not to keep it.

What's Changed

New Contributors

Full Changelog: 1.24.5...v1.25.0

v1.25.0-rc1

25 Mar 13:47
d4b6fb1
Compare
Choose a tag to compare
v1.25.0-rc1 Pre-release
Pre-release

Overview

We are excited to introduce Curio v1.25.0-rc1. This release enable the Filecoin Network upgrade to NV25 for Curio.

📖 You can read more about Curio in our documentation.

Compatibility

This release is compatible with Lotus versionsv1.32.0-rc3 and above. For the latest compatibility details, refer to the Curio version compatibility matrix.

⭐ Highlights

Balance Manager

The Balance Manager is a subsystem within Curio responsible for automatically managing balances for certain actors. Currently, it is used to top up deal collateral when the available balance falls below a defined threshold. In future iterations, the Balance Manager will be extended to handle control addresses and other balance-related operations.

CID Gravity Integration

Curio supports CIDGravity as external deal filter. CIDGravity is a powerful pricing and client management tool designed for Filecoin storage providers. It enables storage providers to efficiently filter storage and retrieval deals through a user-friendly interface. With CIDGravity, providers can set rules and policies for accepting or rejecting deals based on their business preferences, ensuring better control over their storage operations.

Menu drawer in UI

Curio UI's main menu now appears in a drawer on smaller screens for improved visibility and user experience.
On wider screens, the menu layout remains unchanged.

🏗️ Improvements

  • BindSDRTreeToNode configuration option now ensures TreeD and TreeRC tasks run on the same node as the SDR task for improved data locality. Make sure TreeD and TreeRC tasks are enabled with sufficient resources before enabling this option.
  • New cli flag --db-cassandra-port allows users to choose a non default CQL API port for connecting to YugabyteDB CQL APIs.
  • PreCommit and Commit batch creation logic has been fully migrated to SQL to improve consistency. This eliminates race conditions that previously led to the same sector being assigned to multiple batches.
  • SupraSeal Batching: Fixed incorrect assumptions about hasher behavior, resolving issues in single-hasher configurations.

🐛 Bug Fixes

  • Resolved the "0 rows found" error when deleting a deal pipeline from the UI.
  • Fixed an issue where sealed sectors were not reflected in the deal pipeline, causing deal processing to get stuck.

What's Changed

Full Changelog: v1.24.5...v1.25.0-rc1

v1.24.5

25 Feb 14:33
40245d9
Compare
Choose a tag to compare

Overview

We are excited to introduce Curio v1.24.5. This release brings in some Offline Verified DDO deals and Spark integration smart contract.

📖 You can read more about Curio in our documentation.

Compatibility

This release is compatible with all Lotus versions incl. v1.32.0-rc2. For the latest compatibility details, refer to the Curio version compatibility matrix.

⚠️ Boost compatibility with Curio is now deprecated, we highly recommend our users to migrate from Boost to Curio market.

⭐ Highlights

Market

Offline Verified DDO Deals

This release introduces support for offline verified DDO deals, allowing providers to efficiently manage Direct Data Onboarding (DDO) deals without requiring f05 (market actor) interactions.

  • Only Offline deals are supported
  • Only Verified deals are supported
  • A new command curio market ddo -h to onboard the deal

Spark Contract Integration

The integration of Spark Contracts introduces new on-chain interactions for storage providers, allowing for Spark to find the peerID used for IPNI advertisement for a Curio miner.
The MinerPeerIDMapping contract provides a decentralized way to map Filecoin miner IDs (uint64) to their PeerIDs along with signed messages for validation. It ensures only authorized entities (owner or controlling addresses) can add, update, or delete mappings.


🏗️ Improvements

  • Devnet with Market & Deal Client: A dedicated Devnet environment is now available for testing market functionality and deal client operations.
  • Storage Redeclare Command: A new command enables storage redeclaration, making it easier to manage sector location in storage.
  • Garbage Collection (GC) Enhancements:
    • Snap sector key files are now marked for removal in GC.
    • Lookback calculations have been corrected to improve cleanup efficiency.
  • Batch Send Optimization: Improved scheduling ensures batch sends do not get rescheduled unnecessarily, reducing processing overhead.
  • Supraseal Setup Documentation: Improved documentation to streamline the setup process for Supraseal.
  • Storage Breakdown in Web UI: The UI now provides detailed storage usage breakdown by file type, helping providers monitor sector allocations more effectively.

🐛 Bug Fixes

  • Piece Locator Fixes: Resolved multiple issues, including SQL errors and missing data URLs.
  • Seal Process Fixes: The correct column is now checked before assigning batch submit tasks, preventing incorrect batch assignments.
  • PSD Wait Time Fix: Fixed an issue where PSD wait time was incorrect when CommP was skipped.
  • PSD Selection & FindURL Improvements: Optimized PSD selection and FindURL resolution in Curio Market, fixing the issue allowing more than MaxDealPerMessage in PSD message.
  • WinPoSt Alert Fix: Addressed incorrect alert triggers related to Winning Proof-of-Spacetime (PoSt).

What's Changed

Full Changelog: v1.24.4...v1.24.5

v1.24.4

24 Jan 11:01
96ac5a2
Compare
Choose a tag to compare

Overview

We are excited to introduce Curio v1.24.4. This release brings in some important bug fixes in market and UI improvements.

📖 You can read more about Curio in our documentation.

Compatibility

This release is compatible with all Lotus versions incl. v1.32.0-rc2 and Boost v2.4.1. For the latest compatibility details, refer to the Curio version compatibility matrix.

⭐ Highlights

Curio Markets

The introduction of Curio Markets establishes a native deal-making mechanism that streamlines storage operations and enhances interoperability with existing Filecoin tools.

⚠️ Important Migration Notice:
A migration is required to use Curio Markets. If you are currently using Boost, there is a dedicated compatibility branch named boost-adapter to facilitate the transition. If you are working off the latest main branch, note that there are some recent pull requests that need to be incorporated for complete compatibility.

⚠️ This release also eliminates the need for Boost in the storage provider stack, simplifying administration and maintenance.

UI Sector Page

A revamped sector page in the UI now consolidates all relevant sector details in one place. This page facilitates debugging sector-related issues effectively.

🏗️ Improvements

  • SPDK Upgrade: Upgraded to SPDK v24.05 for enhanced performance and reliability.
  • Network Validation: Curio binary now performs network validation to prevent startup on an incorrect Lotus node network.
  • Cluster Task Visualization: Cluster tasks are now presented as a consolidated list in the UI, offering better visual clarity and ease of navigation.
  • Multilingual Support: Curio CLI details are now available in Mandarin (zh) and Korean (ko).
  • Message Batching: Improved robustness in message batching for the sealing and snap pipelines.
  • Deal Filters: Curio market now support global offline and online deal filters via configuration.

🐛 Bug Fixes

  • Fixed an issue where the finalize process would get stuck for synthetic PoRep sectors.
  • Resolved a bug in the guided setup that caused multiple storage secrets to be added to multiple layers.
  • Fixed a libp2p startup issue that occurred when no key was present in the libp2p table.
  • Fixed a bug with add-url command for market deal caused by missing header column.

What's Changed

New Contributors

Full Changelog: v1.24.3...v1.24.4

v1.24.3

07 Jan 18:41
19f943a
Compare
Choose a tag to compare

Overview

We are excited to introduce Curio v1.24.3, which enables the Curio native markets. 🚀

📖 You can read more about Curio in our documentation.

Compatibility

This release is compatible with all Lotus versions incl. v1.32.0-rc2 and Boost v2.4.1. For the latest compatibility details, refer to the Curio version compatibility matrix.

⭐ Highlights

Curio Markets

The introduction of Curio markets establishes a native deal-making mechanism, streamlining storage operations and enhancing interoperability with existing Filecoin tools. It also eliminates the need for Boost in the storage provider stack, simplifying administration and maintenance.

🏗️ Improvements

  • Added windowPost metrics to allow debugging slow posts.
  • Deployed a new Filecoin parameter server dedicated for Curio and switched to speed up params download for Curio.
  • Added new allow/deny types flags to storage init command

🐛 Bug Fixes

  • Fixed calibnet build issue leading to batching build failures.
  • Fixed a bug in guided-setup which lead to multiple storage secrets being added to multiple layers

What's Changed

Full Changelog: v1.24.2...v1.24.3

v1.24.2

12 Nov 10:43
ce37e6e
Compare
Choose a tag to compare

Overview

We are excited to introduce Curio v1.24.2. This release includes some important fixes for FastFinality and Lotus dependency upgrade in Curio for upcoming Filecoin Network upgrade to NV24.

📖 You can read more about Curio in our documentation.

Compatibility

This release is compatible with Lotus versions v1.30.0 and Boost v2.4.0. For the latest compatibility details, refer to the Curio version compatibility matrix.

🏗️ Improvements

UI Improvements

  • Replaced 'f0' string for miner actor ID to correct conversion based on the network.
  • Fixed message displayed after saving a configuration layer.

F3

  • Improved error handling when failing to receive manifest from the client in f3.
  • Resolved participation issues related to sentinel errors in f3.
  • Updated participation loop to ensure consistent operation in f3.

🐛 Bug Fixes

  • Fixed sector size overflow by accounting for inter-piece padding during data ingestion.

What's Changed

New Contributors

Full Changelog: v1.24.1...v1.24.2

v1.24.1

22 Oct 14:51
843274b
Compare
Choose a tag to compare

Overview

We are excited to introduce Curio v1.24.1. This release enables FastFinality in Curio for upcoming Filecoin Network upgrade to NV24.

📖 You can read more about Curio in our documentation.

Compatibility

This release is compatible with Lotus versions v1.30.0-rc2 and Boost v2.4.0-rc1. For the latest compatibility details, refer to the Curio version compatibility matrix.

What's Changed

Full Changelog: v1.24.0...v1.24.1

v1.24.0

21 Oct 15:41
42d3dd1
Compare
Choose a tag to compare

Overview

We are excited to introduce Curio v1.24.0, which includes several improvements, bug fixes, and new features to enhance the overall performance and usability of Curio. This release prepares Curio for upcoming Filecoin Network upgrade to NV24.

📖 You can read more about Curio in our documentation.

Compatibility

This release is compatible with Lotus versions v1.30.0-rc2 and Boost v2.4.0-rc1. For the latest compatibility details, refer to the Curio version compatibility matrix.

⭐ Highlights

☀️ New Features

  • Introduced a retry wait mechanism for task retries, enhancing system stability and reducing the likelihood of repeated immediate failures.
  • Added alerts to notify users when the chain synchronization is lagging, ensuring timely awareness of synchronization issues.
  • The UI now shows node uptime, providing better insights into node performance and stability.
  • Users can now reset the sectors state to before SDR from the UI. This allows resealing sectors from SDR if required at any stage before PreCommit message is sent.
  • Updated Curio to be compatible with the upcoming NV24 network upgrade, ensuring seamless operation post-upgrade.

🔧 Enhanced Snap Deals Handling

  • Added a button in the web UI to resume all stuck sectors in Snap Deals, improving operational efficiency.
  • Fixed issues where Snap Deals did not correctly process non-Filplus deals, ensuring all deals are handled properly.
  • Adjusted scheduling logic to only schedule tasks when necessary, reducing unnecessary resource usage during Snap Deals.

⚡ Faster Performance

  • Improved task scheduling to initiate processes only when needed, enhancing overall system performance.
  • Introduced an experimental feature for GPU overprovisioning to potentially enhance computational tasks.
  • Modified the loading of native dependencies to with certain build flags to allow using Curio is a library.

🖥️ User Interface Updates

  • Users can now copy the block CID directly from the winning stats table.
  • Enhanced the PoRep pipeline UI to display when tasks are waiting, providing better visibility into processing states.

🏗️ Improvements

  • Added more detailed resource logs to assist users in monitoring and troubleshooting system resource usage.
  • Enhanced the multinode proxy for better performance and reliability in multi-node environments.
  • Implemented transactions during sector migrations to ensure data integrity and consistency.
  • Improved the sector termination process for enhanced reliability and user experience.
  • Cleaned up code by removing unused wdPost pre-checks and configurations, reducing potential confusion.

🐛 Bug Fixes

  • Fixed an issue where counters were not correctly separated when sharing max values, improving resource allocation accuracy.
  • Eliminated incomplete resource check logs that could cause confusion or misinterpretation.
  • Corrected the PoRep count in the summary to display accurate information.
  • Fixed an issue where multiple API keys were found in the database when migrating multiple miner IDs.
  • Fixed the sector list power display after sector extension operations to reflect accurate values.
  • Fixed a bug where the message watcher could return early, ensuring consistent message processing.
  • Addressed an issue causing panics due to faults by creating a skipped bitfield in PoSt operations.
  • Resolved issues where Slack alerts and winpost alerts were not triggering correctly.
  • Corrected alert mechanisms related to WindowPoSt and WinningPoSt operations.

What's Changed

Full Changelog: v1.23.1...v1.24.0

v1.23.1

23 Sep 15:47
0c3d207
Compare
Choose a tag to compare

Overview

We are excited to introduce Curio v1.23.1, which includes several improvements, bug fixes, and new features to enhance the overall performance and usability of Curio. This release ensures better stability and more efficient operation for our users.

📖 You can read more about Curio in our documentation.

Compatibility
This release is compatible with Lotus versions v1.28.1 and Boost v2.3.0. For the latest compatibility details, refer to the Curio version compatibility matrix.

⭐ Highlights

☀️ New Features

  • SupraSeal Batch: 10x more efficient sealing, with a custom build and more NVMe drives.
  • Unseal: Retrieve the unsealed copy from the sealed copy. Now Curio has EVERY feature of lotus-miner.
  • 中文 Simplified Chinese Documentation

🔧 Enhanced Snap Deals Handling

  • Fixed issues related to snap-deal handling, including unsealed sector management and t_aux generation when not present.
  • Improved snap piece cleanup and selection process to optimize data handling.
  • Snap-deal pipeline UI updates for better sector management.

⚡ Faster Performance

  • Avoided expensive table scans in the SectorsStatus query, leading to faster performance in lmrpc tasks.
  • Improved backpressure management in snap tasks, ensuring smoother task execution.
  • Optimization of snap sector picker to be deadline-aware, enhancing task prioritization and performance.

🖥️ User Interface Updates

  • Added new sidebar navigation to the web UI for easier access to tasks and configuration.
  • Improved display of chain connectivity status and added bulk task restart options on the PoRep page.
  • Updated UI for the config list page to make configuration management more user-friendly.

🏗️ Improvements

  • Fixes to the WinningPoSt logic to correctly declare GPU requirements, reducing the risk of job failures.
  • Added batch deadline setting for SectorMetadata to streamline sector management tasks.
  • Improved handling of insufficient funds errors during sealing and snap processes.
  • Resolved issues with the use of HarmonyDB, preventing misconfiguration during setup.
  • Introduced an installation target for completion scripts to improve development setup.
  • AlertManager has been updated to resolve key addresses before checking, improving alert reliability.

🐛 Bug Fixes

  • Corrected sector selection in the snap ingester, ensuring smooth sector processing.
  • Resolved issues with invalid sector provider (SP) in the sector list page.
  • Fixed issues related to the precommit stage to ensure the correct sector duration is used.

What's Changed

New Contributors

Full Changelog: v1.23.0...v1.23.1